1package compute 2 3// Copyright (c) Microsoft and contributors. All rights reserved. 4// 5// Licensed under the Apache License, Version 2.0 (the "License"); 6// you may not use this file except in compliance with the License. 7// You may obtain a copy of the License at 8// http://www.apache.org/licenses/LICENSE-2.0 9// 10// Unless required by applicable law or agreed to in writing, software 11// distributed under the License is distributed on an "AS IS" BASIS, 12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13// 14// See the License for the specific language governing permissions and 15// limitations under the License. 16// 17// Code generated by Microsoft (R) AutoRest Code Generator. 18// Changes may cause incorrect behavior and will be lost if the code is regenerated. 19 20import ( 21 "encoding/json" 22 "github.com/Azure/go-autorest/autorest" 23 "github.com/Azure/go-autorest/autorest/azure" 24 "github.com/Azure/go-autorest/autorest/date" 25 "github.com/Azure/go-autorest/autorest/to" 26 "net/http" 27) 28 29// AccessLevel enumerates the values for access level. 30type AccessLevel string 31 32const ( 33 // None ... 34 None AccessLevel = "None" 35 // Read ... 36 Read AccessLevel = "Read" 37) 38 39// PossibleAccessLevelValues returns an array of possible values for the AccessLevel const type. 40func PossibleAccessLevelValues() []AccessLevel { 41 return []AccessLevel{None, Read} 42} 43 44// AggregatedReplicationState enumerates the values for aggregated replication state. 45type AggregatedReplicationState string 46 47const ( 48 // Completed ... 49 Completed AggregatedReplicationState = "Completed" 50 // Failed ... 51 Failed AggregatedReplicationState = "Failed" 52 // InProgress ... 53 InProgress AggregatedReplicationState = "InProgress" 54 // Unknown ... 55 Unknown AggregatedReplicationState = "Unknown" 56) 57 58// PossibleAggregatedReplicationStateValues returns an array of possible values for the AggregatedReplicationState const type. 59func PossibleAggregatedReplicationStateValues() []AggregatedReplicationState { 60 return []AggregatedReplicationState{Completed, Failed, InProgress, Unknown} 61} 62 63// AvailabilitySetSkuTypes enumerates the values for availability set sku types. 64type AvailabilitySetSkuTypes string 65 66const ( 67 // Aligned ... 68 Aligned AvailabilitySetSkuTypes = "Aligned" 69 // Classic ... 70 Classic AvailabilitySetSkuTypes = "Classic" 71) 72 73// PossibleAvailabilitySetSkuTypesValues returns an array of possible values for the AvailabilitySetSkuTypes const type. 74func PossibleAvailabilitySetSkuTypesValues() []AvailabilitySetSkuTypes { 75 return []AvailabilitySetSkuTypes{Aligned, Classic} 76} 77 78// CachingTypes enumerates the values for caching types. 79type CachingTypes string 80 81const ( 82 // CachingTypesNone ... 83 CachingTypesNone CachingTypes = "None" 84 // CachingTypesReadOnly ... 85 CachingTypesReadOnly CachingTypes = "ReadOnly" 86 // CachingTypesReadWrite ... 87 CachingTypesReadWrite CachingTypes = "ReadWrite" 88) 89 90// PossibleCachingTypesValues returns an array of possible values for the CachingTypes const type. 91func PossibleCachingTypesValues() []CachingTypes { 92 return []CachingTypes{CachingTypesNone, CachingTypesReadOnly, CachingTypesReadWrite} 93} 94 95// ComponentNames enumerates the values for component names. 96type ComponentNames string 97 98const ( 99 // MicrosoftWindowsShellSetup ... 100 MicrosoftWindowsShellSetup ComponentNames = "Microsoft-Windows-Shell-Setup" 101) 102 103// PossibleComponentNamesValues returns an array of possible values for the ComponentNames const type. 104func PossibleComponentNamesValues() []ComponentNames { 105 return []ComponentNames{MicrosoftWindowsShellSetup} 106} 107 108// ContainerServiceOrchestratorTypes enumerates the values for container service orchestrator types. 109type ContainerServiceOrchestratorTypes string 110 111const ( 112 // Custom ... 113 Custom ContainerServiceOrchestratorTypes = "Custom" 114 // DCOS ... 115 DCOS ContainerServiceOrchestratorTypes = "DCOS" 116 // Kubernetes ... 117 Kubernetes ContainerServiceOrchestratorTypes = "Kubernetes" 118 // Swarm ... 119 Swarm ContainerServiceOrchestratorTypes = "Swarm" 120) 121 122// PossibleContainerServiceOrchestratorTypesValues returns an array of possible values for the ContainerServiceOrchestratorTypes const type. 123func PossibleContainerServiceOrchestratorTypesValues() []ContainerServiceOrchestratorTypes { 124 return []ContainerServiceOrchestratorTypes{Custom, DCOS, Kubernetes, Swarm} 125} 126 127// ContainerServiceVMSizeTypes enumerates the values for container service vm size types. 128type ContainerServiceVMSizeTypes string 129 130const ( 131 // StandardA0 ... 132 StandardA0 ContainerServiceVMSizeTypes = "Standard_A0" 133 // StandardA1 ... 134 StandardA1 ContainerServiceVMSizeTypes = "Standard_A1" 135 // StandardA10 ... 136 StandardA10 ContainerServiceVMSizeTypes = "Standard_A10" 137 // StandardA11 ... 138 StandardA11 ContainerServiceVMSizeTypes = "Standard_A11" 139 // StandardA2 ... 140 StandardA2 ContainerServiceVMSizeTypes = "Standard_A2" 141 // StandardA3 ... 142 StandardA3 ContainerServiceVMSizeTypes = "Standard_A3" 143 // StandardA4 ... 144 StandardA4 ContainerServiceVMSizeTypes = "Standard_A4" 145 // StandardA5 ... 146 StandardA5 ContainerServiceVMSizeTypes = "Standard_A5" 147 // StandardA6 ... 148 StandardA6 ContainerServiceVMSizeTypes = "Standard_A6" 149 // StandardA7 ... 150 StandardA7 ContainerServiceVMSizeTypes = "Standard_A7" 151 // StandardA8 ... 152 StandardA8 ContainerServiceVMSizeTypes = "Standard_A8" 153 // StandardA9 ... 154 StandardA9 ContainerServiceVMSizeTypes = "Standard_A9" 155 // StandardD1 ... 156 StandardD1 ContainerServiceVMSizeTypes = "Standard_D1" 157 // StandardD11 ... 158 StandardD11 ContainerServiceVMSizeTypes = "Standard_D11" 159 // StandardD11V2 ... 160 StandardD11V2 ContainerServiceVMSizeTypes = "Standard_D11_v2" 161 // StandardD12 ... 162 StandardD12 ContainerServiceVMSizeTypes = "Standard_D12" 163 // StandardD12V2 ... 164 StandardD12V2 ContainerServiceVMSizeTypes = "Standard_D12_v2" 165 // StandardD13 ... 166 StandardD13 ContainerServiceVMSizeTypes = "Standard_D13" 167 // StandardD13V2 ... 168 StandardD13V2 ContainerServiceVMSizeTypes = "Standard_D13_v2" 169 // StandardD14 ... 170 StandardD14 ContainerServiceVMSizeTypes = "Standard_D14" 171 // StandardD14V2 ... 172 StandardD14V2 ContainerServiceVMSizeTypes = "Standard_D14_v2" 173 // StandardD1V2 ... 174 StandardD1V2 ContainerServiceVMSizeTypes = "Standard_D1_v2" 175 // StandardD2 ... 176 StandardD2 ContainerServiceVMSizeTypes = "Standard_D2" 177 // StandardD2V2 ... 178 StandardD2V2 ContainerServiceVMSizeTypes = "Standard_D2_v2" 179 // StandardD3 ... 180 StandardD3 ContainerServiceVMSizeTypes = "Standard_D3" 181 // StandardD3V2 ... 182 StandardD3V2 ContainerServiceVMSizeTypes = "Standard_D3_v2" 183 // StandardD4 ... 184 StandardD4 ContainerServiceVMSizeTypes = "Standard_D4" 185 // StandardD4V2 ... 186 StandardD4V2 ContainerServiceVMSizeTypes = "Standard_D4_v2" 187 // StandardD5V2 ... 188 StandardD5V2 ContainerServiceVMSizeTypes = "Standard_D5_v2" 189 // StandardDS1 ... 190 StandardDS1 ContainerServiceVMSizeTypes = "Standard_DS1" 191 // StandardDS11 ... 192 StandardDS11 ContainerServiceVMSizeTypes = "Standard_DS11" 193 // StandardDS12 ... 194 StandardDS12 ContainerServiceVMSizeTypes = "Standard_DS12" 195 // StandardDS13 ... 196 StandardDS13 ContainerServiceVMSizeTypes = "Standard_DS13" 197 // StandardDS14 ... 198 StandardDS14 ContainerServiceVMSizeTypes = "Standard_DS14" 199 // StandardDS2 ... 200 StandardDS2 ContainerServiceVMSizeTypes = "Standard_DS2" 201 // StandardDS3 ... 202 StandardDS3 ContainerServiceVMSizeTypes = "Standard_DS3" 203 // StandardDS4 ... 204 StandardDS4 ContainerServiceVMSizeTypes = "Standard_DS4" 205 // StandardG1 ... 206 StandardG1 ContainerServiceVMSizeTypes = "Standard_G1" 207 // StandardG2 ... 208 StandardG2 ContainerServiceVMSizeTypes = "Standard_G2" 209 // StandardG3 ... 210 StandardG3 ContainerServiceVMSizeTypes = "Standard_G3" 211 // StandardG4 ... 212 StandardG4 ContainerServiceVMSizeTypes = "Standard_G4" 213 // StandardG5 ... 214 StandardG5 ContainerServiceVMSizeTypes = "Standard_G5" 215 // StandardGS1 ... 216 StandardGS1 ContainerServiceVMSizeTypes = "Standard_GS1" 217 // StandardGS2 ... 218 StandardGS2 ContainerServiceVMSizeTypes = "Standard_GS2" 219 // StandardGS3 ... 220 StandardGS3 ContainerServiceVMSizeTypes = "Standard_GS3" 221 // StandardGS4 ... 222 StandardGS4 ContainerServiceVMSizeTypes = "Standard_GS4" 223 // StandardGS5 ... 224 StandardGS5 ContainerServiceVMSizeTypes = "Standard_GS5" 225) 226 227// PossibleContainerServiceVMSizeTypesValues returns an array of possible values for the ContainerServiceVMSizeTypes const type. 228func PossibleContainerServiceVMSizeTypesValues() []ContainerServiceVMSizeTypes { 229 return []ContainerServiceVMSizeTypes{StandardA0, StandardA1, StandardA10, StandardA11, StandardA2, StandardA3, StandardA4, StandardA5, StandardA6, StandardA7, StandardA8, StandardA9, StandardD1, StandardD11, StandardD11V2, StandardD12, StandardD12V2, StandardD13, StandardD13V2, StandardD14, StandardD14V2, StandardD1V2, StandardD2, StandardD2V2, StandardD3, StandardD3V2, StandardD4, StandardD4V2, StandardD5V2, StandardDS1, StandardDS11, StandardDS12, StandardDS13, StandardDS14, StandardDS2, StandardDS3, StandardDS4, StandardG1, StandardG2, StandardG3, StandardG4, StandardG5, StandardGS1, StandardGS2, StandardGS3, StandardGS4, StandardGS5} 230} 231 232// DiffDiskOptions enumerates the values for diff disk options. 233type DiffDiskOptions string 234 235const ( 236 // Local ... 237 Local DiffDiskOptions = "Local" 238) 239 240// PossibleDiffDiskOptionsValues returns an array of possible values for the DiffDiskOptions const type. 241func PossibleDiffDiskOptionsValues() []DiffDiskOptions { 242 return []DiffDiskOptions{Local} 243} 244 245// DiskCreateOption enumerates the values for disk create option. 246type DiskCreateOption string 247 248const ( 249 // Attach ... 250 Attach DiskCreateOption = "Attach" 251 // Copy ... 252 Copy DiskCreateOption = "Copy" 253 // Empty ... 254 Empty DiskCreateOption = "Empty" 255 // FromImage ... 256 FromImage DiskCreateOption = "FromImage" 257 // Import ... 258 Import DiskCreateOption = "Import" 259 // Restore ... 260 Restore DiskCreateOption = "Restore" 261) 262 263// PossibleDiskCreateOptionValues returns an array of possible values for the DiskCreateOption const type. 264func PossibleDiskCreateOptionValues() []DiskCreateOption { 265 return []DiskCreateOption{Attach, Copy, Empty, FromImage, Import, Restore} 266} 267 268// DiskCreateOptionTypes enumerates the values for disk create option types. 269type DiskCreateOptionTypes string 270 271const ( 272 // DiskCreateOptionTypesAttach ... 273 DiskCreateOptionTypesAttach DiskCreateOptionTypes = "Attach" 274 // DiskCreateOptionTypesEmpty ... 275 DiskCreateOptionTypesEmpty DiskCreateOptionTypes = "Empty" 276 // DiskCreateOptionTypesFromImage ... 277 DiskCreateOptionTypesFromImage DiskCreateOptionTypes = "FromImage" 278) 279 280// PossibleDiskCreateOptionTypesValues returns an array of possible values for the DiskCreateOptionTypes const type. 281func PossibleDiskCreateOptionTypesValues() []DiskCreateOptionTypes { 282 return []DiskCreateOptionTypes{DiskCreateOptionTypesAttach, DiskCreateOptionTypesEmpty, DiskCreateOptionTypesFromImage} 283} 284 285// DiskStorageAccountTypes enumerates the values for disk storage account types. 286type DiskStorageAccountTypes string 287 288const ( 289 // PremiumLRS ... 290 PremiumLRS DiskStorageAccountTypes = "Premium_LRS" 291 // StandardLRS ... 292 StandardLRS DiskStorageAccountTypes = "Standard_LRS" 293 // StandardSSDLRS ... 294 StandardSSDLRS DiskStorageAccountTypes = "StandardSSD_LRS" 295 // UltraSSDLRS ... 296 UltraSSDLRS DiskStorageAccountTypes = "UltraSSD_LRS" 297) 298 299// PossibleDiskStorageAccountTypesValues returns an array of possible values for the DiskStorageAccountTypes const type. 300func PossibleDiskStorageAccountTypesValues() []DiskStorageAccountTypes { 301 return []DiskStorageAccountTypes{PremiumLRS, StandardLRS, StandardSSDLRS, UltraSSDLRS} 302} 303 304// HostCaching enumerates the values for host caching. 305type HostCaching string 306 307const ( 308 // HostCachingNone ... 309 HostCachingNone HostCaching = "None" 310 // HostCachingReadOnly ... 311 HostCachingReadOnly HostCaching = "ReadOnly" 312 // HostCachingReadWrite ... 313 HostCachingReadWrite HostCaching = "ReadWrite" 314) 315 316// PossibleHostCachingValues returns an array of possible values for the HostCaching const type. 317func PossibleHostCachingValues() []HostCaching { 318 return []HostCaching{HostCachingNone, HostCachingReadOnly, HostCachingReadWrite} 319} 320 321// InstanceViewTypes enumerates the values for instance view types. 322type InstanceViewTypes string 323 324const ( 325 // InstanceView ... 326 InstanceView InstanceViewTypes = "instanceView" 327) 328 329// PossibleInstanceViewTypesValues returns an array of possible values for the InstanceViewTypes const type. 330func PossibleInstanceViewTypesValues() []InstanceViewTypes { 331 return []InstanceViewTypes{InstanceView} 332} 333 334// IntervalInMins enumerates the values for interval in mins. 335type IntervalInMins string 336 337const ( 338 // FiveMins ... 339 FiveMins IntervalInMins = "FiveMins" 340 // SixtyMins ... 341 SixtyMins IntervalInMins = "SixtyMins" 342 // ThirtyMins ... 343 ThirtyMins IntervalInMins = "ThirtyMins" 344 // ThreeMins ... 345 ThreeMins IntervalInMins = "ThreeMins" 346) 347 348// PossibleIntervalInMinsValues returns an array of possible values for the IntervalInMins const type. 349func PossibleIntervalInMinsValues() []IntervalInMins { 350 return []IntervalInMins{FiveMins, SixtyMins, ThirtyMins, ThreeMins} 351} 352 353// IPVersion enumerates the values for ip version. 354type IPVersion string 355 356const ( 357 // IPv4 ... 358 IPv4 IPVersion = "IPv4" 359 // IPv6 ... 360 IPv6 IPVersion = "IPv6" 361) 362 363// PossibleIPVersionValues returns an array of possible values for the IPVersion const type. 364func PossibleIPVersionValues() []IPVersion { 365 return []IPVersion{IPv4, IPv6} 366} 367 368// MaintenanceOperationResultCodeTypes enumerates the values for maintenance operation result code types. 369type MaintenanceOperationResultCodeTypes string 370 371const ( 372 // MaintenanceOperationResultCodeTypesMaintenanceAborted ... 373 MaintenanceOperationResultCodeTypesMaintenanceAborted MaintenanceOperationResultCodeTypes = "MaintenanceAborted" 374 // MaintenanceOperationResultCodeTypesMaintenanceCompleted ... 375 MaintenanceOperationResultCodeTypesMaintenanceCompleted MaintenanceOperationResultCodeTypes = "MaintenanceCompleted" 376 // MaintenanceOperationResultCodeTypesNone ... 377 MaintenanceOperationResultCodeTypesNone MaintenanceOperationResultCodeTypes = "None" 378 // MaintenanceOperationResultCodeTypesRetryLater ... 379 MaintenanceOperationResultCodeTypesRetryLater MaintenanceOperationResultCodeTypes = "RetryLater" 380) 381 382// PossibleMaintenanceOperationResultCodeTypesValues returns an array of possible values for the MaintenanceOperationResultCodeTypes const type. 383func PossibleMaintenanceOperationResultCodeTypesValues() []MaintenanceOperationResultCodeTypes { 384 return []MaintenanceOperationResultCodeTypes{MaintenanceOperationResultCodeTypesMaintenanceAborted, MaintenanceOperationResultCodeTypesMaintenanceCompleted, MaintenanceOperationResultCodeTypesNone, MaintenanceOperationResultCodeTypesRetryLater} 385} 386 387// OperatingSystemStateTypes enumerates the values for operating system state types. 388type OperatingSystemStateTypes string 389 390const ( 391 // Generalized ... 392 Generalized OperatingSystemStateTypes = "Generalized" 393 // Specialized ... 394 Specialized OperatingSystemStateTypes = "Specialized" 395) 396 397// PossibleOperatingSystemStateTypesValues returns an array of possible values for the OperatingSystemStateTypes const type. 398func PossibleOperatingSystemStateTypesValues() []OperatingSystemStateTypes { 399 return []OperatingSystemStateTypes{Generalized, Specialized} 400} 401 402// OperatingSystemTypes enumerates the values for operating system types. 403type OperatingSystemTypes string 404 405const ( 406 // Linux ... 407 Linux OperatingSystemTypes = "Linux" 408 // Windows ... 409 Windows OperatingSystemTypes = "Windows" 410) 411 412// PossibleOperatingSystemTypesValues returns an array of possible values for the OperatingSystemTypes const type. 413func PossibleOperatingSystemTypesValues() []OperatingSystemTypes { 414 return []OperatingSystemTypes{Linux, Windows} 415} 416 417// PassNames enumerates the values for pass names. 418type PassNames string 419 420const ( 421 // OobeSystem ... 422 OobeSystem PassNames = "OobeSystem" 423) 424 425// PossiblePassNamesValues returns an array of possible values for the PassNames const type. 426func PossiblePassNamesValues() []PassNames { 427 return []PassNames{OobeSystem} 428} 429 430// ProtocolTypes enumerates the values for protocol types. 431type ProtocolTypes string 432 433const ( 434 // HTTP ... 435 HTTP ProtocolTypes = "Http" 436 // HTTPS ... 437 HTTPS ProtocolTypes = "Https" 438) 439 440// PossibleProtocolTypesValues returns an array of possible values for the ProtocolTypes const type. 441func PossibleProtocolTypesValues() []ProtocolTypes { 442 return []ProtocolTypes{HTTP, HTTPS} 443} 444 445// ProvisioningState enumerates the values for provisioning state. 446type ProvisioningState string 447 448const ( 449 // ProvisioningStateCreating ... 450 ProvisioningStateCreating ProvisioningState = "Creating" 451 // ProvisioningStateDeleting ... 452 ProvisioningStateDeleting ProvisioningState = "Deleting" 453 // ProvisioningStateFailed ... 454 ProvisioningStateFailed ProvisioningState = "Failed" 455 // ProvisioningStateMigrating ... 456 ProvisioningStateMigrating ProvisioningState = "Migrating" 457 // ProvisioningStateSucceeded ... 458 ProvisioningStateSucceeded ProvisioningState = "Succeeded" 459 // ProvisioningStateUpdating ... 460 ProvisioningStateUpdating ProvisioningState = "Updating" 461) 462 463// PossibleProvisioningStateValues returns an array of possible values for the ProvisioningState const type. 464func PossibleProvisioningStateValues() []ProvisioningState { 465 return []ProvisioningState{ProvisioningStateCreating, ProvisioningStateDeleting, ProvisioningStateFailed, ProvisioningStateMigrating, ProvisioningStateSucceeded, ProvisioningStateUpdating} 466} 467 468// ProvisioningState1 enumerates the values for provisioning state 1. 469type ProvisioningState1 string 470 471const ( 472 // ProvisioningState1Creating ... 473 ProvisioningState1Creating ProvisioningState1 = "Creating" 474 // ProvisioningState1Deleting ... 475 ProvisioningState1Deleting ProvisioningState1 = "Deleting" 476 // ProvisioningState1Failed ... 477 ProvisioningState1Failed ProvisioningState1 = "Failed" 478 // ProvisioningState1Migrating ... 479 ProvisioningState1Migrating ProvisioningState1 = "Migrating" 480 // ProvisioningState1Succeeded ... 481 ProvisioningState1Succeeded ProvisioningState1 = "Succeeded" 482 // ProvisioningState1Updating ... 483 ProvisioningState1Updating ProvisioningState1 = "Updating" 484) 485 486// PossibleProvisioningState1Values returns an array of possible values for the ProvisioningState1 const type. 487func PossibleProvisioningState1Values() []ProvisioningState1 { 488 return []ProvisioningState1{ProvisioningState1Creating, ProvisioningState1Deleting, ProvisioningState1Failed, ProvisioningState1Migrating, ProvisioningState1Succeeded, ProvisioningState1Updating} 489} 490 491// ProvisioningState2 enumerates the values for provisioning state 2. 492type ProvisioningState2 string 493 494const ( 495 // ProvisioningState2Creating ... 496 ProvisioningState2Creating ProvisioningState2 = "Creating" 497 // ProvisioningState2Deleting ... 498 ProvisioningState2Deleting ProvisioningState2 = "Deleting" 499 // ProvisioningState2Failed ... 500 ProvisioningState2Failed ProvisioningState2 = "Failed" 501 // ProvisioningState2Migrating ... 502 ProvisioningState2Migrating ProvisioningState2 = "Migrating" 503 // ProvisioningState2Succeeded ... 504 ProvisioningState2Succeeded ProvisioningState2 = "Succeeded" 505 // ProvisioningState2Updating ... 506 ProvisioningState2Updating ProvisioningState2 = "Updating" 507) 508 509// PossibleProvisioningState2Values returns an array of possible values for the ProvisioningState2 const type. 510func PossibleProvisioningState2Values() []ProvisioningState2 { 511 return []ProvisioningState2{ProvisioningState2Creating, ProvisioningState2Deleting, ProvisioningState2Failed, ProvisioningState2Migrating, ProvisioningState2Succeeded, ProvisioningState2Updating} 512} 513 514// ReplicationState enumerates the values for replication state. 515type ReplicationState string 516 517const ( 518 // ReplicationStateCompleted ... 519 ReplicationStateCompleted ReplicationState = "Completed" 520 // ReplicationStateFailed ... 521 ReplicationStateFailed ReplicationState = "Failed" 522 // ReplicationStateReplicating ... 523 ReplicationStateReplicating ReplicationState = "Replicating" 524 // ReplicationStateUnknown ... 525 ReplicationStateUnknown ReplicationState = "Unknown" 526) 527 528// PossibleReplicationStateValues returns an array of possible values for the ReplicationState const type. 529func PossibleReplicationStateValues() []ReplicationState { 530 return []ReplicationState{ReplicationStateCompleted, ReplicationStateFailed, ReplicationStateReplicating, ReplicationStateUnknown} 531} 532 533// ReplicationStatusTypes enumerates the values for replication status types. 534type ReplicationStatusTypes string 535 536const ( 537 // ReplicationStatusTypesReplicationStatus ... 538 ReplicationStatusTypesReplicationStatus ReplicationStatusTypes = "ReplicationStatus" 539) 540 541// PossibleReplicationStatusTypesValues returns an array of possible values for the ReplicationStatusTypes const type. 542func PossibleReplicationStatusTypesValues() []ReplicationStatusTypes { 543 return []ReplicationStatusTypes{ReplicationStatusTypesReplicationStatus} 544} 545 546// ResourceIdentityType enumerates the values for resource identity type. 547type ResourceIdentityType string 548 549const ( 550 // ResourceIdentityTypeNone ... 551 ResourceIdentityTypeNone ResourceIdentityType = "None" 552 // ResourceIdentityTypeSystemAssigned ... 553 ResourceIdentityTypeSystemAssigned ResourceIdentityType = "SystemAssigned" 554 // ResourceIdentityTypeSystemAssignedUserAssigned ... 555 ResourceIdentityTypeSystemAssignedUserAssigned ResourceIdentityType = "SystemAssigned, UserAssigned" 556 // ResourceIdentityTypeUserAssigned ... 557 ResourceIdentityTypeUserAssigned ResourceIdentityType = "UserAssigned" 558) 559 560// PossibleResourceIdentityTypeValues returns an array of possible values for the ResourceIdentityType const type. 561func PossibleResourceIdentityTypeValues() []ResourceIdentityType { 562 return []ResourceIdentityType{ResourceIdentityTypeNone, ResourceIdentityTypeSystemAssigned, ResourceIdentityTypeSystemAssignedUserAssigned, ResourceIdentityTypeUserAssigned} 563} 564 565// ResourceSkuCapacityScaleType enumerates the values for resource sku capacity scale type. 566type ResourceSkuCapacityScaleType string 567 568const ( 569 // ResourceSkuCapacityScaleTypeAutomatic ... 570 ResourceSkuCapacityScaleTypeAutomatic ResourceSkuCapacityScaleType = "Automatic" 571 // ResourceSkuCapacityScaleTypeManual ... 572 ResourceSkuCapacityScaleTypeManual ResourceSkuCapacityScaleType = "Manual" 573 // ResourceSkuCapacityScaleTypeNone ... 574 ResourceSkuCapacityScaleTypeNone ResourceSkuCapacityScaleType = "None" 575) 576 577// PossibleResourceSkuCapacityScaleTypeValues returns an array of possible values for the ResourceSkuCapacityScaleType const type. 578func PossibleResourceSkuCapacityScaleTypeValues() []ResourceSkuCapacityScaleType { 579 return []ResourceSkuCapacityScaleType{ResourceSkuCapacityScaleTypeAutomatic, ResourceSkuCapacityScaleTypeManual, ResourceSkuCapacityScaleTypeNone} 580} 581 582// ResourceSkuRestrictionsReasonCode enumerates the values for resource sku restrictions reason code. 583type ResourceSkuRestrictionsReasonCode string 584 585const ( 586 // NotAvailableForSubscription ... 587 NotAvailableForSubscription ResourceSkuRestrictionsReasonCode = "NotAvailableForSubscription" 588 // QuotaID ... 589 QuotaID ResourceSkuRestrictionsReasonCode = "QuotaId" 590) 591 592// PossibleResourceSkuRestrictionsReasonCodeValues returns an array of possible values for the ResourceSkuRestrictionsReasonCode const type. 593func PossibleResourceSkuRestrictionsReasonCodeValues() []ResourceSkuRestrictionsReasonCode { 594 return []ResourceSkuRestrictionsReasonCode{NotAvailableForSubscription, QuotaID} 595} 596 597// ResourceSkuRestrictionsType enumerates the values for resource sku restrictions type. 598type ResourceSkuRestrictionsType string 599 600const ( 601 // Location ... 602 Location ResourceSkuRestrictionsType = "Location" 603 // Zone ... 604 Zone ResourceSkuRestrictionsType = "Zone" 605) 606 607// PossibleResourceSkuRestrictionsTypeValues returns an array of possible values for the ResourceSkuRestrictionsType const type. 608func PossibleResourceSkuRestrictionsTypeValues() []ResourceSkuRestrictionsType { 609 return []ResourceSkuRestrictionsType{Location, Zone} 610} 611 612// RollingUpgradeActionType enumerates the values for rolling upgrade action type. 613type RollingUpgradeActionType string 614 615const ( 616 // Cancel ... 617 Cancel RollingUpgradeActionType = "Cancel" 618 // Start ... 619 Start RollingUpgradeActionType = "Start" 620) 621 622// PossibleRollingUpgradeActionTypeValues returns an array of possible values for the RollingUpgradeActionType const type. 623func PossibleRollingUpgradeActionTypeValues() []RollingUpgradeActionType { 624 return []RollingUpgradeActionType{Cancel, Start} 625} 626 627// RollingUpgradeStatusCode enumerates the values for rolling upgrade status code. 628type RollingUpgradeStatusCode string 629 630const ( 631 // RollingUpgradeStatusCodeCancelled ... 632 RollingUpgradeStatusCodeCancelled RollingUpgradeStatusCode = "Cancelled" 633 // RollingUpgradeStatusCodeCompleted ... 634 RollingUpgradeStatusCodeCompleted RollingUpgradeStatusCode = "Completed" 635 // RollingUpgradeStatusCodeFaulted ... 636 RollingUpgradeStatusCodeFaulted RollingUpgradeStatusCode = "Faulted" 637 // RollingUpgradeStatusCodeRollingForward ... 638 RollingUpgradeStatusCodeRollingForward RollingUpgradeStatusCode = "RollingForward" 639) 640 641// PossibleRollingUpgradeStatusCodeValues returns an array of possible values for the RollingUpgradeStatusCode const type. 642func PossibleRollingUpgradeStatusCodeValues() []RollingUpgradeStatusCode { 643 return []RollingUpgradeStatusCode{RollingUpgradeStatusCodeCancelled, RollingUpgradeStatusCodeCompleted, RollingUpgradeStatusCodeFaulted, RollingUpgradeStatusCodeRollingForward} 644} 645 646// SettingNames enumerates the values for setting names. 647type SettingNames string 648 649const ( 650 // AutoLogon ... 651 AutoLogon SettingNames = "AutoLogon" 652 // FirstLogonCommands ... 653 FirstLogonCommands SettingNames = "FirstLogonCommands" 654) 655 656// PossibleSettingNamesValues returns an array of possible values for the SettingNames const type. 657func PossibleSettingNamesValues() []SettingNames { 658 return []SettingNames{AutoLogon, FirstLogonCommands} 659} 660 661// SnapshotStorageAccountTypes enumerates the values for snapshot storage account types. 662type SnapshotStorageAccountTypes string 663 664const ( 665 // SnapshotStorageAccountTypesPremiumLRS ... 666 SnapshotStorageAccountTypesPremiumLRS SnapshotStorageAccountTypes = "Premium_LRS" 667 // SnapshotStorageAccountTypesStandardLRS ... 668 SnapshotStorageAccountTypesStandardLRS SnapshotStorageAccountTypes = "Standard_LRS" 669 // SnapshotStorageAccountTypesStandardZRS ... 670 SnapshotStorageAccountTypesStandardZRS SnapshotStorageAccountTypes = "Standard_ZRS" 671) 672 673// PossibleSnapshotStorageAccountTypesValues returns an array of possible values for the SnapshotStorageAccountTypes const type. 674func PossibleSnapshotStorageAccountTypesValues() []SnapshotStorageAccountTypes { 675 return []SnapshotStorageAccountTypes{SnapshotStorageAccountTypesPremiumLRS, SnapshotStorageAccountTypesStandardLRS, SnapshotStorageAccountTypesStandardZRS} 676} 677 678// StatusLevelTypes enumerates the values for status level types. 679type StatusLevelTypes string 680 681const ( 682 // Error ... 683 Error StatusLevelTypes = "Error" 684 // Info ... 685 Info StatusLevelTypes = "Info" 686 // Warning ... 687 Warning StatusLevelTypes = "Warning" 688) 689 690// PossibleStatusLevelTypesValues returns an array of possible values for the StatusLevelTypes const type. 691func PossibleStatusLevelTypesValues() []StatusLevelTypes { 692 return []StatusLevelTypes{Error, Info, Warning} 693} 694 695// StorageAccountTypes enumerates the values for storage account types. 696type StorageAccountTypes string 697 698const ( 699 // StorageAccountTypesPremiumLRS ... 700 StorageAccountTypesPremiumLRS StorageAccountTypes = "Premium_LRS" 701 // StorageAccountTypesStandardLRS ... 702 StorageAccountTypesStandardLRS StorageAccountTypes = "Standard_LRS" 703 // StorageAccountTypesStandardSSDLRS ... 704 StorageAccountTypesStandardSSDLRS StorageAccountTypes = "StandardSSD_LRS" 705 // StorageAccountTypesUltraSSDLRS ... 706 StorageAccountTypesUltraSSDLRS StorageAccountTypes = "UltraSSD_LRS" 707) 708 709// PossibleStorageAccountTypesValues returns an array of possible values for the StorageAccountTypes const type. 710func PossibleStorageAccountTypesValues() []StorageAccountTypes { 711 return []StorageAccountTypes{StorageAccountTypesPremiumLRS, StorageAccountTypesStandardLRS, StorageAccountTypesStandardSSDLRS, StorageAccountTypesUltraSSDLRS} 712} 713 714// UpgradeMode enumerates the values for upgrade mode. 715type UpgradeMode string 716 717const ( 718 // Automatic ... 719 Automatic UpgradeMode = "Automatic" 720 // Manual ... 721 Manual UpgradeMode = "Manual" 722 // Rolling ... 723 Rolling UpgradeMode = "Rolling" 724) 725 726// PossibleUpgradeModeValues returns an array of possible values for the UpgradeMode const type. 727func PossibleUpgradeModeValues() []UpgradeMode { 728 return []UpgradeMode{Automatic, Manual, Rolling} 729} 730 731// UpgradeOperationInvoker enumerates the values for upgrade operation invoker. 732type UpgradeOperationInvoker string 733 734const ( 735 // UpgradeOperationInvokerPlatform ... 736 UpgradeOperationInvokerPlatform UpgradeOperationInvoker = "Platform" 737 // UpgradeOperationInvokerUnknown ... 738 UpgradeOperationInvokerUnknown UpgradeOperationInvoker = "Unknown" 739 // UpgradeOperationInvokerUser ... 740 UpgradeOperationInvokerUser UpgradeOperationInvoker = "User" 741) 742 743// PossibleUpgradeOperationInvokerValues returns an array of possible values for the UpgradeOperationInvoker const type. 744func PossibleUpgradeOperationInvokerValues() []UpgradeOperationInvoker { 745 return []UpgradeOperationInvoker{UpgradeOperationInvokerPlatform, UpgradeOperationInvokerUnknown, UpgradeOperationInvokerUser} 746} 747 748// UpgradeState enumerates the values for upgrade state. 749type UpgradeState string 750 751const ( 752 // UpgradeStateCancelled ... 753 UpgradeStateCancelled UpgradeState = "Cancelled" 754 // UpgradeStateCompleted ... 755 UpgradeStateCompleted UpgradeState = "Completed" 756 // UpgradeStateFaulted ... 757 UpgradeStateFaulted UpgradeState = "Faulted" 758 // UpgradeStateRollingForward ... 759 UpgradeStateRollingForward UpgradeState = "RollingForward" 760) 761 762// PossibleUpgradeStateValues returns an array of possible values for the UpgradeState const type. 763func PossibleUpgradeStateValues() []UpgradeState { 764 return []UpgradeState{UpgradeStateCancelled, UpgradeStateCompleted, UpgradeStateFaulted, UpgradeStateRollingForward} 765} 766 767// VirtualMachineEvictionPolicyTypes enumerates the values for virtual machine eviction policy types. 768type VirtualMachineEvictionPolicyTypes string 769 770const ( 771 // Deallocate ... 772 Deallocate VirtualMachineEvictionPolicyTypes = "Deallocate" 773 // Delete ... 774 Delete VirtualMachineEvictionPolicyTypes = "Delete" 775) 776 777// PossibleVirtualMachineEvictionPolicyTypesValues returns an array of possible values for the VirtualMachineEvictionPolicyTypes const type. 778func PossibleVirtualMachineEvictionPolicyTypesValues() []VirtualMachineEvictionPolicyTypes { 779 return []VirtualMachineEvictionPolicyTypes{Deallocate, Delete} 780} 781 782// VirtualMachinePriorityTypes enumerates the values for virtual machine priority types. 783type VirtualMachinePriorityTypes string 784 785const ( 786 // Low ... 787 Low VirtualMachinePriorityTypes = "Low" 788 // Regular ... 789 Regular VirtualMachinePriorityTypes = "Regular" 790) 791 792// PossibleVirtualMachinePriorityTypesValues returns an array of possible values for the VirtualMachinePriorityTypes const type. 793func PossibleVirtualMachinePriorityTypesValues() []VirtualMachinePriorityTypes { 794 return []VirtualMachinePriorityTypes{Low, Regular} 795} 796 797// VirtualMachineScaleSetSkuScaleType enumerates the values for virtual machine scale set sku scale type. 798type VirtualMachineScaleSetSkuScaleType string 799 800const ( 801 // VirtualMachineScaleSetSkuScaleTypeAutomatic ... 802 VirtualMachineScaleSetSkuScaleTypeAutomatic VirtualMachineScaleSetSkuScaleType = "Automatic" 803 // VirtualMachineScaleSetSkuScaleTypeNone ... 804 VirtualMachineScaleSetSkuScaleTypeNone VirtualMachineScaleSetSkuScaleType = "None" 805) 806 807// PossibleVirtualMachineScaleSetSkuScaleTypeValues returns an array of possible values for the VirtualMachineScaleSetSkuScaleType const type. 808func PossibleVirtualMachineScaleSetSkuScaleTypeValues() []VirtualMachineScaleSetSkuScaleType { 809 return []VirtualMachineScaleSetSkuScaleType{VirtualMachineScaleSetSkuScaleTypeAutomatic, VirtualMachineScaleSetSkuScaleTypeNone} 810} 811 812// VirtualMachineSizeTypes enumerates the values for virtual machine size types. 813type VirtualMachineSizeTypes string 814 815const ( 816 // VirtualMachineSizeTypesBasicA0 ... 817 VirtualMachineSizeTypesBasicA0 VirtualMachineSizeTypes = "Basic_A0" 818 // VirtualMachineSizeTypesBasicA1 ... 819 VirtualMachineSizeTypesBasicA1 VirtualMachineSizeTypes = "Basic_A1" 820 // VirtualMachineSizeTypesBasicA2 ... 821 VirtualMachineSizeTypesBasicA2 VirtualMachineSizeTypes = "Basic_A2" 822 // VirtualMachineSizeTypesBasicA3 ... 823 VirtualMachineSizeTypesBasicA3 VirtualMachineSizeTypes = "Basic_A3" 824 // VirtualMachineSizeTypesBasicA4 ... 825 VirtualMachineSizeTypesBasicA4 VirtualMachineSizeTypes = "Basic_A4" 826 // VirtualMachineSizeTypesStandardA0 ... 827 VirtualMachineSizeTypesStandardA0 VirtualMachineSizeTypes = "Standard_A0" 828 // VirtualMachineSizeTypesStandardA1 ... 829 VirtualMachineSizeTypesStandardA1 VirtualMachineSizeTypes = "Standard_A1" 830 // VirtualMachineSizeTypesStandardA10 ... 831 VirtualMachineSizeTypesStandardA10 VirtualMachineSizeTypes = "Standard_A10" 832 // VirtualMachineSizeTypesStandardA11 ... 833 VirtualMachineSizeTypesStandardA11 VirtualMachineSizeTypes = "Standard_A11" 834 // VirtualMachineSizeTypesStandardA1V2 ... 835 VirtualMachineSizeTypesStandardA1V2 VirtualMachineSizeTypes = "Standard_A1_v2" 836 // VirtualMachineSizeTypesStandardA2 ... 837 VirtualMachineSizeTypesStandardA2 VirtualMachineSizeTypes = "Standard_A2" 838 // VirtualMachineSizeTypesStandardA2mV2 ... 839 VirtualMachineSizeTypesStandardA2mV2 VirtualMachineSizeTypes = "Standard_A2m_v2" 840 // VirtualMachineSizeTypesStandardA2V2 ... 841 VirtualMachineSizeTypesStandardA2V2 VirtualMachineSizeTypes = "Standard_A2_v2" 842 // VirtualMachineSizeTypesStandardA3 ... 843 VirtualMachineSizeTypesStandardA3 VirtualMachineSizeTypes = "Standard_A3" 844 // VirtualMachineSizeTypesStandardA4 ... 845 VirtualMachineSizeTypesStandardA4 VirtualMachineSizeTypes = "Standard_A4" 846 // VirtualMachineSizeTypesStandardA4mV2 ... 847 VirtualMachineSizeTypesStandardA4mV2 VirtualMachineSizeTypes = "Standard_A4m_v2" 848 // VirtualMachineSizeTypesStandardA4V2 ... 849 VirtualMachineSizeTypesStandardA4V2 VirtualMachineSizeTypes = "Standard_A4_v2" 850 // VirtualMachineSizeTypesStandardA5 ... 851 VirtualMachineSizeTypesStandardA5 VirtualMachineSizeTypes = "Standard_A5" 852 // VirtualMachineSizeTypesStandardA6 ... 853 VirtualMachineSizeTypesStandardA6 VirtualMachineSizeTypes = "Standard_A6" 854 // VirtualMachineSizeTypesStandardA7 ... 855 VirtualMachineSizeTypesStandardA7 VirtualMachineSizeTypes = "Standard_A7" 856 // VirtualMachineSizeTypesStandardA8 ... 857 VirtualMachineSizeTypesStandardA8 VirtualMachineSizeTypes = "Standard_A8" 858 // VirtualMachineSizeTypesStandardA8mV2 ... 859 VirtualMachineSizeTypesStandardA8mV2 VirtualMachineSizeTypes = "Standard_A8m_v2" 860 // VirtualMachineSizeTypesStandardA8V2 ... 861 VirtualMachineSizeTypesStandardA8V2 VirtualMachineSizeTypes = "Standard_A8_v2" 862 // VirtualMachineSizeTypesStandardA9 ... 863 VirtualMachineSizeTypesStandardA9 VirtualMachineSizeTypes = "Standard_A9" 864 // VirtualMachineSizeTypesStandardB1ms ... 865 VirtualMachineSizeTypesStandardB1ms VirtualMachineSizeTypes = "Standard_B1ms" 866 // VirtualMachineSizeTypesStandardB1s ... 867 VirtualMachineSizeTypesStandardB1s VirtualMachineSizeTypes = "Standard_B1s" 868 // VirtualMachineSizeTypesStandardB2ms ... 869 VirtualMachineSizeTypesStandardB2ms VirtualMachineSizeTypes = "Standard_B2ms" 870 // VirtualMachineSizeTypesStandardB2s ... 871 VirtualMachineSizeTypesStandardB2s VirtualMachineSizeTypes = "Standard_B2s" 872 // VirtualMachineSizeTypesStandardB4ms ... 873 VirtualMachineSizeTypesStandardB4ms VirtualMachineSizeTypes = "Standard_B4ms" 874 // VirtualMachineSizeTypesStandardB8ms ... 875 VirtualMachineSizeTypesStandardB8ms VirtualMachineSizeTypes = "Standard_B8ms" 876 // VirtualMachineSizeTypesStandardD1 ... 877 VirtualMachineSizeTypesStandardD1 VirtualMachineSizeTypes = "Standard_D1" 878 // VirtualMachineSizeTypesStandardD11 ... 879 VirtualMachineSizeTypesStandardD11 VirtualMachineSizeTypes = "Standard_D11" 880 // VirtualMachineSizeTypesStandardD11V2 ... 881 VirtualMachineSizeTypesStandardD11V2 VirtualMachineSizeTypes = "Standard_D11_v2" 882 // VirtualMachineSizeTypesStandardD12 ... 883 VirtualMachineSizeTypesStandardD12 VirtualMachineSizeTypes = "Standard_D12" 884 // VirtualMachineSizeTypesStandardD12V2 ... 885 VirtualMachineSizeTypesStandardD12V2 VirtualMachineSizeTypes = "Standard_D12_v2" 886 // VirtualMachineSizeTypesStandardD13 ... 887 VirtualMachineSizeTypesStandardD13 VirtualMachineSizeTypes = "Standard_D13" 888 // VirtualMachineSizeTypesStandardD13V2 ... 889 VirtualMachineSizeTypesStandardD13V2 VirtualMachineSizeTypes = "Standard_D13_v2" 890 // VirtualMachineSizeTypesStandardD14 ... 891 VirtualMachineSizeTypesStandardD14 VirtualMachineSizeTypes = "Standard_D14" 892 // VirtualMachineSizeTypesStandardD14V2 ... 893 VirtualMachineSizeTypesStandardD14V2 VirtualMachineSizeTypes = "Standard_D14_v2" 894 // VirtualMachineSizeTypesStandardD15V2 ... 895 VirtualMachineSizeTypesStandardD15V2 VirtualMachineSizeTypes = "Standard_D15_v2" 896 // VirtualMachineSizeTypesStandardD16sV3 ... 897 VirtualMachineSizeTypesStandardD16sV3 VirtualMachineSizeTypes = "Standard_D16s_v3" 898 // VirtualMachineSizeTypesStandardD16V3 ... 899 VirtualMachineSizeTypesStandardD16V3 VirtualMachineSizeTypes = "Standard_D16_v3" 900 // VirtualMachineSizeTypesStandardD1V2 ... 901 VirtualMachineSizeTypesStandardD1V2 VirtualMachineSizeTypes = "Standard_D1_v2" 902 // VirtualMachineSizeTypesStandardD2 ... 903 VirtualMachineSizeTypesStandardD2 VirtualMachineSizeTypes = "Standard_D2" 904 // VirtualMachineSizeTypesStandardD2sV3 ... 905 VirtualMachineSizeTypesStandardD2sV3 VirtualMachineSizeTypes = "Standard_D2s_v3" 906 // VirtualMachineSizeTypesStandardD2V2 ... 907 VirtualMachineSizeTypesStandardD2V2 VirtualMachineSizeTypes = "Standard_D2_v2" 908 // VirtualMachineSizeTypesStandardD2V3 ... 909 VirtualMachineSizeTypesStandardD2V3 VirtualMachineSizeTypes = "Standard_D2_v3" 910 // VirtualMachineSizeTypesStandardD3 ... 911 VirtualMachineSizeTypesStandardD3 VirtualMachineSizeTypes = "Standard_D3" 912 // VirtualMachineSizeTypesStandardD32sV3 ... 913 VirtualMachineSizeTypesStandardD32sV3 VirtualMachineSizeTypes = "Standard_D32s_v3" 914 // VirtualMachineSizeTypesStandardD32V3 ... 915 VirtualMachineSizeTypesStandardD32V3 VirtualMachineSizeTypes = "Standard_D32_v3" 916 // VirtualMachineSizeTypesStandardD3V2 ... 917 VirtualMachineSizeTypesStandardD3V2 VirtualMachineSizeTypes = "Standard_D3_v2" 918 // VirtualMachineSizeTypesStandardD4 ... 919 VirtualMachineSizeTypesStandardD4 VirtualMachineSizeTypes = "Standard_D4" 920 // VirtualMachineSizeTypesStandardD4sV3 ... 921 VirtualMachineSizeTypesStandardD4sV3 VirtualMachineSizeTypes = "Standard_D4s_v3" 922 // VirtualMachineSizeTypesStandardD4V2 ... 923 VirtualMachineSizeTypesStandardD4V2 VirtualMachineSizeTypes = "Standard_D4_v2" 924 // VirtualMachineSizeTypesStandardD4V3 ... 925 VirtualMachineSizeTypesStandardD4V3 VirtualMachineSizeTypes = "Standard_D4_v3" 926 // VirtualMachineSizeTypesStandardD5V2 ... 927 VirtualMachineSizeTypesStandardD5V2 VirtualMachineSizeTypes = "Standard_D5_v2" 928 // VirtualMachineSizeTypesStandardD64sV3 ... 929 VirtualMachineSizeTypesStandardD64sV3 VirtualMachineSizeTypes = "Standard_D64s_v3" 930 // VirtualMachineSizeTypesStandardD64V3 ... 931 VirtualMachineSizeTypesStandardD64V3 VirtualMachineSizeTypes = "Standard_D64_v3" 932 // VirtualMachineSizeTypesStandardD8sV3 ... 933 VirtualMachineSizeTypesStandardD8sV3 VirtualMachineSizeTypes = "Standard_D8s_v3" 934 // VirtualMachineSizeTypesStandardD8V3 ... 935 VirtualMachineSizeTypesStandardD8V3 VirtualMachineSizeTypes = "Standard_D8_v3" 936 // VirtualMachineSizeTypesStandardDS1 ... 937 VirtualMachineSizeTypesStandardDS1 VirtualMachineSizeTypes = "Standard_DS1" 938 // VirtualMachineSizeTypesStandardDS11 ... 939 VirtualMachineSizeTypesStandardDS11 VirtualMachineSizeTypes = "Standard_DS11" 940 // VirtualMachineSizeTypesStandardDS11V2 ... 941 VirtualMachineSizeTypesStandardDS11V2 VirtualMachineSizeTypes = "Standard_DS11_v2" 942 // VirtualMachineSizeTypesStandardDS12 ... 943 VirtualMachineSizeTypesStandardDS12 VirtualMachineSizeTypes = "Standard_DS12" 944 // VirtualMachineSizeTypesStandardDS12V2 ... 945 VirtualMachineSizeTypesStandardDS12V2 VirtualMachineSizeTypes = "Standard_DS12_v2" 946 // VirtualMachineSizeTypesStandardDS13 ... 947 VirtualMachineSizeTypesStandardDS13 VirtualMachineSizeTypes = "Standard_DS13" 948 // VirtualMachineSizeTypesStandardDS132V2 ... 949 VirtualMachineSizeTypesStandardDS132V2 VirtualMachineSizeTypes = "Standard_DS13-2_v2" 950 // VirtualMachineSizeTypesStandardDS134V2 ... 951 VirtualMachineSizeTypesStandardDS134V2 VirtualMachineSizeTypes = "Standard_DS13-4_v2" 952 // VirtualMachineSizeTypesStandardDS13V2 ... 953 VirtualMachineSizeTypesStandardDS13V2 VirtualMachineSizeTypes = "Standard_DS13_v2" 954 // VirtualMachineSizeTypesStandardDS14 ... 955 VirtualMachineSizeTypesStandardDS14 VirtualMachineSizeTypes = "Standard_DS14" 956 // VirtualMachineSizeTypesStandardDS144V2 ... 957 VirtualMachineSizeTypesStandardDS144V2 VirtualMachineSizeTypes = "Standard_DS14-4_v2" 958 // VirtualMachineSizeTypesStandardDS148V2 ... 959 VirtualMachineSizeTypesStandardDS148V2 VirtualMachineSizeTypes = "Standard_DS14-8_v2" 960 // VirtualMachineSizeTypesStandardDS14V2 ... 961 VirtualMachineSizeTypesStandardDS14V2 VirtualMachineSizeTypes = "Standard_DS14_v2" 962 // VirtualMachineSizeTypesStandardDS15V2 ... 963 VirtualMachineSizeTypesStandardDS15V2 VirtualMachineSizeTypes = "Standard_DS15_v2" 964 // VirtualMachineSizeTypesStandardDS1V2 ... 965 VirtualMachineSizeTypesStandardDS1V2 VirtualMachineSizeTypes = "Standard_DS1_v2" 966 // VirtualMachineSizeTypesStandardDS2 ... 967 VirtualMachineSizeTypesStandardDS2 VirtualMachineSizeTypes = "Standard_DS2" 968 // VirtualMachineSizeTypesStandardDS2V2 ... 969 VirtualMachineSizeTypesStandardDS2V2 VirtualMachineSizeTypes = "Standard_DS2_v2" 970 // VirtualMachineSizeTypesStandardDS3 ... 971 VirtualMachineSizeTypesStandardDS3 VirtualMachineSizeTypes = "Standard_DS3" 972 // VirtualMachineSizeTypesStandardDS3V2 ... 973 VirtualMachineSizeTypesStandardDS3V2 VirtualMachineSizeTypes = "Standard_DS3_v2" 974 // VirtualMachineSizeTypesStandardDS4 ... 975 VirtualMachineSizeTypesStandardDS4 VirtualMachineSizeTypes = "Standard_DS4" 976 // VirtualMachineSizeTypesStandardDS4V2 ... 977 VirtualMachineSizeTypesStandardDS4V2 VirtualMachineSizeTypes = "Standard_DS4_v2" 978 // VirtualMachineSizeTypesStandardDS5V2 ... 979 VirtualMachineSizeTypesStandardDS5V2 VirtualMachineSizeTypes = "Standard_DS5_v2" 980 // VirtualMachineSizeTypesStandardE16sV3 ... 981 VirtualMachineSizeTypesStandardE16sV3 VirtualMachineSizeTypes = "Standard_E16s_v3" 982 // VirtualMachineSizeTypesStandardE16V3 ... 983 VirtualMachineSizeTypesStandardE16V3 VirtualMachineSizeTypes = "Standard_E16_v3" 984 // VirtualMachineSizeTypesStandardE2sV3 ... 985 VirtualMachineSizeTypesStandardE2sV3 VirtualMachineSizeTypes = "Standard_E2s_v3" 986 // VirtualMachineSizeTypesStandardE2V3 ... 987 VirtualMachineSizeTypesStandardE2V3 VirtualMachineSizeTypes = "Standard_E2_v3" 988 // VirtualMachineSizeTypesStandardE3216V3 ... 989 VirtualMachineSizeTypesStandardE3216V3 VirtualMachineSizeTypes = "Standard_E32-16_v3" 990 // VirtualMachineSizeTypesStandardE328sV3 ... 991 VirtualMachineSizeTypesStandardE328sV3 VirtualMachineSizeTypes = "Standard_E32-8s_v3" 992 // VirtualMachineSizeTypesStandardE32sV3 ... 993 VirtualMachineSizeTypesStandardE32sV3 VirtualMachineSizeTypes = "Standard_E32s_v3" 994 // VirtualMachineSizeTypesStandardE32V3 ... 995 VirtualMachineSizeTypesStandardE32V3 VirtualMachineSizeTypes = "Standard_E32_v3" 996 // VirtualMachineSizeTypesStandardE4sV3 ... 997 VirtualMachineSizeTypesStandardE4sV3 VirtualMachineSizeTypes = "Standard_E4s_v3" 998 // VirtualMachineSizeTypesStandardE4V3 ... 999 VirtualMachineSizeTypesStandardE4V3 VirtualMachineSizeTypes = "Standard_E4_v3" 1000 // VirtualMachineSizeTypesStandardE6416sV3 ... 1001 VirtualMachineSizeTypesStandardE6416sV3 VirtualMachineSizeTypes = "Standard_E64-16s_v3" 1002 // VirtualMachineSizeTypesStandardE6432sV3 ... 1003 VirtualMachineSizeTypesStandardE6432sV3 VirtualMachineSizeTypes = "Standard_E64-32s_v3" 1004 // VirtualMachineSizeTypesStandardE64sV3 ... 1005 VirtualMachineSizeTypesStandardE64sV3 VirtualMachineSizeTypes = "Standard_E64s_v3" 1006 // VirtualMachineSizeTypesStandardE64V3 ... 1007 VirtualMachineSizeTypesStandardE64V3 VirtualMachineSizeTypes = "Standard_E64_v3" 1008 // VirtualMachineSizeTypesStandardE8sV3 ... 1009 VirtualMachineSizeTypesStandardE8sV3 VirtualMachineSizeTypes = "Standard_E8s_v3" 1010 // VirtualMachineSizeTypesStandardE8V3 ... 1011 VirtualMachineSizeTypesStandardE8V3 VirtualMachineSizeTypes = "Standard_E8_v3" 1012 // VirtualMachineSizeTypesStandardF1 ... 1013 VirtualMachineSizeTypesStandardF1 VirtualMachineSizeTypes = "Standard_F1" 1014 // VirtualMachineSizeTypesStandardF16 ... 1015 VirtualMachineSizeTypesStandardF16 VirtualMachineSizeTypes = "Standard_F16" 1016 // VirtualMachineSizeTypesStandardF16s ... 1017 VirtualMachineSizeTypesStandardF16s VirtualMachineSizeTypes = "Standard_F16s" 1018 // VirtualMachineSizeTypesStandardF16sV2 ... 1019 VirtualMachineSizeTypesStandardF16sV2 VirtualMachineSizeTypes = "Standard_F16s_v2" 1020 // VirtualMachineSizeTypesStandardF1s ... 1021 VirtualMachineSizeTypesStandardF1s VirtualMachineSizeTypes = "Standard_F1s" 1022 // VirtualMachineSizeTypesStandardF2 ... 1023 VirtualMachineSizeTypesStandardF2 VirtualMachineSizeTypes = "Standard_F2" 1024 // VirtualMachineSizeTypesStandardF2s ... 1025 VirtualMachineSizeTypesStandardF2s VirtualMachineSizeTypes = "Standard_F2s" 1026 // VirtualMachineSizeTypesStandardF2sV2 ... 1027 VirtualMachineSizeTypesStandardF2sV2 VirtualMachineSizeTypes = "Standard_F2s_v2" 1028 // VirtualMachineSizeTypesStandardF32sV2 ... 1029 VirtualMachineSizeTypesStandardF32sV2 VirtualMachineSizeTypes = "Standard_F32s_v2" 1030 // VirtualMachineSizeTypesStandardF4 ... 1031 VirtualMachineSizeTypesStandardF4 VirtualMachineSizeTypes = "Standard_F4" 1032 // VirtualMachineSizeTypesStandardF4s ... 1033 VirtualMachineSizeTypesStandardF4s VirtualMachineSizeTypes = "Standard_F4s" 1034 // VirtualMachineSizeTypesStandardF4sV2 ... 1035 VirtualMachineSizeTypesStandardF4sV2 VirtualMachineSizeTypes = "Standard_F4s_v2" 1036 // VirtualMachineSizeTypesStandardF64sV2 ... 1037 VirtualMachineSizeTypesStandardF64sV2 VirtualMachineSizeTypes = "Standard_F64s_v2" 1038 // VirtualMachineSizeTypesStandardF72sV2 ... 1039 VirtualMachineSizeTypesStandardF72sV2 VirtualMachineSizeTypes = "Standard_F72s_v2" 1040 // VirtualMachineSizeTypesStandardF8 ... 1041 VirtualMachineSizeTypesStandardF8 VirtualMachineSizeTypes = "Standard_F8" 1042 // VirtualMachineSizeTypesStandardF8s ... 1043 VirtualMachineSizeTypesStandardF8s VirtualMachineSizeTypes = "Standard_F8s" 1044 // VirtualMachineSizeTypesStandardF8sV2 ... 1045 VirtualMachineSizeTypesStandardF8sV2 VirtualMachineSizeTypes = "Standard_F8s_v2" 1046 // VirtualMachineSizeTypesStandardG1 ... 1047 VirtualMachineSizeTypesStandardG1 VirtualMachineSizeTypes = "Standard_G1" 1048 // VirtualMachineSizeTypesStandardG2 ... 1049 VirtualMachineSizeTypesStandardG2 VirtualMachineSizeTypes = "Standard_G2" 1050 // VirtualMachineSizeTypesStandardG3 ... 1051 VirtualMachineSizeTypesStandardG3 VirtualMachineSizeTypes = "Standard_G3" 1052 // VirtualMachineSizeTypesStandardG4 ... 1053 VirtualMachineSizeTypesStandardG4 VirtualMachineSizeTypes = "Standard_G4" 1054 // VirtualMachineSizeTypesStandardG5 ... 1055 VirtualMachineSizeTypesStandardG5 VirtualMachineSizeTypes = "Standard_G5" 1056 // VirtualMachineSizeTypesStandardGS1 ... 1057 VirtualMachineSizeTypesStandardGS1 VirtualMachineSizeTypes = "Standard_GS1" 1058 // VirtualMachineSizeTypesStandardGS2 ... 1059 VirtualMachineSizeTypesStandardGS2 VirtualMachineSizeTypes = "Standard_GS2" 1060 // VirtualMachineSizeTypesStandardGS3 ... 1061 VirtualMachineSizeTypesStandardGS3 VirtualMachineSizeTypes = "Standard_GS3" 1062 // VirtualMachineSizeTypesStandardGS4 ... 1063 VirtualMachineSizeTypesStandardGS4 VirtualMachineSizeTypes = "Standard_GS4" 1064 // VirtualMachineSizeTypesStandardGS44 ... 1065 VirtualMachineSizeTypesStandardGS44 VirtualMachineSizeTypes = "Standard_GS4-4" 1066 // VirtualMachineSizeTypesStandardGS48 ... 1067 VirtualMachineSizeTypesStandardGS48 VirtualMachineSizeTypes = "Standard_GS4-8" 1068 // VirtualMachineSizeTypesStandardGS5 ... 1069 VirtualMachineSizeTypesStandardGS5 VirtualMachineSizeTypes = "Standard_GS5" 1070 // VirtualMachineSizeTypesStandardGS516 ... 1071 VirtualMachineSizeTypesStandardGS516 VirtualMachineSizeTypes = "Standard_GS5-16" 1072 // VirtualMachineSizeTypesStandardGS58 ... 1073 VirtualMachineSizeTypesStandardGS58 VirtualMachineSizeTypes = "Standard_GS5-8" 1074 // VirtualMachineSizeTypesStandardH16 ... 1075 VirtualMachineSizeTypesStandardH16 VirtualMachineSizeTypes = "Standard_H16" 1076 // VirtualMachineSizeTypesStandardH16m ... 1077 VirtualMachineSizeTypesStandardH16m VirtualMachineSizeTypes = "Standard_H16m" 1078 // VirtualMachineSizeTypesStandardH16mr ... 1079 VirtualMachineSizeTypesStandardH16mr VirtualMachineSizeTypes = "Standard_H16mr" 1080 // VirtualMachineSizeTypesStandardH16r ... 1081 VirtualMachineSizeTypesStandardH16r VirtualMachineSizeTypes = "Standard_H16r" 1082 // VirtualMachineSizeTypesStandardH8 ... 1083 VirtualMachineSizeTypesStandardH8 VirtualMachineSizeTypes = "Standard_H8" 1084 // VirtualMachineSizeTypesStandardH8m ... 1085 VirtualMachineSizeTypesStandardH8m VirtualMachineSizeTypes = "Standard_H8m" 1086 // VirtualMachineSizeTypesStandardL16s ... 1087 VirtualMachineSizeTypesStandardL16s VirtualMachineSizeTypes = "Standard_L16s" 1088 // VirtualMachineSizeTypesStandardL32s ... 1089 VirtualMachineSizeTypesStandardL32s VirtualMachineSizeTypes = "Standard_L32s" 1090 // VirtualMachineSizeTypesStandardL4s ... 1091 VirtualMachineSizeTypesStandardL4s VirtualMachineSizeTypes = "Standard_L4s" 1092 // VirtualMachineSizeTypesStandardL8s ... 1093 VirtualMachineSizeTypesStandardL8s VirtualMachineSizeTypes = "Standard_L8s" 1094 // VirtualMachineSizeTypesStandardM12832ms ... 1095 VirtualMachineSizeTypesStandardM12832ms VirtualMachineSizeTypes = "Standard_M128-32ms" 1096 // VirtualMachineSizeTypesStandardM12864ms ... 1097 VirtualMachineSizeTypesStandardM12864ms VirtualMachineSizeTypes = "Standard_M128-64ms" 1098 // VirtualMachineSizeTypesStandardM128ms ... 1099 VirtualMachineSizeTypesStandardM128ms VirtualMachineSizeTypes = "Standard_M128ms" 1100 // VirtualMachineSizeTypesStandardM128s ... 1101 VirtualMachineSizeTypesStandardM128s VirtualMachineSizeTypes = "Standard_M128s" 1102 // VirtualMachineSizeTypesStandardM6416ms ... 1103 VirtualMachineSizeTypesStandardM6416ms VirtualMachineSizeTypes = "Standard_M64-16ms" 1104 // VirtualMachineSizeTypesStandardM6432ms ... 1105 VirtualMachineSizeTypesStandardM6432ms VirtualMachineSizeTypes = "Standard_M64-32ms" 1106 // VirtualMachineSizeTypesStandardM64ms ... 1107 VirtualMachineSizeTypesStandardM64ms VirtualMachineSizeTypes = "Standard_M64ms" 1108 // VirtualMachineSizeTypesStandardM64s ... 1109 VirtualMachineSizeTypesStandardM64s VirtualMachineSizeTypes = "Standard_M64s" 1110 // VirtualMachineSizeTypesStandardNC12 ... 1111 VirtualMachineSizeTypesStandardNC12 VirtualMachineSizeTypes = "Standard_NC12" 1112 // VirtualMachineSizeTypesStandardNC12sV2 ... 1113 VirtualMachineSizeTypesStandardNC12sV2 VirtualMachineSizeTypes = "Standard_NC12s_v2" 1114 // VirtualMachineSizeTypesStandardNC12sV3 ... 1115 VirtualMachineSizeTypesStandardNC12sV3 VirtualMachineSizeTypes = "Standard_NC12s_v3" 1116 // VirtualMachineSizeTypesStandardNC24 ... 1117 VirtualMachineSizeTypesStandardNC24 VirtualMachineSizeTypes = "Standard_NC24" 1118 // VirtualMachineSizeTypesStandardNC24r ... 1119 VirtualMachineSizeTypesStandardNC24r VirtualMachineSizeTypes = "Standard_NC24r" 1120 // VirtualMachineSizeTypesStandardNC24rsV2 ... 1121 VirtualMachineSizeTypesStandardNC24rsV2 VirtualMachineSizeTypes = "Standard_NC24rs_v2" 1122 // VirtualMachineSizeTypesStandardNC24rsV3 ... 1123 VirtualMachineSizeTypesStandardNC24rsV3 VirtualMachineSizeTypes = "Standard_NC24rs_v3" 1124 // VirtualMachineSizeTypesStandardNC24sV2 ... 1125 VirtualMachineSizeTypesStandardNC24sV2 VirtualMachineSizeTypes = "Standard_NC24s_v2" 1126 // VirtualMachineSizeTypesStandardNC24sV3 ... 1127 VirtualMachineSizeTypesStandardNC24sV3 VirtualMachineSizeTypes = "Standard_NC24s_v3" 1128 // VirtualMachineSizeTypesStandardNC6 ... 1129 VirtualMachineSizeTypesStandardNC6 VirtualMachineSizeTypes = "Standard_NC6" 1130 // VirtualMachineSizeTypesStandardNC6sV2 ... 1131 VirtualMachineSizeTypesStandardNC6sV2 VirtualMachineSizeTypes = "Standard_NC6s_v2" 1132 // VirtualMachineSizeTypesStandardNC6sV3 ... 1133 VirtualMachineSizeTypesStandardNC6sV3 VirtualMachineSizeTypes = "Standard_NC6s_v3" 1134 // VirtualMachineSizeTypesStandardND12s ... 1135 VirtualMachineSizeTypesStandardND12s VirtualMachineSizeTypes = "Standard_ND12s" 1136 // VirtualMachineSizeTypesStandardND24rs ... 1137 VirtualMachineSizeTypesStandardND24rs VirtualMachineSizeTypes = "Standard_ND24rs" 1138 // VirtualMachineSizeTypesStandardND24s ... 1139 VirtualMachineSizeTypesStandardND24s VirtualMachineSizeTypes = "Standard_ND24s" 1140 // VirtualMachineSizeTypesStandardND6s ... 1141 VirtualMachineSizeTypesStandardND6s VirtualMachineSizeTypes = "Standard_ND6s" 1142 // VirtualMachineSizeTypesStandardNV12 ... 1143 VirtualMachineSizeTypesStandardNV12 VirtualMachineSizeTypes = "Standard_NV12" 1144 // VirtualMachineSizeTypesStandardNV24 ... 1145 VirtualMachineSizeTypesStandardNV24 VirtualMachineSizeTypes = "Standard_NV24" 1146 // VirtualMachineSizeTypesStandardNV6 ... 1147 VirtualMachineSizeTypesStandardNV6 VirtualMachineSizeTypes = "Standard_NV6" 1148) 1149 1150// PossibleVirtualMachineSizeTypesValues returns an array of possible values for the VirtualMachineSizeTypes const type. 1151func PossibleVirtualMachineSizeTypesValues() []VirtualMachineSizeTypes { 1152 return []VirtualMachineSizeTypes{VirtualMachineSizeTypesBasicA0, VirtualMachineSizeTypesBasicA1, VirtualMachineSizeTypesBasicA2, VirtualMachineSizeTypesBasicA3, VirtualMachineSizeTypesBasicA4, VirtualMachineSizeTypesStandardA0, VirtualMachineSizeTypesStandardA1, VirtualMachineSizeTypesStandardA10, VirtualMachineSizeTypesStandardA11, VirtualMachineSizeTypesStandardA1V2, VirtualMachineSizeTypesStandardA2, VirtualMachineSizeTypesStandardA2mV2, VirtualMachineSizeTypesStandardA2V2, VirtualMachineSizeTypesStandardA3, VirtualMachineSizeTypesStandardA4, VirtualMachineSizeTypesStandardA4mV2, VirtualMachineSizeTypesStandardA4V2, VirtualMachineSizeTypesStandardA5, VirtualMachineSizeTypesStandardA6, VirtualMachineSizeTypesStandardA7, VirtualMachineSizeTypesStandardA8, VirtualMachineSizeTypesStandardA8mV2, VirtualMachineSizeTypesStandardA8V2, VirtualMachineSizeTypesStandardA9, VirtualMachineSizeTypesStandardB1ms, VirtualMachineSizeTypesStandardB1s, VirtualMachineSizeTypesStandardB2ms, VirtualMachineSizeTypesStandardB2s, VirtualMachineSizeTypesStandardB4ms, VirtualMachineSizeTypesStandardB8ms, VirtualMachineSizeTypesStandardD1, VirtualMachineSizeTypesStandardD11, VirtualMachineSizeTypesStandardD11V2, VirtualMachineSizeTypesStandardD12, VirtualMachineSizeTypesStandardD12V2, VirtualMachineSizeTypesStandardD13, VirtualMachineSizeTypesStandardD13V2, VirtualMachineSizeTypesStandardD14, VirtualMachineSizeTypesStandardD14V2, VirtualMachineSizeTypesStandardD15V2, VirtualMachineSizeTypesStandardD16sV3, VirtualMachineSizeTypesStandardD16V3, VirtualMachineSizeTypesStandardD1V2, VirtualMachineSizeTypesStandardD2, VirtualMachineSizeTypesStandardD2sV3, VirtualMachineSizeTypesStandardD2V2, VirtualMachineSizeTypesStandardD2V3, VirtualMachineSizeTypesStandardD3, VirtualMachineSizeTypesStandardD32sV3, VirtualMachineSizeTypesStandardD32V3, VirtualMachineSizeTypesStandardD3V2, VirtualMachineSizeTypesStandardD4, VirtualMachineSizeTypesStandardD4sV3, VirtualMachineSizeTypesStandardD4V2, VirtualMachineSizeTypesStandardD4V3, VirtualMachineSizeTypesStandardD5V2, VirtualMachineSizeTypesStandardD64sV3, VirtualMachineSizeTypesStandardD64V3, VirtualMachineSizeTypesStandardD8sV3, VirtualMachineSizeTypesStandardD8V3, VirtualMachineSizeTypesStandardDS1, VirtualMachineSizeTypesStandardDS11, VirtualMachineSizeTypesStandardDS11V2, VirtualMachineSizeTypesStandardDS12, VirtualMachineSizeTypesStandardDS12V2, VirtualMachineSizeTypesStandardDS13, VirtualMachineSizeTypesStandardDS132V2, VirtualMachineSizeTypesStandardDS134V2, VirtualMachineSizeTypesStandardDS13V2, VirtualMachineSizeTypesStandardDS14, VirtualMachineSizeTypesStandardDS144V2, VirtualMachineSizeTypesStandardDS148V2, VirtualMachineSizeTypesStandardDS14V2, VirtualMachineSizeTypesStandardDS15V2, VirtualMachineSizeTypesStandardDS1V2, VirtualMachineSizeTypesStandardDS2, VirtualMachineSizeTypesStandardDS2V2, VirtualMachineSizeTypesStandardDS3, VirtualMachineSizeTypesStandardDS3V2, VirtualMachineSizeTypesStandardDS4, VirtualMachineSizeTypesStandardDS4V2, VirtualMachineSizeTypesStandardDS5V2, VirtualMachineSizeTypesStandardE16sV3, VirtualMachineSizeTypesStandardE16V3, VirtualMachineSizeTypesStandardE2sV3, VirtualMachineSizeTypesStandardE2V3, VirtualMachineSizeTypesStandardE3216V3, VirtualMachineSizeTypesStandardE328sV3, VirtualMachineSizeTypesStandardE32sV3, VirtualMachineSizeTypesStandardE32V3, VirtualMachineSizeTypesStandardE4sV3, VirtualMachineSizeTypesStandardE4V3, VirtualMachineSizeTypesStandardE6416sV3, VirtualMachineSizeTypesStandardE6432sV3, VirtualMachineSizeTypesStandardE64sV3, VirtualMachineSizeTypesStandardE64V3, VirtualMachineSizeTypesStandardE8sV3, VirtualMachineSizeTypesStandardE8V3, VirtualMachineSizeTypesStandardF1, VirtualMachineSizeTypesStandardF16, VirtualMachineSizeTypesStandardF16s, VirtualMachineSizeTypesStandardF16sV2, VirtualMachineSizeTypesStandardF1s, VirtualMachineSizeTypesStandardF2, VirtualMachineSizeTypesStandardF2s, VirtualMachineSizeTypesStandardF2sV2, VirtualMachineSizeTypesStandardF32sV2, VirtualMachineSizeTypesStandardF4, VirtualMachineSizeTypesStandardF4s, VirtualMachineSizeTypesStandardF4sV2, VirtualMachineSizeTypesStandardF64sV2, VirtualMachineSizeTypesStandardF72sV2, VirtualMachineSizeTypesStandardF8, VirtualMachineSizeTypesStandardF8s, VirtualMachineSizeTypesStandardF8sV2, VirtualMachineSizeTypesStandardG1, VirtualMachineSizeTypesStandardG2, VirtualMachineSizeTypesStandardG3, VirtualMachineSizeTypesStandardG4, VirtualMachineSizeTypesStandardG5, VirtualMachineSizeTypesStandardGS1, VirtualMachineSizeTypesStandardGS2, VirtualMachineSizeTypesStandardGS3, VirtualMachineSizeTypesStandardGS4, VirtualMachineSizeTypesStandardGS44, VirtualMachineSizeTypesStandardGS48, VirtualMachineSizeTypesStandardGS5, VirtualMachineSizeTypesStandardGS516, VirtualMachineSizeTypesStandardGS58, VirtualMachineSizeTypesStandardH16, VirtualMachineSizeTypesStandardH16m, VirtualMachineSizeTypesStandardH16mr, VirtualMachineSizeTypesStandardH16r, VirtualMachineSizeTypesStandardH8, VirtualMachineSizeTypesStandardH8m, VirtualMachineSizeTypesStandardL16s, VirtualMachineSizeTypesStandardL32s, VirtualMachineSizeTypesStandardL4s, VirtualMachineSizeTypesStandardL8s, VirtualMachineSizeTypesStandardM12832ms, VirtualMachineSizeTypesStandardM12864ms, VirtualMachineSizeTypesStandardM128ms, VirtualMachineSizeTypesStandardM128s, VirtualMachineSizeTypesStandardM6416ms, VirtualMachineSizeTypesStandardM6432ms, VirtualMachineSizeTypesStandardM64ms, VirtualMachineSizeTypesStandardM64s, VirtualMachineSizeTypesStandardNC12, VirtualMachineSizeTypesStandardNC12sV2, VirtualMachineSizeTypesStandardNC12sV3, VirtualMachineSizeTypesStandardNC24, VirtualMachineSizeTypesStandardNC24r, VirtualMachineSizeTypesStandardNC24rsV2, VirtualMachineSizeTypesStandardNC24rsV3, VirtualMachineSizeTypesStandardNC24sV2, VirtualMachineSizeTypesStandardNC24sV3, VirtualMachineSizeTypesStandardNC6, VirtualMachineSizeTypesStandardNC6sV2, VirtualMachineSizeTypesStandardNC6sV3, VirtualMachineSizeTypesStandardND12s, VirtualMachineSizeTypesStandardND24rs, VirtualMachineSizeTypesStandardND24s, VirtualMachineSizeTypesStandardND6s, VirtualMachineSizeTypesStandardNV12, VirtualMachineSizeTypesStandardNV24, VirtualMachineSizeTypesStandardNV6} 1153} 1154 1155// AccessURI a disk access SAS uri. 1156type AccessURI struct { 1157 autorest.Response `json:"-"` 1158 // AccessSAS - A SAS uri for accessing a disk. 1159 AccessSAS *string `json:"accessSAS,omitempty"` 1160} 1161 1162// AdditionalCapabilities enables or disables a capability on the virtual machine or virtual machine scale set. 1163type AdditionalCapabilities struct { 1164 // UltraSSDEnabled - The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled. 1165 UltraSSDEnabled *bool `json:"ultraSSDEnabled,omitempty"` 1166} 1167 1168// AdditionalUnattendContent specifies additional XML formatted information that can be included in the 1169// Unattend.xml file, which is used by Windows Setup. Contents are defined by setting name, component name, and the 1170// pass in which the content is applied. 1171type AdditionalUnattendContent struct { 1172 // PassName - The pass name. Currently, the only allowable value is OobeSystem. Possible values include: 'OobeSystem' 1173 PassName PassNames `json:"passName,omitempty"` 1174 // ComponentName - The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup. Possible values include: 'MicrosoftWindowsShellSetup' 1175 ComponentName ComponentNames `json:"componentName,omitempty"` 1176 // SettingName - Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon. Possible values include: 'AutoLogon', 'FirstLogonCommands' 1177 SettingName SettingNames `json:"settingName,omitempty"` 1178 // Content - 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. 1179 Content *string `json:"content,omitempty"` 1180} 1181 1182// APIEntityReference the API entity reference. 1183type APIEntityReference struct { 1184 // ID - The ARM resource id in the form of /subscriptions/{SubcriptionId}/resourceGroups/{ResourceGroupName}/... 1185 ID *string `json:"id,omitempty"` 1186} 1187 1188// APIError api error. 1189type APIError struct { 1190 // Details - The Api error details 1191 Details *[]APIErrorBase `json:"details,omitempty"` 1192 // Innererror - The Api inner error 1193 Innererror *InnerError `json:"innererror,omitempty"` 1194 // Code - The error code. 1195 Code *string `json:"code,omitempty"` 1196 // Target - The target of the particular error. 1197 Target *string `json:"target,omitempty"` 1198 // Message - The error message. 1199 Message *string `json:"message,omitempty"` 1200} 1201 1202// APIErrorBase api error base. 1203type APIErrorBase struct { 1204 // Code - The error code. 1205 Code *string `json:"code,omitempty"` 1206 // Target - The target of the particular error. 1207 Target *string `json:"target,omitempty"` 1208 // Message - The error message. 1209 Message *string `json:"message,omitempty"` 1210} 1211 1212// AutomaticOSUpgradePolicy the configuration parameters used for performing automatic OS upgrade. 1213type AutomaticOSUpgradePolicy struct { 1214 // EnableAutomaticOSUpgrade - Whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the image becomes available. Default value is false. 1215 EnableAutomaticOSUpgrade *bool `json:"enableAutomaticOSUpgrade,omitempty"` 1216 // DisableAutomaticRollback - Whether OS image rollback feature should be disabled. Default value is false. 1217 DisableAutomaticRollback *bool `json:"disableAutomaticRollback,omitempty"` 1218} 1219 1220// AvailabilitySet specifies information about the availability set that the virtual machine should be assigned to. 1221// Virtual machines specified in the same availability set are allocated to different nodes to maximize 1222// availability. For more information about availability sets, see [Manage the availability of virtual 1223// machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). 1224// <br><br> For more information on Azure planned maintainance, see [Planned maintenance for virtual machines in 1225// Azure](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json) 1226// <br><br> Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added 1227// to an availability set. 1228type AvailabilitySet struct { 1229 autorest.Response `json:"-"` 1230 *AvailabilitySetProperties `json:"properties,omitempty"` 1231 // Sku - Sku of the availability set, only name is required to be set. See AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 'Classic'. 1232 Sku *Sku `json:"sku,omitempty"` 1233 // ID - Resource Id 1234 ID *string `json:"id,omitempty"` 1235 // Name - Resource name 1236 Name *string `json:"name,omitempty"` 1237 // Type - Resource type 1238 Type *string `json:"type,omitempty"` 1239 // Location - Resource location 1240 Location *string `json:"location,omitempty"` 1241 // Tags - Resource tags 1242 Tags map[string]*string `json:"tags"` 1243} 1244 1245// MarshalJSON is the custom marshaler for AvailabilitySet. 1246func (as AvailabilitySet) MarshalJSON() ([]byte, error) { 1247 objectMap := make(map[string]interface{}) 1248 if as.AvailabilitySetProperties != nil { 1249 objectMap["properties"] = as.AvailabilitySetProperties 1250 } 1251 if as.Sku != nil { 1252 objectMap["sku"] = as.Sku 1253 } 1254 if as.ID != nil { 1255 objectMap["id"] = as.ID 1256 } 1257 if as.Name != nil { 1258 objectMap["name"] = as.Name 1259 } 1260 if as.Type != nil { 1261 objectMap["type"] = as.Type 1262 } 1263 if as.Location != nil { 1264 objectMap["location"] = as.Location 1265 } 1266 if as.Tags != nil { 1267 objectMap["tags"] = as.Tags 1268 } 1269 return json.Marshal(objectMap) 1270} 1271 1272// UnmarshalJSON is the custom unmarshaler for AvailabilitySet struct. 1273func (as *AvailabilitySet) UnmarshalJSON(body []byte) error { 1274 var m map[string]*json.RawMessage 1275 err := json.Unmarshal(body, &m) 1276 if err != nil { 1277 return err 1278 } 1279 for k, v := range m { 1280 switch k { 1281 case "properties": 1282 if v != nil { 1283 var availabilitySetProperties AvailabilitySetProperties 1284 err = json.Unmarshal(*v, &availabilitySetProperties) 1285 if err != nil { 1286 return err 1287 } 1288 as.AvailabilitySetProperties = &availabilitySetProperties 1289 } 1290 case "sku": 1291 if v != nil { 1292 var sku Sku 1293 err = json.Unmarshal(*v, &sku) 1294 if err != nil { 1295 return err 1296 } 1297 as.Sku = &sku 1298 } 1299 case "id": 1300 if v != nil { 1301 var ID string 1302 err = json.Unmarshal(*v, &ID) 1303 if err != nil { 1304 return err 1305 } 1306 as.ID = &ID 1307 } 1308 case "name": 1309 if v != nil { 1310 var name string 1311 err = json.Unmarshal(*v, &name) 1312 if err != nil { 1313 return err 1314 } 1315 as.Name = &name 1316 } 1317 case "type": 1318 if v != nil { 1319 var typeVar string 1320 err = json.Unmarshal(*v, &typeVar) 1321 if err != nil { 1322 return err 1323 } 1324 as.Type = &typeVar 1325 } 1326 case "location": 1327 if v != nil { 1328 var location string 1329 err = json.Unmarshal(*v, &location) 1330 if err != nil { 1331 return err 1332 } 1333 as.Location = &location 1334 } 1335 case "tags": 1336 if v != nil { 1337 var tags map[string]*string 1338 err = json.Unmarshal(*v, &tags) 1339 if err != nil { 1340 return err 1341 } 1342 as.Tags = tags 1343 } 1344 } 1345 } 1346 1347 return nil 1348} 1349 1350// AvailabilitySetListResult the List Availability Set operation response. 1351type AvailabilitySetListResult struct { 1352 autorest.Response `json:"-"` 1353 // Value - The list of availability sets 1354 Value *[]AvailabilitySet `json:"value,omitempty"` 1355 // NextLink - The URI to fetch the next page of AvailabilitySets. Call ListNext() with this URI to fetch the next page of AvailabilitySets. 1356 NextLink *string `json:"nextLink,omitempty"` 1357} 1358 1359// AvailabilitySetListResultIterator provides access to a complete listing of AvailabilitySet values. 1360type AvailabilitySetListResultIterator struct { 1361 i int 1362 page AvailabilitySetListResultPage 1363} 1364 1365// Next advances to the next value. If there was an error making 1366// the request the iterator does not advance and the error is returned. 1367func (iter *AvailabilitySetListResultIterator) Next() error { 1368 iter.i++ 1369 if iter.i < len(iter.page.Values()) { 1370 return nil 1371 } 1372 err := iter.page.Next() 1373 if err != nil { 1374 iter.i-- 1375 return err 1376 } 1377 iter.i = 0 1378 return nil 1379} 1380 1381// NotDone returns true if the enumeration should be started or is not yet complete. 1382func (iter AvailabilitySetListResultIterator) NotDone() bool { 1383 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 1384} 1385 1386// Response returns the raw server response from the last page request. 1387func (iter AvailabilitySetListResultIterator) Response() AvailabilitySetListResult { 1388 return iter.page.Response() 1389} 1390 1391// Value returns the current value or a zero-initialized value if the 1392// iterator has advanced beyond the end of the collection. 1393func (iter AvailabilitySetListResultIterator) Value() AvailabilitySet { 1394 if !iter.page.NotDone() { 1395 return AvailabilitySet{} 1396 } 1397 return iter.page.Values()[iter.i] 1398} 1399 1400// IsEmpty returns true if the ListResult contains no values. 1401func (aslr AvailabilitySetListResult) IsEmpty() bool { 1402 return aslr.Value == nil || len(*aslr.Value) == 0 1403} 1404 1405// availabilitySetListResultPreparer prepares a request to retrieve the next set of results. 1406// It returns nil if no more results exist. 1407func (aslr AvailabilitySetListResult) availabilitySetListResultPreparer() (*http.Request, error) { 1408 if aslr.NextLink == nil || len(to.String(aslr.NextLink)) < 1 { 1409 return nil, nil 1410 } 1411 return autorest.Prepare(&http.Request{}, 1412 autorest.AsJSON(), 1413 autorest.AsGet(), 1414 autorest.WithBaseURL(to.String(aslr.NextLink))) 1415} 1416 1417// AvailabilitySetListResultPage contains a page of AvailabilitySet values. 1418type AvailabilitySetListResultPage struct { 1419 fn func(AvailabilitySetListResult) (AvailabilitySetListResult, error) 1420 aslr AvailabilitySetListResult 1421} 1422 1423// Next advances to the next page of values. If there was an error making 1424// the request the page does not advance and the error is returned. 1425func (page *AvailabilitySetListResultPage) Next() error { 1426 next, err := page.fn(page.aslr) 1427 if err != nil { 1428 return err 1429 } 1430 page.aslr = next 1431 return nil 1432} 1433 1434// NotDone returns true if the page enumeration should be started or is not yet complete. 1435func (page AvailabilitySetListResultPage) NotDone() bool { 1436 return !page.aslr.IsEmpty() 1437} 1438 1439// Response returns the raw server response from the last page request. 1440func (page AvailabilitySetListResultPage) Response() AvailabilitySetListResult { 1441 return page.aslr 1442} 1443 1444// Values returns the slice of values for the current page or nil if there are no values. 1445func (page AvailabilitySetListResultPage) Values() []AvailabilitySet { 1446 if page.aslr.IsEmpty() { 1447 return nil 1448 } 1449 return *page.aslr.Value 1450} 1451 1452// AvailabilitySetProperties the instance view of a resource. 1453type AvailabilitySetProperties struct { 1454 // PlatformUpdateDomainCount - Update Domain count. 1455 PlatformUpdateDomainCount *int32 `json:"platformUpdateDomainCount,omitempty"` 1456 // PlatformFaultDomainCount - Fault Domain count. 1457 PlatformFaultDomainCount *int32 `json:"platformFaultDomainCount,omitempty"` 1458 // VirtualMachines - A list of references to all virtual machines in the availability set. 1459 VirtualMachines *[]SubResource `json:"virtualMachines,omitempty"` 1460 // Statuses - The resource status information. 1461 Statuses *[]InstanceViewStatus `json:"statuses,omitempty"` 1462} 1463 1464// AvailabilitySetUpdate specifies information about the availability set that the virtual machine should be 1465// assigned to. Only tags may be updated. 1466type AvailabilitySetUpdate struct { 1467 *AvailabilitySetProperties `json:"properties,omitempty"` 1468 // Sku - Sku of the availability set 1469 Sku *Sku `json:"sku,omitempty"` 1470 // Tags - Resource tags 1471 Tags map[string]*string `json:"tags"` 1472} 1473 1474// MarshalJSON is the custom marshaler for AvailabilitySetUpdate. 1475func (asu AvailabilitySetUpdate) MarshalJSON() ([]byte, error) { 1476 objectMap := make(map[string]interface{}) 1477 if asu.AvailabilitySetProperties != nil { 1478 objectMap["properties"] = asu.AvailabilitySetProperties 1479 } 1480 if asu.Sku != nil { 1481 objectMap["sku"] = asu.Sku 1482 } 1483 if asu.Tags != nil { 1484 objectMap["tags"] = asu.Tags 1485 } 1486 return json.Marshal(objectMap) 1487} 1488 1489// UnmarshalJSON is the custom unmarshaler for AvailabilitySetUpdate struct. 1490func (asu *AvailabilitySetUpdate) UnmarshalJSON(body []byte) error { 1491 var m map[string]*json.RawMessage 1492 err := json.Unmarshal(body, &m) 1493 if err != nil { 1494 return err 1495 } 1496 for k, v := range m { 1497 switch k { 1498 case "properties": 1499 if v != nil { 1500 var availabilitySetProperties AvailabilitySetProperties 1501 err = json.Unmarshal(*v, &availabilitySetProperties) 1502 if err != nil { 1503 return err 1504 } 1505 asu.AvailabilitySetProperties = &availabilitySetProperties 1506 } 1507 case "sku": 1508 if v != nil { 1509 var sku Sku 1510 err = json.Unmarshal(*v, &sku) 1511 if err != nil { 1512 return err 1513 } 1514 asu.Sku = &sku 1515 } 1516 case "tags": 1517 if v != nil { 1518 var tags map[string]*string 1519 err = json.Unmarshal(*v, &tags) 1520 if err != nil { 1521 return err 1522 } 1523 asu.Tags = tags 1524 } 1525 } 1526 } 1527 1528 return nil 1529} 1530 1531// BootDiagnostics boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot 1532// to diagnose VM status. <br><br> For Linux Virtual Machines, you can easily view the output of your console log. 1533// <br><br> For both Windows and Linux virtual machines, Azure also enables you to see a screenshot of the VM from 1534// the hypervisor. 1535type BootDiagnostics struct { 1536 // Enabled - Whether boot diagnostics should be enabled on the Virtual Machine. 1537 Enabled *bool `json:"enabled,omitempty"` 1538 // StorageURI - Uri of the storage account to use for placing the console output and screenshot. 1539 StorageURI *string `json:"storageUri,omitempty"` 1540} 1541 1542// BootDiagnosticsInstanceView the instance view of a virtual machine boot diagnostics. 1543type BootDiagnosticsInstanceView struct { 1544 // ConsoleScreenshotBlobURI - The console screenshot blob URI. 1545 ConsoleScreenshotBlobURI *string `json:"consoleScreenshotBlobUri,omitempty"` 1546 // SerialConsoleLogBlobURI - The Linux serial console log blob Uri. 1547 SerialConsoleLogBlobURI *string `json:"serialConsoleLogBlobUri,omitempty"` 1548} 1549 1550// CloudError an error response from the Gallery service. 1551type CloudError struct { 1552 Error *APIError `json:"error,omitempty"` 1553} 1554 1555// ContainerService container service. 1556type ContainerService struct { 1557 autorest.Response `json:"-"` 1558 *ContainerServiceProperties `json:"properties,omitempty"` 1559 // ID - Resource Id 1560 ID *string `json:"id,omitempty"` 1561 // Name - Resource name 1562 Name *string `json:"name,omitempty"` 1563 // Type - Resource type 1564 Type *string `json:"type,omitempty"` 1565 // Location - Resource location 1566 Location *string `json:"location,omitempty"` 1567 // Tags - Resource tags 1568 Tags map[string]*string `json:"tags"` 1569} 1570 1571// MarshalJSON is the custom marshaler for ContainerService. 1572func (cs ContainerService) MarshalJSON() ([]byte, error) { 1573 objectMap := make(map[string]interface{}) 1574 if cs.ContainerServiceProperties != nil { 1575 objectMap["properties"] = cs.ContainerServiceProperties 1576 } 1577 if cs.ID != nil { 1578 objectMap["id"] = cs.ID 1579 } 1580 if cs.Name != nil { 1581 objectMap["name"] = cs.Name 1582 } 1583 if cs.Type != nil { 1584 objectMap["type"] = cs.Type 1585 } 1586 if cs.Location != nil { 1587 objectMap["location"] = cs.Location 1588 } 1589 if cs.Tags != nil { 1590 objectMap["tags"] = cs.Tags 1591 } 1592 return json.Marshal(objectMap) 1593} 1594 1595// UnmarshalJSON is the custom unmarshaler for ContainerService struct. 1596func (cs *ContainerService) UnmarshalJSON(body []byte) error { 1597 var m map[string]*json.RawMessage 1598 err := json.Unmarshal(body, &m) 1599 if err != nil { 1600 return err 1601 } 1602 for k, v := range m { 1603 switch k { 1604 case "properties": 1605 if v != nil { 1606 var containerServiceProperties ContainerServiceProperties 1607 err = json.Unmarshal(*v, &containerServiceProperties) 1608 if err != nil { 1609 return err 1610 } 1611 cs.ContainerServiceProperties = &containerServiceProperties 1612 } 1613 case "id": 1614 if v != nil { 1615 var ID string 1616 err = json.Unmarshal(*v, &ID) 1617 if err != nil { 1618 return err 1619 } 1620 cs.ID = &ID 1621 } 1622 case "name": 1623 if v != nil { 1624 var name string 1625 err = json.Unmarshal(*v, &name) 1626 if err != nil { 1627 return err 1628 } 1629 cs.Name = &name 1630 } 1631 case "type": 1632 if v != nil { 1633 var typeVar string 1634 err = json.Unmarshal(*v, &typeVar) 1635 if err != nil { 1636 return err 1637 } 1638 cs.Type = &typeVar 1639 } 1640 case "location": 1641 if v != nil { 1642 var location string 1643 err = json.Unmarshal(*v, &location) 1644 if err != nil { 1645 return err 1646 } 1647 cs.Location = &location 1648 } 1649 case "tags": 1650 if v != nil { 1651 var tags map[string]*string 1652 err = json.Unmarshal(*v, &tags) 1653 if err != nil { 1654 return err 1655 } 1656 cs.Tags = tags 1657 } 1658 } 1659 } 1660 1661 return nil 1662} 1663 1664// ContainerServiceAgentPoolProfile profile for the container service agent pool. 1665type ContainerServiceAgentPoolProfile struct { 1666 // Name - Unique name of the agent pool profile in the context of the subscription and resource group. 1667 Name *string `json:"name,omitempty"` 1668 // Count - Number of agents (VMs) to host docker containers. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1. 1669 Count *int32 `json:"count,omitempty"` 1670 // VMSize - Size of agent VMs. Possible values include: 'StandardA0', 'StandardA1', 'StandardA2', 'StandardA3', 'StandardA4', 'StandardA5', 'StandardA6', 'StandardA7', 'StandardA8', 'StandardA9', 'StandardA10', 'StandardA11', 'StandardD1', 'StandardD2', 'StandardD3', 'StandardD4', 'StandardD11', 'StandardD12', 'StandardD13', 'StandardD14', 'StandardD1V2', 'StandardD2V2', 'StandardD3V2', 'StandardD4V2', 'StandardD5V2', 'StandardD11V2', 'StandardD12V2', 'StandardD13V2', 'StandardD14V2', 'StandardG1', 'StandardG2', 'StandardG3', 'StandardG4', 'StandardG5', 'StandardDS1', 'StandardDS2', 'StandardDS3', 'StandardDS4', 'StandardDS11', 'StandardDS12', 'StandardDS13', 'StandardDS14', 'StandardGS1', 'StandardGS2', 'StandardGS3', 'StandardGS4', 'StandardGS5' 1671 VMSize ContainerServiceVMSizeTypes `json:"vmSize,omitempty"` 1672 // DNSPrefix - DNS prefix to be used to create the FQDN for the agent pool. 1673 DNSPrefix *string `json:"dnsPrefix,omitempty"` 1674 // Fqdn - FDQN for the agent pool. 1675 Fqdn *string `json:"fqdn,omitempty"` 1676} 1677 1678// ContainerServiceCustomProfile properties to configure a custom container service cluster. 1679type ContainerServiceCustomProfile struct { 1680 // Orchestrator - The name of the custom orchestrator to use. 1681 Orchestrator *string `json:"orchestrator,omitempty"` 1682} 1683 1684// ContainerServiceDiagnosticsProfile ... 1685type ContainerServiceDiagnosticsProfile struct { 1686 // VMDiagnostics - Profile for the container service VM diagnostic agent. 1687 VMDiagnostics *ContainerServiceVMDiagnostics `json:"vmDiagnostics,omitempty"` 1688} 1689 1690// ContainerServiceLinuxProfile profile for Linux VMs in the container service cluster. 1691type ContainerServiceLinuxProfile struct { 1692 // AdminUsername - The administrator username to use for Linux VMs. 1693 AdminUsername *string `json:"adminUsername,omitempty"` 1694 // SSH - The ssh key configuration for Linux VMs. 1695 SSH *ContainerServiceSSHConfiguration `json:"ssh,omitempty"` 1696} 1697 1698// ContainerServiceListResult the response from the List Container Services operation. 1699type ContainerServiceListResult struct { 1700 autorest.Response `json:"-"` 1701 // Value - the list of container services. 1702 Value *[]ContainerService `json:"value,omitempty"` 1703 // NextLink - The URL to get the next set of container service results. 1704 NextLink *string `json:"nextLink,omitempty"` 1705} 1706 1707// ContainerServiceListResultIterator provides access to a complete listing of ContainerService values. 1708type ContainerServiceListResultIterator struct { 1709 i int 1710 page ContainerServiceListResultPage 1711} 1712 1713// Next advances to the next value. If there was an error making 1714// the request the iterator does not advance and the error is returned. 1715func (iter *ContainerServiceListResultIterator) Next() error { 1716 iter.i++ 1717 if iter.i < len(iter.page.Values()) { 1718 return nil 1719 } 1720 err := iter.page.Next() 1721 if err != nil { 1722 iter.i-- 1723 return err 1724 } 1725 iter.i = 0 1726 return nil 1727} 1728 1729// NotDone returns true if the enumeration should be started or is not yet complete. 1730func (iter ContainerServiceListResultIterator) NotDone() bool { 1731 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 1732} 1733 1734// Response returns the raw server response from the last page request. 1735func (iter ContainerServiceListResultIterator) Response() ContainerServiceListResult { 1736 return iter.page.Response() 1737} 1738 1739// Value returns the current value or a zero-initialized value if the 1740// iterator has advanced beyond the end of the collection. 1741func (iter ContainerServiceListResultIterator) Value() ContainerService { 1742 if !iter.page.NotDone() { 1743 return ContainerService{} 1744 } 1745 return iter.page.Values()[iter.i] 1746} 1747 1748// IsEmpty returns true if the ListResult contains no values. 1749func (cslr ContainerServiceListResult) IsEmpty() bool { 1750 return cslr.Value == nil || len(*cslr.Value) == 0 1751} 1752 1753// containerServiceListResultPreparer prepares a request to retrieve the next set of results. 1754// It returns nil if no more results exist. 1755func (cslr ContainerServiceListResult) containerServiceListResultPreparer() (*http.Request, error) { 1756 if cslr.NextLink == nil || len(to.String(cslr.NextLink)) < 1 { 1757 return nil, nil 1758 } 1759 return autorest.Prepare(&http.Request{}, 1760 autorest.AsJSON(), 1761 autorest.AsGet(), 1762 autorest.WithBaseURL(to.String(cslr.NextLink))) 1763} 1764 1765// ContainerServiceListResultPage contains a page of ContainerService values. 1766type ContainerServiceListResultPage struct { 1767 fn func(ContainerServiceListResult) (ContainerServiceListResult, error) 1768 cslr ContainerServiceListResult 1769} 1770 1771// Next advances to the next page of values. If there was an error making 1772// the request the page does not advance and the error is returned. 1773func (page *ContainerServiceListResultPage) Next() error { 1774 next, err := page.fn(page.cslr) 1775 if err != nil { 1776 return err 1777 } 1778 page.cslr = next 1779 return nil 1780} 1781 1782// NotDone returns true if the page enumeration should be started or is not yet complete. 1783func (page ContainerServiceListResultPage) NotDone() bool { 1784 return !page.cslr.IsEmpty() 1785} 1786 1787// Response returns the raw server response from the last page request. 1788func (page ContainerServiceListResultPage) Response() ContainerServiceListResult { 1789 return page.cslr 1790} 1791 1792// Values returns the slice of values for the current page or nil if there are no values. 1793func (page ContainerServiceListResultPage) Values() []ContainerService { 1794 if page.cslr.IsEmpty() { 1795 return nil 1796 } 1797 return *page.cslr.Value 1798} 1799 1800// ContainerServiceMasterProfile profile for the container service master. 1801type ContainerServiceMasterProfile struct { 1802 // Count - Number of masters (VMs) in the container service cluster. Allowed values are 1, 3, and 5. The default value is 1. 1803 Count *int32 `json:"count,omitempty"` 1804 // DNSPrefix - DNS prefix to be used to create the FQDN for master. 1805 DNSPrefix *string `json:"dnsPrefix,omitempty"` 1806 // Fqdn - FDQN for the master. 1807 Fqdn *string `json:"fqdn,omitempty"` 1808} 1809 1810// ContainerServiceOrchestratorProfile profile for the container service orchestrator. 1811type ContainerServiceOrchestratorProfile struct { 1812 // OrchestratorType - The orchestrator to use to manage container service cluster resources. Valid values are Swarm, DCOS, and Custom. Possible values include: 'Swarm', 'DCOS', 'Custom', 'Kubernetes' 1813 OrchestratorType ContainerServiceOrchestratorTypes `json:"orchestratorType,omitempty"` 1814} 1815 1816// ContainerServiceProperties properties of the container service. 1817type ContainerServiceProperties struct { 1818 // ProvisioningState - the current deployment or provisioning state, which only appears in the response. 1819 ProvisioningState *string `json:"provisioningState,omitempty"` 1820 // OrchestratorProfile - Properties of the orchestrator. 1821 OrchestratorProfile *ContainerServiceOrchestratorProfile `json:"orchestratorProfile,omitempty"` 1822 // CustomProfile - Properties for custom clusters. 1823 CustomProfile *ContainerServiceCustomProfile `json:"customProfile,omitempty"` 1824 // ServicePrincipalProfile - Properties for cluster service principals. 1825 ServicePrincipalProfile *ContainerServiceServicePrincipalProfile `json:"servicePrincipalProfile,omitempty"` 1826 // MasterProfile - Properties of master agents. 1827 MasterProfile *ContainerServiceMasterProfile `json:"masterProfile,omitempty"` 1828 // AgentPoolProfiles - Properties of the agent pool. 1829 AgentPoolProfiles *[]ContainerServiceAgentPoolProfile `json:"agentPoolProfiles,omitempty"` 1830 // WindowsProfile - Properties of Windows VMs. 1831 WindowsProfile *ContainerServiceWindowsProfile `json:"windowsProfile,omitempty"` 1832 // LinuxProfile - Properties of Linux VMs. 1833 LinuxProfile *ContainerServiceLinuxProfile `json:"linuxProfile,omitempty"` 1834 // DiagnosticsProfile - Properties of the diagnostic agent. 1835 DiagnosticsProfile *ContainerServiceDiagnosticsProfile `json:"diagnosticsProfile,omitempty"` 1836} 1837 1838// ContainerServicesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 1839// operation. 1840type ContainerServicesCreateOrUpdateFuture struct { 1841 azure.Future 1842} 1843 1844// Result returns the result of the asynchronous operation. 1845// If the operation has not completed it will return an error. 1846func (future *ContainerServicesCreateOrUpdateFuture) Result(client ContainerServicesClient) (cs ContainerService, err error) { 1847 var done bool 1848 done, err = future.Done(client) 1849 if err != nil { 1850 err = autorest.NewErrorWithError(err, "compute.ContainerServicesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 1851 return 1852 } 1853 if !done { 1854 err = azure.NewAsyncOpIncompleteError("compute.ContainerServicesCreateOrUpdateFuture") 1855 return 1856 } 1857 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 1858 if cs.Response.Response, err = future.GetResult(sender); err == nil && cs.Response.Response.StatusCode != http.StatusNoContent { 1859 cs, err = client.CreateOrUpdateResponder(cs.Response.Response) 1860 if err != nil { 1861 err = autorest.NewErrorWithError(err, "compute.ContainerServicesCreateOrUpdateFuture", "Result", cs.Response.Response, "Failure responding to request") 1862 } 1863 } 1864 return 1865} 1866 1867// ContainerServicesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 1868// operation. 1869type ContainerServicesDeleteFuture struct { 1870 azure.Future 1871} 1872 1873// Result returns the result of the asynchronous operation. 1874// If the operation has not completed it will return an error. 1875func (future *ContainerServicesDeleteFuture) Result(client ContainerServicesClient) (ar autorest.Response, err error) { 1876 var done bool 1877 done, err = future.Done(client) 1878 if err != nil { 1879 err = autorest.NewErrorWithError(err, "compute.ContainerServicesDeleteFuture", "Result", future.Response(), "Polling failure") 1880 return 1881 } 1882 if !done { 1883 err = azure.NewAsyncOpIncompleteError("compute.ContainerServicesDeleteFuture") 1884 return 1885 } 1886 ar.Response = future.Response() 1887 return 1888} 1889 1890// ContainerServiceServicePrincipalProfile information about a service principal identity for the cluster to use 1891// for manipulating Azure APIs. 1892type ContainerServiceServicePrincipalProfile struct { 1893 // ClientID - The ID for the service principal. 1894 ClientID *string `json:"clientId,omitempty"` 1895 // Secret - The secret password associated with the service principal. 1896 Secret *string `json:"secret,omitempty"` 1897} 1898 1899// ContainerServiceSSHConfiguration SSH configuration for Linux-based VMs running on Azure. 1900type ContainerServiceSSHConfiguration struct { 1901 // PublicKeys - the list of SSH public keys used to authenticate with Linux-based VMs. 1902 PublicKeys *[]ContainerServiceSSHPublicKey `json:"publicKeys,omitempty"` 1903} 1904 1905// ContainerServiceSSHPublicKey contains information about SSH certificate public key data. 1906type ContainerServiceSSHPublicKey struct { 1907 // KeyData - Certificate public key used to authenticate with VMs through SSH. The certificate must be in PEM format with or without headers. 1908 KeyData *string `json:"keyData,omitempty"` 1909} 1910 1911// ContainerServiceVMDiagnostics profile for diagnostics on the container service VMs. 1912type ContainerServiceVMDiagnostics struct { 1913 // Enabled - Whether the VM diagnostic agent is provisioned on the VM. 1914 Enabled *bool `json:"enabled,omitempty"` 1915 // StorageURI - The URI of the storage account where diagnostics are stored. 1916 StorageURI *string `json:"storageUri,omitempty"` 1917} 1918 1919// ContainerServiceWindowsProfile profile for Windows VMs in the container service cluster. 1920type ContainerServiceWindowsProfile struct { 1921 // AdminUsername - The administrator username to use for Windows VMs. 1922 AdminUsername *string `json:"adminUsername,omitempty"` 1923 // AdminPassword - The administrator password to use for Windows VMs. 1924 AdminPassword *string `json:"adminPassword,omitempty"` 1925} 1926 1927// CreationData data used when creating a disk. 1928type CreationData struct { 1929 // CreateOption - This enumerates the possible sources of a disk's creation. Possible values include: 'Empty', 'Attach', 'FromImage', 'Import', 'Copy', 'Restore' 1930 CreateOption DiskCreateOption `json:"createOption,omitempty"` 1931 // StorageAccountID - If createOption is Import, the Azure Resource Manager identifier of the storage account containing the blob to import as a disk. Required only if the blob is in a different subscription 1932 StorageAccountID *string `json:"storageAccountId,omitempty"` 1933 // ImageReference - Disk source information. 1934 ImageReference *ImageDiskReference `json:"imageReference,omitempty"` 1935 // SourceURI - If createOption is Import, this is the URI of a blob to be imported into a managed disk. 1936 SourceURI *string `json:"sourceUri,omitempty"` 1937 // SourceResourceID - If createOption is Copy, this is the ARM id of the source snapshot or disk. 1938 SourceResourceID *string `json:"sourceResourceId,omitempty"` 1939} 1940 1941// DataDisk describes a data disk. 1942type DataDisk struct { 1943 // Lun - 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. 1944 Lun *int32 `json:"lun,omitempty"` 1945 // Name - The disk name. 1946 Name *string `json:"name,omitempty"` 1947 // Vhd - The virtual hard disk. 1948 Vhd *VirtualHardDisk `json:"vhd,omitempty"` 1949 // Image - 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. 1950 Image *VirtualHardDisk `json:"image,omitempty"` 1951 // Caching - Specifies the caching requirements. <br><br> Possible values are: <br><br> **None** <br><br> **ReadOnly** <br><br> **ReadWrite** <br><br> Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'CachingTypesNone', 'CachingTypesReadOnly', 'CachingTypesReadWrite' 1952 Caching CachingTypes `json:"caching,omitempty"` 1953 // WriteAcceleratorEnabled - Specifies whether writeAccelerator should be enabled or disabled on the disk. 1954 WriteAcceleratorEnabled *bool `json:"writeAcceleratorEnabled,omitempty"` 1955 // CreateOption - Specifies how the virtual machine should be created.<br><br> Possible values are:<br><br> **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.<br><br> **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: 'DiskCreateOptionTypesFromImage', 'DiskCreateOptionTypesEmpty', 'DiskCreateOptionTypesAttach' 1956 CreateOption DiskCreateOptionTypes `json:"createOption,omitempty"` 1957 // DiskSizeGB - 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. <br><br> This value cannot be larger than 1023 GB 1958 DiskSizeGB *int32 `json:"diskSizeGB,omitempty"` 1959 // ManagedDisk - The managed disk parameters. 1960 ManagedDisk *ManagedDiskParameters `json:"managedDisk,omitempty"` 1961} 1962 1963// DataDiskImage contains the data disk images information. 1964type DataDiskImage struct { 1965 // Lun - 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. 1966 Lun *int32 `json:"lun,omitempty"` 1967} 1968 1969// DiagnosticsProfile specifies the boot diagnostic settings state. <br><br>Minimum api-version: 2015-06-15. 1970type DiagnosticsProfile struct { 1971 // BootDiagnostics - Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. <br><br> For Linux Virtual Machines, you can easily view the output of your console log. <br><br> For both Windows and Linux virtual machines, Azure also enables you to see a screenshot of the VM from the hypervisor. 1972 BootDiagnostics *BootDiagnostics `json:"bootDiagnostics,omitempty"` 1973} 1974 1975// DiffDiskSettings describes the parameters of differencing disk settings that can be be specified for operating 1976// system disk. <br><br> NOTE: The differencing disk settings can only be specified for managed disk. 1977type DiffDiskSettings struct { 1978 // Option - Specifies the differencing disk settings for operating system disk. Possible values include: 'Local' 1979 Option DiffDiskOptions `json:"option,omitempty"` 1980} 1981 1982// Disallowed describes the disallowed disk types. 1983type Disallowed struct { 1984 // DiskTypes - A list of disk types. 1985 DiskTypes *[]string `json:"diskTypes,omitempty"` 1986} 1987 1988// Disk disk resource. 1989type Disk struct { 1990 autorest.Response `json:"-"` 1991 // ManagedBy - A relative URI containing the ID of the VM that has the disk attached. 1992 ManagedBy *string `json:"managedBy,omitempty"` 1993 Sku *DiskSku `json:"sku,omitempty"` 1994 // Zones - The Logical zone list for Disk. 1995 Zones *[]string `json:"zones,omitempty"` 1996 *DiskProperties `json:"properties,omitempty"` 1997 // ID - Resource Id 1998 ID *string `json:"id,omitempty"` 1999 // Name - Resource name 2000 Name *string `json:"name,omitempty"` 2001 // Type - Resource type 2002 Type *string `json:"type,omitempty"` 2003 // Location - Resource location 2004 Location *string `json:"location,omitempty"` 2005 // Tags - Resource tags 2006 Tags map[string]*string `json:"tags"` 2007} 2008 2009// MarshalJSON is the custom marshaler for Disk. 2010func (d Disk) MarshalJSON() ([]byte, error) { 2011 objectMap := make(map[string]interface{}) 2012 if d.ManagedBy != nil { 2013 objectMap["managedBy"] = d.ManagedBy 2014 } 2015 if d.Sku != nil { 2016 objectMap["sku"] = d.Sku 2017 } 2018 if d.Zones != nil { 2019 objectMap["zones"] = d.Zones 2020 } 2021 if d.DiskProperties != nil { 2022 objectMap["properties"] = d.DiskProperties 2023 } 2024 if d.ID != nil { 2025 objectMap["id"] = d.ID 2026 } 2027 if d.Name != nil { 2028 objectMap["name"] = d.Name 2029 } 2030 if d.Type != nil { 2031 objectMap["type"] = d.Type 2032 } 2033 if d.Location != nil { 2034 objectMap["location"] = d.Location 2035 } 2036 if d.Tags != nil { 2037 objectMap["tags"] = d.Tags 2038 } 2039 return json.Marshal(objectMap) 2040} 2041 2042// UnmarshalJSON is the custom unmarshaler for Disk struct. 2043func (d *Disk) UnmarshalJSON(body []byte) error { 2044 var m map[string]*json.RawMessage 2045 err := json.Unmarshal(body, &m) 2046 if err != nil { 2047 return err 2048 } 2049 for k, v := range m { 2050 switch k { 2051 case "managedBy": 2052 if v != nil { 2053 var managedBy string 2054 err = json.Unmarshal(*v, &managedBy) 2055 if err != nil { 2056 return err 2057 } 2058 d.ManagedBy = &managedBy 2059 } 2060 case "sku": 2061 if v != nil { 2062 var sku DiskSku 2063 err = json.Unmarshal(*v, &sku) 2064 if err != nil { 2065 return err 2066 } 2067 d.Sku = &sku 2068 } 2069 case "zones": 2070 if v != nil { 2071 var zones []string 2072 err = json.Unmarshal(*v, &zones) 2073 if err != nil { 2074 return err 2075 } 2076 d.Zones = &zones 2077 } 2078 case "properties": 2079 if v != nil { 2080 var diskProperties DiskProperties 2081 err = json.Unmarshal(*v, &diskProperties) 2082 if err != nil { 2083 return err 2084 } 2085 d.DiskProperties = &diskProperties 2086 } 2087 case "id": 2088 if v != nil { 2089 var ID string 2090 err = json.Unmarshal(*v, &ID) 2091 if err != nil { 2092 return err 2093 } 2094 d.ID = &ID 2095 } 2096 case "name": 2097 if v != nil { 2098 var name string 2099 err = json.Unmarshal(*v, &name) 2100 if err != nil { 2101 return err 2102 } 2103 d.Name = &name 2104 } 2105 case "type": 2106 if v != nil { 2107 var typeVar string 2108 err = json.Unmarshal(*v, &typeVar) 2109 if err != nil { 2110 return err 2111 } 2112 d.Type = &typeVar 2113 } 2114 case "location": 2115 if v != nil { 2116 var location string 2117 err = json.Unmarshal(*v, &location) 2118 if err != nil { 2119 return err 2120 } 2121 d.Location = &location 2122 } 2123 case "tags": 2124 if v != nil { 2125 var tags map[string]*string 2126 err = json.Unmarshal(*v, &tags) 2127 if err != nil { 2128 return err 2129 } 2130 d.Tags = tags 2131 } 2132 } 2133 } 2134 2135 return nil 2136} 2137 2138// DiskEncryptionSettings describes a Encryption Settings for a Disk 2139type DiskEncryptionSettings struct { 2140 // DiskEncryptionKey - Specifies the location of the disk encryption key, which is a Key Vault Secret. 2141 DiskEncryptionKey *KeyVaultSecretReference `json:"diskEncryptionKey,omitempty"` 2142 // KeyEncryptionKey - Specifies the location of the key encryption key in Key Vault. 2143 KeyEncryptionKey *KeyVaultKeyReference `json:"keyEncryptionKey,omitempty"` 2144 // Enabled - Specifies whether disk encryption should be enabled on the virtual machine. 2145 Enabled *bool `json:"enabled,omitempty"` 2146} 2147 2148// DiskInstanceView the instance view of the disk. 2149type DiskInstanceView struct { 2150 // Name - The disk name. 2151 Name *string `json:"name,omitempty"` 2152 // EncryptionSettings - Specifies the encryption settings for the OS Disk. <br><br> Minimum api-version: 2015-06-15 2153 EncryptionSettings *[]DiskEncryptionSettings `json:"encryptionSettings,omitempty"` 2154 // Statuses - The resource status information. 2155 Statuses *[]InstanceViewStatus `json:"statuses,omitempty"` 2156} 2157 2158// DiskList the List Disks operation response. 2159type DiskList struct { 2160 autorest.Response `json:"-"` 2161 // Value - A list of disks. 2162 Value *[]Disk `json:"value,omitempty"` 2163 // NextLink - The uri to fetch the next page of disks. Call ListNext() with this to fetch the next page of disks. 2164 NextLink *string `json:"nextLink,omitempty"` 2165} 2166 2167// DiskListIterator provides access to a complete listing of Disk values. 2168type DiskListIterator struct { 2169 i int 2170 page DiskListPage 2171} 2172 2173// Next advances to the next value. If there was an error making 2174// the request the iterator does not advance and the error is returned. 2175func (iter *DiskListIterator) Next() error { 2176 iter.i++ 2177 if iter.i < len(iter.page.Values()) { 2178 return nil 2179 } 2180 err := iter.page.Next() 2181 if err != nil { 2182 iter.i-- 2183 return err 2184 } 2185 iter.i = 0 2186 return nil 2187} 2188 2189// NotDone returns true if the enumeration should be started or is not yet complete. 2190func (iter DiskListIterator) NotDone() bool { 2191 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 2192} 2193 2194// Response returns the raw server response from the last page request. 2195func (iter DiskListIterator) Response() DiskList { 2196 return iter.page.Response() 2197} 2198 2199// Value returns the current value or a zero-initialized value if the 2200// iterator has advanced beyond the end of the collection. 2201func (iter DiskListIterator) Value() Disk { 2202 if !iter.page.NotDone() { 2203 return Disk{} 2204 } 2205 return iter.page.Values()[iter.i] 2206} 2207 2208// IsEmpty returns true if the ListResult contains no values. 2209func (dl DiskList) IsEmpty() bool { 2210 return dl.Value == nil || len(*dl.Value) == 0 2211} 2212 2213// diskListPreparer prepares a request to retrieve the next set of results. 2214// It returns nil if no more results exist. 2215func (dl DiskList) diskListPreparer() (*http.Request, error) { 2216 if dl.NextLink == nil || len(to.String(dl.NextLink)) < 1 { 2217 return nil, nil 2218 } 2219 return autorest.Prepare(&http.Request{}, 2220 autorest.AsJSON(), 2221 autorest.AsGet(), 2222 autorest.WithBaseURL(to.String(dl.NextLink))) 2223} 2224 2225// DiskListPage contains a page of Disk values. 2226type DiskListPage struct { 2227 fn func(DiskList) (DiskList, error) 2228 dl DiskList 2229} 2230 2231// Next advances to the next page of values. If there was an error making 2232// the request the page does not advance and the error is returned. 2233func (page *DiskListPage) Next() error { 2234 next, err := page.fn(page.dl) 2235 if err != nil { 2236 return err 2237 } 2238 page.dl = next 2239 return nil 2240} 2241 2242// NotDone returns true if the page enumeration should be started or is not yet complete. 2243func (page DiskListPage) NotDone() bool { 2244 return !page.dl.IsEmpty() 2245} 2246 2247// Response returns the raw server response from the last page request. 2248func (page DiskListPage) Response() DiskList { 2249 return page.dl 2250} 2251 2252// Values returns the slice of values for the current page or nil if there are no values. 2253func (page DiskListPage) Values() []Disk { 2254 if page.dl.IsEmpty() { 2255 return nil 2256 } 2257 return *page.dl.Value 2258} 2259 2260// DiskProperties disk resource properties. 2261type DiskProperties struct { 2262 // TimeCreated - The time when the disk was created. 2263 TimeCreated *date.Time `json:"timeCreated,omitempty"` 2264 // OsType - The Operating System type. Possible values include: 'Windows', 'Linux' 2265 OsType OperatingSystemTypes `json:"osType,omitempty"` 2266 // CreationData - Disk source information. CreationData information cannot be changed after the disk has been created. 2267 CreationData *CreationData `json:"creationData,omitempty"` 2268 // DiskSizeGB - If creationData.createOption is Empty, this field is mandatory and it indicates the size of the VHD to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size. 2269 DiskSizeGB *int32 `json:"diskSizeGB,omitempty"` 2270 // EncryptionSettings - Encryption settings for disk or snapshot 2271 EncryptionSettings *EncryptionSettings `json:"encryptionSettings,omitempty"` 2272 // ProvisioningState - The disk provisioning state. 2273 ProvisioningState *string `json:"provisioningState,omitempty"` 2274 // DiskIOPSReadWrite - The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes. 2275 DiskIOPSReadWrite *int64 `json:"diskIOPSReadWrite,omitempty"` 2276 // DiskMBpsReadWrite - The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10. 2277 DiskMBpsReadWrite *int32 `json:"diskMBpsReadWrite,omitempty"` 2278} 2279 2280// DisksCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running operation. 2281type DisksCreateOrUpdateFuture struct { 2282 azure.Future 2283} 2284 2285// Result returns the result of the asynchronous operation. 2286// If the operation has not completed it will return an error. 2287func (future *DisksCreateOrUpdateFuture) Result(client DisksClient) (d Disk, err error) { 2288 var done bool 2289 done, err = future.Done(client) 2290 if err != nil { 2291 err = autorest.NewErrorWithError(err, "compute.DisksCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 2292 return 2293 } 2294 if !done { 2295 err = azure.NewAsyncOpIncompleteError("compute.DisksCreateOrUpdateFuture") 2296 return 2297 } 2298 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 2299 if d.Response.Response, err = future.GetResult(sender); err == nil && d.Response.Response.StatusCode != http.StatusNoContent { 2300 d, err = client.CreateOrUpdateResponder(d.Response.Response) 2301 if err != nil { 2302 err = autorest.NewErrorWithError(err, "compute.DisksCreateOrUpdateFuture", "Result", d.Response.Response, "Failure responding to request") 2303 } 2304 } 2305 return 2306} 2307 2308// DisksDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 2309type DisksDeleteFuture struct { 2310 azure.Future 2311} 2312 2313// Result returns the result of the asynchronous operation. 2314// If the operation has not completed it will return an error. 2315func (future *DisksDeleteFuture) Result(client DisksClient) (ar autorest.Response, err error) { 2316 var done bool 2317 done, err = future.Done(client) 2318 if err != nil { 2319 err = autorest.NewErrorWithError(err, "compute.DisksDeleteFuture", "Result", future.Response(), "Polling failure") 2320 return 2321 } 2322 if !done { 2323 err = azure.NewAsyncOpIncompleteError("compute.DisksDeleteFuture") 2324 return 2325 } 2326 ar.Response = future.Response() 2327 return 2328} 2329 2330// DisksGrantAccessFuture an abstraction for monitoring and retrieving the results of a long-running operation. 2331type DisksGrantAccessFuture struct { 2332 azure.Future 2333} 2334 2335// Result returns the result of the asynchronous operation. 2336// If the operation has not completed it will return an error. 2337func (future *DisksGrantAccessFuture) Result(client DisksClient) (au AccessURI, err error) { 2338 var done bool 2339 done, err = future.Done(client) 2340 if err != nil { 2341 err = autorest.NewErrorWithError(err, "compute.DisksGrantAccessFuture", "Result", future.Response(), "Polling failure") 2342 return 2343 } 2344 if !done { 2345 err = azure.NewAsyncOpIncompleteError("compute.DisksGrantAccessFuture") 2346 return 2347 } 2348 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 2349 if au.Response.Response, err = future.GetResult(sender); err == nil && au.Response.Response.StatusCode != http.StatusNoContent { 2350 au, err = client.GrantAccessResponder(au.Response.Response) 2351 if err != nil { 2352 err = autorest.NewErrorWithError(err, "compute.DisksGrantAccessFuture", "Result", au.Response.Response, "Failure responding to request") 2353 } 2354 } 2355 return 2356} 2357 2358// DiskSku the disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, or UltraSSD_LRS. 2359type DiskSku struct { 2360 // Name - The sku name. Possible values include: 'StandardLRS', 'PremiumLRS', 'StandardSSDLRS', 'UltraSSDLRS' 2361 Name DiskStorageAccountTypes `json:"name,omitempty"` 2362 // Tier - The sku tier. 2363 Tier *string `json:"tier,omitempty"` 2364} 2365 2366// DisksRevokeAccessFuture an abstraction for monitoring and retrieving the results of a long-running operation. 2367type DisksRevokeAccessFuture struct { 2368 azure.Future 2369} 2370 2371// Result returns the result of the asynchronous operation. 2372// If the operation has not completed it will return an error. 2373func (future *DisksRevokeAccessFuture) Result(client DisksClient) (ar autorest.Response, err error) { 2374 var done bool 2375 done, err = future.Done(client) 2376 if err != nil { 2377 err = autorest.NewErrorWithError(err, "compute.DisksRevokeAccessFuture", "Result", future.Response(), "Polling failure") 2378 return 2379 } 2380 if !done { 2381 err = azure.NewAsyncOpIncompleteError("compute.DisksRevokeAccessFuture") 2382 return 2383 } 2384 ar.Response = future.Response() 2385 return 2386} 2387 2388// DisksUpdateFuture an abstraction for monitoring and retrieving the results of a long-running operation. 2389type DisksUpdateFuture struct { 2390 azure.Future 2391} 2392 2393// Result returns the result of the asynchronous operation. 2394// If the operation has not completed it will return an error. 2395func (future *DisksUpdateFuture) Result(client DisksClient) (d Disk, err error) { 2396 var done bool 2397 done, err = future.Done(client) 2398 if err != nil { 2399 err = autorest.NewErrorWithError(err, "compute.DisksUpdateFuture", "Result", future.Response(), "Polling failure") 2400 return 2401 } 2402 if !done { 2403 err = azure.NewAsyncOpIncompleteError("compute.DisksUpdateFuture") 2404 return 2405 } 2406 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 2407 if d.Response.Response, err = future.GetResult(sender); err == nil && d.Response.Response.StatusCode != http.StatusNoContent { 2408 d, err = client.UpdateResponder(d.Response.Response) 2409 if err != nil { 2410 err = autorest.NewErrorWithError(err, "compute.DisksUpdateFuture", "Result", d.Response.Response, "Failure responding to request") 2411 } 2412 } 2413 return 2414} 2415 2416// DiskUpdate disk update resource. 2417type DiskUpdate struct { 2418 *DiskUpdateProperties `json:"properties,omitempty"` 2419 // Tags - Resource tags 2420 Tags map[string]*string `json:"tags"` 2421 Sku *DiskSku `json:"sku,omitempty"` 2422} 2423 2424// MarshalJSON is the custom marshaler for DiskUpdate. 2425func (du DiskUpdate) MarshalJSON() ([]byte, error) { 2426 objectMap := make(map[string]interface{}) 2427 if du.DiskUpdateProperties != nil { 2428 objectMap["properties"] = du.DiskUpdateProperties 2429 } 2430 if du.Tags != nil { 2431 objectMap["tags"] = du.Tags 2432 } 2433 if du.Sku != nil { 2434 objectMap["sku"] = du.Sku 2435 } 2436 return json.Marshal(objectMap) 2437} 2438 2439// UnmarshalJSON is the custom unmarshaler for DiskUpdate struct. 2440func (du *DiskUpdate) UnmarshalJSON(body []byte) error { 2441 var m map[string]*json.RawMessage 2442 err := json.Unmarshal(body, &m) 2443 if err != nil { 2444 return err 2445 } 2446 for k, v := range m { 2447 switch k { 2448 case "properties": 2449 if v != nil { 2450 var diskUpdateProperties DiskUpdateProperties 2451 err = json.Unmarshal(*v, &diskUpdateProperties) 2452 if err != nil { 2453 return err 2454 } 2455 du.DiskUpdateProperties = &diskUpdateProperties 2456 } 2457 case "tags": 2458 if v != nil { 2459 var tags map[string]*string 2460 err = json.Unmarshal(*v, &tags) 2461 if err != nil { 2462 return err 2463 } 2464 du.Tags = tags 2465 } 2466 case "sku": 2467 if v != nil { 2468 var sku DiskSku 2469 err = json.Unmarshal(*v, &sku) 2470 if err != nil { 2471 return err 2472 } 2473 du.Sku = &sku 2474 } 2475 } 2476 } 2477 2478 return nil 2479} 2480 2481// DiskUpdateProperties disk resource update properties. 2482type DiskUpdateProperties struct { 2483 // OsType - the Operating System type. Possible values include: 'Windows', 'Linux' 2484 OsType OperatingSystemTypes `json:"osType,omitempty"` 2485 // DiskSizeGB - If creationData.createOption is Empty, this field is mandatory and it indicates the size of the VHD to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size. 2486 DiskSizeGB *int32 `json:"diskSizeGB,omitempty"` 2487 // EncryptionSettings - Encryption settings for disk or snapshot 2488 EncryptionSettings *EncryptionSettings `json:"encryptionSettings,omitempty"` 2489 // DiskIOPSReadWrite - The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes. 2490 DiskIOPSReadWrite *int64 `json:"diskIOPSReadWrite,omitempty"` 2491 // DiskMBpsReadWrite - The bandwidth allowed for this disk; only settable for UltraSSD disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 10. 2492 DiskMBpsReadWrite *int32 `json:"diskMBpsReadWrite,omitempty"` 2493} 2494 2495// EncryptionSettings encryption settings for disk or snapshot 2496type EncryptionSettings struct { 2497 // Enabled - Set this flag to true and provide DiskEncryptionKey and optional KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, the existing settings remain unchanged. 2498 Enabled *bool `json:"enabled,omitempty"` 2499 // DiskEncryptionKey - Key Vault Secret Url and vault id of the disk encryption key 2500 DiskEncryptionKey *KeyVaultAndSecretReference `json:"diskEncryptionKey,omitempty"` 2501 // KeyEncryptionKey - Key Vault Key Url and vault id of the key encryption key 2502 KeyEncryptionKey *KeyVaultAndKeyReference `json:"keyEncryptionKey,omitempty"` 2503} 2504 2505// GalleriesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 2506// operation. 2507type GalleriesCreateOrUpdateFuture struct { 2508 azure.Future 2509} 2510 2511// Result returns the result of the asynchronous operation. 2512// If the operation has not completed it will return an error. 2513func (future *GalleriesCreateOrUpdateFuture) Result(client GalleriesClient) (g Gallery, err error) { 2514 var done bool 2515 done, err = future.Done(client) 2516 if err != nil { 2517 err = autorest.NewErrorWithError(err, "compute.GalleriesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 2518 return 2519 } 2520 if !done { 2521 err = azure.NewAsyncOpIncompleteError("compute.GalleriesCreateOrUpdateFuture") 2522 return 2523 } 2524 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 2525 if g.Response.Response, err = future.GetResult(sender); err == nil && g.Response.Response.StatusCode != http.StatusNoContent { 2526 g, err = client.CreateOrUpdateResponder(g.Response.Response) 2527 if err != nil { 2528 err = autorest.NewErrorWithError(err, "compute.GalleriesCreateOrUpdateFuture", "Result", g.Response.Response, "Failure responding to request") 2529 } 2530 } 2531 return 2532} 2533 2534// GalleriesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 2535type GalleriesDeleteFuture struct { 2536 azure.Future 2537} 2538 2539// Result returns the result of the asynchronous operation. 2540// If the operation has not completed it will return an error. 2541func (future *GalleriesDeleteFuture) Result(client GalleriesClient) (ar autorest.Response, err error) { 2542 var done bool 2543 done, err = future.Done(client) 2544 if err != nil { 2545 err = autorest.NewErrorWithError(err, "compute.GalleriesDeleteFuture", "Result", future.Response(), "Polling failure") 2546 return 2547 } 2548 if !done { 2549 err = azure.NewAsyncOpIncompleteError("compute.GalleriesDeleteFuture") 2550 return 2551 } 2552 ar.Response = future.Response() 2553 return 2554} 2555 2556// Gallery specifies information about the Shared Image Gallery that you want to create or update. 2557type Gallery struct { 2558 autorest.Response `json:"-"` 2559 *GalleryProperties `json:"properties,omitempty"` 2560 // ID - Resource Id 2561 ID *string `json:"id,omitempty"` 2562 // Name - Resource name 2563 Name *string `json:"name,omitempty"` 2564 // Type - Resource type 2565 Type *string `json:"type,omitempty"` 2566 // Location - Resource location 2567 Location *string `json:"location,omitempty"` 2568 // Tags - Resource tags 2569 Tags map[string]*string `json:"tags"` 2570} 2571 2572// MarshalJSON is the custom marshaler for Gallery. 2573func (g Gallery) MarshalJSON() ([]byte, error) { 2574 objectMap := make(map[string]interface{}) 2575 if g.GalleryProperties != nil { 2576 objectMap["properties"] = g.GalleryProperties 2577 } 2578 if g.ID != nil { 2579 objectMap["id"] = g.ID 2580 } 2581 if g.Name != nil { 2582 objectMap["name"] = g.Name 2583 } 2584 if g.Type != nil { 2585 objectMap["type"] = g.Type 2586 } 2587 if g.Location != nil { 2588 objectMap["location"] = g.Location 2589 } 2590 if g.Tags != nil { 2591 objectMap["tags"] = g.Tags 2592 } 2593 return json.Marshal(objectMap) 2594} 2595 2596// UnmarshalJSON is the custom unmarshaler for Gallery struct. 2597func (g *Gallery) UnmarshalJSON(body []byte) error { 2598 var m map[string]*json.RawMessage 2599 err := json.Unmarshal(body, &m) 2600 if err != nil { 2601 return err 2602 } 2603 for k, v := range m { 2604 switch k { 2605 case "properties": 2606 if v != nil { 2607 var galleryProperties GalleryProperties 2608 err = json.Unmarshal(*v, &galleryProperties) 2609 if err != nil { 2610 return err 2611 } 2612 g.GalleryProperties = &galleryProperties 2613 } 2614 case "id": 2615 if v != nil { 2616 var ID string 2617 err = json.Unmarshal(*v, &ID) 2618 if err != nil { 2619 return err 2620 } 2621 g.ID = &ID 2622 } 2623 case "name": 2624 if v != nil { 2625 var name string 2626 err = json.Unmarshal(*v, &name) 2627 if err != nil { 2628 return err 2629 } 2630 g.Name = &name 2631 } 2632 case "type": 2633 if v != nil { 2634 var typeVar string 2635 err = json.Unmarshal(*v, &typeVar) 2636 if err != nil { 2637 return err 2638 } 2639 g.Type = &typeVar 2640 } 2641 case "location": 2642 if v != nil { 2643 var location string 2644 err = json.Unmarshal(*v, &location) 2645 if err != nil { 2646 return err 2647 } 2648 g.Location = &location 2649 } 2650 case "tags": 2651 if v != nil { 2652 var tags map[string]*string 2653 err = json.Unmarshal(*v, &tags) 2654 if err != nil { 2655 return err 2656 } 2657 g.Tags = tags 2658 } 2659 } 2660 } 2661 2662 return nil 2663} 2664 2665// GalleryArtifactPublishingProfileBase describes the basic gallery artifact publishing profile. 2666type GalleryArtifactPublishingProfileBase struct { 2667 // TargetRegions - The target regions where the Image Version is going to be replicated to. This property is updateable. 2668 TargetRegions *[]TargetRegion `json:"targetRegions,omitempty"` 2669 Source *GalleryArtifactSource `json:"source,omitempty"` 2670} 2671 2672// GalleryArtifactSource the source image from which the Image Version is going to be created. 2673type GalleryArtifactSource struct { 2674 ManagedImage *ManagedArtifact `json:"managedImage,omitempty"` 2675} 2676 2677// GalleryDataDiskImage this is the data disk image. 2678type GalleryDataDiskImage struct { 2679 // Lun - This property specifies the logical unit number of the data disk. This value is used to identify data disks within the Virtual Machine and therefore must be unique for each data disk attached to the Virtual Machine. 2680 Lun *int32 `json:"lun,omitempty"` 2681 // SizeInGB - This property indicates the size of the VHD to be created. 2682 SizeInGB *int32 `json:"sizeInGB,omitempty"` 2683 // HostCaching - The host caching of the disk. Valid values are 'None', 'ReadOnly', and 'ReadWrite'. Possible values include: 'HostCachingNone', 'HostCachingReadOnly', 'HostCachingReadWrite' 2684 HostCaching HostCaching `json:"hostCaching,omitempty"` 2685} 2686 2687// GalleryDiskImage this is the disk image base class. 2688type GalleryDiskImage struct { 2689 // SizeInGB - This property indicates the size of the VHD to be created. 2690 SizeInGB *int32 `json:"sizeInGB,omitempty"` 2691 // HostCaching - The host caching of the disk. Valid values are 'None', 'ReadOnly', and 'ReadWrite'. Possible values include: 'HostCachingNone', 'HostCachingReadOnly', 'HostCachingReadWrite' 2692 HostCaching HostCaching `json:"hostCaching,omitempty"` 2693} 2694 2695// GalleryIdentifier describes the gallery unique name. 2696type GalleryIdentifier struct { 2697 // UniqueName - The unique name of the Shared Image Gallery. This name is generated automatically by Azure. 2698 UniqueName *string `json:"uniqueName,omitempty"` 2699} 2700 2701// GalleryImage specifies information about the gallery Image Definition that you want to create or update. 2702type GalleryImage struct { 2703 autorest.Response `json:"-"` 2704 *GalleryImageProperties `json:"properties,omitempty"` 2705 // ID - Resource Id 2706 ID *string `json:"id,omitempty"` 2707 // Name - Resource name 2708 Name *string `json:"name,omitempty"` 2709 // Type - Resource type 2710 Type *string `json:"type,omitempty"` 2711 // Location - Resource location 2712 Location *string `json:"location,omitempty"` 2713 // Tags - Resource tags 2714 Tags map[string]*string `json:"tags"` 2715} 2716 2717// MarshalJSON is the custom marshaler for GalleryImage. 2718func (gi GalleryImage) MarshalJSON() ([]byte, error) { 2719 objectMap := make(map[string]interface{}) 2720 if gi.GalleryImageProperties != nil { 2721 objectMap["properties"] = gi.GalleryImageProperties 2722 } 2723 if gi.ID != nil { 2724 objectMap["id"] = gi.ID 2725 } 2726 if gi.Name != nil { 2727 objectMap["name"] = gi.Name 2728 } 2729 if gi.Type != nil { 2730 objectMap["type"] = gi.Type 2731 } 2732 if gi.Location != nil { 2733 objectMap["location"] = gi.Location 2734 } 2735 if gi.Tags != nil { 2736 objectMap["tags"] = gi.Tags 2737 } 2738 return json.Marshal(objectMap) 2739} 2740 2741// UnmarshalJSON is the custom unmarshaler for GalleryImage struct. 2742func (gi *GalleryImage) UnmarshalJSON(body []byte) error { 2743 var m map[string]*json.RawMessage 2744 err := json.Unmarshal(body, &m) 2745 if err != nil { 2746 return err 2747 } 2748 for k, v := range m { 2749 switch k { 2750 case "properties": 2751 if v != nil { 2752 var galleryImageProperties GalleryImageProperties 2753 err = json.Unmarshal(*v, &galleryImageProperties) 2754 if err != nil { 2755 return err 2756 } 2757 gi.GalleryImageProperties = &galleryImageProperties 2758 } 2759 case "id": 2760 if v != nil { 2761 var ID string 2762 err = json.Unmarshal(*v, &ID) 2763 if err != nil { 2764 return err 2765 } 2766 gi.ID = &ID 2767 } 2768 case "name": 2769 if v != nil { 2770 var name string 2771 err = json.Unmarshal(*v, &name) 2772 if err != nil { 2773 return err 2774 } 2775 gi.Name = &name 2776 } 2777 case "type": 2778 if v != nil { 2779 var typeVar string 2780 err = json.Unmarshal(*v, &typeVar) 2781 if err != nil { 2782 return err 2783 } 2784 gi.Type = &typeVar 2785 } 2786 case "location": 2787 if v != nil { 2788 var location string 2789 err = json.Unmarshal(*v, &location) 2790 if err != nil { 2791 return err 2792 } 2793 gi.Location = &location 2794 } 2795 case "tags": 2796 if v != nil { 2797 var tags map[string]*string 2798 err = json.Unmarshal(*v, &tags) 2799 if err != nil { 2800 return err 2801 } 2802 gi.Tags = tags 2803 } 2804 } 2805 } 2806 2807 return nil 2808} 2809 2810// GalleryImageIdentifier this is the gallery Image Definition identifier. 2811type GalleryImageIdentifier struct { 2812 // Publisher - The name of the gallery Image Definition publisher. 2813 Publisher *string `json:"publisher,omitempty"` 2814 // Offer - The name of the gallery Image Definition offer. 2815 Offer *string `json:"offer,omitempty"` 2816 // Sku - The name of the gallery Image Definition SKU. 2817 Sku *string `json:"sku,omitempty"` 2818} 2819 2820// GalleryImageList the List Gallery Images operation response. 2821type GalleryImageList struct { 2822 autorest.Response `json:"-"` 2823 // Value - A list of Shared Image Gallery images. 2824 Value *[]GalleryImage `json:"value,omitempty"` 2825 // NextLink - The uri to fetch the next page of Image Definitions in the Shared Image Gallery. Call ListNext() with this to fetch the next page of gallery Image Definitions. 2826 NextLink *string `json:"nextLink,omitempty"` 2827} 2828 2829// GalleryImageListIterator provides access to a complete listing of GalleryImage values. 2830type GalleryImageListIterator struct { 2831 i int 2832 page GalleryImageListPage 2833} 2834 2835// Next advances to the next value. If there was an error making 2836// the request the iterator does not advance and the error is returned. 2837func (iter *GalleryImageListIterator) Next() error { 2838 iter.i++ 2839 if iter.i < len(iter.page.Values()) { 2840 return nil 2841 } 2842 err := iter.page.Next() 2843 if err != nil { 2844 iter.i-- 2845 return err 2846 } 2847 iter.i = 0 2848 return nil 2849} 2850 2851// NotDone returns true if the enumeration should be started or is not yet complete. 2852func (iter GalleryImageListIterator) NotDone() bool { 2853 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 2854} 2855 2856// Response returns the raw server response from the last page request. 2857func (iter GalleryImageListIterator) Response() GalleryImageList { 2858 return iter.page.Response() 2859} 2860 2861// Value returns the current value or a zero-initialized value if the 2862// iterator has advanced beyond the end of the collection. 2863func (iter GalleryImageListIterator) Value() GalleryImage { 2864 if !iter.page.NotDone() { 2865 return GalleryImage{} 2866 } 2867 return iter.page.Values()[iter.i] 2868} 2869 2870// IsEmpty returns true if the ListResult contains no values. 2871func (gil GalleryImageList) IsEmpty() bool { 2872 return gil.Value == nil || len(*gil.Value) == 0 2873} 2874 2875// galleryImageListPreparer prepares a request to retrieve the next set of results. 2876// It returns nil if no more results exist. 2877func (gil GalleryImageList) galleryImageListPreparer() (*http.Request, error) { 2878 if gil.NextLink == nil || len(to.String(gil.NextLink)) < 1 { 2879 return nil, nil 2880 } 2881 return autorest.Prepare(&http.Request{}, 2882 autorest.AsJSON(), 2883 autorest.AsGet(), 2884 autorest.WithBaseURL(to.String(gil.NextLink))) 2885} 2886 2887// GalleryImageListPage contains a page of GalleryImage values. 2888type GalleryImageListPage struct { 2889 fn func(GalleryImageList) (GalleryImageList, error) 2890 gil GalleryImageList 2891} 2892 2893// Next advances to the next page of values. If there was an error making 2894// the request the page does not advance and the error is returned. 2895func (page *GalleryImageListPage) Next() error { 2896 next, err := page.fn(page.gil) 2897 if err != nil { 2898 return err 2899 } 2900 page.gil = next 2901 return nil 2902} 2903 2904// NotDone returns true if the page enumeration should be started or is not yet complete. 2905func (page GalleryImageListPage) NotDone() bool { 2906 return !page.gil.IsEmpty() 2907} 2908 2909// Response returns the raw server response from the last page request. 2910func (page GalleryImageListPage) Response() GalleryImageList { 2911 return page.gil 2912} 2913 2914// Values returns the slice of values for the current page or nil if there are no values. 2915func (page GalleryImageListPage) Values() []GalleryImage { 2916 if page.gil.IsEmpty() { 2917 return nil 2918 } 2919 return *page.gil.Value 2920} 2921 2922// GalleryImageProperties describes the properties of a gallery Image Definition. 2923type GalleryImageProperties struct { 2924 // Description - The description of this gallery Image Definition resource. This property is updateable. 2925 Description *string `json:"description,omitempty"` 2926 // Eula - The Eula agreement for the gallery Image Definition. 2927 Eula *string `json:"eula,omitempty"` 2928 // PrivacyStatementURI - The privacy statement uri. 2929 PrivacyStatementURI *string `json:"privacyStatementUri,omitempty"` 2930 // ReleaseNoteURI - The release note uri. 2931 ReleaseNoteURI *string `json:"releaseNoteUri,omitempty"` 2932 // OsType - This property allows you to specify the type of the OS that is included in the disk when creating a VM from a managed image. <br><br> Possible values are: <br><br> **Windows** <br><br> **Linux**. Possible values include: 'Windows', 'Linux' 2933 OsType OperatingSystemTypes `json:"osType,omitempty"` 2934 // OsState - The allowed values for OS State are 'Generalized'. Possible values include: 'Generalized', 'Specialized' 2935 OsState OperatingSystemStateTypes `json:"osState,omitempty"` 2936 // EndOfLifeDate - The end of life date of the gallery Image Definition. This property can be used for decommissioning purposes. This property is updateable. 2937 EndOfLifeDate *date.Time `json:"endOfLifeDate,omitempty"` 2938 Identifier *GalleryImageIdentifier `json:"identifier,omitempty"` 2939 Recommended *RecommendedMachineConfiguration `json:"recommended,omitempty"` 2940 Disallowed *Disallowed `json:"disallowed,omitempty"` 2941 PurchasePlan *ImagePurchasePlan `json:"purchasePlan,omitempty"` 2942 // ProvisioningState - The provisioning state, which only appears in the response. Possible values include: 'ProvisioningState1Creating', 'ProvisioningState1Updating', 'ProvisioningState1Failed', 'ProvisioningState1Succeeded', 'ProvisioningState1Deleting', 'ProvisioningState1Migrating' 2943 ProvisioningState ProvisioningState1 `json:"provisioningState,omitempty"` 2944} 2945 2946// GalleryImagesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 2947// operation. 2948type GalleryImagesCreateOrUpdateFuture struct { 2949 azure.Future 2950} 2951 2952// Result returns the result of the asynchronous operation. 2953// If the operation has not completed it will return an error. 2954func (future *GalleryImagesCreateOrUpdateFuture) Result(client GalleryImagesClient) (gi GalleryImage, err error) { 2955 var done bool 2956 done, err = future.Done(client) 2957 if err != nil { 2958 err = autorest.NewErrorWithError(err, "compute.GalleryImagesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 2959 return 2960 } 2961 if !done { 2962 err = azure.NewAsyncOpIncompleteError("compute.GalleryImagesCreateOrUpdateFuture") 2963 return 2964 } 2965 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 2966 if gi.Response.Response, err = future.GetResult(sender); err == nil && gi.Response.Response.StatusCode != http.StatusNoContent { 2967 gi, err = client.CreateOrUpdateResponder(gi.Response.Response) 2968 if err != nil { 2969 err = autorest.NewErrorWithError(err, "compute.GalleryImagesCreateOrUpdateFuture", "Result", gi.Response.Response, "Failure responding to request") 2970 } 2971 } 2972 return 2973} 2974 2975// GalleryImagesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 2976type GalleryImagesDeleteFuture struct { 2977 azure.Future 2978} 2979 2980// Result returns the result of the asynchronous operation. 2981// If the operation has not completed it will return an error. 2982func (future *GalleryImagesDeleteFuture) Result(client GalleryImagesClient) (ar autorest.Response, err error) { 2983 var done bool 2984 done, err = future.Done(client) 2985 if err != nil { 2986 err = autorest.NewErrorWithError(err, "compute.GalleryImagesDeleteFuture", "Result", future.Response(), "Polling failure") 2987 return 2988 } 2989 if !done { 2990 err = azure.NewAsyncOpIncompleteError("compute.GalleryImagesDeleteFuture") 2991 return 2992 } 2993 ar.Response = future.Response() 2994 return 2995} 2996 2997// GalleryImageVersion specifies information about the gallery Image Version that you want to create or update. 2998type GalleryImageVersion struct { 2999 autorest.Response `json:"-"` 3000 *GalleryImageVersionProperties `json:"properties,omitempty"` 3001 // ID - Resource Id 3002 ID *string `json:"id,omitempty"` 3003 // Name - Resource name 3004 Name *string `json:"name,omitempty"` 3005 // Type - Resource type 3006 Type *string `json:"type,omitempty"` 3007 // Location - Resource location 3008 Location *string `json:"location,omitempty"` 3009 // Tags - Resource tags 3010 Tags map[string]*string `json:"tags"` 3011} 3012 3013// MarshalJSON is the custom marshaler for GalleryImageVersion. 3014func (giv GalleryImageVersion) MarshalJSON() ([]byte, error) { 3015 objectMap := make(map[string]interface{}) 3016 if giv.GalleryImageVersionProperties != nil { 3017 objectMap["properties"] = giv.GalleryImageVersionProperties 3018 } 3019 if giv.ID != nil { 3020 objectMap["id"] = giv.ID 3021 } 3022 if giv.Name != nil { 3023 objectMap["name"] = giv.Name 3024 } 3025 if giv.Type != nil { 3026 objectMap["type"] = giv.Type 3027 } 3028 if giv.Location != nil { 3029 objectMap["location"] = giv.Location 3030 } 3031 if giv.Tags != nil { 3032 objectMap["tags"] = giv.Tags 3033 } 3034 return json.Marshal(objectMap) 3035} 3036 3037// UnmarshalJSON is the custom unmarshaler for GalleryImageVersion struct. 3038func (giv *GalleryImageVersion) UnmarshalJSON(body []byte) error { 3039 var m map[string]*json.RawMessage 3040 err := json.Unmarshal(body, &m) 3041 if err != nil { 3042 return err 3043 } 3044 for k, v := range m { 3045 switch k { 3046 case "properties": 3047 if v != nil { 3048 var galleryImageVersionProperties GalleryImageVersionProperties 3049 err = json.Unmarshal(*v, &galleryImageVersionProperties) 3050 if err != nil { 3051 return err 3052 } 3053 giv.GalleryImageVersionProperties = &galleryImageVersionProperties 3054 } 3055 case "id": 3056 if v != nil { 3057 var ID string 3058 err = json.Unmarshal(*v, &ID) 3059 if err != nil { 3060 return err 3061 } 3062 giv.ID = &ID 3063 } 3064 case "name": 3065 if v != nil { 3066 var name string 3067 err = json.Unmarshal(*v, &name) 3068 if err != nil { 3069 return err 3070 } 3071 giv.Name = &name 3072 } 3073 case "type": 3074 if v != nil { 3075 var typeVar string 3076 err = json.Unmarshal(*v, &typeVar) 3077 if err != nil { 3078 return err 3079 } 3080 giv.Type = &typeVar 3081 } 3082 case "location": 3083 if v != nil { 3084 var location string 3085 err = json.Unmarshal(*v, &location) 3086 if err != nil { 3087 return err 3088 } 3089 giv.Location = &location 3090 } 3091 case "tags": 3092 if v != nil { 3093 var tags map[string]*string 3094 err = json.Unmarshal(*v, &tags) 3095 if err != nil { 3096 return err 3097 } 3098 giv.Tags = tags 3099 } 3100 } 3101 } 3102 3103 return nil 3104} 3105 3106// GalleryImageVersionList the List Gallery Image version operation response. 3107type GalleryImageVersionList struct { 3108 autorest.Response `json:"-"` 3109 // Value - A list of gallery Image Versions. 3110 Value *[]GalleryImageVersion `json:"value,omitempty"` 3111 // NextLink - The uri to fetch the next page of gallery Image Versions. Call ListNext() with this to fetch the next page of gallery Image Versions. 3112 NextLink *string `json:"nextLink,omitempty"` 3113} 3114 3115// GalleryImageVersionListIterator provides access to a complete listing of GalleryImageVersion values. 3116type GalleryImageVersionListIterator struct { 3117 i int 3118 page GalleryImageVersionListPage 3119} 3120 3121// Next advances to the next value. If there was an error making 3122// the request the iterator does not advance and the error is returned. 3123func (iter *GalleryImageVersionListIterator) Next() error { 3124 iter.i++ 3125 if iter.i < len(iter.page.Values()) { 3126 return nil 3127 } 3128 err := iter.page.Next() 3129 if err != nil { 3130 iter.i-- 3131 return err 3132 } 3133 iter.i = 0 3134 return nil 3135} 3136 3137// NotDone returns true if the enumeration should be started or is not yet complete. 3138func (iter GalleryImageVersionListIterator) NotDone() bool { 3139 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 3140} 3141 3142// Response returns the raw server response from the last page request. 3143func (iter GalleryImageVersionListIterator) Response() GalleryImageVersionList { 3144 return iter.page.Response() 3145} 3146 3147// Value returns the current value or a zero-initialized value if the 3148// iterator has advanced beyond the end of the collection. 3149func (iter GalleryImageVersionListIterator) Value() GalleryImageVersion { 3150 if !iter.page.NotDone() { 3151 return GalleryImageVersion{} 3152 } 3153 return iter.page.Values()[iter.i] 3154} 3155 3156// IsEmpty returns true if the ListResult contains no values. 3157func (givl GalleryImageVersionList) IsEmpty() bool { 3158 return givl.Value == nil || len(*givl.Value) == 0 3159} 3160 3161// galleryImageVersionListPreparer prepares a request to retrieve the next set of results. 3162// It returns nil if no more results exist. 3163func (givl GalleryImageVersionList) galleryImageVersionListPreparer() (*http.Request, error) { 3164 if givl.NextLink == nil || len(to.String(givl.NextLink)) < 1 { 3165 return nil, nil 3166 } 3167 return autorest.Prepare(&http.Request{}, 3168 autorest.AsJSON(), 3169 autorest.AsGet(), 3170 autorest.WithBaseURL(to.String(givl.NextLink))) 3171} 3172 3173// GalleryImageVersionListPage contains a page of GalleryImageVersion values. 3174type GalleryImageVersionListPage struct { 3175 fn func(GalleryImageVersionList) (GalleryImageVersionList, error) 3176 givl GalleryImageVersionList 3177} 3178 3179// Next advances to the next page of values. If there was an error making 3180// the request the page does not advance and the error is returned. 3181func (page *GalleryImageVersionListPage) Next() error { 3182 next, err := page.fn(page.givl) 3183 if err != nil { 3184 return err 3185 } 3186 page.givl = next 3187 return nil 3188} 3189 3190// NotDone returns true if the page enumeration should be started or is not yet complete. 3191func (page GalleryImageVersionListPage) NotDone() bool { 3192 return !page.givl.IsEmpty() 3193} 3194 3195// Response returns the raw server response from the last page request. 3196func (page GalleryImageVersionListPage) Response() GalleryImageVersionList { 3197 return page.givl 3198} 3199 3200// Values returns the slice of values for the current page or nil if there are no values. 3201func (page GalleryImageVersionListPage) Values() []GalleryImageVersion { 3202 if page.givl.IsEmpty() { 3203 return nil 3204 } 3205 return *page.givl.Value 3206} 3207 3208// GalleryImageVersionProperties describes the properties of a gallery Image Version. 3209type GalleryImageVersionProperties struct { 3210 PublishingProfile *GalleryImageVersionPublishingProfile `json:"publishingProfile,omitempty"` 3211 // ProvisioningState - The provisioning state, which only appears in the response. Possible values include: 'ProvisioningState2Creating', 'ProvisioningState2Updating', 'ProvisioningState2Failed', 'ProvisioningState2Succeeded', 'ProvisioningState2Deleting', 'ProvisioningState2Migrating' 3212 ProvisioningState ProvisioningState2 `json:"provisioningState,omitempty"` 3213 StorageProfile *GalleryImageVersionStorageProfile `json:"storageProfile,omitempty"` 3214 ReplicationStatus *ReplicationStatus `json:"replicationStatus,omitempty"` 3215} 3216 3217// GalleryImageVersionPublishingProfile the publishing profile of a gallery Image Version. 3218type GalleryImageVersionPublishingProfile struct { 3219 // ReplicaCount - The number of replicas of the Image Version to be created per region. This property would take effect for a region when regionalReplicaCount is not specified. This property is updateable. 3220 ReplicaCount *int32 `json:"replicaCount,omitempty"` 3221 // ExcludeFromLatest - If set to true, Virtual Machines deployed from the latest version of the Image Definition won't use this Image Version. 3222 ExcludeFromLatest *bool `json:"excludeFromLatest,omitempty"` 3223 // PublishedDate - The timestamp for when the gallery Image Version is published. 3224 PublishedDate *date.Time `json:"publishedDate,omitempty"` 3225 // EndOfLifeDate - The end of life date of the gallery Image Version. This property can be used for decommissioning purposes. This property is updateable. 3226 EndOfLifeDate *date.Time `json:"endOfLifeDate,omitempty"` 3227 // TargetRegions - The target regions where the Image Version is going to be replicated to. This property is updateable. 3228 TargetRegions *[]TargetRegion `json:"targetRegions,omitempty"` 3229 Source *GalleryArtifactSource `json:"source,omitempty"` 3230} 3231 3232// GalleryImageVersionsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 3233// long-running operation. 3234type GalleryImageVersionsCreateOrUpdateFuture struct { 3235 azure.Future 3236} 3237 3238// Result returns the result of the asynchronous operation. 3239// If the operation has not completed it will return an error. 3240func (future *GalleryImageVersionsCreateOrUpdateFuture) Result(client GalleryImageVersionsClient) (giv GalleryImageVersion, err error) { 3241 var done bool 3242 done, err = future.Done(client) 3243 if err != nil { 3244 err = autorest.NewErrorWithError(err, "compute.GalleryImageVersionsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 3245 return 3246 } 3247 if !done { 3248 err = azure.NewAsyncOpIncompleteError("compute.GalleryImageVersionsCreateOrUpdateFuture") 3249 return 3250 } 3251 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 3252 if giv.Response.Response, err = future.GetResult(sender); err == nil && giv.Response.Response.StatusCode != http.StatusNoContent { 3253 giv, err = client.CreateOrUpdateResponder(giv.Response.Response) 3254 if err != nil { 3255 err = autorest.NewErrorWithError(err, "compute.GalleryImageVersionsCreateOrUpdateFuture", "Result", giv.Response.Response, "Failure responding to request") 3256 } 3257 } 3258 return 3259} 3260 3261// GalleryImageVersionsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 3262// operation. 3263type GalleryImageVersionsDeleteFuture struct { 3264 azure.Future 3265} 3266 3267// Result returns the result of the asynchronous operation. 3268// If the operation has not completed it will return an error. 3269func (future *GalleryImageVersionsDeleteFuture) Result(client GalleryImageVersionsClient) (ar autorest.Response, err error) { 3270 var done bool 3271 done, err = future.Done(client) 3272 if err != nil { 3273 err = autorest.NewErrorWithError(err, "compute.GalleryImageVersionsDeleteFuture", "Result", future.Response(), "Polling failure") 3274 return 3275 } 3276 if !done { 3277 err = azure.NewAsyncOpIncompleteError("compute.GalleryImageVersionsDeleteFuture") 3278 return 3279 } 3280 ar.Response = future.Response() 3281 return 3282} 3283 3284// GalleryImageVersionStorageProfile this is the storage profile of a gallery Image Version. 3285type GalleryImageVersionStorageProfile struct { 3286 OsDiskImage *GalleryOSDiskImage `json:"osDiskImage,omitempty"` 3287 // DataDiskImages - A list of data disk images. 3288 DataDiskImages *[]GalleryDataDiskImage `json:"dataDiskImages,omitempty"` 3289} 3290 3291// GalleryList the List Galleries operation response. 3292type GalleryList struct { 3293 autorest.Response `json:"-"` 3294 // Value - A list of galleries. 3295 Value *[]Gallery `json:"value,omitempty"` 3296 // NextLink - The uri to fetch the next page of galleries. Call ListNext() with this to fetch the next page of galleries. 3297 NextLink *string `json:"nextLink,omitempty"` 3298} 3299 3300// GalleryListIterator provides access to a complete listing of Gallery values. 3301type GalleryListIterator struct { 3302 i int 3303 page GalleryListPage 3304} 3305 3306// Next advances to the next value. If there was an error making 3307// the request the iterator does not advance and the error is returned. 3308func (iter *GalleryListIterator) Next() error { 3309 iter.i++ 3310 if iter.i < len(iter.page.Values()) { 3311 return nil 3312 } 3313 err := iter.page.Next() 3314 if err != nil { 3315 iter.i-- 3316 return err 3317 } 3318 iter.i = 0 3319 return nil 3320} 3321 3322// NotDone returns true if the enumeration should be started or is not yet complete. 3323func (iter GalleryListIterator) NotDone() bool { 3324 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 3325} 3326 3327// Response returns the raw server response from the last page request. 3328func (iter GalleryListIterator) Response() GalleryList { 3329 return iter.page.Response() 3330} 3331 3332// Value returns the current value or a zero-initialized value if the 3333// iterator has advanced beyond the end of the collection. 3334func (iter GalleryListIterator) Value() Gallery { 3335 if !iter.page.NotDone() { 3336 return Gallery{} 3337 } 3338 return iter.page.Values()[iter.i] 3339} 3340 3341// IsEmpty returns true if the ListResult contains no values. 3342func (gl GalleryList) IsEmpty() bool { 3343 return gl.Value == nil || len(*gl.Value) == 0 3344} 3345 3346// galleryListPreparer prepares a request to retrieve the next set of results. 3347// It returns nil if no more results exist. 3348func (gl GalleryList) galleryListPreparer() (*http.Request, error) { 3349 if gl.NextLink == nil || len(to.String(gl.NextLink)) < 1 { 3350 return nil, nil 3351 } 3352 return autorest.Prepare(&http.Request{}, 3353 autorest.AsJSON(), 3354 autorest.AsGet(), 3355 autorest.WithBaseURL(to.String(gl.NextLink))) 3356} 3357 3358// GalleryListPage contains a page of Gallery values. 3359type GalleryListPage struct { 3360 fn func(GalleryList) (GalleryList, error) 3361 gl GalleryList 3362} 3363 3364// Next advances to the next page of values. If there was an error making 3365// the request the page does not advance and the error is returned. 3366func (page *GalleryListPage) Next() error { 3367 next, err := page.fn(page.gl) 3368 if err != nil { 3369 return err 3370 } 3371 page.gl = next 3372 return nil 3373} 3374 3375// NotDone returns true if the page enumeration should be started or is not yet complete. 3376func (page GalleryListPage) NotDone() bool { 3377 return !page.gl.IsEmpty() 3378} 3379 3380// Response returns the raw server response from the last page request. 3381func (page GalleryListPage) Response() GalleryList { 3382 return page.gl 3383} 3384 3385// Values returns the slice of values for the current page or nil if there are no values. 3386func (page GalleryListPage) Values() []Gallery { 3387 if page.gl.IsEmpty() { 3388 return nil 3389 } 3390 return *page.gl.Value 3391} 3392 3393// GalleryOSDiskImage this is the OS disk image. 3394type GalleryOSDiskImage struct { 3395 // SizeInGB - This property indicates the size of the VHD to be created. 3396 SizeInGB *int32 `json:"sizeInGB,omitempty"` 3397 // HostCaching - The host caching of the disk. Valid values are 'None', 'ReadOnly', and 'ReadWrite'. Possible values include: 'HostCachingNone', 'HostCachingReadOnly', 'HostCachingReadWrite' 3398 HostCaching HostCaching `json:"hostCaching,omitempty"` 3399} 3400 3401// GalleryProperties describes the properties of a Shared Image Gallery. 3402type GalleryProperties struct { 3403 // Description - The description of this Shared Image Gallery resource. This property is updateable. 3404 Description *string `json:"description,omitempty"` 3405 Identifier *GalleryIdentifier `json:"identifier,omitempty"` 3406 // ProvisioningState - The provisioning state, which only appears in the response. Possible values include: 'ProvisioningStateCreating', 'ProvisioningStateUpdating', 'ProvisioningStateFailed', 'ProvisioningStateSucceeded', 'ProvisioningStateDeleting', 'ProvisioningStateMigrating' 3407 ProvisioningState ProvisioningState `json:"provisioningState,omitempty"` 3408} 3409 3410// GrantAccessData data used for requesting a SAS. 3411type GrantAccessData struct { 3412 // Access - Possible values include: 'None', 'Read' 3413 Access AccessLevel `json:"access,omitempty"` 3414 // DurationInSeconds - Time duration in seconds until the SAS access expires. 3415 DurationInSeconds *int32 `json:"durationInSeconds,omitempty"` 3416} 3417 3418// HardwareProfile specifies the hardware settings for the virtual machine. 3419type HardwareProfile struct { 3420 // VMSize - 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). <br><br> The available VM sizes depend on region and availability set. For a list of available sizes use these APIs: <br><br> [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes) <br><br> [List all available virtual machine sizes in a region](https://docs.microsoft.com/rest/api/compute/virtualmachinesizes/list) <br><br> [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). Possible values include: 'VirtualMachineSizeTypesBasicA0', 'VirtualMachineSizeTypesBasicA1', 'VirtualMachineSizeTypesBasicA2', 'VirtualMachineSizeTypesBasicA3', 'VirtualMachineSizeTypesBasicA4', 'VirtualMachineSizeTypesStandardA0', 'VirtualMachineSizeTypesStandardA1', 'VirtualMachineSizeTypesStandardA2', 'VirtualMachineSizeTypesStandardA3', 'VirtualMachineSizeTypesStandardA4', 'VirtualMachineSizeTypesStandardA5', 'VirtualMachineSizeTypesStandardA6', 'VirtualMachineSizeTypesStandardA7', 'VirtualMachineSizeTypesStandardA8', 'VirtualMachineSizeTypesStandardA9', 'VirtualMachineSizeTypesStandardA10', 'VirtualMachineSizeTypesStandardA11', 'VirtualMachineSizeTypesStandardA1V2', 'VirtualMachineSizeTypesStandardA2V2', 'VirtualMachineSizeTypesStandardA4V2', 'VirtualMachineSizeTypesStandardA8V2', 'VirtualMachineSizeTypesStandardA2mV2', 'VirtualMachineSizeTypesStandardA4mV2', 'VirtualMachineSizeTypesStandardA8mV2', 'VirtualMachineSizeTypesStandardB1s', 'VirtualMachineSizeTypesStandardB1ms', 'VirtualMachineSizeTypesStandardB2s', 'VirtualMachineSizeTypesStandardB2ms', 'VirtualMachineSizeTypesStandardB4ms', 'VirtualMachineSizeTypesStandardB8ms', 'VirtualMachineSizeTypesStandardD1', 'VirtualMachineSizeTypesStandardD2', 'VirtualMachineSizeTypesStandardD3', 'VirtualMachineSizeTypesStandardD4', 'VirtualMachineSizeTypesStandardD11', 'VirtualMachineSizeTypesStandardD12', 'VirtualMachineSizeTypesStandardD13', 'VirtualMachineSizeTypesStandardD14', 'VirtualMachineSizeTypesStandardD1V2', 'VirtualMachineSizeTypesStandardD2V2', 'VirtualMachineSizeTypesStandardD3V2', 'VirtualMachineSizeTypesStandardD4V2', 'VirtualMachineSizeTypesStandardD5V2', 'VirtualMachineSizeTypesStandardD2V3', 'VirtualMachineSizeTypesStandardD4V3', 'VirtualMachineSizeTypesStandardD8V3', 'VirtualMachineSizeTypesStandardD16V3', 'VirtualMachineSizeTypesStandardD32V3', 'VirtualMachineSizeTypesStandardD64V3', 'VirtualMachineSizeTypesStandardD2sV3', 'VirtualMachineSizeTypesStandardD4sV3', 'VirtualMachineSizeTypesStandardD8sV3', 'VirtualMachineSizeTypesStandardD16sV3', 'VirtualMachineSizeTypesStandardD32sV3', 'VirtualMachineSizeTypesStandardD64sV3', 'VirtualMachineSizeTypesStandardD11V2', 'VirtualMachineSizeTypesStandardD12V2', 'VirtualMachineSizeTypesStandardD13V2', 'VirtualMachineSizeTypesStandardD14V2', 'VirtualMachineSizeTypesStandardD15V2', 'VirtualMachineSizeTypesStandardDS1', 'VirtualMachineSizeTypesStandardDS2', 'VirtualMachineSizeTypesStandardDS3', 'VirtualMachineSizeTypesStandardDS4', 'VirtualMachineSizeTypesStandardDS11', 'VirtualMachineSizeTypesStandardDS12', 'VirtualMachineSizeTypesStandardDS13', 'VirtualMachineSizeTypesStandardDS14', 'VirtualMachineSizeTypesStandardDS1V2', 'VirtualMachineSizeTypesStandardDS2V2', 'VirtualMachineSizeTypesStandardDS3V2', 'VirtualMachineSizeTypesStandardDS4V2', 'VirtualMachineSizeTypesStandardDS5V2', 'VirtualMachineSizeTypesStandardDS11V2', 'VirtualMachineSizeTypesStandardDS12V2', 'VirtualMachineSizeTypesStandardDS13V2', 'VirtualMachineSizeTypesStandardDS14V2', 'VirtualMachineSizeTypesStandardDS15V2', 'VirtualMachineSizeTypesStandardDS134V2', 'VirtualMachineSizeTypesStandardDS132V2', 'VirtualMachineSizeTypesStandardDS148V2', 'VirtualMachineSizeTypesStandardDS144V2', 'VirtualMachineSizeTypesStandardE2V3', 'VirtualMachineSizeTypesStandardE4V3', 'VirtualMachineSizeTypesStandardE8V3', 'VirtualMachineSizeTypesStandardE16V3', 'VirtualMachineSizeTypesStandardE32V3', 'VirtualMachineSizeTypesStandardE64V3', 'VirtualMachineSizeTypesStandardE2sV3', 'VirtualMachineSizeTypesStandardE4sV3', 'VirtualMachineSizeTypesStandardE8sV3', 'VirtualMachineSizeTypesStandardE16sV3', 'VirtualMachineSizeTypesStandardE32sV3', 'VirtualMachineSizeTypesStandardE64sV3', 'VirtualMachineSizeTypesStandardE3216V3', 'VirtualMachineSizeTypesStandardE328sV3', 'VirtualMachineSizeTypesStandardE6432sV3', 'VirtualMachineSizeTypesStandardE6416sV3', 'VirtualMachineSizeTypesStandardF1', 'VirtualMachineSizeTypesStandardF2', 'VirtualMachineSizeTypesStandardF4', 'VirtualMachineSizeTypesStandardF8', 'VirtualMachineSizeTypesStandardF16', 'VirtualMachineSizeTypesStandardF1s', 'VirtualMachineSizeTypesStandardF2s', 'VirtualMachineSizeTypesStandardF4s', 'VirtualMachineSizeTypesStandardF8s', 'VirtualMachineSizeTypesStandardF16s', 'VirtualMachineSizeTypesStandardF2sV2', 'VirtualMachineSizeTypesStandardF4sV2', 'VirtualMachineSizeTypesStandardF8sV2', 'VirtualMachineSizeTypesStandardF16sV2', 'VirtualMachineSizeTypesStandardF32sV2', 'VirtualMachineSizeTypesStandardF64sV2', 'VirtualMachineSizeTypesStandardF72sV2', 'VirtualMachineSizeTypesStandardG1', 'VirtualMachineSizeTypesStandardG2', 'VirtualMachineSizeTypesStandardG3', 'VirtualMachineSizeTypesStandardG4', 'VirtualMachineSizeTypesStandardG5', 'VirtualMachineSizeTypesStandardGS1', 'VirtualMachineSizeTypesStandardGS2', 'VirtualMachineSizeTypesStandardGS3', 'VirtualMachineSizeTypesStandardGS4', 'VirtualMachineSizeTypesStandardGS5', 'VirtualMachineSizeTypesStandardGS48', 'VirtualMachineSizeTypesStandardGS44', 'VirtualMachineSizeTypesStandardGS516', 'VirtualMachineSizeTypesStandardGS58', 'VirtualMachineSizeTypesStandardH8', 'VirtualMachineSizeTypesStandardH16', 'VirtualMachineSizeTypesStandardH8m', 'VirtualMachineSizeTypesStandardH16m', 'VirtualMachineSizeTypesStandardH16r', 'VirtualMachineSizeTypesStandardH16mr', 'VirtualMachineSizeTypesStandardL4s', 'VirtualMachineSizeTypesStandardL8s', 'VirtualMachineSizeTypesStandardL16s', 'VirtualMachineSizeTypesStandardL32s', 'VirtualMachineSizeTypesStandardM64s', 'VirtualMachineSizeTypesStandardM64ms', 'VirtualMachineSizeTypesStandardM128s', 'VirtualMachineSizeTypesStandardM128ms', 'VirtualMachineSizeTypesStandardM6432ms', 'VirtualMachineSizeTypesStandardM6416ms', 'VirtualMachineSizeTypesStandardM12864ms', 'VirtualMachineSizeTypesStandardM12832ms', 'VirtualMachineSizeTypesStandardNC6', 'VirtualMachineSizeTypesStandardNC12', 'VirtualMachineSizeTypesStandardNC24', 'VirtualMachineSizeTypesStandardNC24r', 'VirtualMachineSizeTypesStandardNC6sV2', 'VirtualMachineSizeTypesStandardNC12sV2', 'VirtualMachineSizeTypesStandardNC24sV2', 'VirtualMachineSizeTypesStandardNC24rsV2', 'VirtualMachineSizeTypesStandardNC6sV3', 'VirtualMachineSizeTypesStandardNC12sV3', 'VirtualMachineSizeTypesStandardNC24sV3', 'VirtualMachineSizeTypesStandardNC24rsV3', 'VirtualMachineSizeTypesStandardND6s', 'VirtualMachineSizeTypesStandardND12s', 'VirtualMachineSizeTypesStandardND24s', 'VirtualMachineSizeTypesStandardND24rs', 'VirtualMachineSizeTypesStandardNV6', 'VirtualMachineSizeTypesStandardNV12', 'VirtualMachineSizeTypesStandardNV24' 3421 VMSize VirtualMachineSizeTypes `json:"vmSize,omitempty"` 3422} 3423 3424// Image the source user image virtual hard disk. The virtual hard disk will be copied before being attached to the 3425// virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist. 3426type Image struct { 3427 autorest.Response `json:"-"` 3428 *ImageProperties `json:"properties,omitempty"` 3429 // ID - Resource Id 3430 ID *string `json:"id,omitempty"` 3431 // Name - Resource name 3432 Name *string `json:"name,omitempty"` 3433 // Type - Resource type 3434 Type *string `json:"type,omitempty"` 3435 // Location - Resource location 3436 Location *string `json:"location,omitempty"` 3437 // Tags - Resource tags 3438 Tags map[string]*string `json:"tags"` 3439} 3440 3441// MarshalJSON is the custom marshaler for Image. 3442func (i Image) MarshalJSON() ([]byte, error) { 3443 objectMap := make(map[string]interface{}) 3444 if i.ImageProperties != nil { 3445 objectMap["properties"] = i.ImageProperties 3446 } 3447 if i.ID != nil { 3448 objectMap["id"] = i.ID 3449 } 3450 if i.Name != nil { 3451 objectMap["name"] = i.Name 3452 } 3453 if i.Type != nil { 3454 objectMap["type"] = i.Type 3455 } 3456 if i.Location != nil { 3457 objectMap["location"] = i.Location 3458 } 3459 if i.Tags != nil { 3460 objectMap["tags"] = i.Tags 3461 } 3462 return json.Marshal(objectMap) 3463} 3464 3465// UnmarshalJSON is the custom unmarshaler for Image struct. 3466func (i *Image) UnmarshalJSON(body []byte) error { 3467 var m map[string]*json.RawMessage 3468 err := json.Unmarshal(body, &m) 3469 if err != nil { 3470 return err 3471 } 3472 for k, v := range m { 3473 switch k { 3474 case "properties": 3475 if v != nil { 3476 var imageProperties ImageProperties 3477 err = json.Unmarshal(*v, &imageProperties) 3478 if err != nil { 3479 return err 3480 } 3481 i.ImageProperties = &imageProperties 3482 } 3483 case "id": 3484 if v != nil { 3485 var ID string 3486 err = json.Unmarshal(*v, &ID) 3487 if err != nil { 3488 return err 3489 } 3490 i.ID = &ID 3491 } 3492 case "name": 3493 if v != nil { 3494 var name string 3495 err = json.Unmarshal(*v, &name) 3496 if err != nil { 3497 return err 3498 } 3499 i.Name = &name 3500 } 3501 case "type": 3502 if v != nil { 3503 var typeVar string 3504 err = json.Unmarshal(*v, &typeVar) 3505 if err != nil { 3506 return err 3507 } 3508 i.Type = &typeVar 3509 } 3510 case "location": 3511 if v != nil { 3512 var location string 3513 err = json.Unmarshal(*v, &location) 3514 if err != nil { 3515 return err 3516 } 3517 i.Location = &location 3518 } 3519 case "tags": 3520 if v != nil { 3521 var tags map[string]*string 3522 err = json.Unmarshal(*v, &tags) 3523 if err != nil { 3524 return err 3525 } 3526 i.Tags = tags 3527 } 3528 } 3529 } 3530 3531 return nil 3532} 3533 3534// ImageDataDisk describes a data disk. 3535type ImageDataDisk struct { 3536 // Lun - 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. 3537 Lun *int32 `json:"lun,omitempty"` 3538 // Snapshot - The snapshot. 3539 Snapshot *SubResource `json:"snapshot,omitempty"` 3540 // ManagedDisk - The managedDisk. 3541 ManagedDisk *SubResource `json:"managedDisk,omitempty"` 3542 // BlobURI - The Virtual Hard Disk. 3543 BlobURI *string `json:"blobUri,omitempty"` 3544 // Caching - Specifies the caching requirements. <br><br> Possible values are: <br><br> **None** <br><br> **ReadOnly** <br><br> **ReadWrite** <br><br> Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'CachingTypesNone', 'CachingTypesReadOnly', 'CachingTypesReadWrite' 3545 Caching CachingTypes `json:"caching,omitempty"` 3546 // DiskSizeGB - 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. <br><br> This value cannot be larger than 1023 GB 3547 DiskSizeGB *int32 `json:"diskSizeGB,omitempty"` 3548 // StorageAccountType - Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. Possible values include: 'StorageAccountTypesStandardLRS', 'StorageAccountTypesPremiumLRS', 'StorageAccountTypesStandardSSDLRS', 'StorageAccountTypesUltraSSDLRS' 3549 StorageAccountType StorageAccountTypes `json:"storageAccountType,omitempty"` 3550} 3551 3552// ImageDiskReference the source image used for creating the disk. 3553type ImageDiskReference struct { 3554 // ID - A relative uri containing either a Platform Imgage Repository or user image reference. 3555 ID *string `json:"id,omitempty"` 3556 // Lun - If the disk is created from an image's data disk, this is an index that indicates which of the data disks in the image to use. For OS disks, this field is null. 3557 Lun *int32 `json:"lun,omitempty"` 3558} 3559 3560// ImageListResult the List Image operation response. 3561type ImageListResult struct { 3562 autorest.Response `json:"-"` 3563 // Value - The list of Images. 3564 Value *[]Image `json:"value,omitempty"` 3565 // NextLink - The uri to fetch the next page of Images. Call ListNext() with this to fetch the next page of Images. 3566 NextLink *string `json:"nextLink,omitempty"` 3567} 3568 3569// ImageListResultIterator provides access to a complete listing of Image values. 3570type ImageListResultIterator struct { 3571 i int 3572 page ImageListResultPage 3573} 3574 3575// Next advances to the next value. If there was an error making 3576// the request the iterator does not advance and the error is returned. 3577func (iter *ImageListResultIterator) Next() error { 3578 iter.i++ 3579 if iter.i < len(iter.page.Values()) { 3580 return nil 3581 } 3582 err := iter.page.Next() 3583 if err != nil { 3584 iter.i-- 3585 return err 3586 } 3587 iter.i = 0 3588 return nil 3589} 3590 3591// NotDone returns true if the enumeration should be started or is not yet complete. 3592func (iter ImageListResultIterator) NotDone() bool { 3593 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 3594} 3595 3596// Response returns the raw server response from the last page request. 3597func (iter ImageListResultIterator) Response() ImageListResult { 3598 return iter.page.Response() 3599} 3600 3601// Value returns the current value or a zero-initialized value if the 3602// iterator has advanced beyond the end of the collection. 3603func (iter ImageListResultIterator) Value() Image { 3604 if !iter.page.NotDone() { 3605 return Image{} 3606 } 3607 return iter.page.Values()[iter.i] 3608} 3609 3610// IsEmpty returns true if the ListResult contains no values. 3611func (ilr ImageListResult) IsEmpty() bool { 3612 return ilr.Value == nil || len(*ilr.Value) == 0 3613} 3614 3615// imageListResultPreparer prepares a request to retrieve the next set of results. 3616// It returns nil if no more results exist. 3617func (ilr ImageListResult) imageListResultPreparer() (*http.Request, error) { 3618 if ilr.NextLink == nil || len(to.String(ilr.NextLink)) < 1 { 3619 return nil, nil 3620 } 3621 return autorest.Prepare(&http.Request{}, 3622 autorest.AsJSON(), 3623 autorest.AsGet(), 3624 autorest.WithBaseURL(to.String(ilr.NextLink))) 3625} 3626 3627// ImageListResultPage contains a page of Image values. 3628type ImageListResultPage struct { 3629 fn func(ImageListResult) (ImageListResult, error) 3630 ilr ImageListResult 3631} 3632 3633// Next advances to the next page of values. If there was an error making 3634// the request the page does not advance and the error is returned. 3635func (page *ImageListResultPage) Next() error { 3636 next, err := page.fn(page.ilr) 3637 if err != nil { 3638 return err 3639 } 3640 page.ilr = next 3641 return nil 3642} 3643 3644// NotDone returns true if the page enumeration should be started or is not yet complete. 3645func (page ImageListResultPage) NotDone() bool { 3646 return !page.ilr.IsEmpty() 3647} 3648 3649// Response returns the raw server response from the last page request. 3650func (page ImageListResultPage) Response() ImageListResult { 3651 return page.ilr 3652} 3653 3654// Values returns the slice of values for the current page or nil if there are no values. 3655func (page ImageListResultPage) Values() []Image { 3656 if page.ilr.IsEmpty() { 3657 return nil 3658 } 3659 return *page.ilr.Value 3660} 3661 3662// ImageOSDisk describes an Operating System disk. 3663type ImageOSDisk struct { 3664 // OsType - 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. <br><br> Possible values are: <br><br> **Windows** <br><br> **Linux**. Possible values include: 'Windows', 'Linux' 3665 OsType OperatingSystemTypes `json:"osType,omitempty"` 3666 // OsState - The OS State. Possible values include: 'Generalized', 'Specialized' 3667 OsState OperatingSystemStateTypes `json:"osState,omitempty"` 3668 // Snapshot - The snapshot. 3669 Snapshot *SubResource `json:"snapshot,omitempty"` 3670 // ManagedDisk - The managedDisk. 3671 ManagedDisk *SubResource `json:"managedDisk,omitempty"` 3672 // BlobURI - The Virtual Hard Disk. 3673 BlobURI *string `json:"blobUri,omitempty"` 3674 // Caching - Specifies the caching requirements. <br><br> Possible values are: <br><br> **None** <br><br> **ReadOnly** <br><br> **ReadWrite** <br><br> Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'CachingTypesNone', 'CachingTypesReadOnly', 'CachingTypesReadWrite' 3675 Caching CachingTypes `json:"caching,omitempty"` 3676 // DiskSizeGB - 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. <br><br> This value cannot be larger than 1023 GB 3677 DiskSizeGB *int32 `json:"diskSizeGB,omitempty"` 3678 // StorageAccountType - Specifies the storage account type for the managed disk. UltraSSD_LRS cannot be used with OS Disk. Possible values include: 'StorageAccountTypesStandardLRS', 'StorageAccountTypesPremiumLRS', 'StorageAccountTypesStandardSSDLRS', 'StorageAccountTypesUltraSSDLRS' 3679 StorageAccountType StorageAccountTypes `json:"storageAccountType,omitempty"` 3680} 3681 3682// ImageProperties describes the properties of an Image. 3683type ImageProperties struct { 3684 // SourceVirtualMachine - The source virtual machine from which Image is created. 3685 SourceVirtualMachine *SubResource `json:"sourceVirtualMachine,omitempty"` 3686 // StorageProfile - Specifies the storage settings for the virtual machine disks. 3687 StorageProfile *ImageStorageProfile `json:"storageProfile,omitempty"` 3688 // ProvisioningState - The provisioning state. 3689 ProvisioningState *string `json:"provisioningState,omitempty"` 3690} 3691 3692// ImagePurchasePlan describes the gallery Image Definition purchase plan. This is used by marketplace images. 3693type ImagePurchasePlan struct { 3694 // Name - The plan ID. 3695 Name *string `json:"name,omitempty"` 3696 // Publisher - The publisher ID. 3697 Publisher *string `json:"publisher,omitempty"` 3698 // Product - The product ID. 3699 Product *string `json:"product,omitempty"` 3700} 3701 3702// ImageReference specifies information about the image to use. You can specify information about platform images, 3703// marketplace images, or virtual machine images. This element is required when you want to use a platform image, 3704// marketplace image, or virtual machine image, but is not used in other creation operations. 3705type ImageReference struct { 3706 // Publisher - The image publisher. 3707 Publisher *string `json:"publisher,omitempty"` 3708 // Offer - Specifies the offer of the platform image or marketplace image used to create the virtual machine. 3709 Offer *string `json:"offer,omitempty"` 3710 // Sku - The image SKU. 3711 Sku *string `json:"sku,omitempty"` 3712 // Version - 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. 3713 Version *string `json:"version,omitempty"` 3714 // ID - Resource Id 3715 ID *string `json:"id,omitempty"` 3716} 3717 3718// ImagesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running operation. 3719type ImagesCreateOrUpdateFuture struct { 3720 azure.Future 3721} 3722 3723// Result returns the result of the asynchronous operation. 3724// If the operation has not completed it will return an error. 3725func (future *ImagesCreateOrUpdateFuture) Result(client ImagesClient) (i Image, err error) { 3726 var done bool 3727 done, err = future.Done(client) 3728 if err != nil { 3729 err = autorest.NewErrorWithError(err, "compute.ImagesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 3730 return 3731 } 3732 if !done { 3733 err = azure.NewAsyncOpIncompleteError("compute.ImagesCreateOrUpdateFuture") 3734 return 3735 } 3736 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 3737 if i.Response.Response, err = future.GetResult(sender); err == nil && i.Response.Response.StatusCode != http.StatusNoContent { 3738 i, err = client.CreateOrUpdateResponder(i.Response.Response) 3739 if err != nil { 3740 err = autorest.NewErrorWithError(err, "compute.ImagesCreateOrUpdateFuture", "Result", i.Response.Response, "Failure responding to request") 3741 } 3742 } 3743 return 3744} 3745 3746// ImagesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 3747type ImagesDeleteFuture struct { 3748 azure.Future 3749} 3750 3751// Result returns the result of the asynchronous operation. 3752// If the operation has not completed it will return an error. 3753func (future *ImagesDeleteFuture) Result(client ImagesClient) (ar autorest.Response, err error) { 3754 var done bool 3755 done, err = future.Done(client) 3756 if err != nil { 3757 err = autorest.NewErrorWithError(err, "compute.ImagesDeleteFuture", "Result", future.Response(), "Polling failure") 3758 return 3759 } 3760 if !done { 3761 err = azure.NewAsyncOpIncompleteError("compute.ImagesDeleteFuture") 3762 return 3763 } 3764 ar.Response = future.Response() 3765 return 3766} 3767 3768// ImageStorageProfile describes a storage profile. 3769type ImageStorageProfile struct { 3770 // OsDisk - Specifies information about the operating system disk used by the virtual machine. <br><br> 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). 3771 OsDisk *ImageOSDisk `json:"osDisk,omitempty"` 3772 // DataDisks - Specifies the parameters that are used to add a data disk to a virtual machine. <br><br> 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). 3773 DataDisks *[]ImageDataDisk `json:"dataDisks,omitempty"` 3774 // ZoneResilient - 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). 3775 ZoneResilient *bool `json:"zoneResilient,omitempty"` 3776} 3777 3778// ImagesUpdateFuture an abstraction for monitoring and retrieving the results of a long-running operation. 3779type ImagesUpdateFuture struct { 3780 azure.Future 3781} 3782 3783// Result returns the result of the asynchronous operation. 3784// If the operation has not completed it will return an error. 3785func (future *ImagesUpdateFuture) Result(client ImagesClient) (i Image, err error) { 3786 var done bool 3787 done, err = future.Done(client) 3788 if err != nil { 3789 err = autorest.NewErrorWithError(err, "compute.ImagesUpdateFuture", "Result", future.Response(), "Polling failure") 3790 return 3791 } 3792 if !done { 3793 err = azure.NewAsyncOpIncompleteError("compute.ImagesUpdateFuture") 3794 return 3795 } 3796 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 3797 if i.Response.Response, err = future.GetResult(sender); err == nil && i.Response.Response.StatusCode != http.StatusNoContent { 3798 i, err = client.UpdateResponder(i.Response.Response) 3799 if err != nil { 3800 err = autorest.NewErrorWithError(err, "compute.ImagesUpdateFuture", "Result", i.Response.Response, "Failure responding to request") 3801 } 3802 } 3803 return 3804} 3805 3806// ImageUpdate the source user image virtual hard disk. Only tags may be updated. 3807type ImageUpdate struct { 3808 *ImageProperties `json:"properties,omitempty"` 3809 // Tags - Resource tags 3810 Tags map[string]*string `json:"tags"` 3811} 3812 3813// MarshalJSON is the custom marshaler for ImageUpdate. 3814func (iu ImageUpdate) MarshalJSON() ([]byte, error) { 3815 objectMap := make(map[string]interface{}) 3816 if iu.ImageProperties != nil { 3817 objectMap["properties"] = iu.ImageProperties 3818 } 3819 if iu.Tags != nil { 3820 objectMap["tags"] = iu.Tags 3821 } 3822 return json.Marshal(objectMap) 3823} 3824 3825// UnmarshalJSON is the custom unmarshaler for ImageUpdate struct. 3826func (iu *ImageUpdate) UnmarshalJSON(body []byte) error { 3827 var m map[string]*json.RawMessage 3828 err := json.Unmarshal(body, &m) 3829 if err != nil { 3830 return err 3831 } 3832 for k, v := range m { 3833 switch k { 3834 case "properties": 3835 if v != nil { 3836 var imageProperties ImageProperties 3837 err = json.Unmarshal(*v, &imageProperties) 3838 if err != nil { 3839 return err 3840 } 3841 iu.ImageProperties = &imageProperties 3842 } 3843 case "tags": 3844 if v != nil { 3845 var tags map[string]*string 3846 err = json.Unmarshal(*v, &tags) 3847 if err != nil { 3848 return err 3849 } 3850 iu.Tags = tags 3851 } 3852 } 3853 } 3854 3855 return nil 3856} 3857 3858// InnerError inner error details. 3859type InnerError struct { 3860 // Exceptiontype - The exception type. 3861 Exceptiontype *string `json:"exceptiontype,omitempty"` 3862 // Errordetail - The internal error message or exception dump. 3863 Errordetail *string `json:"errordetail,omitempty"` 3864} 3865 3866// InstanceViewStatus instance view status. 3867type InstanceViewStatus struct { 3868 // Code - The status code. 3869 Code *string `json:"code,omitempty"` 3870 // Level - The level code. Possible values include: 'Info', 'Warning', 'Error' 3871 Level StatusLevelTypes `json:"level,omitempty"` 3872 // DisplayStatus - The short localizable label for the status. 3873 DisplayStatus *string `json:"displayStatus,omitempty"` 3874 // Message - The detailed status message, including for alerts and error messages. 3875 Message *string `json:"message,omitempty"` 3876 // Time - The time of the status. 3877 Time *date.Time `json:"time,omitempty"` 3878} 3879 3880// KeyVaultAndKeyReference key Vault Key Url and vault id of KeK, KeK is optional and when provided is used to 3881// unwrap the encryptionKey 3882type KeyVaultAndKeyReference struct { 3883 // SourceVault - Resource id of the KeyVault containing the key or secret 3884 SourceVault *SourceVault `json:"sourceVault,omitempty"` 3885 // KeyURL - Url pointing to a key or secret in KeyVault 3886 KeyURL *string `json:"keyUrl,omitempty"` 3887} 3888 3889// KeyVaultAndSecretReference key Vault Secret Url and vault id of the encryption key 3890type KeyVaultAndSecretReference struct { 3891 // SourceVault - Resource id of the KeyVault containing the key or secret 3892 SourceVault *SourceVault `json:"sourceVault,omitempty"` 3893 // SecretURL - Url pointing to a key or secret in KeyVault 3894 SecretURL *string `json:"secretUrl,omitempty"` 3895} 3896 3897// KeyVaultKeyReference describes a reference to Key Vault Key 3898type KeyVaultKeyReference struct { 3899 // KeyURL - The URL referencing a key encryption key in Key Vault. 3900 KeyURL *string `json:"keyUrl,omitempty"` 3901 // SourceVault - The relative URL of the Key Vault containing the key. 3902 SourceVault *SubResource `json:"sourceVault,omitempty"` 3903} 3904 3905// KeyVaultSecretReference describes a reference to Key Vault Secret 3906type KeyVaultSecretReference struct { 3907 // SecretURL - The URL referencing a secret in a Key Vault. 3908 SecretURL *string `json:"secretUrl,omitempty"` 3909 // SourceVault - The relative URL of the Key Vault containing the secret. 3910 SourceVault *SubResource `json:"sourceVault,omitempty"` 3911} 3912 3913// LinuxConfiguration specifies the Linux operating system settings on the virtual machine. <br><br>For a list of 3914// supported Linux distributions, see [Linux on Azure-Endorsed 3915// Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json) 3916// <br><br> For running non-endorsed distributions, see [Information for Non-Endorsed 3917// Distributions](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json). 3918type LinuxConfiguration struct { 3919 // DisablePasswordAuthentication - Specifies whether password authentication should be disabled. 3920 DisablePasswordAuthentication *bool `json:"disablePasswordAuthentication,omitempty"` 3921 // SSH - Specifies the ssh key configuration for a Linux OS. 3922 SSH *SSHConfiguration `json:"ssh,omitempty"` 3923 // ProvisionVMAgent - Indicates whether virtual machine agent should be provisioned on the virtual machine. <br><br> 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. 3924 ProvisionVMAgent *bool `json:"provisionVMAgent,omitempty"` 3925} 3926 3927// ListUsagesResult the List Usages operation response. 3928type ListUsagesResult struct { 3929 autorest.Response `json:"-"` 3930 // Value - The list of compute resource usages. 3931 Value *[]Usage `json:"value,omitempty"` 3932 // NextLink - The URI to fetch the next page of compute resource usage information. Call ListNext() with this to fetch the next page of compute resource usage information. 3933 NextLink *string `json:"nextLink,omitempty"` 3934} 3935 3936// ListUsagesResultIterator provides access to a complete listing of Usage values. 3937type ListUsagesResultIterator struct { 3938 i int 3939 page ListUsagesResultPage 3940} 3941 3942// Next advances to the next value. If there was an error making 3943// the request the iterator does not advance and the error is returned. 3944func (iter *ListUsagesResultIterator) Next() error { 3945 iter.i++ 3946 if iter.i < len(iter.page.Values()) { 3947 return nil 3948 } 3949 err := iter.page.Next() 3950 if err != nil { 3951 iter.i-- 3952 return err 3953 } 3954 iter.i = 0 3955 return nil 3956} 3957 3958// NotDone returns true if the enumeration should be started or is not yet complete. 3959func (iter ListUsagesResultIterator) NotDone() bool { 3960 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 3961} 3962 3963// Response returns the raw server response from the last page request. 3964func (iter ListUsagesResultIterator) Response() ListUsagesResult { 3965 return iter.page.Response() 3966} 3967 3968// Value returns the current value or a zero-initialized value if the 3969// iterator has advanced beyond the end of the collection. 3970func (iter ListUsagesResultIterator) Value() Usage { 3971 if !iter.page.NotDone() { 3972 return Usage{} 3973 } 3974 return iter.page.Values()[iter.i] 3975} 3976 3977// IsEmpty returns true if the ListResult contains no values. 3978func (lur ListUsagesResult) IsEmpty() bool { 3979 return lur.Value == nil || len(*lur.Value) == 0 3980} 3981 3982// listUsagesResultPreparer prepares a request to retrieve the next set of results. 3983// It returns nil if no more results exist. 3984func (lur ListUsagesResult) listUsagesResultPreparer() (*http.Request, error) { 3985 if lur.NextLink == nil || len(to.String(lur.NextLink)) < 1 { 3986 return nil, nil 3987 } 3988 return autorest.Prepare(&http.Request{}, 3989 autorest.AsJSON(), 3990 autorest.AsGet(), 3991 autorest.WithBaseURL(to.String(lur.NextLink))) 3992} 3993 3994// ListUsagesResultPage contains a page of Usage values. 3995type ListUsagesResultPage struct { 3996 fn func(ListUsagesResult) (ListUsagesResult, error) 3997 lur ListUsagesResult 3998} 3999 4000// Next advances to the next page of values. If there was an error making 4001// the request the page does not advance and the error is returned. 4002func (page *ListUsagesResultPage) Next() error { 4003 next, err := page.fn(page.lur) 4004 if err != nil { 4005 return err 4006 } 4007 page.lur = next 4008 return nil 4009} 4010 4011// NotDone returns true if the page enumeration should be started or is not yet complete. 4012func (page ListUsagesResultPage) NotDone() bool { 4013 return !page.lur.IsEmpty() 4014} 4015 4016// Response returns the raw server response from the last page request. 4017func (page ListUsagesResultPage) Response() ListUsagesResult { 4018 return page.lur 4019} 4020 4021// Values returns the slice of values for the current page or nil if there are no values. 4022func (page ListUsagesResultPage) Values() []Usage { 4023 if page.lur.IsEmpty() { 4024 return nil 4025 } 4026 return *page.lur.Value 4027} 4028 4029// ListVirtualMachineExtensionImage ... 4030type ListVirtualMachineExtensionImage struct { 4031 autorest.Response `json:"-"` 4032 Value *[]VirtualMachineExtensionImage `json:"value,omitempty"` 4033} 4034 4035// ListVirtualMachineImageResource ... 4036type ListVirtualMachineImageResource struct { 4037 autorest.Response `json:"-"` 4038 Value *[]VirtualMachineImageResource `json:"value,omitempty"` 4039} 4040 4041// LogAnalyticsExportRequestRateByIntervalFuture an abstraction for monitoring and retrieving the results of a 4042// long-running operation. 4043type LogAnalyticsExportRequestRateByIntervalFuture struct { 4044 azure.Future 4045} 4046 4047// Result returns the result of the asynchronous operation. 4048// If the operation has not completed it will return an error. 4049func (future *LogAnalyticsExportRequestRateByIntervalFuture) Result(client LogAnalyticsClient) (laor LogAnalyticsOperationResult, err error) { 4050 var done bool 4051 done, err = future.Done(client) 4052 if err != nil { 4053 err = autorest.NewErrorWithError(err, "compute.LogAnalyticsExportRequestRateByIntervalFuture", "Result", future.Response(), "Polling failure") 4054 return 4055 } 4056 if !done { 4057 err = azure.NewAsyncOpIncompleteError("compute.LogAnalyticsExportRequestRateByIntervalFuture") 4058 return 4059 } 4060 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 4061 if laor.Response.Response, err = future.GetResult(sender); err == nil && laor.Response.Response.StatusCode != http.StatusNoContent { 4062 laor, err = client.ExportRequestRateByIntervalResponder(laor.Response.Response) 4063 if err != nil { 4064 err = autorest.NewErrorWithError(err, "compute.LogAnalyticsExportRequestRateByIntervalFuture", "Result", laor.Response.Response, "Failure responding to request") 4065 } 4066 } 4067 return 4068} 4069 4070// LogAnalyticsExportThrottledRequestsFuture an abstraction for monitoring and retrieving the results of a 4071// long-running operation. 4072type LogAnalyticsExportThrottledRequestsFuture struct { 4073 azure.Future 4074} 4075 4076// Result returns the result of the asynchronous operation. 4077// If the operation has not completed it will return an error. 4078func (future *LogAnalyticsExportThrottledRequestsFuture) Result(client LogAnalyticsClient) (laor LogAnalyticsOperationResult, err error) { 4079 var done bool 4080 done, err = future.Done(client) 4081 if err != nil { 4082 err = autorest.NewErrorWithError(err, "compute.LogAnalyticsExportThrottledRequestsFuture", "Result", future.Response(), "Polling failure") 4083 return 4084 } 4085 if !done { 4086 err = azure.NewAsyncOpIncompleteError("compute.LogAnalyticsExportThrottledRequestsFuture") 4087 return 4088 } 4089 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 4090 if laor.Response.Response, err = future.GetResult(sender); err == nil && laor.Response.Response.StatusCode != http.StatusNoContent { 4091 laor, err = client.ExportThrottledRequestsResponder(laor.Response.Response) 4092 if err != nil { 4093 err = autorest.NewErrorWithError(err, "compute.LogAnalyticsExportThrottledRequestsFuture", "Result", laor.Response.Response, "Failure responding to request") 4094 } 4095 } 4096 return 4097} 4098 4099// LogAnalyticsInputBase api input base class for LogAnalytics Api. 4100type LogAnalyticsInputBase struct { 4101 // BlobContainerSasURI - SAS Uri of the logging blob container to which LogAnalytics Api writes output logs to. 4102 BlobContainerSasURI *string `json:"blobContainerSasUri,omitempty"` 4103 // FromTime - From time of the query 4104 FromTime *date.Time `json:"fromTime,omitempty"` 4105 // ToTime - To time of the query 4106 ToTime *date.Time `json:"toTime,omitempty"` 4107 // GroupByThrottlePolicy - Group query result by Throttle Policy applied. 4108 GroupByThrottlePolicy *bool `json:"groupByThrottlePolicy,omitempty"` 4109 // GroupByOperationName - Group query result by by Operation Name. 4110 GroupByOperationName *bool `json:"groupByOperationName,omitempty"` 4111 // GroupByResourceName - Group query result by Resource Name. 4112 GroupByResourceName *bool `json:"groupByResourceName,omitempty"` 4113} 4114 4115// LogAnalyticsOperationResult logAnalytics operation status response 4116type LogAnalyticsOperationResult struct { 4117 autorest.Response `json:"-"` 4118 // Properties - LogAnalyticsOutput 4119 Properties *LogAnalyticsOutput `json:"properties,omitempty"` 4120} 4121 4122// LogAnalyticsOutput logAnalytics output properties 4123type LogAnalyticsOutput struct { 4124 // Output - Output file Uri path to blob container. 4125 Output *string `json:"output,omitempty"` 4126} 4127 4128// MaintenanceRedeployStatus maintenance Operation Status. 4129type MaintenanceRedeployStatus struct { 4130 // IsCustomerInitiatedMaintenanceAllowed - True, if customer is allowed to perform Maintenance. 4131 IsCustomerInitiatedMaintenanceAllowed *bool `json:"isCustomerInitiatedMaintenanceAllowed,omitempty"` 4132 // PreMaintenanceWindowStartTime - Start Time for the Pre Maintenance Window. 4133 PreMaintenanceWindowStartTime *date.Time `json:"preMaintenanceWindowStartTime,omitempty"` 4134 // PreMaintenanceWindowEndTime - End Time for the Pre Maintenance Window. 4135 PreMaintenanceWindowEndTime *date.Time `json:"preMaintenanceWindowEndTime,omitempty"` 4136 // MaintenanceWindowStartTime - Start Time for the Maintenance Window. 4137 MaintenanceWindowStartTime *date.Time `json:"maintenanceWindowStartTime,omitempty"` 4138 // MaintenanceWindowEndTime - End Time for the Maintenance Window. 4139 MaintenanceWindowEndTime *date.Time `json:"maintenanceWindowEndTime,omitempty"` 4140 // LastOperationResultCode - The Last Maintenance Operation Result Code. Possible values include: 'MaintenanceOperationResultCodeTypesNone', 'MaintenanceOperationResultCodeTypesRetryLater', 'MaintenanceOperationResultCodeTypesMaintenanceAborted', 'MaintenanceOperationResultCodeTypesMaintenanceCompleted' 4141 LastOperationResultCode MaintenanceOperationResultCodeTypes `json:"lastOperationResultCode,omitempty"` 4142 // LastOperationMessage - Message returned for the last Maintenance Operation. 4143 LastOperationMessage *string `json:"lastOperationMessage,omitempty"` 4144} 4145 4146// ManagedArtifact the managed artifact. 4147type ManagedArtifact struct { 4148 // ID - The managed artifact id. 4149 ID *string `json:"id,omitempty"` 4150} 4151 4152// ManagedDiskParameters the parameters of a managed disk. 4153type ManagedDiskParameters struct { 4154 // StorageAccountType - Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. Possible values include: 'StorageAccountTypesStandardLRS', 'StorageAccountTypesPremiumLRS', 'StorageAccountTypesStandardSSDLRS', 'StorageAccountTypesUltraSSDLRS' 4155 StorageAccountType StorageAccountTypes `json:"storageAccountType,omitempty"` 4156 // ID - Resource Id 4157 ID *string `json:"id,omitempty"` 4158} 4159 4160// NetworkInterfaceReference describes a network interface reference. 4161type NetworkInterfaceReference struct { 4162 *NetworkInterfaceReferenceProperties `json:"properties,omitempty"` 4163 // ID - Resource Id 4164 ID *string `json:"id,omitempty"` 4165} 4166 4167// MarshalJSON is the custom marshaler for NetworkInterfaceReference. 4168func (nir NetworkInterfaceReference) MarshalJSON() ([]byte, error) { 4169 objectMap := make(map[string]interface{}) 4170 if nir.NetworkInterfaceReferenceProperties != nil { 4171 objectMap["properties"] = nir.NetworkInterfaceReferenceProperties 4172 } 4173 if nir.ID != nil { 4174 objectMap["id"] = nir.ID 4175 } 4176 return json.Marshal(objectMap) 4177} 4178 4179// UnmarshalJSON is the custom unmarshaler for NetworkInterfaceReference struct. 4180func (nir *NetworkInterfaceReference) UnmarshalJSON(body []byte) error { 4181 var m map[string]*json.RawMessage 4182 err := json.Unmarshal(body, &m) 4183 if err != nil { 4184 return err 4185 } 4186 for k, v := range m { 4187 switch k { 4188 case "properties": 4189 if v != nil { 4190 var networkInterfaceReferenceProperties NetworkInterfaceReferenceProperties 4191 err = json.Unmarshal(*v, &networkInterfaceReferenceProperties) 4192 if err != nil { 4193 return err 4194 } 4195 nir.NetworkInterfaceReferenceProperties = &networkInterfaceReferenceProperties 4196 } 4197 case "id": 4198 if v != nil { 4199 var ID string 4200 err = json.Unmarshal(*v, &ID) 4201 if err != nil { 4202 return err 4203 } 4204 nir.ID = &ID 4205 } 4206 } 4207 } 4208 4209 return nil 4210} 4211 4212// NetworkInterfaceReferenceProperties describes a network interface reference properties. 4213type NetworkInterfaceReferenceProperties struct { 4214 // Primary - Specifies the primary network interface in case the virtual machine has more than 1 network interface. 4215 Primary *bool `json:"primary,omitempty"` 4216} 4217 4218// NetworkProfile specifies the network interfaces of the virtual machine. 4219type NetworkProfile struct { 4220 // NetworkInterfaces - Specifies the list of resource Ids for the network interfaces associated with the virtual machine. 4221 NetworkInterfaces *[]NetworkInterfaceReference `json:"networkInterfaces,omitempty"` 4222} 4223 4224// OperationListResult the List Compute Operation operation response. 4225type OperationListResult struct { 4226 autorest.Response `json:"-"` 4227 // Value - The list of compute operations 4228 Value *[]OperationValue `json:"value,omitempty"` 4229} 4230 4231// OperationValue describes the properties of a Compute Operation value. 4232type OperationValue struct { 4233 // Origin - The origin of the compute operation. 4234 Origin *string `json:"origin,omitempty"` 4235 // Name - The name of the compute operation. 4236 Name *string `json:"name,omitempty"` 4237 *OperationValueDisplay `json:"display,omitempty"` 4238} 4239 4240// MarshalJSON is the custom marshaler for OperationValue. 4241func (ov OperationValue) MarshalJSON() ([]byte, error) { 4242 objectMap := make(map[string]interface{}) 4243 if ov.Origin != nil { 4244 objectMap["origin"] = ov.Origin 4245 } 4246 if ov.Name != nil { 4247 objectMap["name"] = ov.Name 4248 } 4249 if ov.OperationValueDisplay != nil { 4250 objectMap["display"] = ov.OperationValueDisplay 4251 } 4252 return json.Marshal(objectMap) 4253} 4254 4255// UnmarshalJSON is the custom unmarshaler for OperationValue struct. 4256func (ov *OperationValue) UnmarshalJSON(body []byte) error { 4257 var m map[string]*json.RawMessage 4258 err := json.Unmarshal(body, &m) 4259 if err != nil { 4260 return err 4261 } 4262 for k, v := range m { 4263 switch k { 4264 case "origin": 4265 if v != nil { 4266 var origin string 4267 err = json.Unmarshal(*v, &origin) 4268 if err != nil { 4269 return err 4270 } 4271 ov.Origin = &origin 4272 } 4273 case "name": 4274 if v != nil { 4275 var name string 4276 err = json.Unmarshal(*v, &name) 4277 if err != nil { 4278 return err 4279 } 4280 ov.Name = &name 4281 } 4282 case "display": 4283 if v != nil { 4284 var operationValueDisplay OperationValueDisplay 4285 err = json.Unmarshal(*v, &operationValueDisplay) 4286 if err != nil { 4287 return err 4288 } 4289 ov.OperationValueDisplay = &operationValueDisplay 4290 } 4291 } 4292 } 4293 4294 return nil 4295} 4296 4297// OperationValueDisplay describes the properties of a Compute Operation Value Display. 4298type OperationValueDisplay struct { 4299 // Operation - The display name of the compute operation. 4300 Operation *string `json:"operation,omitempty"` 4301 // Resource - The display name of the resource the operation applies to. 4302 Resource *string `json:"resource,omitempty"` 4303 // Description - The description of the operation. 4304 Description *string `json:"description,omitempty"` 4305 // Provider - The resource provider for the operation. 4306 Provider *string `json:"provider,omitempty"` 4307} 4308 4309// OSDisk specifies information about the operating system disk used by the virtual machine. <br><br> For more 4310// information about disks, see [About disks and VHDs for Azure virtual 4311// machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). 4312type OSDisk struct { 4313 // OsType - 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. <br><br> Possible values are: <br><br> **Windows** <br><br> **Linux**. Possible values include: 'Windows', 'Linux' 4314 OsType OperatingSystemTypes `json:"osType,omitempty"` 4315 // EncryptionSettings - Specifies the encryption settings for the OS Disk. <br><br> Minimum api-version: 2015-06-15 4316 EncryptionSettings *DiskEncryptionSettings `json:"encryptionSettings,omitempty"` 4317 // Name - The disk name. 4318 Name *string `json:"name,omitempty"` 4319 // Vhd - The virtual hard disk. 4320 Vhd *VirtualHardDisk `json:"vhd,omitempty"` 4321 // Image - 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. 4322 Image *VirtualHardDisk `json:"image,omitempty"` 4323 // Caching - Specifies the caching requirements. <br><br> Possible values are: <br><br> **None** <br><br> **ReadOnly** <br><br> **ReadWrite** <br><br> Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'CachingTypesNone', 'CachingTypesReadOnly', 'CachingTypesReadWrite' 4324 Caching CachingTypes `json:"caching,omitempty"` 4325 // WriteAcceleratorEnabled - Specifies whether writeAccelerator should be enabled or disabled on the disk. 4326 WriteAcceleratorEnabled *bool `json:"writeAcceleratorEnabled,omitempty"` 4327 // DiffDiskSettings - Specifies the differencing Disk Settings for the operating system disk used by the virtual machine. 4328 DiffDiskSettings *DiffDiskSettings `json:"diffDiskSettings,omitempty"` 4329 // CreateOption - Specifies how the virtual machine should be created.<br><br> Possible values are:<br><br> **Attach** \u2013 This value is used when you are using a specialized disk to create the virtual machine.<br><br> **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: 'DiskCreateOptionTypesFromImage', 'DiskCreateOptionTypesEmpty', 'DiskCreateOptionTypesAttach' 4330 CreateOption DiskCreateOptionTypes `json:"createOption,omitempty"` 4331 // DiskSizeGB - 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. <br><br> This value cannot be larger than 1023 GB 4332 DiskSizeGB *int32 `json:"diskSizeGB,omitempty"` 4333 // ManagedDisk - The managed disk parameters. 4334 ManagedDisk *ManagedDiskParameters `json:"managedDisk,omitempty"` 4335} 4336 4337// OSDiskImage contains the os disk image information. 4338type OSDiskImage struct { 4339 // OperatingSystem - The operating system of the osDiskImage. Possible values include: 'Windows', 'Linux' 4340 OperatingSystem OperatingSystemTypes `json:"operatingSystem,omitempty"` 4341} 4342 4343// OSProfile specifies the operating system settings for the virtual machine. 4344type OSProfile struct { 4345 // ComputerName - Specifies the host OS name of the virtual machine. <br><br> **Max-length (Windows):** 15 characters <br><br> **Max-length (Linux):** 64 characters. <br><br> 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). 4346 ComputerName *string `json:"computerName,omitempty"` 4347 // AdminUsername - Specifies the name of the administrator account. <br><br> **Windows-only restriction:** Cannot end in "." <br><br> **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". <br><br> **Minimum-length (Linux):** 1 character <br><br> **Max-length (Linux):** 64 characters <br><br> **Max-length (Windows):** 20 characters <br><br><li> 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)<br><li> 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) 4348 AdminUsername *string `json:"adminUsername,omitempty"` 4349 // AdminPassword - Specifies the password of the administrator account. <br><br> **Minimum-length (Windows):** 8 characters <br><br> **Minimum-length (Linux):** 6 characters <br><br> **Max-length (Windows):** 123 characters <br><br> **Max-length (Linux):** 72 characters <br><br> **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled <br> Has lower characters <br>Has upper characters <br> Has a digit <br> Has a special character (Regex match [\W_]) <br><br> **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" <br><br> 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) <br><br> 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) 4350 AdminPassword *string `json:"adminPassword,omitempty"` 4351 // CustomData - 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. <br><br> 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) 4352 CustomData *string `json:"customData,omitempty"` 4353 // WindowsConfiguration - Specifies Windows operating system settings on the virtual machine. 4354 WindowsConfiguration *WindowsConfiguration `json:"windowsConfiguration,omitempty"` 4355 // LinuxConfiguration - Specifies the Linux operating system settings on the virtual machine. <br><br>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) <br><br> 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). 4356 LinuxConfiguration *LinuxConfiguration `json:"linuxConfiguration,omitempty"` 4357 // Secrets - Specifies set of certificates that should be installed onto the virtual machine. 4358 Secrets *[]VaultSecretGroup `json:"secrets,omitempty"` 4359 // AllowExtensionOperations - Specifies whether extension operations should be allowed on the virtual machine. <br><br>This may only be set to False when no extensions are present on the virtual machine. 4360 AllowExtensionOperations *bool `json:"allowExtensionOperations,omitempty"` 4361} 4362 4363// Plan specifies information about the marketplace image used to create the virtual machine. This element is only 4364// used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for 4365// programmatic use. In the Azure portal, find the marketplace image that you want to use and then click **Want to 4366// deploy programmatically, Get Started ->**. Enter any required information and then click **Save**. 4367type Plan struct { 4368 // Name - The plan ID. 4369 Name *string `json:"name,omitempty"` 4370 // Publisher - The publisher ID. 4371 Publisher *string `json:"publisher,omitempty"` 4372 // Product - Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element. 4373 Product *string `json:"product,omitempty"` 4374 // PromotionCode - The promotion code. 4375 PromotionCode *string `json:"promotionCode,omitempty"` 4376} 4377 4378// PurchasePlan used for establishing the purchase context of any 3rd Party artifact through MarketPlace. 4379type PurchasePlan struct { 4380 // Publisher - The publisher ID. 4381 Publisher *string `json:"publisher,omitempty"` 4382 // Name - The plan ID. 4383 Name *string `json:"name,omitempty"` 4384 // Product - Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element. 4385 Product *string `json:"product,omitempty"` 4386} 4387 4388// RecommendedMachineConfiguration the properties describe the recommended machine configuration for this Image 4389// Definition. These properties are updateable. 4390type RecommendedMachineConfiguration struct { 4391 VCPUs *ResourceRange `json:"vCPUs,omitempty"` 4392 Memory *ResourceRange `json:"memory,omitempty"` 4393} 4394 4395// RecoveryWalkResponse response after calling a manual recovery walk 4396type RecoveryWalkResponse struct { 4397 autorest.Response `json:"-"` 4398 // WalkPerformed - Whether the recovery walk was performed 4399 WalkPerformed *bool `json:"walkPerformed,omitempty"` 4400 // NextPlatformUpdateDomain - The next update domain that needs to be walked. Null means walk spanning all update domains has been completed 4401 NextPlatformUpdateDomain *int32 `json:"nextPlatformUpdateDomain,omitempty"` 4402} 4403 4404// RegionalReplicationStatus this is the regional replication status. 4405type RegionalReplicationStatus struct { 4406 // Region - The region to which the gallery Image Version is being replicated to. 4407 Region *string `json:"region,omitempty"` 4408 // State - This is the regional replication state. Possible values include: 'ReplicationStateUnknown', 'ReplicationStateReplicating', 'ReplicationStateCompleted', 'ReplicationStateFailed' 4409 State ReplicationState `json:"state,omitempty"` 4410 // Details - The details of the replication status. 4411 Details *string `json:"details,omitempty"` 4412 // Progress - It indicates progress of the replication job. 4413 Progress *int32 `json:"progress,omitempty"` 4414} 4415 4416// ReplicationStatus this is the replication status of the gallery Image Version. 4417type ReplicationStatus struct { 4418 // AggregatedState - This is the aggregated replication status based on all the regional replication status flags. Possible values include: 'Unknown', 'InProgress', 'Completed', 'Failed' 4419 AggregatedState AggregatedReplicationState `json:"aggregatedState,omitempty"` 4420 // Summary - This is a summary of replication status for each region. 4421 Summary *[]RegionalReplicationStatus `json:"summary,omitempty"` 4422} 4423 4424// RequestRateByIntervalInput api request input for LogAnalytics getRequestRateByInterval Api. 4425type RequestRateByIntervalInput struct { 4426 // IntervalLength - Interval value in minutes used to create LogAnalytics call rate logs. Possible values include: 'ThreeMins', 'FiveMins', 'ThirtyMins', 'SixtyMins' 4427 IntervalLength IntervalInMins `json:"intervalLength,omitempty"` 4428 // BlobContainerSasURI - SAS Uri of the logging blob container to which LogAnalytics Api writes output logs to. 4429 BlobContainerSasURI *string `json:"blobContainerSasUri,omitempty"` 4430 // FromTime - From time of the query 4431 FromTime *date.Time `json:"fromTime,omitempty"` 4432 // ToTime - To time of the query 4433 ToTime *date.Time `json:"toTime,omitempty"` 4434 // GroupByThrottlePolicy - Group query result by Throttle Policy applied. 4435 GroupByThrottlePolicy *bool `json:"groupByThrottlePolicy,omitempty"` 4436 // GroupByOperationName - Group query result by by Operation Name. 4437 GroupByOperationName *bool `json:"groupByOperationName,omitempty"` 4438 // GroupByResourceName - Group query result by Resource Name. 4439 GroupByResourceName *bool `json:"groupByResourceName,omitempty"` 4440} 4441 4442// Resource the Resource model definition. 4443type Resource struct { 4444 // ID - Resource Id 4445 ID *string `json:"id,omitempty"` 4446 // Name - Resource name 4447 Name *string `json:"name,omitempty"` 4448 // Type - Resource type 4449 Type *string `json:"type,omitempty"` 4450 // Location - Resource location 4451 Location *string `json:"location,omitempty"` 4452 // Tags - Resource tags 4453 Tags map[string]*string `json:"tags"` 4454} 4455 4456// MarshalJSON is the custom marshaler for Resource. 4457func (r Resource) MarshalJSON() ([]byte, error) { 4458 objectMap := make(map[string]interface{}) 4459 if r.ID != nil { 4460 objectMap["id"] = r.ID 4461 } 4462 if r.Name != nil { 4463 objectMap["name"] = r.Name 4464 } 4465 if r.Type != nil { 4466 objectMap["type"] = r.Type 4467 } 4468 if r.Location != nil { 4469 objectMap["location"] = r.Location 4470 } 4471 if r.Tags != nil { 4472 objectMap["tags"] = r.Tags 4473 } 4474 return json.Marshal(objectMap) 4475} 4476 4477// ResourceRange describes the resource range. 4478type ResourceRange struct { 4479 // Min - The minimum number of the resource. 4480 Min *int32 `json:"min,omitempty"` 4481 // Max - The maximum number of the resource. 4482 Max *int32 `json:"max,omitempty"` 4483} 4484 4485// ResourceSku describes an available Compute SKU. 4486type ResourceSku struct { 4487 // ResourceType - The type of resource the SKU applies to. 4488 ResourceType *string `json:"resourceType,omitempty"` 4489 // Name - The name of SKU. 4490 Name *string `json:"name,omitempty"` 4491 // Tier - Specifies the tier of virtual machines in a scale set.<br /><br /> Possible Values:<br /><br /> **Standard**<br /><br /> **Basic** 4492 Tier *string `json:"tier,omitempty"` 4493 // Size - The Size of the SKU. 4494 Size *string `json:"size,omitempty"` 4495 // Family - The Family of this particular SKU. 4496 Family *string `json:"family,omitempty"` 4497 // Kind - The Kind of resources that are supported in this SKU. 4498 Kind *string `json:"kind,omitempty"` 4499 // Capacity - Specifies the number of virtual machines in the scale set. 4500 Capacity *ResourceSkuCapacity `json:"capacity,omitempty"` 4501 // Locations - The set of locations that the SKU is available. 4502 Locations *[]string `json:"locations,omitempty"` 4503 // LocationInfo - A list of locations and availability zones in those locations where the SKU is available. 4504 LocationInfo *[]ResourceSkuLocationInfo `json:"locationInfo,omitempty"` 4505 // APIVersions - The api versions that support this SKU. 4506 APIVersions *[]string `json:"apiVersions,omitempty"` 4507 // Costs - Metadata for retrieving price info. 4508 Costs *[]ResourceSkuCosts `json:"costs,omitempty"` 4509 // Capabilities - A name value pair to describe the capability. 4510 Capabilities *[]ResourceSkuCapabilities `json:"capabilities,omitempty"` 4511 // Restrictions - The restrictions because of which SKU cannot be used. This is empty if there are no restrictions. 4512 Restrictions *[]ResourceSkuRestrictions `json:"restrictions,omitempty"` 4513} 4514 4515// ResourceSkuCapabilities describes The SKU capabilites object. 4516type ResourceSkuCapabilities struct { 4517 // Name - An invariant to describe the feature. 4518 Name *string `json:"name,omitempty"` 4519 // Value - An invariant if the feature is measured by quantity. 4520 Value *string `json:"value,omitempty"` 4521} 4522 4523// ResourceSkuCapacity describes scaling information of a SKU. 4524type ResourceSkuCapacity struct { 4525 // Minimum - The minimum capacity. 4526 Minimum *int64 `json:"minimum,omitempty"` 4527 // Maximum - The maximum capacity that can be set. 4528 Maximum *int64 `json:"maximum,omitempty"` 4529 // Default - The default capacity. 4530 Default *int64 `json:"default,omitempty"` 4531 // ScaleType - The scale type applicable to the sku. Possible values include: 'ResourceSkuCapacityScaleTypeAutomatic', 'ResourceSkuCapacityScaleTypeManual', 'ResourceSkuCapacityScaleTypeNone' 4532 ScaleType ResourceSkuCapacityScaleType `json:"scaleType,omitempty"` 4533} 4534 4535// ResourceSkuCosts describes metadata for retrieving price info. 4536type ResourceSkuCosts struct { 4537 // MeterID - Used for querying price from commerce. 4538 MeterID *string `json:"meterID,omitempty"` 4539 // Quantity - The multiplier is needed to extend the base metered cost. 4540 Quantity *int64 `json:"quantity,omitempty"` 4541 // ExtendedUnit - An invariant to show the extended unit. 4542 ExtendedUnit *string `json:"extendedUnit,omitempty"` 4543} 4544 4545// ResourceSkuLocationInfo ... 4546type ResourceSkuLocationInfo struct { 4547 // Location - Location of the SKU 4548 Location *string `json:"location,omitempty"` 4549 // Zones - List of availability zones where the SKU is supported. 4550 Zones *[]string `json:"zones,omitempty"` 4551} 4552 4553// ResourceSkuRestrictionInfo ... 4554type ResourceSkuRestrictionInfo struct { 4555 // Locations - Locations where the SKU is restricted 4556 Locations *[]string `json:"locations,omitempty"` 4557 // Zones - List of availability zones where the SKU is restricted. 4558 Zones *[]string `json:"zones,omitempty"` 4559} 4560 4561// ResourceSkuRestrictions describes scaling information of a SKU. 4562type ResourceSkuRestrictions struct { 4563 // Type - The type of restrictions. Possible values include: 'Location', 'Zone' 4564 Type ResourceSkuRestrictionsType `json:"type,omitempty"` 4565 // Values - The value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted. 4566 Values *[]string `json:"values,omitempty"` 4567 // RestrictionInfo - The information about the restriction where the SKU cannot be used. 4568 RestrictionInfo *ResourceSkuRestrictionInfo `json:"restrictionInfo,omitempty"` 4569 // ReasonCode - The reason for restriction. Possible values include: 'QuotaID', 'NotAvailableForSubscription' 4570 ReasonCode ResourceSkuRestrictionsReasonCode `json:"reasonCode,omitempty"` 4571} 4572 4573// ResourceSkusResult the Compute List Skus operation response. 4574type ResourceSkusResult struct { 4575 autorest.Response `json:"-"` 4576 // Value - The list of skus available for the subscription. 4577 Value *[]ResourceSku `json:"value,omitempty"` 4578 // NextLink - The uri to fetch the next page of Compute Skus. Call ListNext() with this to fetch the next page of VMSS Skus. 4579 NextLink *string `json:"nextLink,omitempty"` 4580} 4581 4582// ResourceSkusResultIterator provides access to a complete listing of ResourceSku values. 4583type ResourceSkusResultIterator struct { 4584 i int 4585 page ResourceSkusResultPage 4586} 4587 4588// Next advances to the next value. If there was an error making 4589// the request the iterator does not advance and the error is returned. 4590func (iter *ResourceSkusResultIterator) Next() error { 4591 iter.i++ 4592 if iter.i < len(iter.page.Values()) { 4593 return nil 4594 } 4595 err := iter.page.Next() 4596 if err != nil { 4597 iter.i-- 4598 return err 4599 } 4600 iter.i = 0 4601 return nil 4602} 4603 4604// NotDone returns true if the enumeration should be started or is not yet complete. 4605func (iter ResourceSkusResultIterator) NotDone() bool { 4606 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 4607} 4608 4609// Response returns the raw server response from the last page request. 4610func (iter ResourceSkusResultIterator) Response() ResourceSkusResult { 4611 return iter.page.Response() 4612} 4613 4614// Value returns the current value or a zero-initialized value if the 4615// iterator has advanced beyond the end of the collection. 4616func (iter ResourceSkusResultIterator) Value() ResourceSku { 4617 if !iter.page.NotDone() { 4618 return ResourceSku{} 4619 } 4620 return iter.page.Values()[iter.i] 4621} 4622 4623// IsEmpty returns true if the ListResult contains no values. 4624func (rsr ResourceSkusResult) IsEmpty() bool { 4625 return rsr.Value == nil || len(*rsr.Value) == 0 4626} 4627 4628// resourceSkusResultPreparer prepares a request to retrieve the next set of results. 4629// It returns nil if no more results exist. 4630func (rsr ResourceSkusResult) resourceSkusResultPreparer() (*http.Request, error) { 4631 if rsr.NextLink == nil || len(to.String(rsr.NextLink)) < 1 { 4632 return nil, nil 4633 } 4634 return autorest.Prepare(&http.Request{}, 4635 autorest.AsJSON(), 4636 autorest.AsGet(), 4637 autorest.WithBaseURL(to.String(rsr.NextLink))) 4638} 4639 4640// ResourceSkusResultPage contains a page of ResourceSku values. 4641type ResourceSkusResultPage struct { 4642 fn func(ResourceSkusResult) (ResourceSkusResult, error) 4643 rsr ResourceSkusResult 4644} 4645 4646// Next advances to the next page of values. If there was an error making 4647// the request the page does not advance and the error is returned. 4648func (page *ResourceSkusResultPage) Next() error { 4649 next, err := page.fn(page.rsr) 4650 if err != nil { 4651 return err 4652 } 4653 page.rsr = next 4654 return nil 4655} 4656 4657// NotDone returns true if the page enumeration should be started or is not yet complete. 4658func (page ResourceSkusResultPage) NotDone() bool { 4659 return !page.rsr.IsEmpty() 4660} 4661 4662// Response returns the raw server response from the last page request. 4663func (page ResourceSkusResultPage) Response() ResourceSkusResult { 4664 return page.rsr 4665} 4666 4667// Values returns the slice of values for the current page or nil if there are no values. 4668func (page ResourceSkusResultPage) Values() []ResourceSku { 4669 if page.rsr.IsEmpty() { 4670 return nil 4671 } 4672 return *page.rsr.Value 4673} 4674 4675// RollbackStatusInfo information about rollback on failed VM instances after a OS Upgrade operation. 4676type RollbackStatusInfo struct { 4677 // SuccessfullyRolledbackInstanceCount - The number of instances which have been successfully rolled back. 4678 SuccessfullyRolledbackInstanceCount *int32 `json:"successfullyRolledbackInstanceCount,omitempty"` 4679 // FailedRolledbackInstanceCount - The number of instances which failed to rollback. 4680 FailedRolledbackInstanceCount *int32 `json:"failedRolledbackInstanceCount,omitempty"` 4681 // RollbackError - Error details if OS rollback failed. 4682 RollbackError *APIError `json:"rollbackError,omitempty"` 4683} 4684 4685// RollingUpgradePolicy the configuration parameters used while performing a rolling upgrade. 4686type RollingUpgradePolicy struct { 4687 // MaxBatchInstancePercent - 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%. 4688 MaxBatchInstancePercent *int32 `json:"maxBatchInstancePercent,omitempty"` 4689 // MaxUnhealthyInstancePercent - 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%. 4690 MaxUnhealthyInstancePercent *int32 `json:"maxUnhealthyInstancePercent,omitempty"` 4691 // MaxUnhealthyUpgradedInstancePercent - 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%. 4692 MaxUnhealthyUpgradedInstancePercent *int32 `json:"maxUnhealthyUpgradedInstancePercent,omitempty"` 4693 // PauseTimeBetweenBatches - 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). 4694 PauseTimeBetweenBatches *string `json:"pauseTimeBetweenBatches,omitempty"` 4695} 4696 4697// RollingUpgradeProgressInfo information about the number of virtual machine instances in each upgrade state. 4698type RollingUpgradeProgressInfo struct { 4699 // SuccessfulInstanceCount - The number of instances that have been successfully upgraded. 4700 SuccessfulInstanceCount *int32 `json:"successfulInstanceCount,omitempty"` 4701 // FailedInstanceCount - The number of instances that have failed to be upgraded successfully. 4702 FailedInstanceCount *int32 `json:"failedInstanceCount,omitempty"` 4703 // InProgressInstanceCount - The number of instances that are currently being upgraded. 4704 InProgressInstanceCount *int32 `json:"inProgressInstanceCount,omitempty"` 4705 // PendingInstanceCount - The number of instances that have not yet begun to be upgraded. 4706 PendingInstanceCount *int32 `json:"pendingInstanceCount,omitempty"` 4707} 4708 4709// RollingUpgradeRunningStatus information about the current running state of the overall upgrade. 4710type RollingUpgradeRunningStatus struct { 4711 // Code - Code indicating the current status of the upgrade. Possible values include: 'RollingUpgradeStatusCodeRollingForward', 'RollingUpgradeStatusCodeCancelled', 'RollingUpgradeStatusCodeCompleted', 'RollingUpgradeStatusCodeFaulted' 4712 Code RollingUpgradeStatusCode `json:"code,omitempty"` 4713 // StartTime - Start time of the upgrade. 4714 StartTime *date.Time `json:"startTime,omitempty"` 4715 // LastAction - The last action performed on the rolling upgrade. Possible values include: 'Start', 'Cancel' 4716 LastAction RollingUpgradeActionType `json:"lastAction,omitempty"` 4717 // LastActionTime - Last action time of the upgrade. 4718 LastActionTime *date.Time `json:"lastActionTime,omitempty"` 4719} 4720 4721// RollingUpgradeStatusInfo the status of the latest virtual machine scale set rolling upgrade. 4722type RollingUpgradeStatusInfo struct { 4723 autorest.Response `json:"-"` 4724 *RollingUpgradeStatusInfoProperties `json:"properties,omitempty"` 4725 // ID - Resource Id 4726 ID *string `json:"id,omitempty"` 4727 // Name - Resource name 4728 Name *string `json:"name,omitempty"` 4729 // Type - Resource type 4730 Type *string `json:"type,omitempty"` 4731 // Location - Resource location 4732 Location *string `json:"location,omitempty"` 4733 // Tags - Resource tags 4734 Tags map[string]*string `json:"tags"` 4735} 4736 4737// MarshalJSON is the custom marshaler for RollingUpgradeStatusInfo. 4738func (rusi RollingUpgradeStatusInfo) MarshalJSON() ([]byte, error) { 4739 objectMap := make(map[string]interface{}) 4740 if rusi.RollingUpgradeStatusInfoProperties != nil { 4741 objectMap["properties"] = rusi.RollingUpgradeStatusInfoProperties 4742 } 4743 if rusi.ID != nil { 4744 objectMap["id"] = rusi.ID 4745 } 4746 if rusi.Name != nil { 4747 objectMap["name"] = rusi.Name 4748 } 4749 if rusi.Type != nil { 4750 objectMap["type"] = rusi.Type 4751 } 4752 if rusi.Location != nil { 4753 objectMap["location"] = rusi.Location 4754 } 4755 if rusi.Tags != nil { 4756 objectMap["tags"] = rusi.Tags 4757 } 4758 return json.Marshal(objectMap) 4759} 4760 4761// UnmarshalJSON is the custom unmarshaler for RollingUpgradeStatusInfo struct. 4762func (rusi *RollingUpgradeStatusInfo) UnmarshalJSON(body []byte) error { 4763 var m map[string]*json.RawMessage 4764 err := json.Unmarshal(body, &m) 4765 if err != nil { 4766 return err 4767 } 4768 for k, v := range m { 4769 switch k { 4770 case "properties": 4771 if v != nil { 4772 var rollingUpgradeStatusInfoProperties RollingUpgradeStatusInfoProperties 4773 err = json.Unmarshal(*v, &rollingUpgradeStatusInfoProperties) 4774 if err != nil { 4775 return err 4776 } 4777 rusi.RollingUpgradeStatusInfoProperties = &rollingUpgradeStatusInfoProperties 4778 } 4779 case "id": 4780 if v != nil { 4781 var ID string 4782 err = json.Unmarshal(*v, &ID) 4783 if err != nil { 4784 return err 4785 } 4786 rusi.ID = &ID 4787 } 4788 case "name": 4789 if v != nil { 4790 var name string 4791 err = json.Unmarshal(*v, &name) 4792 if err != nil { 4793 return err 4794 } 4795 rusi.Name = &name 4796 } 4797 case "type": 4798 if v != nil { 4799 var typeVar string 4800 err = json.Unmarshal(*v, &typeVar) 4801 if err != nil { 4802 return err 4803 } 4804 rusi.Type = &typeVar 4805 } 4806 case "location": 4807 if v != nil { 4808 var location string 4809 err = json.Unmarshal(*v, &location) 4810 if err != nil { 4811 return err 4812 } 4813 rusi.Location = &location 4814 } 4815 case "tags": 4816 if v != nil { 4817 var tags map[string]*string 4818 err = json.Unmarshal(*v, &tags) 4819 if err != nil { 4820 return err 4821 } 4822 rusi.Tags = tags 4823 } 4824 } 4825 } 4826 4827 return nil 4828} 4829 4830// RollingUpgradeStatusInfoProperties the status of the latest virtual machine scale set rolling upgrade. 4831type RollingUpgradeStatusInfoProperties struct { 4832 // Policy - The rolling upgrade policies applied for this upgrade. 4833 Policy *RollingUpgradePolicy `json:"policy,omitempty"` 4834 // RunningStatus - Information about the current running state of the overall upgrade. 4835 RunningStatus *RollingUpgradeRunningStatus `json:"runningStatus,omitempty"` 4836 // Progress - Information about the number of virtual machine instances in each upgrade state. 4837 Progress *RollingUpgradeProgressInfo `json:"progress,omitempty"` 4838 // Error - Error details for this upgrade, if there are any. 4839 Error *APIError `json:"error,omitempty"` 4840} 4841 4842// RunCommandDocument describes the properties of a Run Command. 4843type RunCommandDocument struct { 4844 autorest.Response `json:"-"` 4845 // Script - The script to be executed. 4846 Script *[]string `json:"script,omitempty"` 4847 // Parameters - The parameters used by the script. 4848 Parameters *[]RunCommandParameterDefinition `json:"parameters,omitempty"` 4849 // Schema - The VM run command schema. 4850 Schema *string `json:"$schema,omitempty"` 4851 // ID - The VM run command id. 4852 ID *string `json:"id,omitempty"` 4853 // OsType - The Operating System type. Possible values include: 'Windows', 'Linux' 4854 OsType OperatingSystemTypes `json:"osType,omitempty"` 4855 // Label - The VM run command label. 4856 Label *string `json:"label,omitempty"` 4857 // Description - The VM run command description. 4858 Description *string `json:"description,omitempty"` 4859} 4860 4861// RunCommandDocumentBase describes the properties of a Run Command metadata. 4862type RunCommandDocumentBase struct { 4863 // Schema - The VM run command schema. 4864 Schema *string `json:"$schema,omitempty"` 4865 // ID - The VM run command id. 4866 ID *string `json:"id,omitempty"` 4867 // OsType - The Operating System type. Possible values include: 'Windows', 'Linux' 4868 OsType OperatingSystemTypes `json:"osType,omitempty"` 4869 // Label - The VM run command label. 4870 Label *string `json:"label,omitempty"` 4871 // Description - The VM run command description. 4872 Description *string `json:"description,omitempty"` 4873} 4874 4875// RunCommandInput capture Virtual Machine parameters. 4876type RunCommandInput struct { 4877 // CommandID - The run command id. 4878 CommandID *string `json:"commandId,omitempty"` 4879 // Script - Optional. The script to be executed. When this value is given, the given script will override the default script of the command. 4880 Script *[]string `json:"script,omitempty"` 4881 // Parameters - The run command parameters. 4882 Parameters *[]RunCommandInputParameter `json:"parameters,omitempty"` 4883} 4884 4885// RunCommandInputParameter describes the properties of a run command parameter. 4886type RunCommandInputParameter struct { 4887 // Name - The run command parameter name. 4888 Name *string `json:"name,omitempty"` 4889 // Value - The run command parameter value. 4890 Value *string `json:"value,omitempty"` 4891} 4892 4893// RunCommandListResult the List Virtual Machine operation response. 4894type RunCommandListResult struct { 4895 autorest.Response `json:"-"` 4896 // Value - The list of virtual machine run commands. 4897 Value *[]RunCommandDocumentBase `json:"value,omitempty"` 4898 // NextLink - The uri to fetch the next page of run commands. Call ListNext() with this to fetch the next page of run commands. 4899 NextLink *string `json:"nextLink,omitempty"` 4900} 4901 4902// RunCommandListResultIterator provides access to a complete listing of RunCommandDocumentBase values. 4903type RunCommandListResultIterator struct { 4904 i int 4905 page RunCommandListResultPage 4906} 4907 4908// Next advances to the next value. If there was an error making 4909// the request the iterator does not advance and the error is returned. 4910func (iter *RunCommandListResultIterator) Next() error { 4911 iter.i++ 4912 if iter.i < len(iter.page.Values()) { 4913 return nil 4914 } 4915 err := iter.page.Next() 4916 if err != nil { 4917 iter.i-- 4918 return err 4919 } 4920 iter.i = 0 4921 return nil 4922} 4923 4924// NotDone returns true if the enumeration should be started or is not yet complete. 4925func (iter RunCommandListResultIterator) NotDone() bool { 4926 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 4927} 4928 4929// Response returns the raw server response from the last page request. 4930func (iter RunCommandListResultIterator) Response() RunCommandListResult { 4931 return iter.page.Response() 4932} 4933 4934// Value returns the current value or a zero-initialized value if the 4935// iterator has advanced beyond the end of the collection. 4936func (iter RunCommandListResultIterator) Value() RunCommandDocumentBase { 4937 if !iter.page.NotDone() { 4938 return RunCommandDocumentBase{} 4939 } 4940 return iter.page.Values()[iter.i] 4941} 4942 4943// IsEmpty returns true if the ListResult contains no values. 4944func (rclr RunCommandListResult) IsEmpty() bool { 4945 return rclr.Value == nil || len(*rclr.Value) == 0 4946} 4947 4948// runCommandListResultPreparer prepares a request to retrieve the next set of results. 4949// It returns nil if no more results exist. 4950func (rclr RunCommandListResult) runCommandListResultPreparer() (*http.Request, error) { 4951 if rclr.NextLink == nil || len(to.String(rclr.NextLink)) < 1 { 4952 return nil, nil 4953 } 4954 return autorest.Prepare(&http.Request{}, 4955 autorest.AsJSON(), 4956 autorest.AsGet(), 4957 autorest.WithBaseURL(to.String(rclr.NextLink))) 4958} 4959 4960// RunCommandListResultPage contains a page of RunCommandDocumentBase values. 4961type RunCommandListResultPage struct { 4962 fn func(RunCommandListResult) (RunCommandListResult, error) 4963 rclr RunCommandListResult 4964} 4965 4966// Next advances to the next page of values. If there was an error making 4967// the request the page does not advance and the error is returned. 4968func (page *RunCommandListResultPage) Next() error { 4969 next, err := page.fn(page.rclr) 4970 if err != nil { 4971 return err 4972 } 4973 page.rclr = next 4974 return nil 4975} 4976 4977// NotDone returns true if the page enumeration should be started or is not yet complete. 4978func (page RunCommandListResultPage) NotDone() bool { 4979 return !page.rclr.IsEmpty() 4980} 4981 4982// Response returns the raw server response from the last page request. 4983func (page RunCommandListResultPage) Response() RunCommandListResult { 4984 return page.rclr 4985} 4986 4987// Values returns the slice of values for the current page or nil if there are no values. 4988func (page RunCommandListResultPage) Values() []RunCommandDocumentBase { 4989 if page.rclr.IsEmpty() { 4990 return nil 4991 } 4992 return *page.rclr.Value 4993} 4994 4995// RunCommandParameterDefinition describes the properties of a run command parameter. 4996type RunCommandParameterDefinition struct { 4997 // Name - The run command parameter name. 4998 Name *string `json:"name,omitempty"` 4999 // Type - The run command parameter type. 5000 Type *string `json:"type,omitempty"` 5001 // DefaultValue - The run command parameter default value. 5002 DefaultValue *string `json:"defaultValue,omitempty"` 5003 // Required - The run command parameter required. 5004 Required *bool `json:"required,omitempty"` 5005} 5006 5007// RunCommandResult ... 5008type RunCommandResult struct { 5009 autorest.Response `json:"-"` 5010 // Value - Run command operation response. 5011 Value *[]InstanceViewStatus `json:"value,omitempty"` 5012} 5013 5014// Sku describes a virtual machine scale set sku. 5015type Sku struct { 5016 // Name - The sku name. 5017 Name *string `json:"name,omitempty"` 5018 // Tier - Specifies the tier of virtual machines in a scale set.<br /><br /> Possible Values:<br /><br /> **Standard**<br /><br /> **Basic** 5019 Tier *string `json:"tier,omitempty"` 5020 // Capacity - Specifies the number of virtual machines in the scale set. 5021 Capacity *int64 `json:"capacity,omitempty"` 5022} 5023 5024// Snapshot snapshot resource. 5025type Snapshot struct { 5026 autorest.Response `json:"-"` 5027 // ManagedBy - Unused. Always Null. 5028 ManagedBy *string `json:"managedBy,omitempty"` 5029 Sku *SnapshotSku `json:"sku,omitempty"` 5030 *SnapshotProperties `json:"properties,omitempty"` 5031 // ID - Resource Id 5032 ID *string `json:"id,omitempty"` 5033 // Name - Resource name 5034 Name *string `json:"name,omitempty"` 5035 // Type - Resource type 5036 Type *string `json:"type,omitempty"` 5037 // Location - Resource location 5038 Location *string `json:"location,omitempty"` 5039 // Tags - Resource tags 5040 Tags map[string]*string `json:"tags"` 5041} 5042 5043// MarshalJSON is the custom marshaler for Snapshot. 5044func (s Snapshot) MarshalJSON() ([]byte, error) { 5045 objectMap := make(map[string]interface{}) 5046 if s.ManagedBy != nil { 5047 objectMap["managedBy"] = s.ManagedBy 5048 } 5049 if s.Sku != nil { 5050 objectMap["sku"] = s.Sku 5051 } 5052 if s.SnapshotProperties != nil { 5053 objectMap["properties"] = s.SnapshotProperties 5054 } 5055 if s.ID != nil { 5056 objectMap["id"] = s.ID 5057 } 5058 if s.Name != nil { 5059 objectMap["name"] = s.Name 5060 } 5061 if s.Type != nil { 5062 objectMap["type"] = s.Type 5063 } 5064 if s.Location != nil { 5065 objectMap["location"] = s.Location 5066 } 5067 if s.Tags != nil { 5068 objectMap["tags"] = s.Tags 5069 } 5070 return json.Marshal(objectMap) 5071} 5072 5073// UnmarshalJSON is the custom unmarshaler for Snapshot struct. 5074func (s *Snapshot) UnmarshalJSON(body []byte) error { 5075 var m map[string]*json.RawMessage 5076 err := json.Unmarshal(body, &m) 5077 if err != nil { 5078 return err 5079 } 5080 for k, v := range m { 5081 switch k { 5082 case "managedBy": 5083 if v != nil { 5084 var managedBy string 5085 err = json.Unmarshal(*v, &managedBy) 5086 if err != nil { 5087 return err 5088 } 5089 s.ManagedBy = &managedBy 5090 } 5091 case "sku": 5092 if v != nil { 5093 var sku SnapshotSku 5094 err = json.Unmarshal(*v, &sku) 5095 if err != nil { 5096 return err 5097 } 5098 s.Sku = &sku 5099 } 5100 case "properties": 5101 if v != nil { 5102 var snapshotProperties SnapshotProperties 5103 err = json.Unmarshal(*v, &snapshotProperties) 5104 if err != nil { 5105 return err 5106 } 5107 s.SnapshotProperties = &snapshotProperties 5108 } 5109 case "id": 5110 if v != nil { 5111 var ID string 5112 err = json.Unmarshal(*v, &ID) 5113 if err != nil { 5114 return err 5115 } 5116 s.ID = &ID 5117 } 5118 case "name": 5119 if v != nil { 5120 var name string 5121 err = json.Unmarshal(*v, &name) 5122 if err != nil { 5123 return err 5124 } 5125 s.Name = &name 5126 } 5127 case "type": 5128 if v != nil { 5129 var typeVar string 5130 err = json.Unmarshal(*v, &typeVar) 5131 if err != nil { 5132 return err 5133 } 5134 s.Type = &typeVar 5135 } 5136 case "location": 5137 if v != nil { 5138 var location string 5139 err = json.Unmarshal(*v, &location) 5140 if err != nil { 5141 return err 5142 } 5143 s.Location = &location 5144 } 5145 case "tags": 5146 if v != nil { 5147 var tags map[string]*string 5148 err = json.Unmarshal(*v, &tags) 5149 if err != nil { 5150 return err 5151 } 5152 s.Tags = tags 5153 } 5154 } 5155 } 5156 5157 return nil 5158} 5159 5160// SnapshotList the List Snapshots operation response. 5161type SnapshotList struct { 5162 autorest.Response `json:"-"` 5163 // Value - A list of snapshots. 5164 Value *[]Snapshot `json:"value,omitempty"` 5165 // NextLink - The uri to fetch the next page of snapshots. Call ListNext() with this to fetch the next page of snapshots. 5166 NextLink *string `json:"nextLink,omitempty"` 5167} 5168 5169// SnapshotListIterator provides access to a complete listing of Snapshot values. 5170type SnapshotListIterator struct { 5171 i int 5172 page SnapshotListPage 5173} 5174 5175// Next advances to the next value. If there was an error making 5176// the request the iterator does not advance and the error is returned. 5177func (iter *SnapshotListIterator) Next() error { 5178 iter.i++ 5179 if iter.i < len(iter.page.Values()) { 5180 return nil 5181 } 5182 err := iter.page.Next() 5183 if err != nil { 5184 iter.i-- 5185 return err 5186 } 5187 iter.i = 0 5188 return nil 5189} 5190 5191// NotDone returns true if the enumeration should be started or is not yet complete. 5192func (iter SnapshotListIterator) NotDone() bool { 5193 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 5194} 5195 5196// Response returns the raw server response from the last page request. 5197func (iter SnapshotListIterator) Response() SnapshotList { 5198 return iter.page.Response() 5199} 5200 5201// Value returns the current value or a zero-initialized value if the 5202// iterator has advanced beyond the end of the collection. 5203func (iter SnapshotListIterator) Value() Snapshot { 5204 if !iter.page.NotDone() { 5205 return Snapshot{} 5206 } 5207 return iter.page.Values()[iter.i] 5208} 5209 5210// IsEmpty returns true if the ListResult contains no values. 5211func (sl SnapshotList) IsEmpty() bool { 5212 return sl.Value == nil || len(*sl.Value) == 0 5213} 5214 5215// snapshotListPreparer prepares a request to retrieve the next set of results. 5216// It returns nil if no more results exist. 5217func (sl SnapshotList) snapshotListPreparer() (*http.Request, error) { 5218 if sl.NextLink == nil || len(to.String(sl.NextLink)) < 1 { 5219 return nil, nil 5220 } 5221 return autorest.Prepare(&http.Request{}, 5222 autorest.AsJSON(), 5223 autorest.AsGet(), 5224 autorest.WithBaseURL(to.String(sl.NextLink))) 5225} 5226 5227// SnapshotListPage contains a page of Snapshot values. 5228type SnapshotListPage struct { 5229 fn func(SnapshotList) (SnapshotList, error) 5230 sl SnapshotList 5231} 5232 5233// Next advances to the next page of values. If there was an error making 5234// the request the page does not advance and the error is returned. 5235func (page *SnapshotListPage) Next() error { 5236 next, err := page.fn(page.sl) 5237 if err != nil { 5238 return err 5239 } 5240 page.sl = next 5241 return nil 5242} 5243 5244// NotDone returns true if the page enumeration should be started or is not yet complete. 5245func (page SnapshotListPage) NotDone() bool { 5246 return !page.sl.IsEmpty() 5247} 5248 5249// Response returns the raw server response from the last page request. 5250func (page SnapshotListPage) Response() SnapshotList { 5251 return page.sl 5252} 5253 5254// Values returns the slice of values for the current page or nil if there are no values. 5255func (page SnapshotListPage) Values() []Snapshot { 5256 if page.sl.IsEmpty() { 5257 return nil 5258 } 5259 return *page.sl.Value 5260} 5261 5262// SnapshotProperties snapshot resource properties. 5263type SnapshotProperties struct { 5264 // TimeCreated - The time when the disk was created. 5265 TimeCreated *date.Time `json:"timeCreated,omitempty"` 5266 // OsType - The Operating System type. Possible values include: 'Windows', 'Linux' 5267 OsType OperatingSystemTypes `json:"osType,omitempty"` 5268 // CreationData - Disk source information. CreationData information cannot be changed after the disk has been created. 5269 CreationData *CreationData `json:"creationData,omitempty"` 5270 // DiskSizeGB - If creationData.createOption is Empty, this field is mandatory and it indicates the size of the VHD to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size. 5271 DiskSizeGB *int32 `json:"diskSizeGB,omitempty"` 5272 // EncryptionSettings - Encryption settings for disk or snapshot 5273 EncryptionSettings *EncryptionSettings `json:"encryptionSettings,omitempty"` 5274 // ProvisioningState - The disk provisioning state. 5275 ProvisioningState *string `json:"provisioningState,omitempty"` 5276} 5277 5278// SnapshotsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 5279// operation. 5280type SnapshotsCreateOrUpdateFuture struct { 5281 azure.Future 5282} 5283 5284// Result returns the result of the asynchronous operation. 5285// If the operation has not completed it will return an error. 5286func (future *SnapshotsCreateOrUpdateFuture) Result(client SnapshotsClient) (s Snapshot, err error) { 5287 var done bool 5288 done, err = future.Done(client) 5289 if err != nil { 5290 err = autorest.NewErrorWithError(err, "compute.SnapshotsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 5291 return 5292 } 5293 if !done { 5294 err = azure.NewAsyncOpIncompleteError("compute.SnapshotsCreateOrUpdateFuture") 5295 return 5296 } 5297 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 5298 if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 5299 s, err = client.CreateOrUpdateResponder(s.Response.Response) 5300 if err != nil { 5301 err = autorest.NewErrorWithError(err, "compute.SnapshotsCreateOrUpdateFuture", "Result", s.Response.Response, "Failure responding to request") 5302 } 5303 } 5304 return 5305} 5306 5307// SnapshotsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. 5308type SnapshotsDeleteFuture struct { 5309 azure.Future 5310} 5311 5312// Result returns the result of the asynchronous operation. 5313// If the operation has not completed it will return an error. 5314func (future *SnapshotsDeleteFuture) Result(client SnapshotsClient) (ar autorest.Response, err error) { 5315 var done bool 5316 done, err = future.Done(client) 5317 if err != nil { 5318 err = autorest.NewErrorWithError(err, "compute.SnapshotsDeleteFuture", "Result", future.Response(), "Polling failure") 5319 return 5320 } 5321 if !done { 5322 err = azure.NewAsyncOpIncompleteError("compute.SnapshotsDeleteFuture") 5323 return 5324 } 5325 ar.Response = future.Response() 5326 return 5327} 5328 5329// SnapshotsGrantAccessFuture an abstraction for monitoring and retrieving the results of a long-running operation. 5330type SnapshotsGrantAccessFuture struct { 5331 azure.Future 5332} 5333 5334// Result returns the result of the asynchronous operation. 5335// If the operation has not completed it will return an error. 5336func (future *SnapshotsGrantAccessFuture) Result(client SnapshotsClient) (au AccessURI, err error) { 5337 var done bool 5338 done, err = future.Done(client) 5339 if err != nil { 5340 err = autorest.NewErrorWithError(err, "compute.SnapshotsGrantAccessFuture", "Result", future.Response(), "Polling failure") 5341 return 5342 } 5343 if !done { 5344 err = azure.NewAsyncOpIncompleteError("compute.SnapshotsGrantAccessFuture") 5345 return 5346 } 5347 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 5348 if au.Response.Response, err = future.GetResult(sender); err == nil && au.Response.Response.StatusCode != http.StatusNoContent { 5349 au, err = client.GrantAccessResponder(au.Response.Response) 5350 if err != nil { 5351 err = autorest.NewErrorWithError(err, "compute.SnapshotsGrantAccessFuture", "Result", au.Response.Response, "Failure responding to request") 5352 } 5353 } 5354 return 5355} 5356 5357// SnapshotSku the snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS. 5358type SnapshotSku struct { 5359 // Name - The sku name. Possible values include: 'SnapshotStorageAccountTypesStandardLRS', 'SnapshotStorageAccountTypesPremiumLRS', 'SnapshotStorageAccountTypesStandardZRS' 5360 Name SnapshotStorageAccountTypes `json:"name,omitempty"` 5361 // Tier - The sku tier. 5362 Tier *string `json:"tier,omitempty"` 5363} 5364 5365// SnapshotsRevokeAccessFuture an abstraction for monitoring and retrieving the results of a long-running 5366// operation. 5367type SnapshotsRevokeAccessFuture struct { 5368 azure.Future 5369} 5370 5371// Result returns the result of the asynchronous operation. 5372// If the operation has not completed it will return an error. 5373func (future *SnapshotsRevokeAccessFuture) Result(client SnapshotsClient) (ar autorest.Response, err error) { 5374 var done bool 5375 done, err = future.Done(client) 5376 if err != nil { 5377 err = autorest.NewErrorWithError(err, "compute.SnapshotsRevokeAccessFuture", "Result", future.Response(), "Polling failure") 5378 return 5379 } 5380 if !done { 5381 err = azure.NewAsyncOpIncompleteError("compute.SnapshotsRevokeAccessFuture") 5382 return 5383 } 5384 ar.Response = future.Response() 5385 return 5386} 5387 5388// SnapshotsUpdateFuture an abstraction for monitoring and retrieving the results of a long-running operation. 5389type SnapshotsUpdateFuture struct { 5390 azure.Future 5391} 5392 5393// Result returns the result of the asynchronous operation. 5394// If the operation has not completed it will return an error. 5395func (future *SnapshotsUpdateFuture) Result(client SnapshotsClient) (s Snapshot, err error) { 5396 var done bool 5397 done, err = future.Done(client) 5398 if err != nil { 5399 err = autorest.NewErrorWithError(err, "compute.SnapshotsUpdateFuture", "Result", future.Response(), "Polling failure") 5400 return 5401 } 5402 if !done { 5403 err = azure.NewAsyncOpIncompleteError("compute.SnapshotsUpdateFuture") 5404 return 5405 } 5406 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 5407 if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { 5408 s, err = client.UpdateResponder(s.Response.Response) 5409 if err != nil { 5410 err = autorest.NewErrorWithError(err, "compute.SnapshotsUpdateFuture", "Result", s.Response.Response, "Failure responding to request") 5411 } 5412 } 5413 return 5414} 5415 5416// SnapshotUpdate snapshot update resource. 5417type SnapshotUpdate struct { 5418 *SnapshotUpdateProperties `json:"properties,omitempty"` 5419 // Tags - Resource tags 5420 Tags map[string]*string `json:"tags"` 5421 Sku *SnapshotSku `json:"sku,omitempty"` 5422} 5423 5424// MarshalJSON is the custom marshaler for SnapshotUpdate. 5425func (su SnapshotUpdate) MarshalJSON() ([]byte, error) { 5426 objectMap := make(map[string]interface{}) 5427 if su.SnapshotUpdateProperties != nil { 5428 objectMap["properties"] = su.SnapshotUpdateProperties 5429 } 5430 if su.Tags != nil { 5431 objectMap["tags"] = su.Tags 5432 } 5433 if su.Sku != nil { 5434 objectMap["sku"] = su.Sku 5435 } 5436 return json.Marshal(objectMap) 5437} 5438 5439// UnmarshalJSON is the custom unmarshaler for SnapshotUpdate struct. 5440func (su *SnapshotUpdate) UnmarshalJSON(body []byte) error { 5441 var m map[string]*json.RawMessage 5442 err := json.Unmarshal(body, &m) 5443 if err != nil { 5444 return err 5445 } 5446 for k, v := range m { 5447 switch k { 5448 case "properties": 5449 if v != nil { 5450 var snapshotUpdateProperties SnapshotUpdateProperties 5451 err = json.Unmarshal(*v, &snapshotUpdateProperties) 5452 if err != nil { 5453 return err 5454 } 5455 su.SnapshotUpdateProperties = &snapshotUpdateProperties 5456 } 5457 case "tags": 5458 if v != nil { 5459 var tags map[string]*string 5460 err = json.Unmarshal(*v, &tags) 5461 if err != nil { 5462 return err 5463 } 5464 su.Tags = tags 5465 } 5466 case "sku": 5467 if v != nil { 5468 var sku SnapshotSku 5469 err = json.Unmarshal(*v, &sku) 5470 if err != nil { 5471 return err 5472 } 5473 su.Sku = &sku 5474 } 5475 } 5476 } 5477 5478 return nil 5479} 5480 5481// SnapshotUpdateProperties snapshot resource update properties. 5482type SnapshotUpdateProperties struct { 5483 // OsType - the Operating System type. Possible values include: 'Windows', 'Linux' 5484 OsType OperatingSystemTypes `json:"osType,omitempty"` 5485 // DiskSizeGB - If creationData.createOption is Empty, this field is mandatory and it indicates the size of the VHD to create. If this field is present for updates or creation with other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size. 5486 DiskSizeGB *int32 `json:"diskSizeGB,omitempty"` 5487 // EncryptionSettings - Encryption settings for disk or snapshot 5488 EncryptionSettings *EncryptionSettings `json:"encryptionSettings,omitempty"` 5489} 5490 5491// SourceVault the vault id is an Azure Resource Manager Resoure id in the form 5492// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName} 5493type SourceVault struct { 5494 // ID - Resource Id 5495 ID *string `json:"id,omitempty"` 5496} 5497 5498// SSHConfiguration SSH configuration for Linux based VMs running on Azure 5499type SSHConfiguration struct { 5500 // PublicKeys - The list of SSH public keys used to authenticate with linux based VMs. 5501 PublicKeys *[]SSHPublicKey `json:"publicKeys,omitempty"` 5502} 5503 5504// SSHPublicKey contains information about SSH certificate public key and the path on the Linux VM where the public 5505// key is placed. 5506type SSHPublicKey struct { 5507 // Path - 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 5508 Path *string `json:"path,omitempty"` 5509 // KeyData - 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. <br><br> 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). 5510 KeyData *string `json:"keyData,omitempty"` 5511} 5512 5513// StorageProfile specifies the storage settings for the virtual machine disks. 5514type StorageProfile struct { 5515 // ImageReference - 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. 5516 ImageReference *ImageReference `json:"imageReference,omitempty"` 5517 // OsDisk - Specifies information about the operating system disk used by the virtual machine. <br><br> 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). 5518 OsDisk *OSDisk `json:"osDisk,omitempty"` 5519 // DataDisks - Specifies the parameters that are used to add a data disk to a virtual machine. <br><br> 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). 5520 DataDisks *[]DataDisk `json:"dataDisks,omitempty"` 5521} 5522 5523// SubResource ... 5524type SubResource struct { 5525 // ID - Resource Id 5526 ID *string `json:"id,omitempty"` 5527} 5528 5529// SubResourceReadOnly ... 5530type SubResourceReadOnly struct { 5531 // ID - Resource Id 5532 ID *string `json:"id,omitempty"` 5533} 5534 5535// TargetRegion describes the target region information. 5536type TargetRegion struct { 5537 // Name - The name of the region. 5538 Name *string `json:"name,omitempty"` 5539 // RegionalReplicaCount - The number of replicas of the Image Version to be created per region. This property is updateable. 5540 RegionalReplicaCount *int32 `json:"regionalReplicaCount,omitempty"` 5541} 5542 5543// ThrottledRequestsInput api request input for LogAnalytics getThrottledRequests Api. 5544type ThrottledRequestsInput struct { 5545 // BlobContainerSasURI - SAS Uri of the logging blob container to which LogAnalytics Api writes output logs to. 5546 BlobContainerSasURI *string `json:"blobContainerSasUri,omitempty"` 5547 // FromTime - From time of the query 5548 FromTime *date.Time `json:"fromTime,omitempty"` 5549 // ToTime - To time of the query 5550 ToTime *date.Time `json:"toTime,omitempty"` 5551 // GroupByThrottlePolicy - Group query result by Throttle Policy applied. 5552 GroupByThrottlePolicy *bool `json:"groupByThrottlePolicy,omitempty"` 5553 // GroupByOperationName - Group query result by by Operation Name. 5554 GroupByOperationName *bool `json:"groupByOperationName,omitempty"` 5555 // GroupByResourceName - Group query result by Resource Name. 5556 GroupByResourceName *bool `json:"groupByResourceName,omitempty"` 5557} 5558 5559// UpdateResource the Update Resource model definition. 5560type UpdateResource struct { 5561 // Tags - Resource tags 5562 Tags map[string]*string `json:"tags"` 5563} 5564 5565// MarshalJSON is the custom marshaler for UpdateResource. 5566func (ur UpdateResource) MarshalJSON() ([]byte, error) { 5567 objectMap := make(map[string]interface{}) 5568 if ur.Tags != nil { 5569 objectMap["tags"] = ur.Tags 5570 } 5571 return json.Marshal(objectMap) 5572} 5573 5574// UpgradeOperationHistoricalStatusInfo virtual Machine Scale Set OS Upgrade History operation response. 5575type UpgradeOperationHistoricalStatusInfo struct { 5576 // Properties - Information about the properties of the upgrade operation. 5577 Properties *UpgradeOperationHistoricalStatusInfoProperties `json:"properties,omitempty"` 5578 // Type - Resource type 5579 Type *string `json:"type,omitempty"` 5580 // Location - Resource location 5581 Location *string `json:"location,omitempty"` 5582} 5583 5584// UpgradeOperationHistoricalStatusInfoProperties describes each OS upgrade on the Virtual Machine Scale Set. 5585type UpgradeOperationHistoricalStatusInfoProperties struct { 5586 // RunningStatus - Information about the overall status of the upgrade operation. 5587 RunningStatus *UpgradeOperationHistoryStatus `json:"runningStatus,omitempty"` 5588 // Progress - Counts of the VM's in each state. 5589 Progress *RollingUpgradeProgressInfo `json:"progress,omitempty"` 5590 // Error - Error Details for this upgrade if there are any. 5591 Error *APIError `json:"error,omitempty"` 5592 // StartedBy - Invoker of the Upgrade Operation. Possible values include: 'UpgradeOperationInvokerUnknown', 'UpgradeOperationInvokerUser', 'UpgradeOperationInvokerPlatform' 5593 StartedBy UpgradeOperationInvoker `json:"startedBy,omitempty"` 5594 // TargetImageReference - Image Reference details 5595 TargetImageReference *ImageReference `json:"targetImageReference,omitempty"` 5596 // RollbackInfo - Information about OS rollback if performed 5597 RollbackInfo *RollbackStatusInfo `json:"rollbackInfo,omitempty"` 5598} 5599 5600// UpgradeOperationHistoryStatus information about the current running state of the overall upgrade. 5601type UpgradeOperationHistoryStatus struct { 5602 // Code - Code indicating the current status of the upgrade. Possible values include: 'UpgradeStateRollingForward', 'UpgradeStateCancelled', 'UpgradeStateCompleted', 'UpgradeStateFaulted' 5603 Code UpgradeState `json:"code,omitempty"` 5604 // StartTime - Start time of the upgrade. 5605 StartTime *date.Time `json:"startTime,omitempty"` 5606 // EndTime - End time of the upgrade. 5607 EndTime *date.Time `json:"endTime,omitempty"` 5608} 5609 5610// UpgradePolicy describes an upgrade policy - automatic, manual, or rolling. 5611type UpgradePolicy struct { 5612 // Mode - Specifies the mode of an upgrade to virtual machines in the scale set.<br /><br /> Possible values are:<br /><br /> **Manual** - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action.<br /><br /> **Automatic** - All virtual machines in the scale set are automatically updated at the same time. Possible values include: 'Automatic', 'Manual', 'Rolling' 5613 Mode UpgradeMode `json:"mode,omitempty"` 5614 // RollingUpgradePolicy - The configuration parameters used while performing a rolling upgrade. 5615 RollingUpgradePolicy *RollingUpgradePolicy `json:"rollingUpgradePolicy,omitempty"` 5616 // AutomaticOSUpgradePolicy - Configuration parameters used for performing automatic OS Upgrade. 5617 AutomaticOSUpgradePolicy *AutomaticOSUpgradePolicy `json:"automaticOSUpgradePolicy,omitempty"` 5618} 5619 5620// Usage describes Compute Resource Usage. 5621type Usage struct { 5622 // Unit - An enum describing the unit of usage measurement. 5623 Unit *string `json:"unit,omitempty"` 5624 // CurrentValue - The current usage of the resource. 5625 CurrentValue *int32 `json:"currentValue,omitempty"` 5626 // Limit - The maximum permitted usage of the resource. 5627 Limit *int64 `json:"limit,omitempty"` 5628 // Name - The name of the type of usage. 5629 Name *UsageName `json:"name,omitempty"` 5630} 5631 5632// UsageName the Usage Names. 5633type UsageName struct { 5634 // Value - The name of the resource. 5635 Value *string `json:"value,omitempty"` 5636 // LocalizedValue - The localized name of the resource. 5637 LocalizedValue *string `json:"localizedValue,omitempty"` 5638} 5639 5640// VaultCertificate describes a single certificate reference in a Key Vault, and where the certificate should 5641// reside on the VM. 5642type VaultCertificate struct { 5643 // CertificateURL - 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: <br><br> {<br> "data":"<Base64-encoded-certificate>",<br> "dataType":"pfx",<br> "password":"<pfx-file-password>"<br>} 5644 CertificateURL *string `json:"certificateUrl,omitempty"` 5645 // CertificateStore - 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. <br><br>For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate file and <UppercaseThumbpring>.prv for private key. Both of these files are .pem formatted. 5646 CertificateStore *string `json:"certificateStore,omitempty"` 5647} 5648 5649// VaultSecretGroup describes a set of certificates which are all in the same Key Vault. 5650type VaultSecretGroup struct { 5651 // SourceVault - The relative URL of the Key Vault containing all of the certificates in VaultCertificates. 5652 SourceVault *SubResource `json:"sourceVault,omitempty"` 5653 // VaultCertificates - The list of key vault references in SourceVault which contain certificates. 5654 VaultCertificates *[]VaultCertificate `json:"vaultCertificates,omitempty"` 5655} 5656 5657// VirtualHardDisk describes the uri of a disk. 5658type VirtualHardDisk struct { 5659 // URI - Specifies the virtual hard disk's uri. 5660 URI *string `json:"uri,omitempty"` 5661} 5662 5663// VirtualMachine describes a Virtual Machine. 5664type VirtualMachine struct { 5665 autorest.Response `json:"-"` 5666 // 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 ->**. Enter any required information and then click **Save**. 5667 Plan *Plan `json:"plan,omitempty"` 5668 *VirtualMachineProperties `json:"properties,omitempty"` 5669 // Resources - The virtual machine child extension resources. 5670 Resources *[]VirtualMachineExtension `json:"resources,omitempty"` 5671 // Identity - The identity of the virtual machine, if configured. 5672 Identity *VirtualMachineIdentity `json:"identity,omitempty"` 5673 // Zones - The virtual machine zones. 5674 Zones *[]string `json:"zones,omitempty"` 5675 // ID - Resource Id 5676 ID *string `json:"id,omitempty"` 5677 // Name - Resource name 5678 Name *string `json:"name,omitempty"` 5679 // Type - Resource type 5680 Type *string `json:"type,omitempty"` 5681 // Location - Resource location 5682 Location *string `json:"location,omitempty"` 5683 // Tags - Resource tags 5684 Tags map[string]*string `json:"tags"` 5685} 5686 5687// MarshalJSON is the custom marshaler for VirtualMachine. 5688func (VM VirtualMachine) MarshalJSON() ([]byte, error) { 5689 objectMap := make(map[string]interface{}) 5690 if VM.Plan != nil { 5691 objectMap["plan"] = VM.Plan 5692 } 5693 if VM.VirtualMachineProperties != nil { 5694 objectMap["properties"] = VM.VirtualMachineProperties 5695 } 5696 if VM.Resources != nil { 5697 objectMap["resources"] = VM.Resources 5698 } 5699 if VM.Identity != nil { 5700 objectMap["identity"] = VM.Identity 5701 } 5702 if VM.Zones != nil { 5703 objectMap["zones"] = VM.Zones 5704 } 5705 if VM.ID != nil { 5706 objectMap["id"] = VM.ID 5707 } 5708 if VM.Name != nil { 5709 objectMap["name"] = VM.Name 5710 } 5711 if VM.Type != nil { 5712 objectMap["type"] = VM.Type 5713 } 5714 if VM.Location != nil { 5715 objectMap["location"] = VM.Location 5716 } 5717 if VM.Tags != nil { 5718 objectMap["tags"] = VM.Tags 5719 } 5720 return json.Marshal(objectMap) 5721} 5722 5723// UnmarshalJSON is the custom unmarshaler for VirtualMachine struct. 5724func (VM *VirtualMachine) UnmarshalJSON(body []byte) error { 5725 var m map[string]*json.RawMessage 5726 err := json.Unmarshal(body, &m) 5727 if err != nil { 5728 return err 5729 } 5730 for k, v := range m { 5731 switch k { 5732 case "plan": 5733 if v != nil { 5734 var plan Plan 5735 err = json.Unmarshal(*v, &plan) 5736 if err != nil { 5737 return err 5738 } 5739 VM.Plan = &plan 5740 } 5741 case "properties": 5742 if v != nil { 5743 var virtualMachineProperties VirtualMachineProperties 5744 err = json.Unmarshal(*v, &virtualMachineProperties) 5745 if err != nil { 5746 return err 5747 } 5748 VM.VirtualMachineProperties = &virtualMachineProperties 5749 } 5750 case "resources": 5751 if v != nil { 5752 var resources []VirtualMachineExtension 5753 err = json.Unmarshal(*v, &resources) 5754 if err != nil { 5755 return err 5756 } 5757 VM.Resources = &resources 5758 } 5759 case "identity": 5760 if v != nil { 5761 var identity VirtualMachineIdentity 5762 err = json.Unmarshal(*v, &identity) 5763 if err != nil { 5764 return err 5765 } 5766 VM.Identity = &identity 5767 } 5768 case "zones": 5769 if v != nil { 5770 var zones []string 5771 err = json.Unmarshal(*v, &zones) 5772 if err != nil { 5773 return err 5774 } 5775 VM.Zones = &zones 5776 } 5777 case "id": 5778 if v != nil { 5779 var ID string 5780 err = json.Unmarshal(*v, &ID) 5781 if err != nil { 5782 return err 5783 } 5784 VM.ID = &ID 5785 } 5786 case "name": 5787 if v != nil { 5788 var name string 5789 err = json.Unmarshal(*v, &name) 5790 if err != nil { 5791 return err 5792 } 5793 VM.Name = &name 5794 } 5795 case "type": 5796 if v != nil { 5797 var typeVar string 5798 err = json.Unmarshal(*v, &typeVar) 5799 if err != nil { 5800 return err 5801 } 5802 VM.Type = &typeVar 5803 } 5804 case "location": 5805 if v != nil { 5806 var location string 5807 err = json.Unmarshal(*v, &location) 5808 if err != nil { 5809 return err 5810 } 5811 VM.Location = &location 5812 } 5813 case "tags": 5814 if v != nil { 5815 var tags map[string]*string 5816 err = json.Unmarshal(*v, &tags) 5817 if err != nil { 5818 return err 5819 } 5820 VM.Tags = tags 5821 } 5822 } 5823 } 5824 5825 return nil 5826} 5827 5828// VirtualMachineAgentInstanceView the instance view of the VM Agent running on the virtual machine. 5829type VirtualMachineAgentInstanceView struct { 5830 // VMAgentVersion - The VM Agent full version. 5831 VMAgentVersion *string `json:"vmAgentVersion,omitempty"` 5832 // ExtensionHandlers - The virtual machine extension handler instance view. 5833 ExtensionHandlers *[]VirtualMachineExtensionHandlerInstanceView `json:"extensionHandlers,omitempty"` 5834 // Statuses - The resource status information. 5835 Statuses *[]InstanceViewStatus `json:"statuses,omitempty"` 5836} 5837 5838// VirtualMachineCaptureParameters capture Virtual Machine parameters. 5839type VirtualMachineCaptureParameters struct { 5840 // VhdPrefix - The captured virtual hard disk's name prefix. 5841 VhdPrefix *string `json:"vhdPrefix,omitempty"` 5842 // DestinationContainerName - The destination container name. 5843 DestinationContainerName *string `json:"destinationContainerName,omitempty"` 5844 // OverwriteVhds - Specifies whether to overwrite the destination virtual hard disk, in case of conflict. 5845 OverwriteVhds *bool `json:"overwriteVhds,omitempty"` 5846} 5847 5848// VirtualMachineCaptureResult output of virtual machine capture operation. 5849type VirtualMachineCaptureResult struct { 5850 autorest.Response `json:"-"` 5851 // Schema - the schema of the captured virtual machine 5852 Schema *string `json:"$schema,omitempty"` 5853 // ContentVersion - the version of the content 5854 ContentVersion *string `json:"contentVersion,omitempty"` 5855 // Parameters - parameters of the captured virtual machine 5856 Parameters interface{} `json:"parameters,omitempty"` 5857 // Resources - a list of resource items of the captured virtual machine 5858 Resources *[]interface{} `json:"resources,omitempty"` 5859 // ID - Resource Id 5860 ID *string `json:"id,omitempty"` 5861} 5862 5863// VirtualMachineExtension describes a Virtual Machine Extension. 5864type VirtualMachineExtension struct { 5865 autorest.Response `json:"-"` 5866 *VirtualMachineExtensionProperties `json:"properties,omitempty"` 5867 // ID - Resource Id 5868 ID *string `json:"id,omitempty"` 5869 // Name - Resource name 5870 Name *string `json:"name,omitempty"` 5871 // Type - Resource type 5872 Type *string `json:"type,omitempty"` 5873 // Location - Resource location 5874 Location *string `json:"location,omitempty"` 5875 // Tags - Resource tags 5876 Tags map[string]*string `json:"tags"` 5877} 5878 5879// MarshalJSON is the custom marshaler for VirtualMachineExtension. 5880func (vme VirtualMachineExtension) MarshalJSON() ([]byte, error) { 5881 objectMap := make(map[string]interface{}) 5882 if vme.VirtualMachineExtensionProperties != nil { 5883 objectMap["properties"] = vme.VirtualMachineExtensionProperties 5884 } 5885 if vme.ID != nil { 5886 objectMap["id"] = vme.ID 5887 } 5888 if vme.Name != nil { 5889 objectMap["name"] = vme.Name 5890 } 5891 if vme.Type != nil { 5892 objectMap["type"] = vme.Type 5893 } 5894 if vme.Location != nil { 5895 objectMap["location"] = vme.Location 5896 } 5897 if vme.Tags != nil { 5898 objectMap["tags"] = vme.Tags 5899 } 5900 return json.Marshal(objectMap) 5901} 5902 5903// UnmarshalJSON is the custom unmarshaler for VirtualMachineExtension struct. 5904func (vme *VirtualMachineExtension) UnmarshalJSON(body []byte) error { 5905 var m map[string]*json.RawMessage 5906 err := json.Unmarshal(body, &m) 5907 if err != nil { 5908 return err 5909 } 5910 for k, v := range m { 5911 switch k { 5912 case "properties": 5913 if v != nil { 5914 var virtualMachineExtensionProperties VirtualMachineExtensionProperties 5915 err = json.Unmarshal(*v, &virtualMachineExtensionProperties) 5916 if err != nil { 5917 return err 5918 } 5919 vme.VirtualMachineExtensionProperties = &virtualMachineExtensionProperties 5920 } 5921 case "id": 5922 if v != nil { 5923 var ID string 5924 err = json.Unmarshal(*v, &ID) 5925 if err != nil { 5926 return err 5927 } 5928 vme.ID = &ID 5929 } 5930 case "name": 5931 if v != nil { 5932 var name string 5933 err = json.Unmarshal(*v, &name) 5934 if err != nil { 5935 return err 5936 } 5937 vme.Name = &name 5938 } 5939 case "type": 5940 if v != nil { 5941 var typeVar string 5942 err = json.Unmarshal(*v, &typeVar) 5943 if err != nil { 5944 return err 5945 } 5946 vme.Type = &typeVar 5947 } 5948 case "location": 5949 if v != nil { 5950 var location string 5951 err = json.Unmarshal(*v, &location) 5952 if err != nil { 5953 return err 5954 } 5955 vme.Location = &location 5956 } 5957 case "tags": 5958 if v != nil { 5959 var tags map[string]*string 5960 err = json.Unmarshal(*v, &tags) 5961 if err != nil { 5962 return err 5963 } 5964 vme.Tags = tags 5965 } 5966 } 5967 } 5968 5969 return nil 5970} 5971 5972// VirtualMachineExtensionHandlerInstanceView the instance view of a virtual machine extension handler. 5973type VirtualMachineExtensionHandlerInstanceView struct { 5974 // Type - Specifies the type of the extension; an example is "CustomScriptExtension". 5975 Type *string `json:"type,omitempty"` 5976 // TypeHandlerVersion - Specifies the version of the script handler. 5977 TypeHandlerVersion *string `json:"typeHandlerVersion,omitempty"` 5978 // Status - The extension handler status. 5979 Status *InstanceViewStatus `json:"status,omitempty"` 5980} 5981 5982// VirtualMachineExtensionImage describes a Virtual Machine Extension Image. 5983type VirtualMachineExtensionImage struct { 5984 autorest.Response `json:"-"` 5985 *VirtualMachineExtensionImageProperties `json:"properties,omitempty"` 5986 // ID - Resource Id 5987 ID *string `json:"id,omitempty"` 5988 // Name - Resource name 5989 Name *string `json:"name,omitempty"` 5990 // Type - Resource type 5991 Type *string `json:"type,omitempty"` 5992 // Location - Resource location 5993 Location *string `json:"location,omitempty"` 5994 // Tags - Resource tags 5995 Tags map[string]*string `json:"tags"` 5996} 5997 5998// MarshalJSON is the custom marshaler for VirtualMachineExtensionImage. 5999func (vmei VirtualMachineExtensionImage) MarshalJSON() ([]byte, error) { 6000 objectMap := make(map[string]interface{}) 6001 if vmei.VirtualMachineExtensionImageProperties != nil { 6002 objectMap["properties"] = vmei.VirtualMachineExtensionImageProperties 6003 } 6004 if vmei.ID != nil { 6005 objectMap["id"] = vmei.ID 6006 } 6007 if vmei.Name != nil { 6008 objectMap["name"] = vmei.Name 6009 } 6010 if vmei.Type != nil { 6011 objectMap["type"] = vmei.Type 6012 } 6013 if vmei.Location != nil { 6014 objectMap["location"] = vmei.Location 6015 } 6016 if vmei.Tags != nil { 6017 objectMap["tags"] = vmei.Tags 6018 } 6019 return json.Marshal(objectMap) 6020} 6021 6022// UnmarshalJSON is the custom unmarshaler for VirtualMachineExtensionImage struct. 6023func (vmei *VirtualMachineExtensionImage) UnmarshalJSON(body []byte) error { 6024 var m map[string]*json.RawMessage 6025 err := json.Unmarshal(body, &m) 6026 if err != nil { 6027 return err 6028 } 6029 for k, v := range m { 6030 switch k { 6031 case "properties": 6032 if v != nil { 6033 var virtualMachineExtensionImageProperties VirtualMachineExtensionImageProperties 6034 err = json.Unmarshal(*v, &virtualMachineExtensionImageProperties) 6035 if err != nil { 6036 return err 6037 } 6038 vmei.VirtualMachineExtensionImageProperties = &virtualMachineExtensionImageProperties 6039 } 6040 case "id": 6041 if v != nil { 6042 var ID string 6043 err = json.Unmarshal(*v, &ID) 6044 if err != nil { 6045 return err 6046 } 6047 vmei.ID = &ID 6048 } 6049 case "name": 6050 if v != nil { 6051 var name string 6052 err = json.Unmarshal(*v, &name) 6053 if err != nil { 6054 return err 6055 } 6056 vmei.Name = &name 6057 } 6058 case "type": 6059 if v != nil { 6060 var typeVar string 6061 err = json.Unmarshal(*v, &typeVar) 6062 if err != nil { 6063 return err 6064 } 6065 vmei.Type = &typeVar 6066 } 6067 case "location": 6068 if v != nil { 6069 var location string 6070 err = json.Unmarshal(*v, &location) 6071 if err != nil { 6072 return err 6073 } 6074 vmei.Location = &location 6075 } 6076 case "tags": 6077 if v != nil { 6078 var tags map[string]*string 6079 err = json.Unmarshal(*v, &tags) 6080 if err != nil { 6081 return err 6082 } 6083 vmei.Tags = tags 6084 } 6085 } 6086 } 6087 6088 return nil 6089} 6090 6091// VirtualMachineExtensionImageProperties describes the properties of a Virtual Machine Extension Image. 6092type VirtualMachineExtensionImageProperties struct { 6093 // OperatingSystem - The operating system this extension supports. 6094 OperatingSystem *string `json:"operatingSystem,omitempty"` 6095 // ComputeRole - The type of role (IaaS or PaaS) this extension supports. 6096 ComputeRole *string `json:"computeRole,omitempty"` 6097 // HandlerSchema - The schema defined by publisher, where extension consumers should provide settings in a matching schema. 6098 HandlerSchema *string `json:"handlerSchema,omitempty"` 6099 // VMScaleSetEnabled - 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. 6100 VMScaleSetEnabled *bool `json:"vmScaleSetEnabled,omitempty"` 6101 // SupportsMultipleExtensions - Whether the handler can support multiple extensions. 6102 SupportsMultipleExtensions *bool `json:"supportsMultipleExtensions,omitempty"` 6103} 6104 6105// VirtualMachineExtensionInstanceView the instance view of a virtual machine extension. 6106type VirtualMachineExtensionInstanceView struct { 6107 // Name - The virtual machine extension name. 6108 Name *string `json:"name,omitempty"` 6109 // Type - Specifies the type of the extension; an example is "CustomScriptExtension". 6110 Type *string `json:"type,omitempty"` 6111 // TypeHandlerVersion - Specifies the version of the script handler. 6112 TypeHandlerVersion *string `json:"typeHandlerVersion,omitempty"` 6113 // Substatuses - The resource status information. 6114 Substatuses *[]InstanceViewStatus `json:"substatuses,omitempty"` 6115 // Statuses - The resource status information. 6116 Statuses *[]InstanceViewStatus `json:"statuses,omitempty"` 6117} 6118 6119// VirtualMachineExtensionProperties describes the properties of a Virtual Machine Extension. 6120type VirtualMachineExtensionProperties struct { 6121 // ForceUpdateTag - How the extension handler should be forced to update even if the extension configuration has not changed. 6122 ForceUpdateTag *string `json:"forceUpdateTag,omitempty"` 6123 // Publisher - The name of the extension handler publisher. 6124 Publisher *string `json:"publisher,omitempty"` 6125 // Type - Specifies the type of the extension; an example is "CustomScriptExtension". 6126 Type *string `json:"type,omitempty"` 6127 // TypeHandlerVersion - Specifies the version of the script handler. 6128 TypeHandlerVersion *string `json:"typeHandlerVersion,omitempty"` 6129 // 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. 6130 AutoUpgradeMinorVersion *bool `json:"autoUpgradeMinorVersion,omitempty"` 6131 // Settings - Json formatted public settings for the extension. 6132 Settings interface{} `json:"settings,omitempty"` 6133 // ProtectedSettings - The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. 6134 ProtectedSettings interface{} `json:"protectedSettings,omitempty"` 6135 // ProvisioningState - The provisioning state, which only appears in the response. 6136 ProvisioningState *string `json:"provisioningState,omitempty"` 6137 // InstanceView - The virtual machine extension instance view. 6138 InstanceView *VirtualMachineExtensionInstanceView `json:"instanceView,omitempty"` 6139} 6140 6141// VirtualMachineExtensionsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 6142// long-running operation. 6143type VirtualMachineExtensionsCreateOrUpdateFuture struct { 6144 azure.Future 6145} 6146 6147// Result returns the result of the asynchronous operation. 6148// If the operation has not completed it will return an error. 6149func (future *VirtualMachineExtensionsCreateOrUpdateFuture) Result(client VirtualMachineExtensionsClient) (vme VirtualMachineExtension, err error) { 6150 var done bool 6151 done, err = future.Done(client) 6152 if err != nil { 6153 err = autorest.NewErrorWithError(err, "compute.VirtualMachineExtensionsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 6154 return 6155 } 6156 if !done { 6157 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineExtensionsCreateOrUpdateFuture") 6158 return 6159 } 6160 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 6161 if vme.Response.Response, err = future.GetResult(sender); err == nil && vme.Response.Response.StatusCode != http.StatusNoContent { 6162 vme, err = client.CreateOrUpdateResponder(vme.Response.Response) 6163 if err != nil { 6164 err = autorest.NewErrorWithError(err, "compute.VirtualMachineExtensionsCreateOrUpdateFuture", "Result", vme.Response.Response, "Failure responding to request") 6165 } 6166 } 6167 return 6168} 6169 6170// VirtualMachineExtensionsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 6171// operation. 6172type VirtualMachineExtensionsDeleteFuture struct { 6173 azure.Future 6174} 6175 6176// Result returns the result of the asynchronous operation. 6177// If the operation has not completed it will return an error. 6178func (future *VirtualMachineExtensionsDeleteFuture) Result(client VirtualMachineExtensionsClient) (ar autorest.Response, err error) { 6179 var done bool 6180 done, err = future.Done(client) 6181 if err != nil { 6182 err = autorest.NewErrorWithError(err, "compute.VirtualMachineExtensionsDeleteFuture", "Result", future.Response(), "Polling failure") 6183 return 6184 } 6185 if !done { 6186 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineExtensionsDeleteFuture") 6187 return 6188 } 6189 ar.Response = future.Response() 6190 return 6191} 6192 6193// VirtualMachineExtensionsListResult the List Extension operation response 6194type VirtualMachineExtensionsListResult struct { 6195 autorest.Response `json:"-"` 6196 // Value - The list of extensions 6197 Value *[]VirtualMachineExtension `json:"value,omitempty"` 6198} 6199 6200// VirtualMachineExtensionsUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 6201// operation. 6202type VirtualMachineExtensionsUpdateFuture struct { 6203 azure.Future 6204} 6205 6206// Result returns the result of the asynchronous operation. 6207// If the operation has not completed it will return an error. 6208func (future *VirtualMachineExtensionsUpdateFuture) Result(client VirtualMachineExtensionsClient) (vme VirtualMachineExtension, err error) { 6209 var done bool 6210 done, err = future.Done(client) 6211 if err != nil { 6212 err = autorest.NewErrorWithError(err, "compute.VirtualMachineExtensionsUpdateFuture", "Result", future.Response(), "Polling failure") 6213 return 6214 } 6215 if !done { 6216 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineExtensionsUpdateFuture") 6217 return 6218 } 6219 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 6220 if vme.Response.Response, err = future.GetResult(sender); err == nil && vme.Response.Response.StatusCode != http.StatusNoContent { 6221 vme, err = client.UpdateResponder(vme.Response.Response) 6222 if err != nil { 6223 err = autorest.NewErrorWithError(err, "compute.VirtualMachineExtensionsUpdateFuture", "Result", vme.Response.Response, "Failure responding to request") 6224 } 6225 } 6226 return 6227} 6228 6229// VirtualMachineExtensionUpdate describes a Virtual Machine Extension. 6230type VirtualMachineExtensionUpdate struct { 6231 *VirtualMachineExtensionUpdateProperties `json:"properties,omitempty"` 6232 // Tags - Resource tags 6233 Tags map[string]*string `json:"tags"` 6234} 6235 6236// MarshalJSON is the custom marshaler for VirtualMachineExtensionUpdate. 6237func (vmeu VirtualMachineExtensionUpdate) MarshalJSON() ([]byte, error) { 6238 objectMap := make(map[string]interface{}) 6239 if vmeu.VirtualMachineExtensionUpdateProperties != nil { 6240 objectMap["properties"] = vmeu.VirtualMachineExtensionUpdateProperties 6241 } 6242 if vmeu.Tags != nil { 6243 objectMap["tags"] = vmeu.Tags 6244 } 6245 return json.Marshal(objectMap) 6246} 6247 6248// UnmarshalJSON is the custom unmarshaler for VirtualMachineExtensionUpdate struct. 6249func (vmeu *VirtualMachineExtensionUpdate) UnmarshalJSON(body []byte) error { 6250 var m map[string]*json.RawMessage 6251 err := json.Unmarshal(body, &m) 6252 if err != nil { 6253 return err 6254 } 6255 for k, v := range m { 6256 switch k { 6257 case "properties": 6258 if v != nil { 6259 var virtualMachineExtensionUpdateProperties VirtualMachineExtensionUpdateProperties 6260 err = json.Unmarshal(*v, &virtualMachineExtensionUpdateProperties) 6261 if err != nil { 6262 return err 6263 } 6264 vmeu.VirtualMachineExtensionUpdateProperties = &virtualMachineExtensionUpdateProperties 6265 } 6266 case "tags": 6267 if v != nil { 6268 var tags map[string]*string 6269 err = json.Unmarshal(*v, &tags) 6270 if err != nil { 6271 return err 6272 } 6273 vmeu.Tags = tags 6274 } 6275 } 6276 } 6277 6278 return nil 6279} 6280 6281// VirtualMachineExtensionUpdateProperties describes the properties of a Virtual Machine Extension. 6282type VirtualMachineExtensionUpdateProperties struct { 6283 // ForceUpdateTag - How the extension handler should be forced to update even if the extension configuration has not changed. 6284 ForceUpdateTag *string `json:"forceUpdateTag,omitempty"` 6285 // Publisher - The name of the extension handler publisher. 6286 Publisher *string `json:"publisher,omitempty"` 6287 // Type - Specifies the type of the extension; an example is "CustomScriptExtension". 6288 Type *string `json:"type,omitempty"` 6289 // TypeHandlerVersion - Specifies the version of the script handler. 6290 TypeHandlerVersion *string `json:"typeHandlerVersion,omitempty"` 6291 // 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. 6292 AutoUpgradeMinorVersion *bool `json:"autoUpgradeMinorVersion,omitempty"` 6293 // Settings - Json formatted public settings for the extension. 6294 Settings interface{} `json:"settings,omitempty"` 6295 // ProtectedSettings - The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. 6296 ProtectedSettings interface{} `json:"protectedSettings,omitempty"` 6297} 6298 6299// VirtualMachineHealthStatus the health status of the VM. 6300type VirtualMachineHealthStatus struct { 6301 // Status - The health status information for the VM. 6302 Status *InstanceViewStatus `json:"status,omitempty"` 6303} 6304 6305// VirtualMachineIdentity identity for the virtual machine. 6306type VirtualMachineIdentity struct { 6307 // PrincipalID - The principal id of virtual machine identity. This property will only be provided for a system assigned identity. 6308 PrincipalID *string `json:"principalId,omitempty"` 6309 // TenantID - The tenant id associated with the virtual machine. This property will only be provided for a system assigned identity. 6310 TenantID *string `json:"tenantId,omitempty"` 6311 // Type - 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: 'ResourceIdentityTypeSystemAssigned', 'ResourceIdentityTypeUserAssigned', 'ResourceIdentityTypeSystemAssignedUserAssigned', 'ResourceIdentityTypeNone' 6312 Type ResourceIdentityType `json:"type,omitempty"` 6313 // UserAssignedIdentities - The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. 6314 UserAssignedIdentities map[string]*VirtualMachineIdentityUserAssignedIdentitiesValue `json:"userAssignedIdentities"` 6315} 6316 6317// MarshalJSON is the custom marshaler for VirtualMachineIdentity. 6318func (vmi VirtualMachineIdentity) MarshalJSON() ([]byte, error) { 6319 objectMap := make(map[string]interface{}) 6320 if vmi.PrincipalID != nil { 6321 objectMap["principalId"] = vmi.PrincipalID 6322 } 6323 if vmi.TenantID != nil { 6324 objectMap["tenantId"] = vmi.TenantID 6325 } 6326 if vmi.Type != "" { 6327 objectMap["type"] = vmi.Type 6328 } 6329 if vmi.UserAssignedIdentities != nil { 6330 objectMap["userAssignedIdentities"] = vmi.UserAssignedIdentities 6331 } 6332 return json.Marshal(objectMap) 6333} 6334 6335// VirtualMachineIdentityUserAssignedIdentitiesValue ... 6336type VirtualMachineIdentityUserAssignedIdentitiesValue struct { 6337 // PrincipalID - The principal id of user assigned identity. 6338 PrincipalID *string `json:"principalId,omitempty"` 6339 // ClientID - The client id of user assigned identity. 6340 ClientID *string `json:"clientId,omitempty"` 6341} 6342 6343// VirtualMachineImage describes a Virtual Machine Image. 6344type VirtualMachineImage struct { 6345 autorest.Response `json:"-"` 6346 *VirtualMachineImageProperties `json:"properties,omitempty"` 6347 // Name - The name of the resource. 6348 Name *string `json:"name,omitempty"` 6349 // Location - The supported Azure location of the resource. 6350 Location *string `json:"location,omitempty"` 6351 // Tags - 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). 6352 Tags map[string]*string `json:"tags"` 6353 // ID - Resource Id 6354 ID *string `json:"id,omitempty"` 6355} 6356 6357// MarshalJSON is the custom marshaler for VirtualMachineImage. 6358func (vmi VirtualMachineImage) MarshalJSON() ([]byte, error) { 6359 objectMap := make(map[string]interface{}) 6360 if vmi.VirtualMachineImageProperties != nil { 6361 objectMap["properties"] = vmi.VirtualMachineImageProperties 6362 } 6363 if vmi.Name != nil { 6364 objectMap["name"] = vmi.Name 6365 } 6366 if vmi.Location != nil { 6367 objectMap["location"] = vmi.Location 6368 } 6369 if vmi.Tags != nil { 6370 objectMap["tags"] = vmi.Tags 6371 } 6372 if vmi.ID != nil { 6373 objectMap["id"] = vmi.ID 6374 } 6375 return json.Marshal(objectMap) 6376} 6377 6378// UnmarshalJSON is the custom unmarshaler for VirtualMachineImage struct. 6379func (vmi *VirtualMachineImage) UnmarshalJSON(body []byte) error { 6380 var m map[string]*json.RawMessage 6381 err := json.Unmarshal(body, &m) 6382 if err != nil { 6383 return err 6384 } 6385 for k, v := range m { 6386 switch k { 6387 case "properties": 6388 if v != nil { 6389 var virtualMachineImageProperties VirtualMachineImageProperties 6390 err = json.Unmarshal(*v, &virtualMachineImageProperties) 6391 if err != nil { 6392 return err 6393 } 6394 vmi.VirtualMachineImageProperties = &virtualMachineImageProperties 6395 } 6396 case "name": 6397 if v != nil { 6398 var name string 6399 err = json.Unmarshal(*v, &name) 6400 if err != nil { 6401 return err 6402 } 6403 vmi.Name = &name 6404 } 6405 case "location": 6406 if v != nil { 6407 var location string 6408 err = json.Unmarshal(*v, &location) 6409 if err != nil { 6410 return err 6411 } 6412 vmi.Location = &location 6413 } 6414 case "tags": 6415 if v != nil { 6416 var tags map[string]*string 6417 err = json.Unmarshal(*v, &tags) 6418 if err != nil { 6419 return err 6420 } 6421 vmi.Tags = tags 6422 } 6423 case "id": 6424 if v != nil { 6425 var ID string 6426 err = json.Unmarshal(*v, &ID) 6427 if err != nil { 6428 return err 6429 } 6430 vmi.ID = &ID 6431 } 6432 } 6433 } 6434 6435 return nil 6436} 6437 6438// VirtualMachineImageProperties describes the properties of a Virtual Machine Image. 6439type VirtualMachineImageProperties struct { 6440 Plan *PurchasePlan `json:"plan,omitempty"` 6441 OsDiskImage *OSDiskImage `json:"osDiskImage,omitempty"` 6442 DataDiskImages *[]DataDiskImage `json:"dataDiskImages,omitempty"` 6443} 6444 6445// VirtualMachineImageResource virtual machine image resource information. 6446type VirtualMachineImageResource struct { 6447 // Name - The name of the resource. 6448 Name *string `json:"name,omitempty"` 6449 // Location - The supported Azure location of the resource. 6450 Location *string `json:"location,omitempty"` 6451 // Tags - 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). 6452 Tags map[string]*string `json:"tags"` 6453 // ID - Resource Id 6454 ID *string `json:"id,omitempty"` 6455} 6456 6457// MarshalJSON is the custom marshaler for VirtualMachineImageResource. 6458func (vmir VirtualMachineImageResource) MarshalJSON() ([]byte, error) { 6459 objectMap := make(map[string]interface{}) 6460 if vmir.Name != nil { 6461 objectMap["name"] = vmir.Name 6462 } 6463 if vmir.Location != nil { 6464 objectMap["location"] = vmir.Location 6465 } 6466 if vmir.Tags != nil { 6467 objectMap["tags"] = vmir.Tags 6468 } 6469 if vmir.ID != nil { 6470 objectMap["id"] = vmir.ID 6471 } 6472 return json.Marshal(objectMap) 6473} 6474 6475// VirtualMachineInstanceView the instance view of a virtual machine. 6476type VirtualMachineInstanceView struct { 6477 autorest.Response `json:"-"` 6478 // PlatformUpdateDomain - Specifies the update domain of the virtual machine. 6479 PlatformUpdateDomain *int32 `json:"platformUpdateDomain,omitempty"` 6480 // PlatformFaultDomain - Specifies the fault domain of the virtual machine. 6481 PlatformFaultDomain *int32 `json:"platformFaultDomain,omitempty"` 6482 // ComputerName - The computer name assigned to the virtual machine. 6483 ComputerName *string `json:"computerName,omitempty"` 6484 // OsName - The Operating System running on the virtual machine. 6485 OsName *string `json:"osName,omitempty"` 6486 // OsVersion - The version of Operating System running on the virtual machine. 6487 OsVersion *string `json:"osVersion,omitempty"` 6488 // RdpThumbPrint - The Remote desktop certificate thumbprint. 6489 RdpThumbPrint *string `json:"rdpThumbPrint,omitempty"` 6490 // VMAgent - The VM Agent running on the virtual machine. 6491 VMAgent *VirtualMachineAgentInstanceView `json:"vmAgent,omitempty"` 6492 // MaintenanceRedeployStatus - The Maintenance Operation status on the virtual machine. 6493 MaintenanceRedeployStatus *MaintenanceRedeployStatus `json:"maintenanceRedeployStatus,omitempty"` 6494 // Disks - The virtual machine disk information. 6495 Disks *[]DiskInstanceView `json:"disks,omitempty"` 6496 // Extensions - The extensions information. 6497 Extensions *[]VirtualMachineExtensionInstanceView `json:"extensions,omitempty"` 6498 // BootDiagnostics - Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. <br><br> For Linux Virtual Machines, you can easily view the output of your console log. <br><br> For both Windows and Linux virtual machines, Azure also enables you to see a screenshot of the VM from the hypervisor. 6499 BootDiagnostics *BootDiagnosticsInstanceView `json:"bootDiagnostics,omitempty"` 6500 // Statuses - The resource status information. 6501 Statuses *[]InstanceViewStatus `json:"statuses,omitempty"` 6502} 6503 6504// VirtualMachineListResult the List Virtual Machine operation response. 6505type VirtualMachineListResult struct { 6506 autorest.Response `json:"-"` 6507 // Value - The list of virtual machines. 6508 Value *[]VirtualMachine `json:"value,omitempty"` 6509 // NextLink - The URI to fetch the next page of VMs. Call ListNext() with this URI to fetch the next page of Virtual Machines. 6510 NextLink *string `json:"nextLink,omitempty"` 6511} 6512 6513// VirtualMachineListResultIterator provides access to a complete listing of VirtualMachine values. 6514type VirtualMachineListResultIterator struct { 6515 i int 6516 page VirtualMachineListResultPage 6517} 6518 6519// Next advances to the next value. If there was an error making 6520// the request the iterator does not advance and the error is returned. 6521func (iter *VirtualMachineListResultIterator) Next() error { 6522 iter.i++ 6523 if iter.i < len(iter.page.Values()) { 6524 return nil 6525 } 6526 err := iter.page.Next() 6527 if err != nil { 6528 iter.i-- 6529 return err 6530 } 6531 iter.i = 0 6532 return nil 6533} 6534 6535// NotDone returns true if the enumeration should be started or is not yet complete. 6536func (iter VirtualMachineListResultIterator) NotDone() bool { 6537 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 6538} 6539 6540// Response returns the raw server response from the last page request. 6541func (iter VirtualMachineListResultIterator) Response() VirtualMachineListResult { 6542 return iter.page.Response() 6543} 6544 6545// Value returns the current value or a zero-initialized value if the 6546// iterator has advanced beyond the end of the collection. 6547func (iter VirtualMachineListResultIterator) Value() VirtualMachine { 6548 if !iter.page.NotDone() { 6549 return VirtualMachine{} 6550 } 6551 return iter.page.Values()[iter.i] 6552} 6553 6554// IsEmpty returns true if the ListResult contains no values. 6555func (vmlr VirtualMachineListResult) IsEmpty() bool { 6556 return vmlr.Value == nil || len(*vmlr.Value) == 0 6557} 6558 6559// virtualMachineListResultPreparer prepares a request to retrieve the next set of results. 6560// It returns nil if no more results exist. 6561func (vmlr VirtualMachineListResult) virtualMachineListResultPreparer() (*http.Request, error) { 6562 if vmlr.NextLink == nil || len(to.String(vmlr.NextLink)) < 1 { 6563 return nil, nil 6564 } 6565 return autorest.Prepare(&http.Request{}, 6566 autorest.AsJSON(), 6567 autorest.AsGet(), 6568 autorest.WithBaseURL(to.String(vmlr.NextLink))) 6569} 6570 6571// VirtualMachineListResultPage contains a page of VirtualMachine values. 6572type VirtualMachineListResultPage struct { 6573 fn func(VirtualMachineListResult) (VirtualMachineListResult, error) 6574 vmlr VirtualMachineListResult 6575} 6576 6577// Next advances to the next page of values. If there was an error making 6578// the request the page does not advance and the error is returned. 6579func (page *VirtualMachineListResultPage) Next() error { 6580 next, err := page.fn(page.vmlr) 6581 if err != nil { 6582 return err 6583 } 6584 page.vmlr = next 6585 return nil 6586} 6587 6588// NotDone returns true if the page enumeration should be started or is not yet complete. 6589func (page VirtualMachineListResultPage) NotDone() bool { 6590 return !page.vmlr.IsEmpty() 6591} 6592 6593// Response returns the raw server response from the last page request. 6594func (page VirtualMachineListResultPage) Response() VirtualMachineListResult { 6595 return page.vmlr 6596} 6597 6598// Values returns the slice of values for the current page or nil if there are no values. 6599func (page VirtualMachineListResultPage) Values() []VirtualMachine { 6600 if page.vmlr.IsEmpty() { 6601 return nil 6602 } 6603 return *page.vmlr.Value 6604} 6605 6606// VirtualMachineProperties describes the properties of a Virtual Machine. 6607type VirtualMachineProperties struct { 6608 // HardwareProfile - Specifies the hardware settings for the virtual machine. 6609 HardwareProfile *HardwareProfile `json:"hardwareProfile,omitempty"` 6610 // StorageProfile - Specifies the storage settings for the virtual machine disks. 6611 StorageProfile *StorageProfile `json:"storageProfile,omitempty"` 6612 // AdditionalCapabilities - Specifies additional capabilities enabled or disabled on the virtual machine. 6613 AdditionalCapabilities *AdditionalCapabilities `json:"additionalCapabilities,omitempty"` 6614 // OsProfile - Specifies the operating system settings for the virtual machine. 6615 OsProfile *OSProfile `json:"osProfile,omitempty"` 6616 // NetworkProfile - Specifies the network interfaces of the virtual machine. 6617 NetworkProfile *NetworkProfile `json:"networkProfile,omitempty"` 6618 // DiagnosticsProfile - Specifies the boot diagnostic settings state. <br><br>Minimum api-version: 2015-06-15. 6619 DiagnosticsProfile *DiagnosticsProfile `json:"diagnosticsProfile,omitempty"` 6620 // 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). <br><br> For more information on Azure planned maintainance, 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) <br><br> Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. 6621 AvailabilitySet *SubResource `json:"availabilitySet,omitempty"` 6622 // ProvisioningState - The provisioning state, which only appears in the response. 6623 ProvisioningState *string `json:"provisioningState,omitempty"` 6624 // InstanceView - The virtual machine instance view. 6625 InstanceView *VirtualMachineInstanceView `json:"instanceView,omitempty"` 6626 // 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. <br><br> Possible values are: <br><br> Windows_Client <br><br> Windows_Server <br><br> If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. <br><br> 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) <br><br> Minimum api-version: 2015-06-15 6627 LicenseType *string `json:"licenseType,omitempty"` 6628 // VMID - 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. 6629 VMID *string `json:"vmId,omitempty"` 6630} 6631 6632// VirtualMachineScaleSet describes a Virtual Machine Scale Set. 6633type VirtualMachineScaleSet struct { 6634 autorest.Response `json:"-"` 6635 // Sku - The virtual machine scale set sku. 6636 Sku *Sku `json:"sku,omitempty"` 6637 // 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 ->**. Enter any required information and then click **Save**. 6638 Plan *Plan `json:"plan,omitempty"` 6639 *VirtualMachineScaleSetProperties `json:"properties,omitempty"` 6640 // Identity - The identity of the virtual machine scale set, if configured. 6641 Identity *VirtualMachineScaleSetIdentity `json:"identity,omitempty"` 6642 // Zones - The virtual machine scale set zones. 6643 Zones *[]string `json:"zones,omitempty"` 6644 // ID - Resource Id 6645 ID *string `json:"id,omitempty"` 6646 // Name - Resource name 6647 Name *string `json:"name,omitempty"` 6648 // Type - Resource type 6649 Type *string `json:"type,omitempty"` 6650 // Location - Resource location 6651 Location *string `json:"location,omitempty"` 6652 // Tags - Resource tags 6653 Tags map[string]*string `json:"tags"` 6654} 6655 6656// MarshalJSON is the custom marshaler for VirtualMachineScaleSet. 6657func (vmss VirtualMachineScaleSet) MarshalJSON() ([]byte, error) { 6658 objectMap := make(map[string]interface{}) 6659 if vmss.Sku != nil { 6660 objectMap["sku"] = vmss.Sku 6661 } 6662 if vmss.Plan != nil { 6663 objectMap["plan"] = vmss.Plan 6664 } 6665 if vmss.VirtualMachineScaleSetProperties != nil { 6666 objectMap["properties"] = vmss.VirtualMachineScaleSetProperties 6667 } 6668 if vmss.Identity != nil { 6669 objectMap["identity"] = vmss.Identity 6670 } 6671 if vmss.Zones != nil { 6672 objectMap["zones"] = vmss.Zones 6673 } 6674 if vmss.ID != nil { 6675 objectMap["id"] = vmss.ID 6676 } 6677 if vmss.Name != nil { 6678 objectMap["name"] = vmss.Name 6679 } 6680 if vmss.Type != nil { 6681 objectMap["type"] = vmss.Type 6682 } 6683 if vmss.Location != nil { 6684 objectMap["location"] = vmss.Location 6685 } 6686 if vmss.Tags != nil { 6687 objectMap["tags"] = vmss.Tags 6688 } 6689 return json.Marshal(objectMap) 6690} 6691 6692// UnmarshalJSON is the custom unmarshaler for VirtualMachineScaleSet struct. 6693func (vmss *VirtualMachineScaleSet) UnmarshalJSON(body []byte) error { 6694 var m map[string]*json.RawMessage 6695 err := json.Unmarshal(body, &m) 6696 if err != nil { 6697 return err 6698 } 6699 for k, v := range m { 6700 switch k { 6701 case "sku": 6702 if v != nil { 6703 var sku Sku 6704 err = json.Unmarshal(*v, &sku) 6705 if err != nil { 6706 return err 6707 } 6708 vmss.Sku = &sku 6709 } 6710 case "plan": 6711 if v != nil { 6712 var plan Plan 6713 err = json.Unmarshal(*v, &plan) 6714 if err != nil { 6715 return err 6716 } 6717 vmss.Plan = &plan 6718 } 6719 case "properties": 6720 if v != nil { 6721 var virtualMachineScaleSetProperties VirtualMachineScaleSetProperties 6722 err = json.Unmarshal(*v, &virtualMachineScaleSetProperties) 6723 if err != nil { 6724 return err 6725 } 6726 vmss.VirtualMachineScaleSetProperties = &virtualMachineScaleSetProperties 6727 } 6728 case "identity": 6729 if v != nil { 6730 var identity VirtualMachineScaleSetIdentity 6731 err = json.Unmarshal(*v, &identity) 6732 if err != nil { 6733 return err 6734 } 6735 vmss.Identity = &identity 6736 } 6737 case "zones": 6738 if v != nil { 6739 var zones []string 6740 err = json.Unmarshal(*v, &zones) 6741 if err != nil { 6742 return err 6743 } 6744 vmss.Zones = &zones 6745 } 6746 case "id": 6747 if v != nil { 6748 var ID string 6749 err = json.Unmarshal(*v, &ID) 6750 if err != nil { 6751 return err 6752 } 6753 vmss.ID = &ID 6754 } 6755 case "name": 6756 if v != nil { 6757 var name string 6758 err = json.Unmarshal(*v, &name) 6759 if err != nil { 6760 return err 6761 } 6762 vmss.Name = &name 6763 } 6764 case "type": 6765 if v != nil { 6766 var typeVar string 6767 err = json.Unmarshal(*v, &typeVar) 6768 if err != nil { 6769 return err 6770 } 6771 vmss.Type = &typeVar 6772 } 6773 case "location": 6774 if v != nil { 6775 var location string 6776 err = json.Unmarshal(*v, &location) 6777 if err != nil { 6778 return err 6779 } 6780 vmss.Location = &location 6781 } 6782 case "tags": 6783 if v != nil { 6784 var tags map[string]*string 6785 err = json.Unmarshal(*v, &tags) 6786 if err != nil { 6787 return err 6788 } 6789 vmss.Tags = tags 6790 } 6791 } 6792 } 6793 6794 return nil 6795} 6796 6797// VirtualMachineScaleSetDataDisk describes a virtual machine scale set data disk. 6798type VirtualMachineScaleSetDataDisk struct { 6799 // Name - The disk name. 6800 Name *string `json:"name,omitempty"` 6801 // Lun - 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. 6802 Lun *int32 `json:"lun,omitempty"` 6803 // Caching - Specifies the caching requirements. <br><br> Possible values are: <br><br> **None** <br><br> **ReadOnly** <br><br> **ReadWrite** <br><br> Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'CachingTypesNone', 'CachingTypesReadOnly', 'CachingTypesReadWrite' 6804 Caching CachingTypes `json:"caching,omitempty"` 6805 // WriteAcceleratorEnabled - Specifies whether writeAccelerator should be enabled or disabled on the disk. 6806 WriteAcceleratorEnabled *bool `json:"writeAcceleratorEnabled,omitempty"` 6807 // CreateOption - The create option. Possible values include: 'DiskCreateOptionTypesFromImage', 'DiskCreateOptionTypesEmpty', 'DiskCreateOptionTypesAttach' 6808 CreateOption DiskCreateOptionTypes `json:"createOption,omitempty"` 6809 // DiskSizeGB - 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. <br><br> This value cannot be larger than 1023 GB 6810 DiskSizeGB *int32 `json:"diskSizeGB,omitempty"` 6811 // ManagedDisk - The managed disk parameters. 6812 ManagedDisk *VirtualMachineScaleSetManagedDiskParameters `json:"managedDisk,omitempty"` 6813} 6814 6815// VirtualMachineScaleSetExtension describes a Virtual Machine Scale Set Extension. 6816type VirtualMachineScaleSetExtension struct { 6817 autorest.Response `json:"-"` 6818 // Name - The name of the extension. 6819 Name *string `json:"name,omitempty"` 6820 *VirtualMachineScaleSetExtensionProperties `json:"properties,omitempty"` 6821 // ID - Resource Id 6822 ID *string `json:"id,omitempty"` 6823} 6824 6825// MarshalJSON is the custom marshaler for VirtualMachineScaleSetExtension. 6826func (vmsse VirtualMachineScaleSetExtension) MarshalJSON() ([]byte, error) { 6827 objectMap := make(map[string]interface{}) 6828 if vmsse.Name != nil { 6829 objectMap["name"] = vmsse.Name 6830 } 6831 if vmsse.VirtualMachineScaleSetExtensionProperties != nil { 6832 objectMap["properties"] = vmsse.VirtualMachineScaleSetExtensionProperties 6833 } 6834 if vmsse.ID != nil { 6835 objectMap["id"] = vmsse.ID 6836 } 6837 return json.Marshal(objectMap) 6838} 6839 6840// UnmarshalJSON is the custom unmarshaler for VirtualMachineScaleSetExtension struct. 6841func (vmsse *VirtualMachineScaleSetExtension) UnmarshalJSON(body []byte) error { 6842 var m map[string]*json.RawMessage 6843 err := json.Unmarshal(body, &m) 6844 if err != nil { 6845 return err 6846 } 6847 for k, v := range m { 6848 switch k { 6849 case "name": 6850 if v != nil { 6851 var name string 6852 err = json.Unmarshal(*v, &name) 6853 if err != nil { 6854 return err 6855 } 6856 vmsse.Name = &name 6857 } 6858 case "properties": 6859 if v != nil { 6860 var virtualMachineScaleSetExtensionProperties VirtualMachineScaleSetExtensionProperties 6861 err = json.Unmarshal(*v, &virtualMachineScaleSetExtensionProperties) 6862 if err != nil { 6863 return err 6864 } 6865 vmsse.VirtualMachineScaleSetExtensionProperties = &virtualMachineScaleSetExtensionProperties 6866 } 6867 case "id": 6868 if v != nil { 6869 var ID string 6870 err = json.Unmarshal(*v, &ID) 6871 if err != nil { 6872 return err 6873 } 6874 vmsse.ID = &ID 6875 } 6876 } 6877 } 6878 6879 return nil 6880} 6881 6882// VirtualMachineScaleSetExtensionListResult the List VM scale set extension operation response. 6883type VirtualMachineScaleSetExtensionListResult struct { 6884 autorest.Response `json:"-"` 6885 // Value - The list of VM scale set extensions. 6886 Value *[]VirtualMachineScaleSetExtension `json:"value,omitempty"` 6887 // NextLink - The uri to fetch the next page of VM scale set extensions. Call ListNext() with this to fetch the next page of VM scale set extensions. 6888 NextLink *string `json:"nextLink,omitempty"` 6889} 6890 6891// VirtualMachineScaleSetExtensionListResultIterator provides access to a complete listing of 6892// VirtualMachineScaleSetExtension values. 6893type VirtualMachineScaleSetExtensionListResultIterator struct { 6894 i int 6895 page VirtualMachineScaleSetExtensionListResultPage 6896} 6897 6898// Next advances to the next value. If there was an error making 6899// the request the iterator does not advance and the error is returned. 6900func (iter *VirtualMachineScaleSetExtensionListResultIterator) Next() error { 6901 iter.i++ 6902 if iter.i < len(iter.page.Values()) { 6903 return nil 6904 } 6905 err := iter.page.Next() 6906 if err != nil { 6907 iter.i-- 6908 return err 6909 } 6910 iter.i = 0 6911 return nil 6912} 6913 6914// NotDone returns true if the enumeration should be started or is not yet complete. 6915func (iter VirtualMachineScaleSetExtensionListResultIterator) NotDone() bool { 6916 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 6917} 6918 6919// Response returns the raw server response from the last page request. 6920func (iter VirtualMachineScaleSetExtensionListResultIterator) Response() VirtualMachineScaleSetExtensionListResult { 6921 return iter.page.Response() 6922} 6923 6924// Value returns the current value or a zero-initialized value if the 6925// iterator has advanced beyond the end of the collection. 6926func (iter VirtualMachineScaleSetExtensionListResultIterator) Value() VirtualMachineScaleSetExtension { 6927 if !iter.page.NotDone() { 6928 return VirtualMachineScaleSetExtension{} 6929 } 6930 return iter.page.Values()[iter.i] 6931} 6932 6933// IsEmpty returns true if the ListResult contains no values. 6934func (vmsselr VirtualMachineScaleSetExtensionListResult) IsEmpty() bool { 6935 return vmsselr.Value == nil || len(*vmsselr.Value) == 0 6936} 6937 6938// virtualMachineScaleSetExtensionListResultPreparer prepares a request to retrieve the next set of results. 6939// It returns nil if no more results exist. 6940func (vmsselr VirtualMachineScaleSetExtensionListResult) virtualMachineScaleSetExtensionListResultPreparer() (*http.Request, error) { 6941 if vmsselr.NextLink == nil || len(to.String(vmsselr.NextLink)) < 1 { 6942 return nil, nil 6943 } 6944 return autorest.Prepare(&http.Request{}, 6945 autorest.AsJSON(), 6946 autorest.AsGet(), 6947 autorest.WithBaseURL(to.String(vmsselr.NextLink))) 6948} 6949 6950// VirtualMachineScaleSetExtensionListResultPage contains a page of VirtualMachineScaleSetExtension values. 6951type VirtualMachineScaleSetExtensionListResultPage struct { 6952 fn func(VirtualMachineScaleSetExtensionListResult) (VirtualMachineScaleSetExtensionListResult, error) 6953 vmsselr VirtualMachineScaleSetExtensionListResult 6954} 6955 6956// Next advances to the next page of values. If there was an error making 6957// the request the page does not advance and the error is returned. 6958func (page *VirtualMachineScaleSetExtensionListResultPage) Next() error { 6959 next, err := page.fn(page.vmsselr) 6960 if err != nil { 6961 return err 6962 } 6963 page.vmsselr = next 6964 return nil 6965} 6966 6967// NotDone returns true if the page enumeration should be started or is not yet complete. 6968func (page VirtualMachineScaleSetExtensionListResultPage) NotDone() bool { 6969 return !page.vmsselr.IsEmpty() 6970} 6971 6972// Response returns the raw server response from the last page request. 6973func (page VirtualMachineScaleSetExtensionListResultPage) Response() VirtualMachineScaleSetExtensionListResult { 6974 return page.vmsselr 6975} 6976 6977// Values returns the slice of values for the current page or nil if there are no values. 6978func (page VirtualMachineScaleSetExtensionListResultPage) Values() []VirtualMachineScaleSetExtension { 6979 if page.vmsselr.IsEmpty() { 6980 return nil 6981 } 6982 return *page.vmsselr.Value 6983} 6984 6985// VirtualMachineScaleSetExtensionProfile describes a virtual machine scale set extension profile. 6986type VirtualMachineScaleSetExtensionProfile struct { 6987 // Extensions - The virtual machine scale set child extension resources. 6988 Extensions *[]VirtualMachineScaleSetExtension `json:"extensions,omitempty"` 6989} 6990 6991// VirtualMachineScaleSetExtensionProperties describes the properties of a Virtual Machine Scale Set Extension. 6992type VirtualMachineScaleSetExtensionProperties struct { 6993 // 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. 6994 ForceUpdateTag *string `json:"forceUpdateTag,omitempty"` 6995 // Publisher - The name of the extension handler publisher. 6996 Publisher *string `json:"publisher,omitempty"` 6997 // Type - Specifies the type of the extension; an example is "CustomScriptExtension". 6998 Type *string `json:"type,omitempty"` 6999 // TypeHandlerVersion - Specifies the version of the script handler. 7000 TypeHandlerVersion *string `json:"typeHandlerVersion,omitempty"` 7001 // 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. 7002 AutoUpgradeMinorVersion *bool `json:"autoUpgradeMinorVersion,omitempty"` 7003 // Settings - Json formatted public settings for the extension. 7004 Settings interface{} `json:"settings,omitempty"` 7005 // ProtectedSettings - The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. 7006 ProtectedSettings interface{} `json:"protectedSettings,omitempty"` 7007 // ProvisioningState - The provisioning state, which only appears in the response. 7008 ProvisioningState *string `json:"provisioningState,omitempty"` 7009} 7010 7011// VirtualMachineScaleSetExtensionsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of 7012// a long-running operation. 7013type VirtualMachineScaleSetExtensionsCreateOrUpdateFuture struct { 7014 azure.Future 7015} 7016 7017// Result returns the result of the asynchronous operation. 7018// If the operation has not completed it will return an error. 7019func (future *VirtualMachineScaleSetExtensionsCreateOrUpdateFuture) Result(client VirtualMachineScaleSetExtensionsClient) (vmsse VirtualMachineScaleSetExtension, err error) { 7020 var done bool 7021 done, err = future.Done(client) 7022 if err != nil { 7023 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetExtensionsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 7024 return 7025 } 7026 if !done { 7027 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetExtensionsCreateOrUpdateFuture") 7028 return 7029 } 7030 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7031 if vmsse.Response.Response, err = future.GetResult(sender); err == nil && vmsse.Response.Response.StatusCode != http.StatusNoContent { 7032 vmsse, err = client.CreateOrUpdateResponder(vmsse.Response.Response) 7033 if err != nil { 7034 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetExtensionsCreateOrUpdateFuture", "Result", vmsse.Response.Response, "Failure responding to request") 7035 } 7036 } 7037 return 7038} 7039 7040// VirtualMachineScaleSetExtensionsDeleteFuture an abstraction for monitoring and retrieving the results of a 7041// long-running operation. 7042type VirtualMachineScaleSetExtensionsDeleteFuture struct { 7043 azure.Future 7044} 7045 7046// Result returns the result of the asynchronous operation. 7047// If the operation has not completed it will return an error. 7048func (future *VirtualMachineScaleSetExtensionsDeleteFuture) Result(client VirtualMachineScaleSetExtensionsClient) (ar autorest.Response, err error) { 7049 var done bool 7050 done, err = future.Done(client) 7051 if err != nil { 7052 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetExtensionsDeleteFuture", "Result", future.Response(), "Polling failure") 7053 return 7054 } 7055 if !done { 7056 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetExtensionsDeleteFuture") 7057 return 7058 } 7059 ar.Response = future.Response() 7060 return 7061} 7062 7063// VirtualMachineScaleSetIdentity identity for the virtual machine scale set. 7064type VirtualMachineScaleSetIdentity struct { 7065 // PrincipalID - The principal id of virtual machine scale set identity. This property will only be provided for a system assigned identity. 7066 PrincipalID *string `json:"principalId,omitempty"` 7067 // TenantID - The tenant id associated with the virtual machine scale set. This property will only be provided for a system assigned identity. 7068 TenantID *string `json:"tenantId,omitempty"` 7069 // Type - 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: 'ResourceIdentityTypeSystemAssigned', 'ResourceIdentityTypeUserAssigned', 'ResourceIdentityTypeSystemAssignedUserAssigned', 'ResourceIdentityTypeNone' 7070 Type ResourceIdentityType `json:"type,omitempty"` 7071 // UserAssignedIdentities - The list of user identities associated with the virtual machine scale set. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. 7072 UserAssignedIdentities map[string]*VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue `json:"userAssignedIdentities"` 7073} 7074 7075// MarshalJSON is the custom marshaler for VirtualMachineScaleSetIdentity. 7076func (vmssi VirtualMachineScaleSetIdentity) MarshalJSON() ([]byte, error) { 7077 objectMap := make(map[string]interface{}) 7078 if vmssi.PrincipalID != nil { 7079 objectMap["principalId"] = vmssi.PrincipalID 7080 } 7081 if vmssi.TenantID != nil { 7082 objectMap["tenantId"] = vmssi.TenantID 7083 } 7084 if vmssi.Type != "" { 7085 objectMap["type"] = vmssi.Type 7086 } 7087 if vmssi.UserAssignedIdentities != nil { 7088 objectMap["userAssignedIdentities"] = vmssi.UserAssignedIdentities 7089 } 7090 return json.Marshal(objectMap) 7091} 7092 7093// VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue ... 7094type VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue struct { 7095 // PrincipalID - The principal id of user assigned identity. 7096 PrincipalID *string `json:"principalId,omitempty"` 7097 // ClientID - The client id of user assigned identity. 7098 ClientID *string `json:"clientId,omitempty"` 7099} 7100 7101// VirtualMachineScaleSetInstanceView the instance view of a virtual machine scale set. 7102type VirtualMachineScaleSetInstanceView struct { 7103 autorest.Response `json:"-"` 7104 // VirtualMachine - The instance view status summary for the virtual machine scale set. 7105 VirtualMachine *VirtualMachineScaleSetInstanceViewStatusesSummary `json:"virtualMachine,omitempty"` 7106 // Extensions - The extensions information. 7107 Extensions *[]VirtualMachineScaleSetVMExtensionsSummary `json:"extensions,omitempty"` 7108 // Statuses - The resource status information. 7109 Statuses *[]InstanceViewStatus `json:"statuses,omitempty"` 7110} 7111 7112// VirtualMachineScaleSetInstanceViewStatusesSummary instance view statuses summary for virtual machines of a 7113// virtual machine scale set. 7114type VirtualMachineScaleSetInstanceViewStatusesSummary struct { 7115 // StatusesSummary - The extensions information. 7116 StatusesSummary *[]VirtualMachineStatusCodeCount `json:"statusesSummary,omitempty"` 7117} 7118 7119// VirtualMachineScaleSetIPConfiguration describes a virtual machine scale set network profile's IP configuration. 7120type VirtualMachineScaleSetIPConfiguration struct { 7121 // Name - The IP configuration name. 7122 Name *string `json:"name,omitempty"` 7123 *VirtualMachineScaleSetIPConfigurationProperties `json:"properties,omitempty"` 7124 // ID - Resource Id 7125 ID *string `json:"id,omitempty"` 7126} 7127 7128// MarshalJSON is the custom marshaler for VirtualMachineScaleSetIPConfiguration. 7129func (vmssic VirtualMachineScaleSetIPConfiguration) MarshalJSON() ([]byte, error) { 7130 objectMap := make(map[string]interface{}) 7131 if vmssic.Name != nil { 7132 objectMap["name"] = vmssic.Name 7133 } 7134 if vmssic.VirtualMachineScaleSetIPConfigurationProperties != nil { 7135 objectMap["properties"] = vmssic.VirtualMachineScaleSetIPConfigurationProperties 7136 } 7137 if vmssic.ID != nil { 7138 objectMap["id"] = vmssic.ID 7139 } 7140 return json.Marshal(objectMap) 7141} 7142 7143// UnmarshalJSON is the custom unmarshaler for VirtualMachineScaleSetIPConfiguration struct. 7144func (vmssic *VirtualMachineScaleSetIPConfiguration) UnmarshalJSON(body []byte) error { 7145 var m map[string]*json.RawMessage 7146 err := json.Unmarshal(body, &m) 7147 if err != nil { 7148 return err 7149 } 7150 for k, v := range m { 7151 switch k { 7152 case "name": 7153 if v != nil { 7154 var name string 7155 err = json.Unmarshal(*v, &name) 7156 if err != nil { 7157 return err 7158 } 7159 vmssic.Name = &name 7160 } 7161 case "properties": 7162 if v != nil { 7163 var virtualMachineScaleSetIPConfigurationProperties VirtualMachineScaleSetIPConfigurationProperties 7164 err = json.Unmarshal(*v, &virtualMachineScaleSetIPConfigurationProperties) 7165 if err != nil { 7166 return err 7167 } 7168 vmssic.VirtualMachineScaleSetIPConfigurationProperties = &virtualMachineScaleSetIPConfigurationProperties 7169 } 7170 case "id": 7171 if v != nil { 7172 var ID string 7173 err = json.Unmarshal(*v, &ID) 7174 if err != nil { 7175 return err 7176 } 7177 vmssic.ID = &ID 7178 } 7179 } 7180 } 7181 7182 return nil 7183} 7184 7185// VirtualMachineScaleSetIPConfigurationProperties describes a virtual machine scale set network profile's IP 7186// configuration properties. 7187type VirtualMachineScaleSetIPConfigurationProperties struct { 7188 // Subnet - Specifies the identifier of the subnet. 7189 Subnet *APIEntityReference `json:"subnet,omitempty"` 7190 // Primary - Specifies the primary network interface in case the virtual machine has more than 1 network interface. 7191 Primary *bool `json:"primary,omitempty"` 7192 // PublicIPAddressConfiguration - The publicIPAddressConfiguration. 7193 PublicIPAddressConfiguration *VirtualMachineScaleSetPublicIPAddressConfiguration `json:"publicIPAddressConfiguration,omitempty"` 7194 // PrivateIPAddressVersion - 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' 7195 PrivateIPAddressVersion IPVersion `json:"privateIPAddressVersion,omitempty"` 7196 // ApplicationGatewayBackendAddressPools - 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. 7197 ApplicationGatewayBackendAddressPools *[]SubResource `json:"applicationGatewayBackendAddressPools,omitempty"` 7198 // ApplicationSecurityGroups - Specifies an array of references to application security group. 7199 ApplicationSecurityGroups *[]SubResource `json:"applicationSecurityGroups,omitempty"` 7200 // LoadBalancerBackendAddressPools - 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. 7201 LoadBalancerBackendAddressPools *[]SubResource `json:"loadBalancerBackendAddressPools,omitempty"` 7202 // LoadBalancerInboundNatPools - 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 7203 LoadBalancerInboundNatPools *[]SubResource `json:"loadBalancerInboundNatPools,omitempty"` 7204} 7205 7206// VirtualMachineScaleSetIPTag contains the IP tag associated with the public IP address. 7207type VirtualMachineScaleSetIPTag struct { 7208 // IPTagType - IP tag type. Example: FirstPartyUsage. 7209 IPTagType *string `json:"ipTagType,omitempty"` 7210 // Tag - IP tag associated with the public IP. Example: SQL, Storage etc. 7211 Tag *string `json:"tag,omitempty"` 7212} 7213 7214// VirtualMachineScaleSetListOSUpgradeHistory list of Virtual Machine Scale Set OS Upgrade History operation 7215// response. 7216type VirtualMachineScaleSetListOSUpgradeHistory struct { 7217 autorest.Response `json:"-"` 7218 // Value - The list of OS upgrades performed on the virtual machine scale set. 7219 Value *[]UpgradeOperationHistoricalStatusInfo `json:"value,omitempty"` 7220 // NextLink - The uri to fetch the next page of OS Upgrade History. Call ListNext() with this to fetch the next page of history of upgrades. 7221 NextLink *string `json:"nextLink,omitempty"` 7222} 7223 7224// VirtualMachineScaleSetListOSUpgradeHistoryIterator provides access to a complete listing of 7225// UpgradeOperationHistoricalStatusInfo values. 7226type VirtualMachineScaleSetListOSUpgradeHistoryIterator struct { 7227 i int 7228 page VirtualMachineScaleSetListOSUpgradeHistoryPage 7229} 7230 7231// Next advances to the next value. If there was an error making 7232// the request the iterator does not advance and the error is returned. 7233func (iter *VirtualMachineScaleSetListOSUpgradeHistoryIterator) Next() error { 7234 iter.i++ 7235 if iter.i < len(iter.page.Values()) { 7236 return nil 7237 } 7238 err := iter.page.Next() 7239 if err != nil { 7240 iter.i-- 7241 return err 7242 } 7243 iter.i = 0 7244 return nil 7245} 7246 7247// NotDone returns true if the enumeration should be started or is not yet complete. 7248func (iter VirtualMachineScaleSetListOSUpgradeHistoryIterator) NotDone() bool { 7249 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 7250} 7251 7252// Response returns the raw server response from the last page request. 7253func (iter VirtualMachineScaleSetListOSUpgradeHistoryIterator) Response() VirtualMachineScaleSetListOSUpgradeHistory { 7254 return iter.page.Response() 7255} 7256 7257// Value returns the current value or a zero-initialized value if the 7258// iterator has advanced beyond the end of the collection. 7259func (iter VirtualMachineScaleSetListOSUpgradeHistoryIterator) Value() UpgradeOperationHistoricalStatusInfo { 7260 if !iter.page.NotDone() { 7261 return UpgradeOperationHistoricalStatusInfo{} 7262 } 7263 return iter.page.Values()[iter.i] 7264} 7265 7266// IsEmpty returns true if the ListResult contains no values. 7267func (vmsslouh VirtualMachineScaleSetListOSUpgradeHistory) IsEmpty() bool { 7268 return vmsslouh.Value == nil || len(*vmsslouh.Value) == 0 7269} 7270 7271// virtualMachineScaleSetListOSUpgradeHistoryPreparer prepares a request to retrieve the next set of results. 7272// It returns nil if no more results exist. 7273func (vmsslouh VirtualMachineScaleSetListOSUpgradeHistory) virtualMachineScaleSetListOSUpgradeHistoryPreparer() (*http.Request, error) { 7274 if vmsslouh.NextLink == nil || len(to.String(vmsslouh.NextLink)) < 1 { 7275 return nil, nil 7276 } 7277 return autorest.Prepare(&http.Request{}, 7278 autorest.AsJSON(), 7279 autorest.AsGet(), 7280 autorest.WithBaseURL(to.String(vmsslouh.NextLink))) 7281} 7282 7283// VirtualMachineScaleSetListOSUpgradeHistoryPage contains a page of UpgradeOperationHistoricalStatusInfo values. 7284type VirtualMachineScaleSetListOSUpgradeHistoryPage struct { 7285 fn func(VirtualMachineScaleSetListOSUpgradeHistory) (VirtualMachineScaleSetListOSUpgradeHistory, error) 7286 vmsslouh VirtualMachineScaleSetListOSUpgradeHistory 7287} 7288 7289// Next advances to the next page of values. If there was an error making 7290// the request the page does not advance and the error is returned. 7291func (page *VirtualMachineScaleSetListOSUpgradeHistoryPage) Next() error { 7292 next, err := page.fn(page.vmsslouh) 7293 if err != nil { 7294 return err 7295 } 7296 page.vmsslouh = next 7297 return nil 7298} 7299 7300// NotDone returns true if the page enumeration should be started or is not yet complete. 7301func (page VirtualMachineScaleSetListOSUpgradeHistoryPage) NotDone() bool { 7302 return !page.vmsslouh.IsEmpty() 7303} 7304 7305// Response returns the raw server response from the last page request. 7306func (page VirtualMachineScaleSetListOSUpgradeHistoryPage) Response() VirtualMachineScaleSetListOSUpgradeHistory { 7307 return page.vmsslouh 7308} 7309 7310// Values returns the slice of values for the current page or nil if there are no values. 7311func (page VirtualMachineScaleSetListOSUpgradeHistoryPage) Values() []UpgradeOperationHistoricalStatusInfo { 7312 if page.vmsslouh.IsEmpty() { 7313 return nil 7314 } 7315 return *page.vmsslouh.Value 7316} 7317 7318// VirtualMachineScaleSetListResult the List Virtual Machine operation response. 7319type VirtualMachineScaleSetListResult struct { 7320 autorest.Response `json:"-"` 7321 // Value - The list of virtual machine scale sets. 7322 Value *[]VirtualMachineScaleSet `json:"value,omitempty"` 7323 // NextLink - The uri to fetch the next page of Virtual Machine Scale Sets. Call ListNext() with this to fetch the next page of VMSS. 7324 NextLink *string `json:"nextLink,omitempty"` 7325} 7326 7327// VirtualMachineScaleSetListResultIterator provides access to a complete listing of VirtualMachineScaleSet values. 7328type VirtualMachineScaleSetListResultIterator struct { 7329 i int 7330 page VirtualMachineScaleSetListResultPage 7331} 7332 7333// Next advances to the next value. If there was an error making 7334// the request the iterator does not advance and the error is returned. 7335func (iter *VirtualMachineScaleSetListResultIterator) Next() error { 7336 iter.i++ 7337 if iter.i < len(iter.page.Values()) { 7338 return nil 7339 } 7340 err := iter.page.Next() 7341 if err != nil { 7342 iter.i-- 7343 return err 7344 } 7345 iter.i = 0 7346 return nil 7347} 7348 7349// NotDone returns true if the enumeration should be started or is not yet complete. 7350func (iter VirtualMachineScaleSetListResultIterator) NotDone() bool { 7351 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 7352} 7353 7354// Response returns the raw server response from the last page request. 7355func (iter VirtualMachineScaleSetListResultIterator) Response() VirtualMachineScaleSetListResult { 7356 return iter.page.Response() 7357} 7358 7359// Value returns the current value or a zero-initialized value if the 7360// iterator has advanced beyond the end of the collection. 7361func (iter VirtualMachineScaleSetListResultIterator) Value() VirtualMachineScaleSet { 7362 if !iter.page.NotDone() { 7363 return VirtualMachineScaleSet{} 7364 } 7365 return iter.page.Values()[iter.i] 7366} 7367 7368// IsEmpty returns true if the ListResult contains no values. 7369func (vmsslr VirtualMachineScaleSetListResult) IsEmpty() bool { 7370 return vmsslr.Value == nil || len(*vmsslr.Value) == 0 7371} 7372 7373// virtualMachineScaleSetListResultPreparer prepares a request to retrieve the next set of results. 7374// It returns nil if no more results exist. 7375func (vmsslr VirtualMachineScaleSetListResult) virtualMachineScaleSetListResultPreparer() (*http.Request, error) { 7376 if vmsslr.NextLink == nil || len(to.String(vmsslr.NextLink)) < 1 { 7377 return nil, nil 7378 } 7379 return autorest.Prepare(&http.Request{}, 7380 autorest.AsJSON(), 7381 autorest.AsGet(), 7382 autorest.WithBaseURL(to.String(vmsslr.NextLink))) 7383} 7384 7385// VirtualMachineScaleSetListResultPage contains a page of VirtualMachineScaleSet values. 7386type VirtualMachineScaleSetListResultPage struct { 7387 fn func(VirtualMachineScaleSetListResult) (VirtualMachineScaleSetListResult, error) 7388 vmsslr VirtualMachineScaleSetListResult 7389} 7390 7391// Next advances to the next page of values. If there was an error making 7392// the request the page does not advance and the error is returned. 7393func (page *VirtualMachineScaleSetListResultPage) Next() error { 7394 next, err := page.fn(page.vmsslr) 7395 if err != nil { 7396 return err 7397 } 7398 page.vmsslr = next 7399 return nil 7400} 7401 7402// NotDone returns true if the page enumeration should be started or is not yet complete. 7403func (page VirtualMachineScaleSetListResultPage) NotDone() bool { 7404 return !page.vmsslr.IsEmpty() 7405} 7406 7407// Response returns the raw server response from the last page request. 7408func (page VirtualMachineScaleSetListResultPage) Response() VirtualMachineScaleSetListResult { 7409 return page.vmsslr 7410} 7411 7412// Values returns the slice of values for the current page or nil if there are no values. 7413func (page VirtualMachineScaleSetListResultPage) Values() []VirtualMachineScaleSet { 7414 if page.vmsslr.IsEmpty() { 7415 return nil 7416 } 7417 return *page.vmsslr.Value 7418} 7419 7420// VirtualMachineScaleSetListSkusResult the Virtual Machine Scale Set List Skus operation response. 7421type VirtualMachineScaleSetListSkusResult struct { 7422 autorest.Response `json:"-"` 7423 // Value - The list of skus available for the virtual machine scale set. 7424 Value *[]VirtualMachineScaleSetSku `json:"value,omitempty"` 7425 // NextLink - The uri to fetch the next page of Virtual Machine Scale Set Skus. Call ListNext() with this to fetch the next page of VMSS Skus. 7426 NextLink *string `json:"nextLink,omitempty"` 7427} 7428 7429// VirtualMachineScaleSetListSkusResultIterator provides access to a complete listing of VirtualMachineScaleSetSku 7430// values. 7431type VirtualMachineScaleSetListSkusResultIterator struct { 7432 i int 7433 page VirtualMachineScaleSetListSkusResultPage 7434} 7435 7436// Next advances to the next value. If there was an error making 7437// the request the iterator does not advance and the error is returned. 7438func (iter *VirtualMachineScaleSetListSkusResultIterator) Next() error { 7439 iter.i++ 7440 if iter.i < len(iter.page.Values()) { 7441 return nil 7442 } 7443 err := iter.page.Next() 7444 if err != nil { 7445 iter.i-- 7446 return err 7447 } 7448 iter.i = 0 7449 return nil 7450} 7451 7452// NotDone returns true if the enumeration should be started or is not yet complete. 7453func (iter VirtualMachineScaleSetListSkusResultIterator) NotDone() bool { 7454 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 7455} 7456 7457// Response returns the raw server response from the last page request. 7458func (iter VirtualMachineScaleSetListSkusResultIterator) Response() VirtualMachineScaleSetListSkusResult { 7459 return iter.page.Response() 7460} 7461 7462// Value returns the current value or a zero-initialized value if the 7463// iterator has advanced beyond the end of the collection. 7464func (iter VirtualMachineScaleSetListSkusResultIterator) Value() VirtualMachineScaleSetSku { 7465 if !iter.page.NotDone() { 7466 return VirtualMachineScaleSetSku{} 7467 } 7468 return iter.page.Values()[iter.i] 7469} 7470 7471// IsEmpty returns true if the ListResult contains no values. 7472func (vmsslsr VirtualMachineScaleSetListSkusResult) IsEmpty() bool { 7473 return vmsslsr.Value == nil || len(*vmsslsr.Value) == 0 7474} 7475 7476// virtualMachineScaleSetListSkusResultPreparer prepares a request to retrieve the next set of results. 7477// It returns nil if no more results exist. 7478func (vmsslsr VirtualMachineScaleSetListSkusResult) virtualMachineScaleSetListSkusResultPreparer() (*http.Request, error) { 7479 if vmsslsr.NextLink == nil || len(to.String(vmsslsr.NextLink)) < 1 { 7480 return nil, nil 7481 } 7482 return autorest.Prepare(&http.Request{}, 7483 autorest.AsJSON(), 7484 autorest.AsGet(), 7485 autorest.WithBaseURL(to.String(vmsslsr.NextLink))) 7486} 7487 7488// VirtualMachineScaleSetListSkusResultPage contains a page of VirtualMachineScaleSetSku values. 7489type VirtualMachineScaleSetListSkusResultPage struct { 7490 fn func(VirtualMachineScaleSetListSkusResult) (VirtualMachineScaleSetListSkusResult, error) 7491 vmsslsr VirtualMachineScaleSetListSkusResult 7492} 7493 7494// Next advances to the next page of values. If there was an error making 7495// the request the page does not advance and the error is returned. 7496func (page *VirtualMachineScaleSetListSkusResultPage) Next() error { 7497 next, err := page.fn(page.vmsslsr) 7498 if err != nil { 7499 return err 7500 } 7501 page.vmsslsr = next 7502 return nil 7503} 7504 7505// NotDone returns true if the page enumeration should be started or is not yet complete. 7506func (page VirtualMachineScaleSetListSkusResultPage) NotDone() bool { 7507 return !page.vmsslsr.IsEmpty() 7508} 7509 7510// Response returns the raw server response from the last page request. 7511func (page VirtualMachineScaleSetListSkusResultPage) Response() VirtualMachineScaleSetListSkusResult { 7512 return page.vmsslsr 7513} 7514 7515// Values returns the slice of values for the current page or nil if there are no values. 7516func (page VirtualMachineScaleSetListSkusResultPage) Values() []VirtualMachineScaleSetSku { 7517 if page.vmsslsr.IsEmpty() { 7518 return nil 7519 } 7520 return *page.vmsslsr.Value 7521} 7522 7523// VirtualMachineScaleSetListWithLinkResult the List Virtual Machine operation response. 7524type VirtualMachineScaleSetListWithLinkResult struct { 7525 autorest.Response `json:"-"` 7526 // Value - The list of virtual machine scale sets. 7527 Value *[]VirtualMachineScaleSet `json:"value,omitempty"` 7528 // NextLink - The uri to fetch the next page of Virtual Machine Scale Sets. Call ListNext() with this to fetch the next page of Virtual Machine Scale Sets. 7529 NextLink *string `json:"nextLink,omitempty"` 7530} 7531 7532// VirtualMachineScaleSetListWithLinkResultIterator provides access to a complete listing of VirtualMachineScaleSet 7533// values. 7534type VirtualMachineScaleSetListWithLinkResultIterator struct { 7535 i int 7536 page VirtualMachineScaleSetListWithLinkResultPage 7537} 7538 7539// Next advances to the next value. If there was an error making 7540// the request the iterator does not advance and the error is returned. 7541func (iter *VirtualMachineScaleSetListWithLinkResultIterator) Next() error { 7542 iter.i++ 7543 if iter.i < len(iter.page.Values()) { 7544 return nil 7545 } 7546 err := iter.page.Next() 7547 if err != nil { 7548 iter.i-- 7549 return err 7550 } 7551 iter.i = 0 7552 return nil 7553} 7554 7555// NotDone returns true if the enumeration should be started or is not yet complete. 7556func (iter VirtualMachineScaleSetListWithLinkResultIterator) NotDone() bool { 7557 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 7558} 7559 7560// Response returns the raw server response from the last page request. 7561func (iter VirtualMachineScaleSetListWithLinkResultIterator) Response() VirtualMachineScaleSetListWithLinkResult { 7562 return iter.page.Response() 7563} 7564 7565// Value returns the current value or a zero-initialized value if the 7566// iterator has advanced beyond the end of the collection. 7567func (iter VirtualMachineScaleSetListWithLinkResultIterator) Value() VirtualMachineScaleSet { 7568 if !iter.page.NotDone() { 7569 return VirtualMachineScaleSet{} 7570 } 7571 return iter.page.Values()[iter.i] 7572} 7573 7574// IsEmpty returns true if the ListResult contains no values. 7575func (vmsslwlr VirtualMachineScaleSetListWithLinkResult) IsEmpty() bool { 7576 return vmsslwlr.Value == nil || len(*vmsslwlr.Value) == 0 7577} 7578 7579// virtualMachineScaleSetListWithLinkResultPreparer prepares a request to retrieve the next set of results. 7580// It returns nil if no more results exist. 7581func (vmsslwlr VirtualMachineScaleSetListWithLinkResult) virtualMachineScaleSetListWithLinkResultPreparer() (*http.Request, error) { 7582 if vmsslwlr.NextLink == nil || len(to.String(vmsslwlr.NextLink)) < 1 { 7583 return nil, nil 7584 } 7585 return autorest.Prepare(&http.Request{}, 7586 autorest.AsJSON(), 7587 autorest.AsGet(), 7588 autorest.WithBaseURL(to.String(vmsslwlr.NextLink))) 7589} 7590 7591// VirtualMachineScaleSetListWithLinkResultPage contains a page of VirtualMachineScaleSet values. 7592type VirtualMachineScaleSetListWithLinkResultPage struct { 7593 fn func(VirtualMachineScaleSetListWithLinkResult) (VirtualMachineScaleSetListWithLinkResult, error) 7594 vmsslwlr VirtualMachineScaleSetListWithLinkResult 7595} 7596 7597// Next advances to the next page of values. If there was an error making 7598// the request the page does not advance and the error is returned. 7599func (page *VirtualMachineScaleSetListWithLinkResultPage) Next() error { 7600 next, err := page.fn(page.vmsslwlr) 7601 if err != nil { 7602 return err 7603 } 7604 page.vmsslwlr = next 7605 return nil 7606} 7607 7608// NotDone returns true if the page enumeration should be started or is not yet complete. 7609func (page VirtualMachineScaleSetListWithLinkResultPage) NotDone() bool { 7610 return !page.vmsslwlr.IsEmpty() 7611} 7612 7613// Response returns the raw server response from the last page request. 7614func (page VirtualMachineScaleSetListWithLinkResultPage) Response() VirtualMachineScaleSetListWithLinkResult { 7615 return page.vmsslwlr 7616} 7617 7618// Values returns the slice of values for the current page or nil if there are no values. 7619func (page VirtualMachineScaleSetListWithLinkResultPage) Values() []VirtualMachineScaleSet { 7620 if page.vmsslwlr.IsEmpty() { 7621 return nil 7622 } 7623 return *page.vmsslwlr.Value 7624} 7625 7626// VirtualMachineScaleSetManagedDiskParameters describes the parameters of a ScaleSet managed disk. 7627type VirtualMachineScaleSetManagedDiskParameters struct { 7628 // StorageAccountType - Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. Possible values include: 'StorageAccountTypesStandardLRS', 'StorageAccountTypesPremiumLRS', 'StorageAccountTypesStandardSSDLRS', 'StorageAccountTypesUltraSSDLRS' 7629 StorageAccountType StorageAccountTypes `json:"storageAccountType,omitempty"` 7630} 7631 7632// VirtualMachineScaleSetNetworkConfiguration describes a virtual machine scale set network profile's network 7633// configurations. 7634type VirtualMachineScaleSetNetworkConfiguration struct { 7635 // Name - The network configuration name. 7636 Name *string `json:"name,omitempty"` 7637 *VirtualMachineScaleSetNetworkConfigurationProperties `json:"properties,omitempty"` 7638 // ID - Resource Id 7639 ID *string `json:"id,omitempty"` 7640} 7641 7642// MarshalJSON is the custom marshaler for VirtualMachineScaleSetNetworkConfiguration. 7643func (vmssnc VirtualMachineScaleSetNetworkConfiguration) MarshalJSON() ([]byte, error) { 7644 objectMap := make(map[string]interface{}) 7645 if vmssnc.Name != nil { 7646 objectMap["name"] = vmssnc.Name 7647 } 7648 if vmssnc.VirtualMachineScaleSetNetworkConfigurationProperties != nil { 7649 objectMap["properties"] = vmssnc.VirtualMachineScaleSetNetworkConfigurationProperties 7650 } 7651 if vmssnc.ID != nil { 7652 objectMap["id"] = vmssnc.ID 7653 } 7654 return json.Marshal(objectMap) 7655} 7656 7657// UnmarshalJSON is the custom unmarshaler for VirtualMachineScaleSetNetworkConfiguration struct. 7658func (vmssnc *VirtualMachineScaleSetNetworkConfiguration) UnmarshalJSON(body []byte) error { 7659 var m map[string]*json.RawMessage 7660 err := json.Unmarshal(body, &m) 7661 if err != nil { 7662 return err 7663 } 7664 for k, v := range m { 7665 switch k { 7666 case "name": 7667 if v != nil { 7668 var name string 7669 err = json.Unmarshal(*v, &name) 7670 if err != nil { 7671 return err 7672 } 7673 vmssnc.Name = &name 7674 } 7675 case "properties": 7676 if v != nil { 7677 var virtualMachineScaleSetNetworkConfigurationProperties VirtualMachineScaleSetNetworkConfigurationProperties 7678 err = json.Unmarshal(*v, &virtualMachineScaleSetNetworkConfigurationProperties) 7679 if err != nil { 7680 return err 7681 } 7682 vmssnc.VirtualMachineScaleSetNetworkConfigurationProperties = &virtualMachineScaleSetNetworkConfigurationProperties 7683 } 7684 case "id": 7685 if v != nil { 7686 var ID string 7687 err = json.Unmarshal(*v, &ID) 7688 if err != nil { 7689 return err 7690 } 7691 vmssnc.ID = &ID 7692 } 7693 } 7694 } 7695 7696 return nil 7697} 7698 7699// VirtualMachineScaleSetNetworkConfigurationDNSSettings describes a virtual machines scale sets network 7700// configuration's DNS settings. 7701type VirtualMachineScaleSetNetworkConfigurationDNSSettings struct { 7702 // DNSServers - List of DNS servers IP addresses 7703 DNSServers *[]string `json:"dnsServers,omitempty"` 7704} 7705 7706// VirtualMachineScaleSetNetworkConfigurationProperties describes a virtual machine scale set network profile's IP 7707// configuration. 7708type VirtualMachineScaleSetNetworkConfigurationProperties struct { 7709 // Primary - Specifies the primary network interface in case the virtual machine has more than 1 network interface. 7710 Primary *bool `json:"primary,omitempty"` 7711 // EnableAcceleratedNetworking - Specifies whether the network interface is accelerated networking-enabled. 7712 EnableAcceleratedNetworking *bool `json:"enableAcceleratedNetworking,omitempty"` 7713 // NetworkSecurityGroup - The network security group. 7714 NetworkSecurityGroup *SubResource `json:"networkSecurityGroup,omitempty"` 7715 // DNSSettings - The dns settings to be applied on the network interfaces. 7716 DNSSettings *VirtualMachineScaleSetNetworkConfigurationDNSSettings `json:"dnsSettings,omitempty"` 7717 // IPConfigurations - Specifies the IP configurations of the network interface. 7718 IPConfigurations *[]VirtualMachineScaleSetIPConfiguration `json:"ipConfigurations,omitempty"` 7719 // EnableIPForwarding - Whether IP forwarding enabled on this NIC. 7720 EnableIPForwarding *bool `json:"enableIPForwarding,omitempty"` 7721} 7722 7723// VirtualMachineScaleSetNetworkProfile describes a virtual machine scale set network profile. 7724type VirtualMachineScaleSetNetworkProfile struct { 7725 // HealthProbe - 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}'. 7726 HealthProbe *APIEntityReference `json:"healthProbe,omitempty"` 7727 // NetworkInterfaceConfigurations - The list of network configurations. 7728 NetworkInterfaceConfigurations *[]VirtualMachineScaleSetNetworkConfiguration `json:"networkInterfaceConfigurations,omitempty"` 7729} 7730 7731// VirtualMachineScaleSetOSDisk describes a virtual machine scale set operating system disk. 7732type VirtualMachineScaleSetOSDisk struct { 7733 // Name - The disk name. 7734 Name *string `json:"name,omitempty"` 7735 // Caching - Specifies the caching requirements. <br><br> Possible values are: <br><br> **None** <br><br> **ReadOnly** <br><br> **ReadWrite** <br><br> Default: **None for Standard storage. ReadOnly for Premium storage**. Possible values include: 'CachingTypesNone', 'CachingTypesReadOnly', 'CachingTypesReadWrite' 7736 Caching CachingTypes `json:"caching,omitempty"` 7737 // WriteAcceleratorEnabled - Specifies whether writeAccelerator should be enabled or disabled on the disk. 7738 WriteAcceleratorEnabled *bool `json:"writeAcceleratorEnabled,omitempty"` 7739 // CreateOption - Specifies how the virtual machines in the scale set should be created.<br><br> 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: 'DiskCreateOptionTypesFromImage', 'DiskCreateOptionTypesEmpty', 'DiskCreateOptionTypesAttach' 7740 CreateOption DiskCreateOptionTypes `json:"createOption,omitempty"` 7741 // DiffDiskSettings - Specifies the differencing Disk Settings for the operating system disk used by the virtual machine scale set. 7742 DiffDiskSettings *DiffDiskSettings `json:"diffDiskSettings,omitempty"` 7743 // DiskSizeGB - Specifies the size of the operating system disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. <br><br> This value cannot be larger than 1023 GB 7744 DiskSizeGB *int32 `json:"diskSizeGB,omitempty"` 7745 // OsType - 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. <br><br> Possible values are: <br><br> **Windows** <br><br> **Linux**. Possible values include: 'Windows', 'Linux' 7746 OsType OperatingSystemTypes `json:"osType,omitempty"` 7747 // Image - Specifies information about the unmanaged user image to base the scale set on. 7748 Image *VirtualHardDisk `json:"image,omitempty"` 7749 // VhdContainers - Specifies the container urls that are used to store operating system disks for the scale set. 7750 VhdContainers *[]string `json:"vhdContainers,omitempty"` 7751 // ManagedDisk - The managed disk parameters. 7752 ManagedDisk *VirtualMachineScaleSetManagedDiskParameters `json:"managedDisk,omitempty"` 7753} 7754 7755// VirtualMachineScaleSetOSProfile describes a virtual machine scale set OS profile. 7756type VirtualMachineScaleSetOSProfile struct { 7757 // ComputerNamePrefix - 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. 7758 ComputerNamePrefix *string `json:"computerNamePrefix,omitempty"` 7759 // AdminUsername - Specifies the name of the administrator account. <br><br> **Windows-only restriction:** Cannot end in "." <br><br> **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". <br><br> **Minimum-length (Linux):** 1 character <br><br> **Max-length (Linux):** 64 characters <br><br> **Max-length (Windows):** 20 characters <br><br><li> 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)<br><li> 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) 7760 AdminUsername *string `json:"adminUsername,omitempty"` 7761 // AdminPassword - Specifies the password of the administrator account. <br><br> **Minimum-length (Windows):** 8 characters <br><br> **Minimum-length (Linux):** 6 characters <br><br> **Max-length (Windows):** 123 characters <br><br> **Max-length (Linux):** 72 characters <br><br> **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled <br> Has lower characters <br>Has upper characters <br> Has a digit <br> Has a special character (Regex match [\W_]) <br><br> **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" <br><br> 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) <br><br> 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) 7762 AdminPassword *string `json:"adminPassword,omitempty"` 7763 // CustomData - 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. <br><br> 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) 7764 CustomData *string `json:"customData,omitempty"` 7765 // WindowsConfiguration - Specifies Windows operating system settings on the virtual machine. 7766 WindowsConfiguration *WindowsConfiguration `json:"windowsConfiguration,omitempty"` 7767 // LinuxConfiguration - Specifies the Linux operating system settings on the virtual machine. <br><br>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) <br><br> 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). 7768 LinuxConfiguration *LinuxConfiguration `json:"linuxConfiguration,omitempty"` 7769 // Secrets - Specifies set of certificates that should be installed onto the virtual machines in the scale set. 7770 Secrets *[]VaultSecretGroup `json:"secrets,omitempty"` 7771} 7772 7773// VirtualMachineScaleSetProperties describes the properties of a Virtual Machine Scale Set. 7774type VirtualMachineScaleSetProperties struct { 7775 // UpgradePolicy - The upgrade policy. 7776 UpgradePolicy *UpgradePolicy `json:"upgradePolicy,omitempty"` 7777 // VirtualMachineProfile - The virtual machine profile. 7778 VirtualMachineProfile *VirtualMachineScaleSetVMProfile `json:"virtualMachineProfile,omitempty"` 7779 // ProvisioningState - The provisioning state, which only appears in the response. 7780 ProvisioningState *string `json:"provisioningState,omitempty"` 7781 // Overprovision - Specifies whether the Virtual Machine Scale Set should be overprovisioned. 7782 Overprovision *bool `json:"overprovision,omitempty"` 7783 // UniqueID - Specifies the ID which uniquely identifies a Virtual Machine Scale Set. 7784 UniqueID *string `json:"uniqueId,omitempty"` 7785 // SinglePlacementGroup - When true this limits the scale set to a single placement group, of max size 100 virtual machines. 7786 SinglePlacementGroup *bool `json:"singlePlacementGroup,omitempty"` 7787 // ZoneBalance - Whether to force stictly even Virtual Machine distribution cross x-zones in case there is zone outage. 7788 ZoneBalance *bool `json:"zoneBalance,omitempty"` 7789 // PlatformFaultDomainCount - Fault Domain count for each placement group. 7790 PlatformFaultDomainCount *int32 `json:"platformFaultDomainCount,omitempty"` 7791} 7792 7793// VirtualMachineScaleSetPublicIPAddressConfiguration describes a virtual machines scale set IP Configuration's 7794// PublicIPAddress configuration 7795type VirtualMachineScaleSetPublicIPAddressConfiguration struct { 7796 // Name - The publicIP address configuration name. 7797 Name *string `json:"name,omitempty"` 7798 *VirtualMachineScaleSetPublicIPAddressConfigurationProperties `json:"properties,omitempty"` 7799} 7800 7801// MarshalJSON is the custom marshaler for VirtualMachineScaleSetPublicIPAddressConfiguration. 7802func (vmsspiac VirtualMachineScaleSetPublicIPAddressConfiguration) MarshalJSON() ([]byte, error) { 7803 objectMap := make(map[string]interface{}) 7804 if vmsspiac.Name != nil { 7805 objectMap["name"] = vmsspiac.Name 7806 } 7807 if vmsspiac.VirtualMachineScaleSetPublicIPAddressConfigurationProperties != nil { 7808 objectMap["properties"] = vmsspiac.VirtualMachineScaleSetPublicIPAddressConfigurationProperties 7809 } 7810 return json.Marshal(objectMap) 7811} 7812 7813// UnmarshalJSON is the custom unmarshaler for VirtualMachineScaleSetPublicIPAddressConfiguration struct. 7814func (vmsspiac *VirtualMachineScaleSetPublicIPAddressConfiguration) UnmarshalJSON(body []byte) error { 7815 var m map[string]*json.RawMessage 7816 err := json.Unmarshal(body, &m) 7817 if err != nil { 7818 return err 7819 } 7820 for k, v := range m { 7821 switch k { 7822 case "name": 7823 if v != nil { 7824 var name string 7825 err = json.Unmarshal(*v, &name) 7826 if err != nil { 7827 return err 7828 } 7829 vmsspiac.Name = &name 7830 } 7831 case "properties": 7832 if v != nil { 7833 var virtualMachineScaleSetPublicIPAddressConfigurationProperties VirtualMachineScaleSetPublicIPAddressConfigurationProperties 7834 err = json.Unmarshal(*v, &virtualMachineScaleSetPublicIPAddressConfigurationProperties) 7835 if err != nil { 7836 return err 7837 } 7838 vmsspiac.VirtualMachineScaleSetPublicIPAddressConfigurationProperties = &virtualMachineScaleSetPublicIPAddressConfigurationProperties 7839 } 7840 } 7841 } 7842 7843 return nil 7844} 7845 7846// VirtualMachineScaleSetPublicIPAddressConfigurationDNSSettings describes a virtual machines scale sets network 7847// configuration's DNS settings. 7848type VirtualMachineScaleSetPublicIPAddressConfigurationDNSSettings struct { 7849 // DomainNameLabel - 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 7850 DomainNameLabel *string `json:"domainNameLabel,omitempty"` 7851} 7852 7853// VirtualMachineScaleSetPublicIPAddressConfigurationProperties describes a virtual machines scale set IP 7854// Configuration's PublicIPAddress configuration 7855type VirtualMachineScaleSetPublicIPAddressConfigurationProperties struct { 7856 // IdleTimeoutInMinutes - The idle timeout of the public IP address. 7857 IdleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"` 7858 // DNSSettings - The dns settings to be applied on the publicIP addresses . 7859 DNSSettings *VirtualMachineScaleSetPublicIPAddressConfigurationDNSSettings `json:"dnsSettings,omitempty"` 7860 // IPTags - The list of IP tags associated with the public IP address. 7861 IPTags *[]VirtualMachineScaleSetIPTag `json:"ipTags,omitempty"` 7862 // PublicIPPrefix - The PublicIPPrefix from which to allocate publicIP addresses. 7863 PublicIPPrefix *SubResource `json:"publicIPPrefix,omitempty"` 7864} 7865 7866// VirtualMachineScaleSetRollingUpgradesCancelFuture an abstraction for monitoring and retrieving the results of a 7867// long-running operation. 7868type VirtualMachineScaleSetRollingUpgradesCancelFuture struct { 7869 azure.Future 7870} 7871 7872// Result returns the result of the asynchronous operation. 7873// If the operation has not completed it will return an error. 7874func (future *VirtualMachineScaleSetRollingUpgradesCancelFuture) Result(client VirtualMachineScaleSetRollingUpgradesClient) (ar autorest.Response, err error) { 7875 var done bool 7876 done, err = future.Done(client) 7877 if err != nil { 7878 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetRollingUpgradesCancelFuture", "Result", future.Response(), "Polling failure") 7879 return 7880 } 7881 if !done { 7882 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetRollingUpgradesCancelFuture") 7883 return 7884 } 7885 ar.Response = future.Response() 7886 return 7887} 7888 7889// VirtualMachineScaleSetRollingUpgradesStartExtensionUpgradeFuture an abstraction for monitoring and retrieving 7890// the results of a long-running operation. 7891type VirtualMachineScaleSetRollingUpgradesStartExtensionUpgradeFuture struct { 7892 azure.Future 7893} 7894 7895// Result returns the result of the asynchronous operation. 7896// If the operation has not completed it will return an error. 7897func (future *VirtualMachineScaleSetRollingUpgradesStartExtensionUpgradeFuture) Result(client VirtualMachineScaleSetRollingUpgradesClient) (ar autorest.Response, err error) { 7898 var done bool 7899 done, err = future.Done(client) 7900 if err != nil { 7901 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetRollingUpgradesStartExtensionUpgradeFuture", "Result", future.Response(), "Polling failure") 7902 return 7903 } 7904 if !done { 7905 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetRollingUpgradesStartExtensionUpgradeFuture") 7906 return 7907 } 7908 ar.Response = future.Response() 7909 return 7910} 7911 7912// VirtualMachineScaleSetRollingUpgradesStartOSUpgradeFuture an abstraction for monitoring and retrieving the 7913// results of a long-running operation. 7914type VirtualMachineScaleSetRollingUpgradesStartOSUpgradeFuture struct { 7915 azure.Future 7916} 7917 7918// Result returns the result of the asynchronous operation. 7919// If the operation has not completed it will return an error. 7920func (future *VirtualMachineScaleSetRollingUpgradesStartOSUpgradeFuture) Result(client VirtualMachineScaleSetRollingUpgradesClient) (ar autorest.Response, err error) { 7921 var done bool 7922 done, err = future.Done(client) 7923 if err != nil { 7924 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetRollingUpgradesStartOSUpgradeFuture", "Result", future.Response(), "Polling failure") 7925 return 7926 } 7927 if !done { 7928 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetRollingUpgradesStartOSUpgradeFuture") 7929 return 7930 } 7931 ar.Response = future.Response() 7932 return 7933} 7934 7935// VirtualMachineScaleSetsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a 7936// long-running operation. 7937type VirtualMachineScaleSetsCreateOrUpdateFuture struct { 7938 azure.Future 7939} 7940 7941// Result returns the result of the asynchronous operation. 7942// If the operation has not completed it will return an error. 7943func (future *VirtualMachineScaleSetsCreateOrUpdateFuture) Result(client VirtualMachineScaleSetsClient) (vmss VirtualMachineScaleSet, err error) { 7944 var done bool 7945 done, err = future.Done(client) 7946 if err != nil { 7947 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 7948 return 7949 } 7950 if !done { 7951 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetsCreateOrUpdateFuture") 7952 return 7953 } 7954 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 7955 if vmss.Response.Response, err = future.GetResult(sender); err == nil && vmss.Response.Response.StatusCode != http.StatusNoContent { 7956 vmss, err = client.CreateOrUpdateResponder(vmss.Response.Response) 7957 if err != nil { 7958 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetsCreateOrUpdateFuture", "Result", vmss.Response.Response, "Failure responding to request") 7959 } 7960 } 7961 return 7962} 7963 7964// VirtualMachineScaleSetsDeallocateFuture an abstraction for monitoring and retrieving the results of a 7965// long-running operation. 7966type VirtualMachineScaleSetsDeallocateFuture struct { 7967 azure.Future 7968} 7969 7970// Result returns the result of the asynchronous operation. 7971// If the operation has not completed it will return an error. 7972func (future *VirtualMachineScaleSetsDeallocateFuture) Result(client VirtualMachineScaleSetsClient) (ar autorest.Response, err error) { 7973 var done bool 7974 done, err = future.Done(client) 7975 if err != nil { 7976 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetsDeallocateFuture", "Result", future.Response(), "Polling failure") 7977 return 7978 } 7979 if !done { 7980 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetsDeallocateFuture") 7981 return 7982 } 7983 ar.Response = future.Response() 7984 return 7985} 7986 7987// VirtualMachineScaleSetsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 7988// operation. 7989type VirtualMachineScaleSetsDeleteFuture struct { 7990 azure.Future 7991} 7992 7993// Result returns the result of the asynchronous operation. 7994// If the operation has not completed it will return an error. 7995func (future *VirtualMachineScaleSetsDeleteFuture) Result(client VirtualMachineScaleSetsClient) (ar autorest.Response, err error) { 7996 var done bool 7997 done, err = future.Done(client) 7998 if err != nil { 7999 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetsDeleteFuture", "Result", future.Response(), "Polling failure") 8000 return 8001 } 8002 if !done { 8003 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetsDeleteFuture") 8004 return 8005 } 8006 ar.Response = future.Response() 8007 return 8008} 8009 8010// VirtualMachineScaleSetsDeleteInstancesFuture an abstraction for monitoring and retrieving the results of a 8011// long-running operation. 8012type VirtualMachineScaleSetsDeleteInstancesFuture struct { 8013 azure.Future 8014} 8015 8016// Result returns the result of the asynchronous operation. 8017// If the operation has not completed it will return an error. 8018func (future *VirtualMachineScaleSetsDeleteInstancesFuture) Result(client VirtualMachineScaleSetsClient) (ar autorest.Response, err error) { 8019 var done bool 8020 done, err = future.Done(client) 8021 if err != nil { 8022 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetsDeleteInstancesFuture", "Result", future.Response(), "Polling failure") 8023 return 8024 } 8025 if !done { 8026 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetsDeleteInstancesFuture") 8027 return 8028 } 8029 ar.Response = future.Response() 8030 return 8031} 8032 8033// VirtualMachineScaleSetSku describes an available virtual machine scale set sku. 8034type VirtualMachineScaleSetSku struct { 8035 // ResourceType - The type of resource the sku applies to. 8036 ResourceType *string `json:"resourceType,omitempty"` 8037 // Sku - The Sku. 8038 Sku *Sku `json:"sku,omitempty"` 8039 // Capacity - Specifies the number of virtual machines in the scale set. 8040 Capacity *VirtualMachineScaleSetSkuCapacity `json:"capacity,omitempty"` 8041} 8042 8043// VirtualMachineScaleSetSkuCapacity describes scaling information of a sku. 8044type VirtualMachineScaleSetSkuCapacity struct { 8045 // Minimum - The minimum capacity. 8046 Minimum *int64 `json:"minimum,omitempty"` 8047 // Maximum - The maximum capacity that can be set. 8048 Maximum *int64 `json:"maximum,omitempty"` 8049 // DefaultCapacity - The default capacity. 8050 DefaultCapacity *int64 `json:"defaultCapacity,omitempty"` 8051 // ScaleType - The scale type applicable to the sku. Possible values include: 'VirtualMachineScaleSetSkuScaleTypeAutomatic', 'VirtualMachineScaleSetSkuScaleTypeNone' 8052 ScaleType VirtualMachineScaleSetSkuScaleType `json:"scaleType,omitempty"` 8053} 8054 8055// VirtualMachineScaleSetsPerformMaintenanceFuture an abstraction for monitoring and retrieving the results of a 8056// long-running operation. 8057type VirtualMachineScaleSetsPerformMaintenanceFuture struct { 8058 azure.Future 8059} 8060 8061// Result returns the result of the asynchronous operation. 8062// If the operation has not completed it will return an error. 8063func (future *VirtualMachineScaleSetsPerformMaintenanceFuture) Result(client VirtualMachineScaleSetsClient) (ar autorest.Response, err error) { 8064 var done bool 8065 done, err = future.Done(client) 8066 if err != nil { 8067 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetsPerformMaintenanceFuture", "Result", future.Response(), "Polling failure") 8068 return 8069 } 8070 if !done { 8071 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetsPerformMaintenanceFuture") 8072 return 8073 } 8074 ar.Response = future.Response() 8075 return 8076} 8077 8078// VirtualMachineScaleSetsPowerOffFuture an abstraction for monitoring and retrieving the results of a long-running 8079// operation. 8080type VirtualMachineScaleSetsPowerOffFuture struct { 8081 azure.Future 8082} 8083 8084// Result returns the result of the asynchronous operation. 8085// If the operation has not completed it will return an error. 8086func (future *VirtualMachineScaleSetsPowerOffFuture) Result(client VirtualMachineScaleSetsClient) (ar autorest.Response, err error) { 8087 var done bool 8088 done, err = future.Done(client) 8089 if err != nil { 8090 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetsPowerOffFuture", "Result", future.Response(), "Polling failure") 8091 return 8092 } 8093 if !done { 8094 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetsPowerOffFuture") 8095 return 8096 } 8097 ar.Response = future.Response() 8098 return 8099} 8100 8101// VirtualMachineScaleSetsRedeployFuture an abstraction for monitoring and retrieving the results of a long-running 8102// operation. 8103type VirtualMachineScaleSetsRedeployFuture struct { 8104 azure.Future 8105} 8106 8107// Result returns the result of the asynchronous operation. 8108// If the operation has not completed it will return an error. 8109func (future *VirtualMachineScaleSetsRedeployFuture) Result(client VirtualMachineScaleSetsClient) (ar autorest.Response, err error) { 8110 var done bool 8111 done, err = future.Done(client) 8112 if err != nil { 8113 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetsRedeployFuture", "Result", future.Response(), "Polling failure") 8114 return 8115 } 8116 if !done { 8117 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetsRedeployFuture") 8118 return 8119 } 8120 ar.Response = future.Response() 8121 return 8122} 8123 8124// VirtualMachineScaleSetsReimageAllFuture an abstraction for monitoring and retrieving the results of a 8125// long-running operation. 8126type VirtualMachineScaleSetsReimageAllFuture struct { 8127 azure.Future 8128} 8129 8130// Result returns the result of the asynchronous operation. 8131// If the operation has not completed it will return an error. 8132func (future *VirtualMachineScaleSetsReimageAllFuture) Result(client VirtualMachineScaleSetsClient) (ar autorest.Response, err error) { 8133 var done bool 8134 done, err = future.Done(client) 8135 if err != nil { 8136 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetsReimageAllFuture", "Result", future.Response(), "Polling failure") 8137 return 8138 } 8139 if !done { 8140 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetsReimageAllFuture") 8141 return 8142 } 8143 ar.Response = future.Response() 8144 return 8145} 8146 8147// VirtualMachineScaleSetsReimageFuture an abstraction for monitoring and retrieving the results of a long-running 8148// operation. 8149type VirtualMachineScaleSetsReimageFuture struct { 8150 azure.Future 8151} 8152 8153// Result returns the result of the asynchronous operation. 8154// If the operation has not completed it will return an error. 8155func (future *VirtualMachineScaleSetsReimageFuture) Result(client VirtualMachineScaleSetsClient) (ar autorest.Response, err error) { 8156 var done bool 8157 done, err = future.Done(client) 8158 if err != nil { 8159 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetsReimageFuture", "Result", future.Response(), "Polling failure") 8160 return 8161 } 8162 if !done { 8163 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetsReimageFuture") 8164 return 8165 } 8166 ar.Response = future.Response() 8167 return 8168} 8169 8170// VirtualMachineScaleSetsRestartFuture an abstraction for monitoring and retrieving the results of a long-running 8171// operation. 8172type VirtualMachineScaleSetsRestartFuture struct { 8173 azure.Future 8174} 8175 8176// Result returns the result of the asynchronous operation. 8177// If the operation has not completed it will return an error. 8178func (future *VirtualMachineScaleSetsRestartFuture) Result(client VirtualMachineScaleSetsClient) (ar autorest.Response, err error) { 8179 var done bool 8180 done, err = future.Done(client) 8181 if err != nil { 8182 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetsRestartFuture", "Result", future.Response(), "Polling failure") 8183 return 8184 } 8185 if !done { 8186 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetsRestartFuture") 8187 return 8188 } 8189 ar.Response = future.Response() 8190 return 8191} 8192 8193// VirtualMachineScaleSetsStartFuture an abstraction for monitoring and retrieving the results of a long-running 8194// operation. 8195type VirtualMachineScaleSetsStartFuture struct { 8196 azure.Future 8197} 8198 8199// Result returns the result of the asynchronous operation. 8200// If the operation has not completed it will return an error. 8201func (future *VirtualMachineScaleSetsStartFuture) Result(client VirtualMachineScaleSetsClient) (ar autorest.Response, err error) { 8202 var done bool 8203 done, err = future.Done(client) 8204 if err != nil { 8205 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetsStartFuture", "Result", future.Response(), "Polling failure") 8206 return 8207 } 8208 if !done { 8209 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetsStartFuture") 8210 return 8211 } 8212 ar.Response = future.Response() 8213 return 8214} 8215 8216// VirtualMachineScaleSetStorageProfile describes a virtual machine scale set storage profile. 8217type VirtualMachineScaleSetStorageProfile struct { 8218 // ImageReference - 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. 8219 ImageReference *ImageReference `json:"imageReference,omitempty"` 8220 // OsDisk - Specifies information about the operating system disk used by the virtual machines in the scale set. <br><br> 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). 8221 OsDisk *VirtualMachineScaleSetOSDisk `json:"osDisk,omitempty"` 8222 // DataDisks - Specifies the parameters that are used to add data disks to the virtual machines in the scale set. <br><br> 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). 8223 DataDisks *[]VirtualMachineScaleSetDataDisk `json:"dataDisks,omitempty"` 8224} 8225 8226// VirtualMachineScaleSetsUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 8227// operation. 8228type VirtualMachineScaleSetsUpdateFuture struct { 8229 azure.Future 8230} 8231 8232// Result returns the result of the asynchronous operation. 8233// If the operation has not completed it will return an error. 8234func (future *VirtualMachineScaleSetsUpdateFuture) Result(client VirtualMachineScaleSetsClient) (vmss VirtualMachineScaleSet, err error) { 8235 var done bool 8236 done, err = future.Done(client) 8237 if err != nil { 8238 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetsUpdateFuture", "Result", future.Response(), "Polling failure") 8239 return 8240 } 8241 if !done { 8242 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetsUpdateFuture") 8243 return 8244 } 8245 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 8246 if vmss.Response.Response, err = future.GetResult(sender); err == nil && vmss.Response.Response.StatusCode != http.StatusNoContent { 8247 vmss, err = client.UpdateResponder(vmss.Response.Response) 8248 if err != nil { 8249 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetsUpdateFuture", "Result", vmss.Response.Response, "Failure responding to request") 8250 } 8251 } 8252 return 8253} 8254 8255// VirtualMachineScaleSetsUpdateInstancesFuture an abstraction for monitoring and retrieving the results of a 8256// long-running operation. 8257type VirtualMachineScaleSetsUpdateInstancesFuture struct { 8258 azure.Future 8259} 8260 8261// Result returns the result of the asynchronous operation. 8262// If the operation has not completed it will return an error. 8263func (future *VirtualMachineScaleSetsUpdateInstancesFuture) Result(client VirtualMachineScaleSetsClient) (ar autorest.Response, err error) { 8264 var done bool 8265 done, err = future.Done(client) 8266 if err != nil { 8267 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetsUpdateInstancesFuture", "Result", future.Response(), "Polling failure") 8268 return 8269 } 8270 if !done { 8271 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetsUpdateInstancesFuture") 8272 return 8273 } 8274 ar.Response = future.Response() 8275 return 8276} 8277 8278// VirtualMachineScaleSetUpdate describes a Virtual Machine Scale Set. 8279type VirtualMachineScaleSetUpdate struct { 8280 // Sku - The virtual machine scale set sku. 8281 Sku *Sku `json:"sku,omitempty"` 8282 // Plan - The purchase plan when deploying a virtual machine scale set from VM Marketplace images. 8283 Plan *Plan `json:"plan,omitempty"` 8284 *VirtualMachineScaleSetUpdateProperties `json:"properties,omitempty"` 8285 // Identity - The identity of the virtual machine scale set, if configured. 8286 Identity *VirtualMachineScaleSetIdentity `json:"identity,omitempty"` 8287 // Tags - Resource tags 8288 Tags map[string]*string `json:"tags"` 8289} 8290 8291// MarshalJSON is the custom marshaler for VirtualMachineScaleSetUpdate. 8292func (vmssu VirtualMachineScaleSetUpdate) MarshalJSON() ([]byte, error) { 8293 objectMap := make(map[string]interface{}) 8294 if vmssu.Sku != nil { 8295 objectMap["sku"] = vmssu.Sku 8296 } 8297 if vmssu.Plan != nil { 8298 objectMap["plan"] = vmssu.Plan 8299 } 8300 if vmssu.VirtualMachineScaleSetUpdateProperties != nil { 8301 objectMap["properties"] = vmssu.VirtualMachineScaleSetUpdateProperties 8302 } 8303 if vmssu.Identity != nil { 8304 objectMap["identity"] = vmssu.Identity 8305 } 8306 if vmssu.Tags != nil { 8307 objectMap["tags"] = vmssu.Tags 8308 } 8309 return json.Marshal(objectMap) 8310} 8311 8312// UnmarshalJSON is the custom unmarshaler for VirtualMachineScaleSetUpdate struct. 8313func (vmssu *VirtualMachineScaleSetUpdate) UnmarshalJSON(body []byte) error { 8314 var m map[string]*json.RawMessage 8315 err := json.Unmarshal(body, &m) 8316 if err != nil { 8317 return err 8318 } 8319 for k, v := range m { 8320 switch k { 8321 case "sku": 8322 if v != nil { 8323 var sku Sku 8324 err = json.Unmarshal(*v, &sku) 8325 if err != nil { 8326 return err 8327 } 8328 vmssu.Sku = &sku 8329 } 8330 case "plan": 8331 if v != nil { 8332 var plan Plan 8333 err = json.Unmarshal(*v, &plan) 8334 if err != nil { 8335 return err 8336 } 8337 vmssu.Plan = &plan 8338 } 8339 case "properties": 8340 if v != nil { 8341 var virtualMachineScaleSetUpdateProperties VirtualMachineScaleSetUpdateProperties 8342 err = json.Unmarshal(*v, &virtualMachineScaleSetUpdateProperties) 8343 if err != nil { 8344 return err 8345 } 8346 vmssu.VirtualMachineScaleSetUpdateProperties = &virtualMachineScaleSetUpdateProperties 8347 } 8348 case "identity": 8349 if v != nil { 8350 var identity VirtualMachineScaleSetIdentity 8351 err = json.Unmarshal(*v, &identity) 8352 if err != nil { 8353 return err 8354 } 8355 vmssu.Identity = &identity 8356 } 8357 case "tags": 8358 if v != nil { 8359 var tags map[string]*string 8360 err = json.Unmarshal(*v, &tags) 8361 if err != nil { 8362 return err 8363 } 8364 vmssu.Tags = tags 8365 } 8366 } 8367 } 8368 8369 return nil 8370} 8371 8372// VirtualMachineScaleSetUpdateIPConfiguration describes a virtual machine scale set network profile's IP 8373// configuration. 8374type VirtualMachineScaleSetUpdateIPConfiguration struct { 8375 // Name - The IP configuration name. 8376 Name *string `json:"name,omitempty"` 8377 *VirtualMachineScaleSetUpdateIPConfigurationProperties `json:"properties,omitempty"` 8378 // ID - Resource Id 8379 ID *string `json:"id,omitempty"` 8380} 8381 8382// MarshalJSON is the custom marshaler for VirtualMachineScaleSetUpdateIPConfiguration. 8383func (vmssuic VirtualMachineScaleSetUpdateIPConfiguration) MarshalJSON() ([]byte, error) { 8384 objectMap := make(map[string]interface{}) 8385 if vmssuic.Name != nil { 8386 objectMap["name"] = vmssuic.Name 8387 } 8388 if vmssuic.VirtualMachineScaleSetUpdateIPConfigurationProperties != nil { 8389 objectMap["properties"] = vmssuic.VirtualMachineScaleSetUpdateIPConfigurationProperties 8390 } 8391 if vmssuic.ID != nil { 8392 objectMap["id"] = vmssuic.ID 8393 } 8394 return json.Marshal(objectMap) 8395} 8396 8397// UnmarshalJSON is the custom unmarshaler for VirtualMachineScaleSetUpdateIPConfiguration struct. 8398func (vmssuic *VirtualMachineScaleSetUpdateIPConfiguration) UnmarshalJSON(body []byte) error { 8399 var m map[string]*json.RawMessage 8400 err := json.Unmarshal(body, &m) 8401 if err != nil { 8402 return err 8403 } 8404 for k, v := range m { 8405 switch k { 8406 case "name": 8407 if v != nil { 8408 var name string 8409 err = json.Unmarshal(*v, &name) 8410 if err != nil { 8411 return err 8412 } 8413 vmssuic.Name = &name 8414 } 8415 case "properties": 8416 if v != nil { 8417 var virtualMachineScaleSetUpdateIPConfigurationProperties VirtualMachineScaleSetUpdateIPConfigurationProperties 8418 err = json.Unmarshal(*v, &virtualMachineScaleSetUpdateIPConfigurationProperties) 8419 if err != nil { 8420 return err 8421 } 8422 vmssuic.VirtualMachineScaleSetUpdateIPConfigurationProperties = &virtualMachineScaleSetUpdateIPConfigurationProperties 8423 } 8424 case "id": 8425 if v != nil { 8426 var ID string 8427 err = json.Unmarshal(*v, &ID) 8428 if err != nil { 8429 return err 8430 } 8431 vmssuic.ID = &ID 8432 } 8433 } 8434 } 8435 8436 return nil 8437} 8438 8439// VirtualMachineScaleSetUpdateIPConfigurationProperties describes a virtual machine scale set network profile's IP 8440// configuration properties. 8441type VirtualMachineScaleSetUpdateIPConfigurationProperties struct { 8442 // Subnet - The subnet. 8443 Subnet *APIEntityReference `json:"subnet,omitempty"` 8444 // Primary - Specifies the primary IP Configuration in case the network interface has more than one IP Configuration. 8445 Primary *bool `json:"primary,omitempty"` 8446 // PublicIPAddressConfiguration - The publicIPAddressConfiguration. 8447 PublicIPAddressConfiguration *VirtualMachineScaleSetUpdatePublicIPAddressConfiguration `json:"publicIPAddressConfiguration,omitempty"` 8448 // PrivateIPAddressVersion - 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' 8449 PrivateIPAddressVersion IPVersion `json:"privateIPAddressVersion,omitempty"` 8450 // ApplicationGatewayBackendAddressPools - The application gateway backend address pools. 8451 ApplicationGatewayBackendAddressPools *[]SubResource `json:"applicationGatewayBackendAddressPools,omitempty"` 8452 // ApplicationSecurityGroups - Specifies an array of references to application security group. 8453 ApplicationSecurityGroups *[]SubResource `json:"applicationSecurityGroups,omitempty"` 8454 // LoadBalancerBackendAddressPools - The load balancer backend address pools. 8455 LoadBalancerBackendAddressPools *[]SubResource `json:"loadBalancerBackendAddressPools,omitempty"` 8456 // LoadBalancerInboundNatPools - The load balancer inbound nat pools. 8457 LoadBalancerInboundNatPools *[]SubResource `json:"loadBalancerInboundNatPools,omitempty"` 8458} 8459 8460// VirtualMachineScaleSetUpdateNetworkConfiguration describes a virtual machine scale set network profile's network 8461// configurations. 8462type VirtualMachineScaleSetUpdateNetworkConfiguration struct { 8463 // Name - The network configuration name. 8464 Name *string `json:"name,omitempty"` 8465 *VirtualMachineScaleSetUpdateNetworkConfigurationProperties `json:"properties,omitempty"` 8466 // ID - Resource Id 8467 ID *string `json:"id,omitempty"` 8468} 8469 8470// MarshalJSON is the custom marshaler for VirtualMachineScaleSetUpdateNetworkConfiguration. 8471func (vmssunc VirtualMachineScaleSetUpdateNetworkConfiguration) MarshalJSON() ([]byte, error) { 8472 objectMap := make(map[string]interface{}) 8473 if vmssunc.Name != nil { 8474 objectMap["name"] = vmssunc.Name 8475 } 8476 if vmssunc.VirtualMachineScaleSetUpdateNetworkConfigurationProperties != nil { 8477 objectMap["properties"] = vmssunc.VirtualMachineScaleSetUpdateNetworkConfigurationProperties 8478 } 8479 if vmssunc.ID != nil { 8480 objectMap["id"] = vmssunc.ID 8481 } 8482 return json.Marshal(objectMap) 8483} 8484 8485// UnmarshalJSON is the custom unmarshaler for VirtualMachineScaleSetUpdateNetworkConfiguration struct. 8486func (vmssunc *VirtualMachineScaleSetUpdateNetworkConfiguration) UnmarshalJSON(body []byte) error { 8487 var m map[string]*json.RawMessage 8488 err := json.Unmarshal(body, &m) 8489 if err != nil { 8490 return err 8491 } 8492 for k, v := range m { 8493 switch k { 8494 case "name": 8495 if v != nil { 8496 var name string 8497 err = json.Unmarshal(*v, &name) 8498 if err != nil { 8499 return err 8500 } 8501 vmssunc.Name = &name 8502 } 8503 case "properties": 8504 if v != nil { 8505 var virtualMachineScaleSetUpdateNetworkConfigurationProperties VirtualMachineScaleSetUpdateNetworkConfigurationProperties 8506 err = json.Unmarshal(*v, &virtualMachineScaleSetUpdateNetworkConfigurationProperties) 8507 if err != nil { 8508 return err 8509 } 8510 vmssunc.VirtualMachineScaleSetUpdateNetworkConfigurationProperties = &virtualMachineScaleSetUpdateNetworkConfigurationProperties 8511 } 8512 case "id": 8513 if v != nil { 8514 var ID string 8515 err = json.Unmarshal(*v, &ID) 8516 if err != nil { 8517 return err 8518 } 8519 vmssunc.ID = &ID 8520 } 8521 } 8522 } 8523 8524 return nil 8525} 8526 8527// VirtualMachineScaleSetUpdateNetworkConfigurationProperties describes a virtual machine scale set updatable 8528// network profile's IP configuration.Use this object for updating network profile's IP Configuration. 8529type VirtualMachineScaleSetUpdateNetworkConfigurationProperties struct { 8530 // Primary - Whether this is a primary NIC on a virtual machine. 8531 Primary *bool `json:"primary,omitempty"` 8532 // EnableAcceleratedNetworking - Specifies whether the network interface is accelerated networking-enabled. 8533 EnableAcceleratedNetworking *bool `json:"enableAcceleratedNetworking,omitempty"` 8534 // NetworkSecurityGroup - The network security group. 8535 NetworkSecurityGroup *SubResource `json:"networkSecurityGroup,omitempty"` 8536 // DNSSettings - The dns settings to be applied on the network interfaces. 8537 DNSSettings *VirtualMachineScaleSetNetworkConfigurationDNSSettings `json:"dnsSettings,omitempty"` 8538 // IPConfigurations - The virtual machine scale set IP Configuration. 8539 IPConfigurations *[]VirtualMachineScaleSetUpdateIPConfiguration `json:"ipConfigurations,omitempty"` 8540 // EnableIPForwarding - Whether IP forwarding enabled on this NIC. 8541 EnableIPForwarding *bool `json:"enableIPForwarding,omitempty"` 8542} 8543 8544// VirtualMachineScaleSetUpdateNetworkProfile describes a virtual machine scale set network profile. 8545type VirtualMachineScaleSetUpdateNetworkProfile struct { 8546 // NetworkInterfaceConfigurations - The list of network configurations. 8547 NetworkInterfaceConfigurations *[]VirtualMachineScaleSetUpdateNetworkConfiguration `json:"networkInterfaceConfigurations,omitempty"` 8548} 8549 8550// VirtualMachineScaleSetUpdateOSDisk describes virtual machine scale set operating system disk Update Object. This 8551// should be used for Updating VMSS OS Disk. 8552type VirtualMachineScaleSetUpdateOSDisk struct { 8553 // Caching - The caching type. Possible values include: 'CachingTypesNone', 'CachingTypesReadOnly', 'CachingTypesReadWrite' 8554 Caching CachingTypes `json:"caching,omitempty"` 8555 // WriteAcceleratorEnabled - Specifies whether writeAccelerator should be enabled or disabled on the disk. 8556 WriteAcceleratorEnabled *bool `json:"writeAcceleratorEnabled,omitempty"` 8557 // DiskSizeGB - Specifies the size of the operating system disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. <br><br> This value cannot be larger than 1023 GB 8558 DiskSizeGB *int32 `json:"diskSizeGB,omitempty"` 8559 // Image - 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. 8560 Image *VirtualHardDisk `json:"image,omitempty"` 8561 // VhdContainers - The list of virtual hard disk container uris. 8562 VhdContainers *[]string `json:"vhdContainers,omitempty"` 8563 // ManagedDisk - The managed disk parameters. 8564 ManagedDisk *VirtualMachineScaleSetManagedDiskParameters `json:"managedDisk,omitempty"` 8565} 8566 8567// VirtualMachineScaleSetUpdateOSProfile describes a virtual machine scale set OS profile. 8568type VirtualMachineScaleSetUpdateOSProfile struct { 8569 // CustomData - A base-64 encoded string of custom data. 8570 CustomData *string `json:"customData,omitempty"` 8571 // WindowsConfiguration - The Windows Configuration of the OS profile. 8572 WindowsConfiguration *WindowsConfiguration `json:"windowsConfiguration,omitempty"` 8573 // LinuxConfiguration - The Linux Configuration of the OS profile. 8574 LinuxConfiguration *LinuxConfiguration `json:"linuxConfiguration,omitempty"` 8575 // Secrets - The List of certificates for addition to the VM. 8576 Secrets *[]VaultSecretGroup `json:"secrets,omitempty"` 8577} 8578 8579// VirtualMachineScaleSetUpdateProperties describes the properties of a Virtual Machine Scale Set. 8580type VirtualMachineScaleSetUpdateProperties struct { 8581 // UpgradePolicy - The upgrade policy. 8582 UpgradePolicy *UpgradePolicy `json:"upgradePolicy,omitempty"` 8583 // VirtualMachineProfile - The virtual machine profile. 8584 VirtualMachineProfile *VirtualMachineScaleSetUpdateVMProfile `json:"virtualMachineProfile,omitempty"` 8585 // Overprovision - Specifies whether the Virtual Machine Scale Set should be overprovisioned. 8586 Overprovision *bool `json:"overprovision,omitempty"` 8587 // SinglePlacementGroup - When true this limits the scale set to a single placement group, of max size 100 virtual machines. 8588 SinglePlacementGroup *bool `json:"singlePlacementGroup,omitempty"` 8589} 8590 8591// VirtualMachineScaleSetUpdatePublicIPAddressConfiguration describes a virtual machines scale set IP 8592// Configuration's PublicIPAddress configuration 8593type VirtualMachineScaleSetUpdatePublicIPAddressConfiguration struct { 8594 // Name - The publicIP address configuration name. 8595 Name *string `json:"name,omitempty"` 8596 *VirtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties `json:"properties,omitempty"` 8597} 8598 8599// MarshalJSON is the custom marshaler for VirtualMachineScaleSetUpdatePublicIPAddressConfiguration. 8600func (vmssupiac VirtualMachineScaleSetUpdatePublicIPAddressConfiguration) MarshalJSON() ([]byte, error) { 8601 objectMap := make(map[string]interface{}) 8602 if vmssupiac.Name != nil { 8603 objectMap["name"] = vmssupiac.Name 8604 } 8605 if vmssupiac.VirtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties != nil { 8606 objectMap["properties"] = vmssupiac.VirtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties 8607 } 8608 return json.Marshal(objectMap) 8609} 8610 8611// UnmarshalJSON is the custom unmarshaler for VirtualMachineScaleSetUpdatePublicIPAddressConfiguration struct. 8612func (vmssupiac *VirtualMachineScaleSetUpdatePublicIPAddressConfiguration) UnmarshalJSON(body []byte) error { 8613 var m map[string]*json.RawMessage 8614 err := json.Unmarshal(body, &m) 8615 if err != nil { 8616 return err 8617 } 8618 for k, v := range m { 8619 switch k { 8620 case "name": 8621 if v != nil { 8622 var name string 8623 err = json.Unmarshal(*v, &name) 8624 if err != nil { 8625 return err 8626 } 8627 vmssupiac.Name = &name 8628 } 8629 case "properties": 8630 if v != nil { 8631 var virtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties VirtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties 8632 err = json.Unmarshal(*v, &virtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties) 8633 if err != nil { 8634 return err 8635 } 8636 vmssupiac.VirtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties = &virtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties 8637 } 8638 } 8639 } 8640 8641 return nil 8642} 8643 8644// VirtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties describes a virtual machines scale set IP 8645// Configuration's PublicIPAddress configuration 8646type VirtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties struct { 8647 // IdleTimeoutInMinutes - The idle timeout of the public IP address. 8648 IdleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"` 8649 // DNSSettings - The dns settings to be applied on the publicIP addresses . 8650 DNSSettings *VirtualMachineScaleSetPublicIPAddressConfigurationDNSSettings `json:"dnsSettings,omitempty"` 8651} 8652 8653// VirtualMachineScaleSetUpdateStorageProfile describes a virtual machine scale set storage profile. 8654type VirtualMachineScaleSetUpdateStorageProfile struct { 8655 // ImageReference - The image reference. 8656 ImageReference *ImageReference `json:"imageReference,omitempty"` 8657 // OsDisk - The OS disk. 8658 OsDisk *VirtualMachineScaleSetUpdateOSDisk `json:"osDisk,omitempty"` 8659 // DataDisks - The data disks. 8660 DataDisks *[]VirtualMachineScaleSetDataDisk `json:"dataDisks,omitempty"` 8661} 8662 8663// VirtualMachineScaleSetUpdateVMProfile describes a virtual machine scale set virtual machine profile. 8664type VirtualMachineScaleSetUpdateVMProfile struct { 8665 // OsProfile - The virtual machine scale set OS profile. 8666 OsProfile *VirtualMachineScaleSetUpdateOSProfile `json:"osProfile,omitempty"` 8667 // StorageProfile - The virtual machine scale set storage profile. 8668 StorageProfile *VirtualMachineScaleSetUpdateStorageProfile `json:"storageProfile,omitempty"` 8669 // NetworkProfile - The virtual machine scale set network profile. 8670 NetworkProfile *VirtualMachineScaleSetUpdateNetworkProfile `json:"networkProfile,omitempty"` 8671 // DiagnosticsProfile - The virtual machine scale set diagnostics profile. 8672 DiagnosticsProfile *DiagnosticsProfile `json:"diagnosticsProfile,omitempty"` 8673 // ExtensionProfile - The virtual machine scale set extension profile. 8674 ExtensionProfile *VirtualMachineScaleSetExtensionProfile `json:"extensionProfile,omitempty"` 8675 // LicenseType - The license type, which is for bring your own license scenario. 8676 LicenseType *string `json:"licenseType,omitempty"` 8677} 8678 8679// VirtualMachineScaleSetVM describes a virtual machine scale set virtual machine. 8680type VirtualMachineScaleSetVM struct { 8681 autorest.Response `json:"-"` 8682 // InstanceID - The virtual machine instance ID. 8683 InstanceID *string `json:"instanceId,omitempty"` 8684 // Sku - The virtual machine SKU. 8685 Sku *Sku `json:"sku,omitempty"` 8686 *VirtualMachineScaleSetVMProperties `json:"properties,omitempty"` 8687 // 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 ->**. Enter any required information and then click **Save**. 8688 Plan *Plan `json:"plan,omitempty"` 8689 // Resources - The virtual machine child extension resources. 8690 Resources *[]VirtualMachineExtension `json:"resources,omitempty"` 8691 // Zones - The virtual machine zones. 8692 Zones *[]string `json:"zones,omitempty"` 8693 // ID - Resource Id 8694 ID *string `json:"id,omitempty"` 8695 // Name - Resource name 8696 Name *string `json:"name,omitempty"` 8697 // Type - Resource type 8698 Type *string `json:"type,omitempty"` 8699 // Location - Resource location 8700 Location *string `json:"location,omitempty"` 8701 // Tags - Resource tags 8702 Tags map[string]*string `json:"tags"` 8703} 8704 8705// MarshalJSON is the custom marshaler for VirtualMachineScaleSetVM. 8706func (vmssv VirtualMachineScaleSetVM) MarshalJSON() ([]byte, error) { 8707 objectMap := make(map[string]interface{}) 8708 if vmssv.InstanceID != nil { 8709 objectMap["instanceId"] = vmssv.InstanceID 8710 } 8711 if vmssv.Sku != nil { 8712 objectMap["sku"] = vmssv.Sku 8713 } 8714 if vmssv.VirtualMachineScaleSetVMProperties != nil { 8715 objectMap["properties"] = vmssv.VirtualMachineScaleSetVMProperties 8716 } 8717 if vmssv.Plan != nil { 8718 objectMap["plan"] = vmssv.Plan 8719 } 8720 if vmssv.Resources != nil { 8721 objectMap["resources"] = vmssv.Resources 8722 } 8723 if vmssv.Zones != nil { 8724 objectMap["zones"] = vmssv.Zones 8725 } 8726 if vmssv.ID != nil { 8727 objectMap["id"] = vmssv.ID 8728 } 8729 if vmssv.Name != nil { 8730 objectMap["name"] = vmssv.Name 8731 } 8732 if vmssv.Type != nil { 8733 objectMap["type"] = vmssv.Type 8734 } 8735 if vmssv.Location != nil { 8736 objectMap["location"] = vmssv.Location 8737 } 8738 if vmssv.Tags != nil { 8739 objectMap["tags"] = vmssv.Tags 8740 } 8741 return json.Marshal(objectMap) 8742} 8743 8744// UnmarshalJSON is the custom unmarshaler for VirtualMachineScaleSetVM struct. 8745func (vmssv *VirtualMachineScaleSetVM) UnmarshalJSON(body []byte) error { 8746 var m map[string]*json.RawMessage 8747 err := json.Unmarshal(body, &m) 8748 if err != nil { 8749 return err 8750 } 8751 for k, v := range m { 8752 switch k { 8753 case "instanceId": 8754 if v != nil { 8755 var instanceID string 8756 err = json.Unmarshal(*v, &instanceID) 8757 if err != nil { 8758 return err 8759 } 8760 vmssv.InstanceID = &instanceID 8761 } 8762 case "sku": 8763 if v != nil { 8764 var sku Sku 8765 err = json.Unmarshal(*v, &sku) 8766 if err != nil { 8767 return err 8768 } 8769 vmssv.Sku = &sku 8770 } 8771 case "properties": 8772 if v != nil { 8773 var virtualMachineScaleSetVMProperties VirtualMachineScaleSetVMProperties 8774 err = json.Unmarshal(*v, &virtualMachineScaleSetVMProperties) 8775 if err != nil { 8776 return err 8777 } 8778 vmssv.VirtualMachineScaleSetVMProperties = &virtualMachineScaleSetVMProperties 8779 } 8780 case "plan": 8781 if v != nil { 8782 var plan Plan 8783 err = json.Unmarshal(*v, &plan) 8784 if err != nil { 8785 return err 8786 } 8787 vmssv.Plan = &plan 8788 } 8789 case "resources": 8790 if v != nil { 8791 var resources []VirtualMachineExtension 8792 err = json.Unmarshal(*v, &resources) 8793 if err != nil { 8794 return err 8795 } 8796 vmssv.Resources = &resources 8797 } 8798 case "zones": 8799 if v != nil { 8800 var zones []string 8801 err = json.Unmarshal(*v, &zones) 8802 if err != nil { 8803 return err 8804 } 8805 vmssv.Zones = &zones 8806 } 8807 case "id": 8808 if v != nil { 8809 var ID string 8810 err = json.Unmarshal(*v, &ID) 8811 if err != nil { 8812 return err 8813 } 8814 vmssv.ID = &ID 8815 } 8816 case "name": 8817 if v != nil { 8818 var name string 8819 err = json.Unmarshal(*v, &name) 8820 if err != nil { 8821 return err 8822 } 8823 vmssv.Name = &name 8824 } 8825 case "type": 8826 if v != nil { 8827 var typeVar string 8828 err = json.Unmarshal(*v, &typeVar) 8829 if err != nil { 8830 return err 8831 } 8832 vmssv.Type = &typeVar 8833 } 8834 case "location": 8835 if v != nil { 8836 var location string 8837 err = json.Unmarshal(*v, &location) 8838 if err != nil { 8839 return err 8840 } 8841 vmssv.Location = &location 8842 } 8843 case "tags": 8844 if v != nil { 8845 var tags map[string]*string 8846 err = json.Unmarshal(*v, &tags) 8847 if err != nil { 8848 return err 8849 } 8850 vmssv.Tags = tags 8851 } 8852 } 8853 } 8854 8855 return nil 8856} 8857 8858// VirtualMachineScaleSetVMExtensionsSummary extensions summary for virtual machines of a virtual machine scale 8859// set. 8860type VirtualMachineScaleSetVMExtensionsSummary struct { 8861 // Name - The extension name. 8862 Name *string `json:"name,omitempty"` 8863 // StatusesSummary - The extensions information. 8864 StatusesSummary *[]VirtualMachineStatusCodeCount `json:"statusesSummary,omitempty"` 8865} 8866 8867// VirtualMachineScaleSetVMInstanceIDs specifies a list of virtual machine instance IDs from the VM scale set. 8868type VirtualMachineScaleSetVMInstanceIDs struct { 8869 // InstanceIds - 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. 8870 InstanceIds *[]string `json:"instanceIds,omitempty"` 8871} 8872 8873// VirtualMachineScaleSetVMInstanceRequiredIDs specifies a list of virtual machine instance IDs from the VM scale 8874// set. 8875type VirtualMachineScaleSetVMInstanceRequiredIDs struct { 8876 // InstanceIds - The virtual machine scale set instance ids. 8877 InstanceIds *[]string `json:"instanceIds,omitempty"` 8878} 8879 8880// VirtualMachineScaleSetVMInstanceView the instance view of a virtual machine scale set VM. 8881type VirtualMachineScaleSetVMInstanceView struct { 8882 autorest.Response `json:"-"` 8883 // PlatformUpdateDomain - The Update Domain count. 8884 PlatformUpdateDomain *int32 `json:"platformUpdateDomain,omitempty"` 8885 // PlatformFaultDomain - The Fault Domain count. 8886 PlatformFaultDomain *int32 `json:"platformFaultDomain,omitempty"` 8887 // RdpThumbPrint - The Remote desktop certificate thumbprint. 8888 RdpThumbPrint *string `json:"rdpThumbPrint,omitempty"` 8889 // VMAgent - The VM Agent running on the virtual machine. 8890 VMAgent *VirtualMachineAgentInstanceView `json:"vmAgent,omitempty"` 8891 // MaintenanceRedeployStatus - The Maintenance Operation status on the virtual machine. 8892 MaintenanceRedeployStatus *MaintenanceRedeployStatus `json:"maintenanceRedeployStatus,omitempty"` 8893 // Disks - The disks information. 8894 Disks *[]DiskInstanceView `json:"disks,omitempty"` 8895 // Extensions - The extensions information. 8896 Extensions *[]VirtualMachineExtensionInstanceView `json:"extensions,omitempty"` 8897 // VMHealth - The health status for the VM. 8898 VMHealth *VirtualMachineHealthStatus `json:"vmHealth,omitempty"` 8899 // BootDiagnostics - Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. <br><br> For Linux Virtual Machines, you can easily view the output of your console log. <br><br> For both Windows and Linux virtual machines, Azure also enables you to see a screenshot of the VM from the hypervisor. 8900 BootDiagnostics *BootDiagnosticsInstanceView `json:"bootDiagnostics,omitempty"` 8901 // Statuses - The resource status information. 8902 Statuses *[]InstanceViewStatus `json:"statuses,omitempty"` 8903 // PlacementGroupID - The placement group in which the VM is running. If the VM is deallocated it will not have a placementGroupId. 8904 PlacementGroupID *string `json:"placementGroupId,omitempty"` 8905} 8906 8907// VirtualMachineScaleSetVMListResult the List Virtual Machine Scale Set VMs operation response. 8908type VirtualMachineScaleSetVMListResult struct { 8909 autorest.Response `json:"-"` 8910 // Value - The list of virtual machine scale sets VMs. 8911 Value *[]VirtualMachineScaleSetVM `json:"value,omitempty"` 8912 // NextLink - The uri to fetch the next page of Virtual Machine Scale Set VMs. Call ListNext() with this to fetch the next page of VMSS VMs 8913 NextLink *string `json:"nextLink,omitempty"` 8914} 8915 8916// VirtualMachineScaleSetVMListResultIterator provides access to a complete listing of VirtualMachineScaleSetVM 8917// values. 8918type VirtualMachineScaleSetVMListResultIterator struct { 8919 i int 8920 page VirtualMachineScaleSetVMListResultPage 8921} 8922 8923// Next advances to the next value. If there was an error making 8924// the request the iterator does not advance and the error is returned. 8925func (iter *VirtualMachineScaleSetVMListResultIterator) Next() error { 8926 iter.i++ 8927 if iter.i < len(iter.page.Values()) { 8928 return nil 8929 } 8930 err := iter.page.Next() 8931 if err != nil { 8932 iter.i-- 8933 return err 8934 } 8935 iter.i = 0 8936 return nil 8937} 8938 8939// NotDone returns true if the enumeration should be started or is not yet complete. 8940func (iter VirtualMachineScaleSetVMListResultIterator) NotDone() bool { 8941 return iter.page.NotDone() && iter.i < len(iter.page.Values()) 8942} 8943 8944// Response returns the raw server response from the last page request. 8945func (iter VirtualMachineScaleSetVMListResultIterator) Response() VirtualMachineScaleSetVMListResult { 8946 return iter.page.Response() 8947} 8948 8949// Value returns the current value or a zero-initialized value if the 8950// iterator has advanced beyond the end of the collection. 8951func (iter VirtualMachineScaleSetVMListResultIterator) Value() VirtualMachineScaleSetVM { 8952 if !iter.page.NotDone() { 8953 return VirtualMachineScaleSetVM{} 8954 } 8955 return iter.page.Values()[iter.i] 8956} 8957 8958// IsEmpty returns true if the ListResult contains no values. 8959func (vmssvlr VirtualMachineScaleSetVMListResult) IsEmpty() bool { 8960 return vmssvlr.Value == nil || len(*vmssvlr.Value) == 0 8961} 8962 8963// virtualMachineScaleSetVMListResultPreparer prepares a request to retrieve the next set of results. 8964// It returns nil if no more results exist. 8965func (vmssvlr VirtualMachineScaleSetVMListResult) virtualMachineScaleSetVMListResultPreparer() (*http.Request, error) { 8966 if vmssvlr.NextLink == nil || len(to.String(vmssvlr.NextLink)) < 1 { 8967 return nil, nil 8968 } 8969 return autorest.Prepare(&http.Request{}, 8970 autorest.AsJSON(), 8971 autorest.AsGet(), 8972 autorest.WithBaseURL(to.String(vmssvlr.NextLink))) 8973} 8974 8975// VirtualMachineScaleSetVMListResultPage contains a page of VirtualMachineScaleSetVM values. 8976type VirtualMachineScaleSetVMListResultPage struct { 8977 fn func(VirtualMachineScaleSetVMListResult) (VirtualMachineScaleSetVMListResult, error) 8978 vmssvlr VirtualMachineScaleSetVMListResult 8979} 8980 8981// Next advances to the next page of values. If there was an error making 8982// the request the page does not advance and the error is returned. 8983func (page *VirtualMachineScaleSetVMListResultPage) Next() error { 8984 next, err := page.fn(page.vmssvlr) 8985 if err != nil { 8986 return err 8987 } 8988 page.vmssvlr = next 8989 return nil 8990} 8991 8992// NotDone returns true if the page enumeration should be started or is not yet complete. 8993func (page VirtualMachineScaleSetVMListResultPage) NotDone() bool { 8994 return !page.vmssvlr.IsEmpty() 8995} 8996 8997// Response returns the raw server response from the last page request. 8998func (page VirtualMachineScaleSetVMListResultPage) Response() VirtualMachineScaleSetVMListResult { 8999 return page.vmssvlr 9000} 9001 9002// Values returns the slice of values for the current page or nil if there are no values. 9003func (page VirtualMachineScaleSetVMListResultPage) Values() []VirtualMachineScaleSetVM { 9004 if page.vmssvlr.IsEmpty() { 9005 return nil 9006 } 9007 return *page.vmssvlr.Value 9008} 9009 9010// VirtualMachineScaleSetVMProfile describes a virtual machine scale set virtual machine profile. 9011type VirtualMachineScaleSetVMProfile struct { 9012 // OsProfile - Specifies the operating system settings for the virtual machines in the scale set. 9013 OsProfile *VirtualMachineScaleSetOSProfile `json:"osProfile,omitempty"` 9014 // StorageProfile - Specifies the storage settings for the virtual machine disks. 9015 StorageProfile *VirtualMachineScaleSetStorageProfile `json:"storageProfile,omitempty"` 9016 // AdditionalCapabilities - Specifies additional capabilities enabled or disabled on the virtual machine in the scale set. For instance: whether the virtual machine has the capability to support attaching managed data disks with UltraSSD_LRS storage account type. 9017 AdditionalCapabilities *AdditionalCapabilities `json:"additionalCapabilities,omitempty"` 9018 // NetworkProfile - Specifies properties of the network interfaces of the virtual machines in the scale set. 9019 NetworkProfile *VirtualMachineScaleSetNetworkProfile `json:"networkProfile,omitempty"` 9020 // DiagnosticsProfile - Specifies the boot diagnostic settings state. <br><br>Minimum api-version: 2015-06-15. 9021 DiagnosticsProfile *DiagnosticsProfile `json:"diagnosticsProfile,omitempty"` 9022 // ExtensionProfile - Specifies a collection of settings for extensions installed on virtual machines in the scale set. 9023 ExtensionProfile *VirtualMachineScaleSetExtensionProfile `json:"extensionProfile,omitempty"` 9024 // 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. <br><br> Possible values are: <br><br> Windows_Client <br><br> Windows_Server <br><br> If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. <br><br> 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) <br><br> Minimum api-version: 2015-06-15 9025 LicenseType *string `json:"licenseType,omitempty"` 9026 // Priority - Specifies the priority for the virtual machines in the scale set. <br><br>Minimum api-version: 2017-10-30-preview. Possible values include: 'Regular', 'Low' 9027 Priority VirtualMachinePriorityTypes `json:"priority,omitempty"` 9028 // EvictionPolicy - Specifies the eviction policy for virtual machines in a low priority scale set. <br><br>Minimum api-version: 2017-10-30-preview. Possible values include: 'Deallocate', 'Delete' 9029 EvictionPolicy VirtualMachineEvictionPolicyTypes `json:"evictionPolicy,omitempty"` 9030} 9031 9032// VirtualMachineScaleSetVMProperties describes the properties of a virtual machine scale set virtual machine. 9033type VirtualMachineScaleSetVMProperties struct { 9034 // LatestModelApplied - Specifies whether the latest model has been applied to the virtual machine. 9035 LatestModelApplied *bool `json:"latestModelApplied,omitempty"` 9036 // VMID - Azure VM unique ID. 9037 VMID *string `json:"vmId,omitempty"` 9038 // InstanceView - The virtual machine instance view. 9039 InstanceView *VirtualMachineScaleSetVMInstanceView `json:"instanceView,omitempty"` 9040 // HardwareProfile - Specifies the hardware settings for the virtual machine. 9041 HardwareProfile *HardwareProfile `json:"hardwareProfile,omitempty"` 9042 // StorageProfile - Specifies the storage settings for the virtual machine disks. 9043 StorageProfile *StorageProfile `json:"storageProfile,omitempty"` 9044 // AdditionalCapabilities - Specifies additional capabilities enabled or disabled on the virtual machine in the scale set. For instance: whether the virtual machine has the capability to support attaching managed data disks with UltraSSD_LRS storage account type. 9045 AdditionalCapabilities *AdditionalCapabilities `json:"additionalCapabilities,omitempty"` 9046 // OsProfile - Specifies the operating system settings for the virtual machine. 9047 OsProfile *OSProfile `json:"osProfile,omitempty"` 9048 // NetworkProfile - Specifies the network interfaces of the virtual machine. 9049 NetworkProfile *NetworkProfile `json:"networkProfile,omitempty"` 9050 // DiagnosticsProfile - Specifies the boot diagnostic settings state. <br><br>Minimum api-version: 2015-06-15. 9051 DiagnosticsProfile *DiagnosticsProfile `json:"diagnosticsProfile,omitempty"` 9052 // 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). <br><br> For more information on Azure planned maintainance, 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) <br><br> Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. 9053 AvailabilitySet *SubResource `json:"availabilitySet,omitempty"` 9054 // ProvisioningState - The provisioning state, which only appears in the response. 9055 ProvisioningState *string `json:"provisioningState,omitempty"` 9056 // 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. <br><br> Possible values are: <br><br> Windows_Client <br><br> Windows_Server <br><br> If this element is included in a request for an update, the value must match the initial value. This value cannot be updated. <br><br> 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) <br><br> Minimum api-version: 2015-06-15 9057 LicenseType *string `json:"licenseType,omitempty"` 9058} 9059 9060// VirtualMachineScaleSetVMsDeallocateFuture an abstraction for monitoring and retrieving the results of a 9061// long-running operation. 9062type VirtualMachineScaleSetVMsDeallocateFuture struct { 9063 azure.Future 9064} 9065 9066// Result returns the result of the asynchronous operation. 9067// If the operation has not completed it will return an error. 9068func (future *VirtualMachineScaleSetVMsDeallocateFuture) Result(client VirtualMachineScaleSetVMsClient) (ar autorest.Response, err error) { 9069 var done bool 9070 done, err = future.Done(client) 9071 if err != nil { 9072 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsDeallocateFuture", "Result", future.Response(), "Polling failure") 9073 return 9074 } 9075 if !done { 9076 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetVMsDeallocateFuture") 9077 return 9078 } 9079 ar.Response = future.Response() 9080 return 9081} 9082 9083// VirtualMachineScaleSetVMsDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 9084// operation. 9085type VirtualMachineScaleSetVMsDeleteFuture struct { 9086 azure.Future 9087} 9088 9089// Result returns the result of the asynchronous operation. 9090// If the operation has not completed it will return an error. 9091func (future *VirtualMachineScaleSetVMsDeleteFuture) Result(client VirtualMachineScaleSetVMsClient) (ar autorest.Response, err error) { 9092 var done bool 9093 done, err = future.Done(client) 9094 if err != nil { 9095 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsDeleteFuture", "Result", future.Response(), "Polling failure") 9096 return 9097 } 9098 if !done { 9099 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetVMsDeleteFuture") 9100 return 9101 } 9102 ar.Response = future.Response() 9103 return 9104} 9105 9106// VirtualMachineScaleSetVMsPerformMaintenanceFuture an abstraction for monitoring and retrieving the results of a 9107// long-running operation. 9108type VirtualMachineScaleSetVMsPerformMaintenanceFuture struct { 9109 azure.Future 9110} 9111 9112// Result returns the result of the asynchronous operation. 9113// If the operation has not completed it will return an error. 9114func (future *VirtualMachineScaleSetVMsPerformMaintenanceFuture) Result(client VirtualMachineScaleSetVMsClient) (ar autorest.Response, err error) { 9115 var done bool 9116 done, err = future.Done(client) 9117 if err != nil { 9118 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsPerformMaintenanceFuture", "Result", future.Response(), "Polling failure") 9119 return 9120 } 9121 if !done { 9122 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetVMsPerformMaintenanceFuture") 9123 return 9124 } 9125 ar.Response = future.Response() 9126 return 9127} 9128 9129// VirtualMachineScaleSetVMsPowerOffFuture an abstraction for monitoring and retrieving the results of a 9130// long-running operation. 9131type VirtualMachineScaleSetVMsPowerOffFuture struct { 9132 azure.Future 9133} 9134 9135// Result returns the result of the asynchronous operation. 9136// If the operation has not completed it will return an error. 9137func (future *VirtualMachineScaleSetVMsPowerOffFuture) Result(client VirtualMachineScaleSetVMsClient) (ar autorest.Response, err error) { 9138 var done bool 9139 done, err = future.Done(client) 9140 if err != nil { 9141 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsPowerOffFuture", "Result", future.Response(), "Polling failure") 9142 return 9143 } 9144 if !done { 9145 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetVMsPowerOffFuture") 9146 return 9147 } 9148 ar.Response = future.Response() 9149 return 9150} 9151 9152// VirtualMachineScaleSetVMsRedeployFuture an abstraction for monitoring and retrieving the results of a 9153// long-running operation. 9154type VirtualMachineScaleSetVMsRedeployFuture struct { 9155 azure.Future 9156} 9157 9158// Result returns the result of the asynchronous operation. 9159// If the operation has not completed it will return an error. 9160func (future *VirtualMachineScaleSetVMsRedeployFuture) Result(client VirtualMachineScaleSetVMsClient) (ar autorest.Response, err error) { 9161 var done bool 9162 done, err = future.Done(client) 9163 if err != nil { 9164 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsRedeployFuture", "Result", future.Response(), "Polling failure") 9165 return 9166 } 9167 if !done { 9168 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetVMsRedeployFuture") 9169 return 9170 } 9171 ar.Response = future.Response() 9172 return 9173} 9174 9175// VirtualMachineScaleSetVMsReimageAllFuture an abstraction for monitoring and retrieving the results of a 9176// long-running operation. 9177type VirtualMachineScaleSetVMsReimageAllFuture struct { 9178 azure.Future 9179} 9180 9181// Result returns the result of the asynchronous operation. 9182// If the operation has not completed it will return an error. 9183func (future *VirtualMachineScaleSetVMsReimageAllFuture) Result(client VirtualMachineScaleSetVMsClient) (ar autorest.Response, err error) { 9184 var done bool 9185 done, err = future.Done(client) 9186 if err != nil { 9187 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsReimageAllFuture", "Result", future.Response(), "Polling failure") 9188 return 9189 } 9190 if !done { 9191 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetVMsReimageAllFuture") 9192 return 9193 } 9194 ar.Response = future.Response() 9195 return 9196} 9197 9198// VirtualMachineScaleSetVMsReimageFuture an abstraction for monitoring and retrieving the results of a 9199// long-running operation. 9200type VirtualMachineScaleSetVMsReimageFuture struct { 9201 azure.Future 9202} 9203 9204// Result returns the result of the asynchronous operation. 9205// If the operation has not completed it will return an error. 9206func (future *VirtualMachineScaleSetVMsReimageFuture) Result(client VirtualMachineScaleSetVMsClient) (ar autorest.Response, err error) { 9207 var done bool 9208 done, err = future.Done(client) 9209 if err != nil { 9210 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsReimageFuture", "Result", future.Response(), "Polling failure") 9211 return 9212 } 9213 if !done { 9214 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetVMsReimageFuture") 9215 return 9216 } 9217 ar.Response = future.Response() 9218 return 9219} 9220 9221// VirtualMachineScaleSetVMsRestartFuture an abstraction for monitoring and retrieving the results of a 9222// long-running operation. 9223type VirtualMachineScaleSetVMsRestartFuture struct { 9224 azure.Future 9225} 9226 9227// Result returns the result of the asynchronous operation. 9228// If the operation has not completed it will return an error. 9229func (future *VirtualMachineScaleSetVMsRestartFuture) Result(client VirtualMachineScaleSetVMsClient) (ar autorest.Response, err error) { 9230 var done bool 9231 done, err = future.Done(client) 9232 if err != nil { 9233 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsRestartFuture", "Result", future.Response(), "Polling failure") 9234 return 9235 } 9236 if !done { 9237 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetVMsRestartFuture") 9238 return 9239 } 9240 ar.Response = future.Response() 9241 return 9242} 9243 9244// VirtualMachineScaleSetVMsRunCommandFuture an abstraction for monitoring and retrieving the results of a 9245// long-running operation. 9246type VirtualMachineScaleSetVMsRunCommandFuture struct { 9247 azure.Future 9248} 9249 9250// Result returns the result of the asynchronous operation. 9251// If the operation has not completed it will return an error. 9252func (future *VirtualMachineScaleSetVMsRunCommandFuture) Result(client VirtualMachineScaleSetVMsClient) (rcr RunCommandResult, err error) { 9253 var done bool 9254 done, err = future.Done(client) 9255 if err != nil { 9256 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsRunCommandFuture", "Result", future.Response(), "Polling failure") 9257 return 9258 } 9259 if !done { 9260 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetVMsRunCommandFuture") 9261 return 9262 } 9263 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 9264 if rcr.Response.Response, err = future.GetResult(sender); err == nil && rcr.Response.Response.StatusCode != http.StatusNoContent { 9265 rcr, err = client.RunCommandResponder(rcr.Response.Response) 9266 if err != nil { 9267 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsRunCommandFuture", "Result", rcr.Response.Response, "Failure responding to request") 9268 } 9269 } 9270 return 9271} 9272 9273// VirtualMachineScaleSetVMsStartFuture an abstraction for monitoring and retrieving the results of a long-running 9274// operation. 9275type VirtualMachineScaleSetVMsStartFuture struct { 9276 azure.Future 9277} 9278 9279// Result returns the result of the asynchronous operation. 9280// If the operation has not completed it will return an error. 9281func (future *VirtualMachineScaleSetVMsStartFuture) Result(client VirtualMachineScaleSetVMsClient) (ar autorest.Response, err error) { 9282 var done bool 9283 done, err = future.Done(client) 9284 if err != nil { 9285 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsStartFuture", "Result", future.Response(), "Polling failure") 9286 return 9287 } 9288 if !done { 9289 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetVMsStartFuture") 9290 return 9291 } 9292 ar.Response = future.Response() 9293 return 9294} 9295 9296// VirtualMachineScaleSetVMsUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 9297// operation. 9298type VirtualMachineScaleSetVMsUpdateFuture struct { 9299 azure.Future 9300} 9301 9302// Result returns the result of the asynchronous operation. 9303// If the operation has not completed it will return an error. 9304func (future *VirtualMachineScaleSetVMsUpdateFuture) Result(client VirtualMachineScaleSetVMsClient) (vmssv VirtualMachineScaleSetVM, err error) { 9305 var done bool 9306 done, err = future.Done(client) 9307 if err != nil { 9308 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsUpdateFuture", "Result", future.Response(), "Polling failure") 9309 return 9310 } 9311 if !done { 9312 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachineScaleSetVMsUpdateFuture") 9313 return 9314 } 9315 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 9316 if vmssv.Response.Response, err = future.GetResult(sender); err == nil && vmssv.Response.Response.StatusCode != http.StatusNoContent { 9317 vmssv, err = client.UpdateResponder(vmssv.Response.Response) 9318 if err != nil { 9319 err = autorest.NewErrorWithError(err, "compute.VirtualMachineScaleSetVMsUpdateFuture", "Result", vmssv.Response.Response, "Failure responding to request") 9320 } 9321 } 9322 return 9323} 9324 9325// VirtualMachinesCaptureFuture an abstraction for monitoring and retrieving the results of a long-running 9326// operation. 9327type VirtualMachinesCaptureFuture struct { 9328 azure.Future 9329} 9330 9331// Result returns the result of the asynchronous operation. 9332// If the operation has not completed it will return an error. 9333func (future *VirtualMachinesCaptureFuture) Result(client VirtualMachinesClient) (vmcr VirtualMachineCaptureResult, err error) { 9334 var done bool 9335 done, err = future.Done(client) 9336 if err != nil { 9337 err = autorest.NewErrorWithError(err, "compute.VirtualMachinesCaptureFuture", "Result", future.Response(), "Polling failure") 9338 return 9339 } 9340 if !done { 9341 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachinesCaptureFuture") 9342 return 9343 } 9344 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 9345 if vmcr.Response.Response, err = future.GetResult(sender); err == nil && vmcr.Response.Response.StatusCode != http.StatusNoContent { 9346 vmcr, err = client.CaptureResponder(vmcr.Response.Response) 9347 if err != nil { 9348 err = autorest.NewErrorWithError(err, "compute.VirtualMachinesCaptureFuture", "Result", vmcr.Response.Response, "Failure responding to request") 9349 } 9350 } 9351 return 9352} 9353 9354// VirtualMachinesConvertToManagedDisksFuture an abstraction for monitoring and retrieving the results of a 9355// long-running operation. 9356type VirtualMachinesConvertToManagedDisksFuture struct { 9357 azure.Future 9358} 9359 9360// Result returns the result of the asynchronous operation. 9361// If the operation has not completed it will return an error. 9362func (future *VirtualMachinesConvertToManagedDisksFuture) Result(client VirtualMachinesClient) (ar autorest.Response, err error) { 9363 var done bool 9364 done, err = future.Done(client) 9365 if err != nil { 9366 err = autorest.NewErrorWithError(err, "compute.VirtualMachinesConvertToManagedDisksFuture", "Result", future.Response(), "Polling failure") 9367 return 9368 } 9369 if !done { 9370 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachinesConvertToManagedDisksFuture") 9371 return 9372 } 9373 ar.Response = future.Response() 9374 return 9375} 9376 9377// VirtualMachinesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 9378// operation. 9379type VirtualMachinesCreateOrUpdateFuture struct { 9380 azure.Future 9381} 9382 9383// Result returns the result of the asynchronous operation. 9384// If the operation has not completed it will return an error. 9385func (future *VirtualMachinesCreateOrUpdateFuture) Result(client VirtualMachinesClient) (VM VirtualMachine, err error) { 9386 var done bool 9387 done, err = future.Done(client) 9388 if err != nil { 9389 err = autorest.NewErrorWithError(err, "compute.VirtualMachinesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") 9390 return 9391 } 9392 if !done { 9393 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachinesCreateOrUpdateFuture") 9394 return 9395 } 9396 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 9397 if VM.Response.Response, err = future.GetResult(sender); err == nil && VM.Response.Response.StatusCode != http.StatusNoContent { 9398 VM, err = client.CreateOrUpdateResponder(VM.Response.Response) 9399 if err != nil { 9400 err = autorest.NewErrorWithError(err, "compute.VirtualMachinesCreateOrUpdateFuture", "Result", VM.Response.Response, "Failure responding to request") 9401 } 9402 } 9403 return 9404} 9405 9406// VirtualMachinesDeallocateFuture an abstraction for monitoring and retrieving the results of a long-running 9407// operation. 9408type VirtualMachinesDeallocateFuture struct { 9409 azure.Future 9410} 9411 9412// Result returns the result of the asynchronous operation. 9413// If the operation has not completed it will return an error. 9414func (future *VirtualMachinesDeallocateFuture) Result(client VirtualMachinesClient) (ar autorest.Response, err error) { 9415 var done bool 9416 done, err = future.Done(client) 9417 if err != nil { 9418 err = autorest.NewErrorWithError(err, "compute.VirtualMachinesDeallocateFuture", "Result", future.Response(), "Polling failure") 9419 return 9420 } 9421 if !done { 9422 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachinesDeallocateFuture") 9423 return 9424 } 9425 ar.Response = future.Response() 9426 return 9427} 9428 9429// VirtualMachinesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running 9430// operation. 9431type VirtualMachinesDeleteFuture struct { 9432 azure.Future 9433} 9434 9435// Result returns the result of the asynchronous operation. 9436// If the operation has not completed it will return an error. 9437func (future *VirtualMachinesDeleteFuture) Result(client VirtualMachinesClient) (ar autorest.Response, err error) { 9438 var done bool 9439 done, err = future.Done(client) 9440 if err != nil { 9441 err = autorest.NewErrorWithError(err, "compute.VirtualMachinesDeleteFuture", "Result", future.Response(), "Polling failure") 9442 return 9443 } 9444 if !done { 9445 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachinesDeleteFuture") 9446 return 9447 } 9448 ar.Response = future.Response() 9449 return 9450} 9451 9452// VirtualMachineSize describes the properties of a VM size. 9453type VirtualMachineSize struct { 9454 // Name - The name of the virtual machine size. 9455 Name *string `json:"name,omitempty"` 9456 // NumberOfCores - The number of cores supported by the virtual machine size. 9457 NumberOfCores *int32 `json:"numberOfCores,omitempty"` 9458 // OsDiskSizeInMB - The OS disk size, in MB, allowed by the virtual machine size. 9459 OsDiskSizeInMB *int32 `json:"osDiskSizeInMB,omitempty"` 9460 // ResourceDiskSizeInMB - The resource disk size, in MB, allowed by the virtual machine size. 9461 ResourceDiskSizeInMB *int32 `json:"resourceDiskSizeInMB,omitempty"` 9462 // MemoryInMB - The amount of memory, in MB, supported by the virtual machine size. 9463 MemoryInMB *int32 `json:"memoryInMB,omitempty"` 9464 // MaxDataDiskCount - The maximum number of data disks that can be attached to the virtual machine size. 9465 MaxDataDiskCount *int32 `json:"maxDataDiskCount,omitempty"` 9466} 9467 9468// VirtualMachineSizeListResult the List Virtual Machine operation response. 9469type VirtualMachineSizeListResult struct { 9470 autorest.Response `json:"-"` 9471 // Value - The list of virtual machine sizes. 9472 Value *[]VirtualMachineSize `json:"value,omitempty"` 9473} 9474 9475// VirtualMachinesPerformMaintenanceFuture an abstraction for monitoring and retrieving the results of a 9476// long-running operation. 9477type VirtualMachinesPerformMaintenanceFuture struct { 9478 azure.Future 9479} 9480 9481// Result returns the result of the asynchronous operation. 9482// If the operation has not completed it will return an error. 9483func (future *VirtualMachinesPerformMaintenanceFuture) Result(client VirtualMachinesClient) (ar autorest.Response, err error) { 9484 var done bool 9485 done, err = future.Done(client) 9486 if err != nil { 9487 err = autorest.NewErrorWithError(err, "compute.VirtualMachinesPerformMaintenanceFuture", "Result", future.Response(), "Polling failure") 9488 return 9489 } 9490 if !done { 9491 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachinesPerformMaintenanceFuture") 9492 return 9493 } 9494 ar.Response = future.Response() 9495 return 9496} 9497 9498// VirtualMachinesPowerOffFuture an abstraction for monitoring and retrieving the results of a long-running 9499// operation. 9500type VirtualMachinesPowerOffFuture struct { 9501 azure.Future 9502} 9503 9504// Result returns the result of the asynchronous operation. 9505// If the operation has not completed it will return an error. 9506func (future *VirtualMachinesPowerOffFuture) Result(client VirtualMachinesClient) (ar autorest.Response, err error) { 9507 var done bool 9508 done, err = future.Done(client) 9509 if err != nil { 9510 err = autorest.NewErrorWithError(err, "compute.VirtualMachinesPowerOffFuture", "Result", future.Response(), "Polling failure") 9511 return 9512 } 9513 if !done { 9514 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachinesPowerOffFuture") 9515 return 9516 } 9517 ar.Response = future.Response() 9518 return 9519} 9520 9521// VirtualMachinesRedeployFuture an abstraction for monitoring and retrieving the results of a long-running 9522// operation. 9523type VirtualMachinesRedeployFuture struct { 9524 azure.Future 9525} 9526 9527// Result returns the result of the asynchronous operation. 9528// If the operation has not completed it will return an error. 9529func (future *VirtualMachinesRedeployFuture) Result(client VirtualMachinesClient) (ar autorest.Response, err error) { 9530 var done bool 9531 done, err = future.Done(client) 9532 if err != nil { 9533 err = autorest.NewErrorWithError(err, "compute.VirtualMachinesRedeployFuture", "Result", future.Response(), "Polling failure") 9534 return 9535 } 9536 if !done { 9537 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachinesRedeployFuture") 9538 return 9539 } 9540 ar.Response = future.Response() 9541 return 9542} 9543 9544// VirtualMachinesRestartFuture an abstraction for monitoring and retrieving the results of a long-running 9545// operation. 9546type VirtualMachinesRestartFuture struct { 9547 azure.Future 9548} 9549 9550// Result returns the result of the asynchronous operation. 9551// If the operation has not completed it will return an error. 9552func (future *VirtualMachinesRestartFuture) Result(client VirtualMachinesClient) (ar autorest.Response, err error) { 9553 var done bool 9554 done, err = future.Done(client) 9555 if err != nil { 9556 err = autorest.NewErrorWithError(err, "compute.VirtualMachinesRestartFuture", "Result", future.Response(), "Polling failure") 9557 return 9558 } 9559 if !done { 9560 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachinesRestartFuture") 9561 return 9562 } 9563 ar.Response = future.Response() 9564 return 9565} 9566 9567// VirtualMachinesRunCommandFuture an abstraction for monitoring and retrieving the results of a long-running 9568// operation. 9569type VirtualMachinesRunCommandFuture struct { 9570 azure.Future 9571} 9572 9573// Result returns the result of the asynchronous operation. 9574// If the operation has not completed it will return an error. 9575func (future *VirtualMachinesRunCommandFuture) Result(client VirtualMachinesClient) (rcr RunCommandResult, err error) { 9576 var done bool 9577 done, err = future.Done(client) 9578 if err != nil { 9579 err = autorest.NewErrorWithError(err, "compute.VirtualMachinesRunCommandFuture", "Result", future.Response(), "Polling failure") 9580 return 9581 } 9582 if !done { 9583 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachinesRunCommandFuture") 9584 return 9585 } 9586 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 9587 if rcr.Response.Response, err = future.GetResult(sender); err == nil && rcr.Response.Response.StatusCode != http.StatusNoContent { 9588 rcr, err = client.RunCommandResponder(rcr.Response.Response) 9589 if err != nil { 9590 err = autorest.NewErrorWithError(err, "compute.VirtualMachinesRunCommandFuture", "Result", rcr.Response.Response, "Failure responding to request") 9591 } 9592 } 9593 return 9594} 9595 9596// VirtualMachinesStartFuture an abstraction for monitoring and retrieving the results of a long-running operation. 9597type VirtualMachinesStartFuture struct { 9598 azure.Future 9599} 9600 9601// Result returns the result of the asynchronous operation. 9602// If the operation has not completed it will return an error. 9603func (future *VirtualMachinesStartFuture) Result(client VirtualMachinesClient) (ar autorest.Response, err error) { 9604 var done bool 9605 done, err = future.Done(client) 9606 if err != nil { 9607 err = autorest.NewErrorWithError(err, "compute.VirtualMachinesStartFuture", "Result", future.Response(), "Polling failure") 9608 return 9609 } 9610 if !done { 9611 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachinesStartFuture") 9612 return 9613 } 9614 ar.Response = future.Response() 9615 return 9616} 9617 9618// VirtualMachineStatusCodeCount the status code and count of the virtual machine scale set instance view status 9619// summary. 9620type VirtualMachineStatusCodeCount struct { 9621 // Code - The instance view status code. 9622 Code *string `json:"code,omitempty"` 9623 // Count - The number of instances having a particular status code. 9624 Count *int32 `json:"count,omitempty"` 9625} 9626 9627// VirtualMachinesUpdateFuture an abstraction for monitoring and retrieving the results of a long-running 9628// operation. 9629type VirtualMachinesUpdateFuture struct { 9630 azure.Future 9631} 9632 9633// Result returns the result of the asynchronous operation. 9634// If the operation has not completed it will return an error. 9635func (future *VirtualMachinesUpdateFuture) Result(client VirtualMachinesClient) (VM VirtualMachine, err error) { 9636 var done bool 9637 done, err = future.Done(client) 9638 if err != nil { 9639 err = autorest.NewErrorWithError(err, "compute.VirtualMachinesUpdateFuture", "Result", future.Response(), "Polling failure") 9640 return 9641 } 9642 if !done { 9643 err = azure.NewAsyncOpIncompleteError("compute.VirtualMachinesUpdateFuture") 9644 return 9645 } 9646 sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) 9647 if VM.Response.Response, err = future.GetResult(sender); err == nil && VM.Response.Response.StatusCode != http.StatusNoContent { 9648 VM, err = client.UpdateResponder(VM.Response.Response) 9649 if err != nil { 9650 err = autorest.NewErrorWithError(err, "compute.VirtualMachinesUpdateFuture", "Result", VM.Response.Response, "Failure responding to request") 9651 } 9652 } 9653 return 9654} 9655 9656// VirtualMachineUpdate describes a Virtual Machine Update. 9657type VirtualMachineUpdate struct { 9658 // 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 ->**. Enter any required information and then click **Save**. 9659 Plan *Plan `json:"plan,omitempty"` 9660 *VirtualMachineProperties `json:"properties,omitempty"` 9661 // Identity - The identity of the virtual machine, if configured. 9662 Identity *VirtualMachineIdentity `json:"identity,omitempty"` 9663 // Zones - The virtual machine zones. 9664 Zones *[]string `json:"zones,omitempty"` 9665 // Tags - Resource tags 9666 Tags map[string]*string `json:"tags"` 9667} 9668 9669// MarshalJSON is the custom marshaler for VirtualMachineUpdate. 9670func (vmu VirtualMachineUpdate) MarshalJSON() ([]byte, error) { 9671 objectMap := make(map[string]interface{}) 9672 if vmu.Plan != nil { 9673 objectMap["plan"] = vmu.Plan 9674 } 9675 if vmu.VirtualMachineProperties != nil { 9676 objectMap["properties"] = vmu.VirtualMachineProperties 9677 } 9678 if vmu.Identity != nil { 9679 objectMap["identity"] = vmu.Identity 9680 } 9681 if vmu.Zones != nil { 9682 objectMap["zones"] = vmu.Zones 9683 } 9684 if vmu.Tags != nil { 9685 objectMap["tags"] = vmu.Tags 9686 } 9687 return json.Marshal(objectMap) 9688} 9689 9690// UnmarshalJSON is the custom unmarshaler for VirtualMachineUpdate struct. 9691func (vmu *VirtualMachineUpdate) UnmarshalJSON(body []byte) error { 9692 var m map[string]*json.RawMessage 9693 err := json.Unmarshal(body, &m) 9694 if err != nil { 9695 return err 9696 } 9697 for k, v := range m { 9698 switch k { 9699 case "plan": 9700 if v != nil { 9701 var plan Plan 9702 err = json.Unmarshal(*v, &plan) 9703 if err != nil { 9704 return err 9705 } 9706 vmu.Plan = &plan 9707 } 9708 case "properties": 9709 if v != nil { 9710 var virtualMachineProperties VirtualMachineProperties 9711 err = json.Unmarshal(*v, &virtualMachineProperties) 9712 if err != nil { 9713 return err 9714 } 9715 vmu.VirtualMachineProperties = &virtualMachineProperties 9716 } 9717 case "identity": 9718 if v != nil { 9719 var identity VirtualMachineIdentity 9720 err = json.Unmarshal(*v, &identity) 9721 if err != nil { 9722 return err 9723 } 9724 vmu.Identity = &identity 9725 } 9726 case "zones": 9727 if v != nil { 9728 var zones []string 9729 err = json.Unmarshal(*v, &zones) 9730 if err != nil { 9731 return err 9732 } 9733 vmu.Zones = &zones 9734 } 9735 case "tags": 9736 if v != nil { 9737 var tags map[string]*string 9738 err = json.Unmarshal(*v, &tags) 9739 if err != nil { 9740 return err 9741 } 9742 vmu.Tags = tags 9743 } 9744 } 9745 } 9746 9747 return nil 9748} 9749 9750// WindowsConfiguration specifies Windows operating system settings on the virtual machine. 9751type WindowsConfiguration struct { 9752 // ProvisionVMAgent - Indicates whether virtual machine agent should be provisioned on the virtual machine. <br><br> 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. 9753 ProvisionVMAgent *bool `json:"provisionVMAgent,omitempty"` 9754 // EnableAutomaticUpdates - Indicates whether virtual machine is enabled for automatic updates. 9755 EnableAutomaticUpdates *bool `json:"enableAutomaticUpdates,omitempty"` 9756 // TimeZone - Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time" 9757 TimeZone *string `json:"timeZone,omitempty"` 9758 // AdditionalUnattendContent - Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup. 9759 AdditionalUnattendContent *[]AdditionalUnattendContent `json:"additionalUnattendContent,omitempty"` 9760 // WinRM - Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell. 9761 WinRM *WinRMConfiguration `json:"winRM,omitempty"` 9762} 9763 9764// WinRMConfiguration describes Windows Remote Management configuration of the VM 9765type WinRMConfiguration struct { 9766 // Listeners - The list of Windows Remote Management listeners 9767 Listeners *[]WinRMListener `json:"listeners,omitempty"` 9768} 9769 9770// WinRMListener describes Protocol and thumbprint of Windows Remote Management listener 9771type WinRMListener struct { 9772 // Protocol - Specifies the protocol of listener. <br><br> Possible values are: <br>**http** <br><br> **https**. Possible values include: 'HTTP', 'HTTPS' 9773 Protocol ProtocolTypes `json:"protocol,omitempty"` 9774 // CertificateURL - 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: <br><br> {<br> "data":"<Base64-encoded-certificate>",<br> "dataType":"pfx",<br> "password":"<pfx-file-password>"<br>} 9775 CertificateURL *string `json:"certificateUrl,omitempty"` 9776} 9777