1// +build go1.13 2 3// Copyright (c) Microsoft Corporation. All rights reserved. 4// Licensed under the MIT License. See License.txt in the project root for license information. 5// Code generated by Microsoft (R) AutoRest Code Generator. 6// Changes may cause incorrect behavior and will be lost if the code is regenerated. 7 8package armcompute 9 10import ( 11 "context" 12 "encoding/json" 13 "fmt" 14 "net/http" 15 "time" 16) 17 18// The API entity reference. 19type APIEntityReference struct { 20 // The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/… 21 ID *string `json:"id,omitempty"` 22} 23 24// Api error. 25type APIError struct { 26 // The error code. 27 Code *string `json:"code,omitempty"` 28 29 // The Api error details 30 Details *[]APIErrorBase `json:"details,omitempty"` 31 32 // The Api inner error 33 Innererror *InnerError `json:"innererror,omitempty"` 34 35 // The error message. 36 Message *string `json:"message,omitempty"` 37 38 // The target of the particular error. 39 Target *string `json:"target,omitempty"` 40} 41 42// Api error base. 43type APIErrorBase struct { 44 // The error code. 45 Code *string `json:"code,omitempty"` 46 47 // The error message. 48 Message *string `json:"message,omitempty"` 49 50 // The target of the particular error. 51 Target *string `json:"target,omitempty"` 52} 53 54// A disk access SAS uri. 55type AccessURI struct { 56 // READ-ONLY; A SAS uri for accessing a disk. 57 AccessSas *string `json:"accessSAS,omitempty" azure:"ro"` 58} 59 60// AccessURIPollerResponse is the response envelope for operations that asynchronously return a AccessURI type. 61type AccessURIPollerResponse struct { 62 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 63 PollUntilDone func(ctx context.Context, frequency time.Duration) (AccessURIResponse, error) 64 65 // Poller contains an initialized poller. 66 Poller AccessURIPoller 67 68 // RawResponse contains the underlying HTTP response. 69 RawResponse *http.Response 70} 71 72// AccessURIResponse is the response envelope for operations that return a AccessURI type. 73type AccessURIResponse struct { 74 // A disk access SAS uri. 75 AccessURI *AccessURI 76 77 // RawResponse contains the underlying HTTP response. 78 RawResponse *http.Response 79} 80 81// Enables or disables a capability on the virtual machine or virtual machine scale set. 82type AdditionalCapabilities struct { 83 // The flag that enables or disables a capability to have one or more managed data disks with UltraSSDLRS storage account type on the VM or VMSS. Managed 84 // disks with storage account type UltraSSDLRS can 85 // be added to a virtual machine or virtual machine scale set only if this property is enabled. 86 UltraSsdEnabled *bool `json:"ultraSSDEnabled,omitempty"` 87} 88 89// Specifies additional XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup. Contents are defined by 90// setting name, component name, and the pass in 91// which the content is applied. 92type AdditionalUnattendContent struct { 93 // The component name. Currently, the only allowable value is Microsoft-Windows-Shell-Setup. 94 ComponentName *string `json:"componentName,omitempty"` 95 96 // 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 97 // include the root element for the setting or 98 // feature that is being inserted. 99 Content *string `json:"content,omitempty"` 100 101 // The pass name. Currently, the only allowable value is OobeSystem. 102 PassName *string `json:"passName,omitempty"` 103 104 // Specifies the name of the setting to which the content applies. Possible values are: FirstLogonCommands and AutoLogon. 105 SettingName *SettingNames `json:"settingName,omitempty"` 106} 107 108// The configuration parameters used for performing automatic OS upgrade. 109type AutomaticOSUpgradePolicy struct { 110 // Whether OS image rollback feature should be disabled. Default value is false. 111 DisableAutomaticRollback *bool `json:"disableAutomaticRollback,omitempty"` 112 113 // Indicates whether OS upgrades should automatically be applied to scale set instances in a rolling fashion when a newer version of the OS image becomes 114 // available. Default value is false. 115 // If this is set to true for Windows based scale sets, enableAutomaticUpdates 116 // [https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet] is automatically 117 // set to false and cannot be set to true. 118 EnableAutomaticOSUpgrade *bool `json:"enableAutomaticOSUpgrade,omitempty"` 119} 120 121// Describes automatic OS upgrade properties on the image. 122type AutomaticOSUpgradeProperties struct { 123 // Specifies whether automatic OS upgrade is supported on the image. 124 AutomaticOSUpgradeSupported *bool `json:"automaticOSUpgradeSupported,omitempty"` 125} 126 127// Specifies the configuration parameters for automatic repairs on the virtual machine scale set. 128type AutomaticRepairsPolicy struct { 129 // Specifies whether automatic repairs should be enabled on the virtual machine scale set. The default value is false. 130 Enabled *bool `json:"enabled,omitempty"` 131 132 // The amount of time for which automatic repairs are suspended due to a state change on VM. The grace time starts after the state change has completed. 133 // This helps avoid premature or accidental repairs. 134 // The time duration should be specified in ISO 8601 format. The minimum allowed grace period is 30 minutes (PT30M), which is also the default value. The 135 // maximum allowed grace period is 90 minutes 136 // (PT90M). 137 GracePeriod *string `json:"gracePeriod,omitempty"` 138} 139 140// Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability 141// set are allocated to different nodes to maximize 142// availability. For more information about availability sets, see Manage the availability of virtual machines 143// [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json]. 144// For more information on Azure planned maintenance, see Planned maintenance for virtual machines in Azure 145// [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json] 146// Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. 147type AvailabilitySet struct { 148 Resource 149 // The instance view of a resource. 150 Properties *AvailabilitySetProperties `json:"properties,omitempty"` 151 152 // Sku of the availability set, only name is required to be set. See AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines 153 // with managed disks and 'Classic' for virtual 154 // machines with unmanaged disks. Default value is 'Classic'. 155 SKU *SKU `json:"sku,omitempty"` 156} 157 158// The List Availability Set operation response. 159type AvailabilitySetListResult struct { 160 // The URI to fetch the next page of AvailabilitySets. Call ListNext() with this URI to fetch the next page of AvailabilitySets. 161 NextLink *string `json:"nextLink,omitempty"` 162 163 // The list of availability sets 164 Value *[]AvailabilitySet `json:"value,omitempty"` 165} 166 167// AvailabilitySetListResultResponse is the response envelope for operations that return a AvailabilitySetListResult type. 168type AvailabilitySetListResultResponse struct { 169 // The List Availability Set operation response. 170 AvailabilitySetListResult *AvailabilitySetListResult 171 172 // RawResponse contains the underlying HTTP response. 173 RawResponse *http.Response 174} 175 176// The instance view of a resource. 177type AvailabilitySetProperties struct { 178 // Fault Domain count. 179 PlatformFaultDomainCount *int32 `json:"platformFaultDomainCount,omitempty"` 180 181 // Update Domain count. 182 PlatformUpdateDomainCount *int32 `json:"platformUpdateDomainCount,omitempty"` 183 184 // Specifies information about the proximity placement group that the availability set should be assigned to. 185 // Minimum api-version: 2018-04-01. 186 ProximityPlacementGroup *SubResource `json:"proximityPlacementGroup,omitempty"` 187 188 // READ-ONLY; The resource status information. 189 Statuses *[]InstanceViewStatus `json:"statuses,omitempty" azure:"ro"` 190 191 // A list of references to all virtual machines in the availability set. 192 VirtualMachines *[]SubResource `json:"virtualMachines,omitempty"` 193} 194 195// AvailabilitySetResponse is the response envelope for operations that return a AvailabilitySet type. 196type AvailabilitySetResponse struct { 197 // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability 198 // set are allocated to different nodes to maximize availability. For more information about availability sets, see [Manage the availability of virtual 199 // machines](https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json). 200 // <br><br> For more information on Azure planned maintenance, 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) 201 // <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. 202 AvailabilitySet *AvailabilitySet 203 204 // RawResponse contains the underlying HTTP response. 205 RawResponse *http.Response 206} 207 208// Specifies information about the availability set that the virtual machine should be assigned to. Only tags may be updated. 209type AvailabilitySetUpdate struct { 210 UpdateResource 211 // The instance view of a resource. 212 Properties *AvailabilitySetProperties `json:"properties,omitempty"` 213 214 // Sku of the availability set 215 SKU *SKU `json:"sku,omitempty"` 216} 217 218// AvailabilitySetsCreateOrUpdateOptions contains the optional parameters for the AvailabilitySets.CreateOrUpdate method. 219type AvailabilitySetsCreateOrUpdateOptions struct { 220 // placeholder for future optional parameters 221} 222 223// AvailabilitySetsDeleteOptions contains the optional parameters for the AvailabilitySets.Delete method. 224type AvailabilitySetsDeleteOptions struct { 225 // placeholder for future optional parameters 226} 227 228// AvailabilitySetsGetOptions contains the optional parameters for the AvailabilitySets.Get method. 229type AvailabilitySetsGetOptions struct { 230 // placeholder for future optional parameters 231} 232 233// AvailabilitySetsListAvailableSizesOptions contains the optional parameters for the AvailabilitySets.ListAvailableSizes method. 234type AvailabilitySetsListAvailableSizesOptions struct { 235 // placeholder for future optional parameters 236} 237 238// AvailabilitySetsListBySubscriptionOptions contains the optional parameters for the AvailabilitySets.ListBySubscription method. 239type AvailabilitySetsListBySubscriptionOptions struct { 240 // The expand expression to apply to the operation. Allowed values are 'instanceView'. 241 Expand *string 242} 243 244// AvailabilitySetsListOptions contains the optional parameters for the AvailabilitySets.List method. 245type AvailabilitySetsListOptions struct { 246 // placeholder for future optional parameters 247} 248 249// AvailabilitySetsUpdateOptions contains the optional parameters for the AvailabilitySets.Update method. 250type AvailabilitySetsUpdateOptions struct { 251 // placeholder for future optional parameters 252} 253 254// Describes the properties of an virtual machine instance view for available patch summary. 255type AvailablePatchSummary struct { 256 // READ-ONLY; The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs. 257 AssessmentActivityID *string `json:"assessmentActivityId,omitempty" azure:"ro"` 258 259 // READ-ONLY; The number of critical or security patches that have been detected as available and not yet installed. 260 CriticalAndSecurityPatchCount *int32 `json:"criticalAndSecurityPatchCount,omitempty" azure:"ro"` 261 262 // READ-ONLY; The errors that were encountered during execution of the operation. The details array contains the list of them. 263 Error *APIError `json:"error,omitempty" azure:"ro"` 264 265 // READ-ONLY; The UTC timestamp when the operation began. 266 LastModifiedTime *time.Time `json:"lastModifiedTime,omitempty" azure:"ro"` 267 268 // READ-ONLY; The number of all available patches excluding critical and security. 269 OtherPatchCount *int32 `json:"otherPatchCount,omitempty" azure:"ro"` 270 271 // READ-ONLY; The overall reboot status of the VM. It will be true when partially installed patches require a reboot to complete installation but the reboot 272 // has not yet occurred. 273 RebootPending *bool `json:"rebootPending,omitempty" azure:"ro"` 274 275 // READ-ONLY; The UTC timestamp when the operation began. 276 StartTime *time.Time `json:"startTime,omitempty" azure:"ro"` 277 278 // READ-ONLY; The overall success or failure status of the operation. It remains "InProgress" until the operation completes. At that point it will become 279 // "Failed", "Succeeded", or "CompletedWithWarnings." 280 Status *PatchOperationStatus `json:"status,omitempty" azure:"ro"` 281} 282 283// MarshalJSON implements the json.Marshaller interface for type AvailablePatchSummary. 284func (a AvailablePatchSummary) MarshalJSON() ([]byte, error) { 285 objectMap := make(map[string]interface{}) 286 if a.AssessmentActivityID != nil { 287 objectMap["assessmentActivityId"] = a.AssessmentActivityID 288 } 289 if a.CriticalAndSecurityPatchCount != nil { 290 objectMap["criticalAndSecurityPatchCount"] = a.CriticalAndSecurityPatchCount 291 } 292 if a.Error != nil { 293 objectMap["error"] = a.Error 294 } 295 if a.LastModifiedTime != nil { 296 objectMap["lastModifiedTime"] = (*timeRFC3339)(a.LastModifiedTime) 297 } 298 if a.OtherPatchCount != nil { 299 objectMap["otherPatchCount"] = a.OtherPatchCount 300 } 301 if a.RebootPending != nil { 302 objectMap["rebootPending"] = a.RebootPending 303 } 304 if a.StartTime != nil { 305 objectMap["startTime"] = (*timeRFC3339)(a.StartTime) 306 } 307 if a.Status != nil { 308 objectMap["status"] = a.Status 309 } 310 return json.Marshal(objectMap) 311} 312 313// UnmarshalJSON implements the json.Unmarshaller interface for type AvailablePatchSummary. 314func (a *AvailablePatchSummary) UnmarshalJSON(data []byte) error { 315 var rawMsg map[string]*json.RawMessage 316 if err := json.Unmarshal(data, &rawMsg); err != nil { 317 return err 318 } 319 for key, val := range rawMsg { 320 var err error 321 switch key { 322 case "assessmentActivityId": 323 if val != nil { 324 err = json.Unmarshal(*val, &a.AssessmentActivityID) 325 } 326 delete(rawMsg, key) 327 case "criticalAndSecurityPatchCount": 328 if val != nil { 329 err = json.Unmarshal(*val, &a.CriticalAndSecurityPatchCount) 330 } 331 delete(rawMsg, key) 332 case "error": 333 if val != nil { 334 err = json.Unmarshal(*val, &a.Error) 335 } 336 delete(rawMsg, key) 337 case "lastModifiedTime": 338 if val != nil { 339 var aux timeRFC3339 340 err = json.Unmarshal(*val, &aux) 341 a.LastModifiedTime = (*time.Time)(&aux) 342 } 343 delete(rawMsg, key) 344 case "otherPatchCount": 345 if val != nil { 346 err = json.Unmarshal(*val, &a.OtherPatchCount) 347 } 348 delete(rawMsg, key) 349 case "rebootPending": 350 if val != nil { 351 err = json.Unmarshal(*val, &a.RebootPending) 352 } 353 delete(rawMsg, key) 354 case "startTime": 355 if val != nil { 356 var aux timeRFC3339 357 err = json.Unmarshal(*val, &aux) 358 a.StartTime = (*time.Time)(&aux) 359 } 360 delete(rawMsg, key) 361 case "status": 362 if val != nil { 363 err = json.Unmarshal(*val, &a.Status) 364 } 365 delete(rawMsg, key) 366 } 367 if err != nil { 368 return err 369 } 370 } 371 return nil 372} 373 374// Specifies the billing related details of a Azure Spot VM or VMSS. 375// Minimum api-version: 2019-03-01. 376type BillingProfile struct { 377 // Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. This price is in US Dollars. 378 // This price will be compared with the current Azure Spot price for the VM size. Also, the prices are compared at the time of create/update of Azure Spot 379 // VM/VMSS and the operation will only succeed if 380 // the maxPrice is greater than the current Azure Spot price. 381 // The maxPrice will also be used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice after creation of VM/VMSS. 382 // Possible values are: 383 // - Any decimal value greater than zero. Example: 0.01538 384 // -1 – indicates default price to be up-to on-demand. 385 // You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS should not be evicted for price reasons. Also, the default max price is -1 if 386 // it is not provided by you. 387 // Minimum api-version: 2019-03-01. 388 MaxPrice *float64 `json:"maxPrice,omitempty"` 389} 390 391// Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. 392// You can easily view the output of your console log. 393// Azure also enables you to see a screenshot of the VM from the hypervisor. 394type BootDiagnostics struct { 395 // Whether boot diagnostics should be enabled on the Virtual Machine. 396 Enabled *bool `json:"enabled,omitempty"` 397 398 // Uri of the storage account to use for placing the console output and screenshot. 399 // If storageUri is not specified while enabling boot diagnostics, managed storage will be used. 400 StorageURI *string `json:"storageUri,omitempty"` 401} 402 403// The instance view of a virtual machine boot diagnostics. 404type BootDiagnosticsInstanceView struct { 405 // READ-ONLY; The console screenshot blob URI. 406 // NOTE: This will not be set if boot diagnostics is currently enabled with managed storage. 407 ConsoleScreenshotBlobURI *string `json:"consoleScreenshotBlobUri,omitempty" azure:"ro"` 408 409 // READ-ONLY; The serial console log blob Uri. 410 // NOTE: This will not be set if boot diagnostics is currently enabled with managed storage. 411 SerialConsoleLogBlobURI *string `json:"serialConsoleLogBlobUri,omitempty" azure:"ro"` 412 413 // READ-ONLY; The boot diagnostics status information for the VM. 414 // NOTE: It will be set only if there are errors encountered in enabling boot diagnostics. 415 Status *InstanceViewStatus `json:"status,omitempty" azure:"ro"` 416} 417 418// An error response from the Compute service. 419type CloudError struct { 420 // Api error. 421 InnerError *APIError `json:"error,omitempty"` 422} 423 424// Error implements the error interface for type CloudError. 425func (e CloudError) Error() string { 426 msg := "" 427 if e.InnerError != nil { 428 msg += "InnerError: \n" 429 if e.InnerError.Details != nil { 430 msg += fmt.Sprintf("\tDetails: %v\n", *e.InnerError.Details) 431 } 432 if e.InnerError.Innererror != nil { 433 msg += fmt.Sprintf("\tInnererror: %v\n", *e.InnerError.Innererror) 434 } 435 if e.InnerError.Code != nil { 436 msg += fmt.Sprintf("\tCode: %v\n", *e.InnerError.Code) 437 } 438 if e.InnerError.Target != nil { 439 msg += fmt.Sprintf("\tTarget: %v\n", *e.InnerError.Target) 440 } 441 if e.InnerError.Message != nil { 442 msg += fmt.Sprintf("\tMessage: %v\n", *e.InnerError.Message) 443 } 444 } 445 if msg == "" { 446 msg = "missing error info" 447 } 448 return msg 449} 450 451// The List Compute Operation operation response. 452type ComputeOperationListResult struct { 453 // READ-ONLY; The list of compute operations 454 Value *[]ComputeOperationValue `json:"value,omitempty" azure:"ro"` 455} 456 457// ComputeOperationListResultResponse is the response envelope for operations that return a ComputeOperationListResult type. 458type ComputeOperationListResultResponse struct { 459 // The List Compute Operation operation response. 460 ComputeOperationListResult *ComputeOperationListResult 461 462 // RawResponse contains the underlying HTTP response. 463 RawResponse *http.Response 464} 465 466// Describes the properties of a Compute Operation value. 467type ComputeOperationValue struct { 468 // Describes the properties of a Compute Operation Value Display. 469 Display *ComputeOperationValueDisplay `json:"display,omitempty"` 470 471 // READ-ONLY; The name of the compute operation. 472 Name *string `json:"name,omitempty" azure:"ro"` 473 474 // READ-ONLY; The origin of the compute operation. 475 Origin *string `json:"origin,omitempty" azure:"ro"` 476} 477 478// Describes the properties of a Compute Operation Value Display. 479type ComputeOperationValueDisplay struct { 480 // READ-ONLY; The description of the operation. 481 Description *string `json:"description,omitempty" azure:"ro"` 482 483 // READ-ONLY; The display name of the compute operation. 484 Operation *string `json:"operation,omitempty" azure:"ro"` 485 486 // READ-ONLY; The resource provider for the operation. 487 Provider *string `json:"provider,omitempty" azure:"ro"` 488 489 // READ-ONLY; The display name of the resource the operation applies to. 490 Resource *string `json:"resource,omitempty" azure:"ro"` 491} 492 493// Container service. 494type ContainerService struct { 495 Resource 496 // Properties of the container service. 497 Properties *ContainerServiceProperties `json:"properties,omitempty"` 498} 499 500// Profile for the container service agent pool. 501type ContainerServiceAgentPoolProfile struct { 502 // 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. 503 Count *int32 `json:"count,omitempty"` 504 505 // DNS prefix to be used to create the FQDN for the agent pool. 506 DNSPrefix *string `json:"dnsPrefix,omitempty"` 507 508 // READ-ONLY; FQDN for the agent pool. 509 Fqdn *string `json:"fqdn,omitempty" azure:"ro"` 510 511 // Unique name of the agent pool profile in the context of the subscription and resource group. 512 Name *string `json:"name,omitempty"` 513 514 // Size of agent VMs. 515 VMSize *ContainerServiceVMSizeTypes `json:"vmSize,omitempty"` 516} 517 518// Properties to configure a custom container service cluster. 519type ContainerServiceCustomProfile struct { 520 // The name of the custom orchestrator to use. 521 Orchestrator *string `json:"orchestrator,omitempty"` 522} 523 524type ContainerServiceDiagnosticsProfile struct { 525 // Profile for the container service VM diagnostic agent. 526 VMDiagnostics *ContainerServiceVMDiagnostics `json:"vmDiagnostics,omitempty"` 527} 528 529// Profile for Linux VMs in the container service cluster. 530type ContainerServiceLinuxProfile struct { 531 // The administrator username to use for Linux VMs. 532 AdminUsername *string `json:"adminUsername,omitempty"` 533 534 // The ssh key configuration for Linux VMs. 535 SSH *ContainerServiceSSHConfiguration `json:"ssh,omitempty"` 536} 537 538// The response from the List Container Services operation. 539type ContainerServiceListResult struct { 540 // The URL to get the next set of container service results. 541 NextLink *string `json:"nextLink,omitempty"` 542 543 // the list of container services. 544 Value *[]ContainerService `json:"value,omitempty"` 545} 546 547// ContainerServiceListResultResponse is the response envelope for operations that return a ContainerServiceListResult type. 548type ContainerServiceListResultResponse struct { 549 // The response from the List Container Services operation. 550 ContainerServiceListResult *ContainerServiceListResult 551 552 // RawResponse contains the underlying HTTP response. 553 RawResponse *http.Response 554} 555 556// Profile for the container service master. 557type ContainerServiceMasterProfile struct { 558 // Number of masters (VMs) in the container service cluster. Allowed values are 1, 3, and 5. The default value is 1. 559 Count *Enum48 `json:"count,omitempty"` 560 561 // DNS prefix to be used to create the FQDN for master. 562 DNSPrefix *string `json:"dnsPrefix,omitempty"` 563 564 // READ-ONLY; FQDN for the master. 565 Fqdn *string `json:"fqdn,omitempty" azure:"ro"` 566} 567 568// Profile for the container service orchestrator. 569type ContainerServiceOrchestratorProfile struct { 570 // The orchestrator to use to manage container service cluster resources. Valid values are Swarm, DCOS, and Custom. 571 OrchestratorType *ContainerServiceOrchestratorTypes `json:"orchestratorType,omitempty"` 572} 573 574// ContainerServicePollerResponse is the response envelope for operations that asynchronously return a ContainerService type. 575type ContainerServicePollerResponse struct { 576 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 577 PollUntilDone func(ctx context.Context, frequency time.Duration) (ContainerServiceResponse, error) 578 579 // Poller contains an initialized poller. 580 Poller ContainerServicePoller 581 582 // RawResponse contains the underlying HTTP response. 583 RawResponse *http.Response 584} 585 586// Information about a service principal identity for the cluster to use for manipulating Azure APIs. 587type ContainerServicePrincipalProfile struct { 588 // The ID for the service principal. 589 ClientID *string `json:"clientId,omitempty"` 590 591 // The secret password associated with the service principal. 592 Secret *string `json:"secret,omitempty"` 593} 594 595// Properties of the container service. 596type ContainerServiceProperties struct { 597 // Properties of the agent pool. 598 AgentPoolProfiles *[]ContainerServiceAgentPoolProfile `json:"agentPoolProfiles,omitempty"` 599 600 // Properties for custom clusters. 601 CustomProfile *ContainerServiceCustomProfile `json:"customProfile,omitempty"` 602 603 // Properties of the diagnostic agent. 604 DiagnosticsProfile *ContainerServiceDiagnosticsProfile `json:"diagnosticsProfile,omitempty"` 605 606 // Properties of Linux VMs. 607 LinuxProfile *ContainerServiceLinuxProfile `json:"linuxProfile,omitempty"` 608 609 // Properties of master agents. 610 MasterProfile *ContainerServiceMasterProfile `json:"masterProfile,omitempty"` 611 612 // Properties of the orchestrator. 613 OrchestratorProfile *ContainerServiceOrchestratorProfile `json:"orchestratorProfile,omitempty"` 614 615 // READ-ONLY; the current deployment or provisioning state, which only appears in the response. 616 ProvisioningState *string `json:"provisioningState,omitempty" azure:"ro"` 617 618 // Properties for cluster service principals. 619 ServicePrincipalProfile *ContainerServicePrincipalProfile `json:"servicePrincipalProfile,omitempty"` 620 621 // Properties of Windows VMs. 622 WindowsProfile *ContainerServiceWindowsProfile `json:"windowsProfile,omitempty"` 623} 624 625// ContainerServiceResponse is the response envelope for operations that return a ContainerService type. 626type ContainerServiceResponse struct { 627 // Container service. 628 ContainerService *ContainerService 629 630 // RawResponse contains the underlying HTTP response. 631 RawResponse *http.Response 632} 633 634// SSH configuration for Linux-based VMs running on Azure. 635type ContainerServiceSSHConfiguration struct { 636 // the list of SSH public keys used to authenticate with Linux-based VMs. 637 PublicKeys *[]ContainerServiceSSHPublicKey `json:"publicKeys,omitempty"` 638} 639 640// Contains information about SSH certificate public key data. 641type ContainerServiceSSHPublicKey struct { 642 // Certificate public key used to authenticate with VMs through SSH. The certificate must be in PEM format with or without headers. 643 KeyData *string `json:"keyData,omitempty"` 644} 645 646// Profile for diagnostics on the container service VMs. 647type ContainerServiceVMDiagnostics struct { 648 // Whether the VM diagnostic agent is provisioned on the VM. 649 Enabled *bool `json:"enabled,omitempty"` 650 651 // READ-ONLY; The URI of the storage account where diagnostics are stored. 652 StorageURI *string `json:"storageUri,omitempty" azure:"ro"` 653} 654 655// Profile for Windows VMs in the container service cluster. 656type ContainerServiceWindowsProfile struct { 657 // The administrator password to use for Windows VMs. 658 AdminPassword *string `json:"adminPassword,omitempty"` 659 660 // The administrator username to use for Windows VMs. 661 AdminUsername *string `json:"adminUsername,omitempty"` 662} 663 664// ContainerServicesBeginCreateOrUpdateOptions contains the optional parameters for the ContainerServices.BeginCreateOrUpdate method. 665type ContainerServicesBeginCreateOrUpdateOptions struct { 666 // placeholder for future optional parameters 667} 668 669// ContainerServicesBeginDeleteOptions contains the optional parameters for the ContainerServices.BeginDelete method. 670type ContainerServicesBeginDeleteOptions struct { 671 // placeholder for future optional parameters 672} 673 674// ContainerServicesGetOptions contains the optional parameters for the ContainerServices.Get method. 675type ContainerServicesGetOptions struct { 676 // placeholder for future optional parameters 677} 678 679// ContainerServicesListByResourceGroupOptions contains the optional parameters for the ContainerServices.ListByResourceGroup method. 680type ContainerServicesListByResourceGroupOptions struct { 681 // placeholder for future optional parameters 682} 683 684// ContainerServicesListOptions contains the optional parameters for the ContainerServices.List method. 685type ContainerServicesListOptions struct { 686 // placeholder for future optional parameters 687} 688 689// Data used when creating a disk. 690type CreationData struct { 691 // This enumerates the possible sources of a disk's creation. 692 CreateOption *DiskCreateOption `json:"createOption,omitempty"` 693 694 // Required if creating from a Gallery Image. The id of the ImageDiskReference will be the ARM id of the shared galley image version from which to create 695 // a disk. 696 GalleryImageReference *ImageDiskReference `json:"galleryImageReference,omitempty"` 697 698 // Disk source information. 699 ImageReference *ImageDiskReference `json:"imageReference,omitempty"` 700 701 // Logical sector size in bytes for Ultra disks. Supported values are 512 ad 4096. 4096 is the default. 702 LogicalSectorSize *int32 `json:"logicalSectorSize,omitempty"` 703 704 // If createOption is Copy, this is the ARM id of the source snapshot or disk. 705 SourceResourceID *string `json:"sourceResourceId,omitempty"` 706 707 // If createOption is Import, this is the URI of a blob to be imported into a managed disk. 708 SourceURI *string `json:"sourceUri,omitempty"` 709 710 // READ-ONLY; If this field is set, this is the unique id identifying the source of this resource. 711 SourceUniqueID *string `json:"sourceUniqueId,omitempty" azure:"ro"` 712 713 // Required if createOption is Import. The Azure Resource Manager identifier of the storage account containing the blob to import as a disk. 714 StorageAccountID *string `json:"storageAccountId,omitempty"` 715 716 // If createOption is Upload, this is the size of the contents of the upload including the VHD footer. This value should be between 20972032 (20 MiB + 512 717 // bytes for the VHD footer) and 35183298347520 718 // bytes (32 TiB + 512 bytes for the VHD footer). 719 UploadSizeBytes *int64 `json:"uploadSizeBytes,omitempty"` 720} 721 722// Describes a data disk. 723type DataDisk struct { 724 // Specifies the caching requirements. 725 // Possible values are: 726 // None 727 // ReadOnly 728 // ReadWrite 729 // Default: None for Standard storage. ReadOnly for Premium storage 730 Caching *CachingTypes `json:"caching,omitempty"` 731 732 // Specifies how the virtual machine should be created. 733 // Possible values are: 734 // Attach \u2013 This value is used when you are using a specialized disk to create the virtual machine. 735 // 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 736 // element described above. If you are 737 // using a marketplace image, you also use the plan element previously described. 738 CreateOption *DiskCreateOptionTypes `json:"createOption,omitempty"` 739 740 // READ-ONLY; Specifies the Read-Write IOPS for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. 741 // Can be updated only via updates to the VirtualMachine 742 // Scale Set. 743 DiskIopsReadWrite *int64 `json:"diskIOPSReadWrite,omitempty" azure:"ro"` 744 745 // READ-ONLY; Specifies the bandwidth in MB per second for the managed disk when StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet 746 // VM disks. Can be updated only via updates to the 747 // VirtualMachine Scale Set. 748 DiskMBpsReadWrite *int64 `json:"diskMBpsReadWrite,omitempty" azure:"ro"` 749 750 // 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. 751 // This value cannot be larger than 1023 GB 752 DiskSizeGb *int32 `json:"diskSizeGB,omitempty"` 753 754 // 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, 755 // the destination virtual hard drive must not 756 // exist. 757 Image *VirtualHardDisk `json:"image,omitempty"` 758 759 // 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 760 // disk attached to a VM. 761 Lun *int32 `json:"lun,omitempty"` 762 763 // The managed disk parameters. 764 ManagedDisk *ManagedDiskParameters `json:"managedDisk,omitempty"` 765 766 // The disk name. 767 Name *string `json:"name,omitempty"` 768 769 // Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset 770 ToBeDetached *bool `json:"toBeDetached,omitempty"` 771 772 // The virtual hard disk. 773 Vhd *VirtualHardDisk `json:"vhd,omitempty"` 774 775 // Specifies whether writeAccelerator should be enabled or disabled on the disk. 776 WriteAcceleratorEnabled *bool `json:"writeAcceleratorEnabled,omitempty"` 777} 778 779// Contains the data disk images information. 780type DataDiskImage struct { 781 // READ-ONLY; 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 782 // each data disk attached to a VM. 783 Lun *int32 `json:"lun,omitempty" azure:"ro"` 784} 785 786// Contains encryption settings for a data disk image. 787type DataDiskImageEncryption struct { 788 DiskImageEncryption 789 // 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 790 // must be unique for each data disk attached to the 791 // Virtual Machine. 792 Lun *int32 `json:"lun,omitempty"` 793} 794 795// Specifies information about the Dedicated host. 796type DedicatedHost struct { 797 Resource 798 // Properties of the dedicated host. 799 Properties *DedicatedHostProperties `json:"properties,omitempty"` 800 801 // SKU of the dedicated host for Hardware Generation and VM family. Only name is required to be set. List Microsoft.Compute SKUs for a list of possible 802 // values. 803 SKU *SKU `json:"sku,omitempty"` 804} 805 806// Represents the dedicated host unutilized capacity in terms of a specific VM size. 807type DedicatedHostAllocatableVM struct { 808 // Maximum number of VMs of size vmSize that can fit in the dedicated host's remaining capacity. 809 Count *float64 `json:"count,omitempty"` 810 811 // VM size in terms of which the unutilized capacity is represented. 812 VMSize *string `json:"vmSize,omitempty"` 813} 814 815// Dedicated host unutilized capacity. 816type DedicatedHostAvailableCapacity struct { 817 // The unutilized capacity of the dedicated host represented in terms of each VM size that is allowed to be deployed to the dedicated host. 818 AllocatableVMS *[]DedicatedHostAllocatableVM `json:"allocatableVMs,omitempty"` 819} 820 821// Specifies information about the dedicated host group that the dedicated hosts should be assigned to. 822// Currently, a dedicated host can only be added to a dedicated host group at creation time. An existing dedicated host cannot be added to another dedicated 823// host group. 824type DedicatedHostGroup struct { 825 Resource 826 // Dedicated Host Group Properties. 827 Properties *DedicatedHostGroupProperties `json:"properties,omitempty"` 828 829 // Availability Zone to use for this host group. Only single zone is supported. The zone can be assigned only during creation. If not provided, the group 830 // supports all zones in the region. If provided, 831 // enforces each host in the group to be in the same zone. 832 Zones *[]string `json:"zones,omitempty"` 833} 834 835type DedicatedHostGroupInstanceView struct { 836 // List of instance view of the dedicated hosts under the dedicated host group. 837 Hosts *[]DedicatedHostInstanceViewWithName `json:"hosts,omitempty"` 838} 839 840// The List Dedicated Host Group with resource group response. 841type DedicatedHostGroupListResult struct { 842 // The URI to fetch the next page of Dedicated Host Groups. Call ListNext() with this URI to fetch the next page of Dedicated Host Groups. 843 NextLink *string `json:"nextLink,omitempty"` 844 845 // The list of dedicated host groups 846 Value *[]DedicatedHostGroup `json:"value,omitempty"` 847} 848 849// DedicatedHostGroupListResultResponse is the response envelope for operations that return a DedicatedHostGroupListResult type. 850type DedicatedHostGroupListResultResponse struct { 851 // The List Dedicated Host Group with resource group response. 852 DedicatedHostGroupListResult *DedicatedHostGroupListResult 853 854 // RawResponse contains the underlying HTTP response. 855 RawResponse *http.Response 856} 857 858// Dedicated Host Group Properties. 859type DedicatedHostGroupProperties struct { 860 // READ-ONLY; A list of references to all dedicated hosts in the dedicated host group. 861 Hosts *[]SubResourceReadOnly `json:"hosts,omitempty" azure:"ro"` 862 863 // READ-ONLY; The dedicated host group instance view, which has the list of instance view of the dedicated hosts under the dedicated host group. 864 InstanceView *DedicatedHostGroupInstanceView `json:"instanceView,omitempty" azure:"ro"` 865 866 // Number of fault domains that the host group can span. 867 PlatformFaultDomainCount *int32 `json:"platformFaultDomainCount,omitempty"` 868 869 // Specifies whether virtual machines or virtual machine scale sets can be placed automatically on the dedicated host group. Automatic placement means resources 870 // are allocated on dedicated hosts, that are 871 // chosen by Azure, under the dedicated host group. The value is defaulted to 'false' when not provided. 872 // Minimum api-version: 2020-06-01. 873 SupportAutomaticPlacement *bool `json:"supportAutomaticPlacement,omitempty"` 874} 875 876// DedicatedHostGroupResponse is the response envelope for operations that return a DedicatedHostGroup type. 877type DedicatedHostGroupResponse struct { 878 // Specifies information about the dedicated host group that the dedicated hosts should be assigned to. <br><br> Currently, a dedicated host can only be 879 // added to a dedicated host group at creation time. An existing dedicated host cannot be added to another dedicated host group. 880 DedicatedHostGroup *DedicatedHostGroup 881 882 // RawResponse contains the underlying HTTP response. 883 RawResponse *http.Response 884} 885 886// Specifies information about the dedicated host group that the dedicated host should be assigned to. Only tags may be updated. 887type DedicatedHostGroupUpdate struct { 888 UpdateResource 889 // Dedicated Host Group Properties. 890 Properties *DedicatedHostGroupProperties `json:"properties,omitempty"` 891 892 // Availability Zone to use for this host group. Only single zone is supported. The zone can be assigned only during creation. If not provided, the group 893 // supports all zones in the region. If provided, 894 // enforces each host in the group to be in the same zone. 895 Zones *[]string `json:"zones,omitempty"` 896} 897 898// DedicatedHostGroupsCreateOrUpdateOptions contains the optional parameters for the DedicatedHostGroups.CreateOrUpdate method. 899type DedicatedHostGroupsCreateOrUpdateOptions struct { 900 // placeholder for future optional parameters 901} 902 903// DedicatedHostGroupsDeleteOptions contains the optional parameters for the DedicatedHostGroups.Delete method. 904type DedicatedHostGroupsDeleteOptions struct { 905 // placeholder for future optional parameters 906} 907 908// DedicatedHostGroupsGetOptions contains the optional parameters for the DedicatedHostGroups.Get method. 909type DedicatedHostGroupsGetOptions struct { 910 // The expand expression to apply on the operation. The response shows the list of instance view of the dedicated hosts under the dedicated host group. 911 Expand *string 912} 913 914// DedicatedHostGroupsListByResourceGroupOptions contains the optional parameters for the DedicatedHostGroups.ListByResourceGroup method. 915type DedicatedHostGroupsListByResourceGroupOptions struct { 916 // placeholder for future optional parameters 917} 918 919// DedicatedHostGroupsListBySubscriptionOptions contains the optional parameters for the DedicatedHostGroups.ListBySubscription method. 920type DedicatedHostGroupsListBySubscriptionOptions struct { 921 // placeholder for future optional parameters 922} 923 924// DedicatedHostGroupsUpdateOptions contains the optional parameters for the DedicatedHostGroups.Update method. 925type DedicatedHostGroupsUpdateOptions struct { 926 // placeholder for future optional parameters 927} 928 929// The instance view of a dedicated host. 930type DedicatedHostInstanceView struct { 931 // READ-ONLY; Specifies the unique id of the dedicated physical machine on which the dedicated host resides. 932 AssetID *string `json:"assetId,omitempty" azure:"ro"` 933 934 // Unutilized capacity of the dedicated host. 935 AvailableCapacity *DedicatedHostAvailableCapacity `json:"availableCapacity,omitempty"` 936 937 // The resource status information. 938 Statuses *[]InstanceViewStatus `json:"statuses,omitempty"` 939} 940 941// The instance view of a dedicated host that includes the name of the dedicated host. It is used for the response to the instance view of a dedicated host 942// group. 943type DedicatedHostInstanceViewWithName struct { 944 DedicatedHostInstanceView 945 // READ-ONLY; The name of the dedicated host. 946 Name *string `json:"name,omitempty" azure:"ro"` 947} 948 949// The list dedicated host operation response. 950type DedicatedHostListResult struct { 951 // The URI to fetch the next page of dedicated hosts. Call ListNext() with this URI to fetch the next page of dedicated hosts. 952 NextLink *string `json:"nextLink,omitempty"` 953 954 // The list of dedicated hosts 955 Value *[]DedicatedHost `json:"value,omitempty"` 956} 957 958// DedicatedHostListResultResponse is the response envelope for operations that return a DedicatedHostListResult type. 959type DedicatedHostListResultResponse struct { 960 // The list dedicated host operation response. 961 DedicatedHostListResult *DedicatedHostListResult 962 963 // RawResponse contains the underlying HTTP response. 964 RawResponse *http.Response 965} 966 967// DedicatedHostPollerResponse is the response envelope for operations that asynchronously return a DedicatedHost type. 968type DedicatedHostPollerResponse struct { 969 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 970 PollUntilDone func(ctx context.Context, frequency time.Duration) (DedicatedHostResponse, error) 971 972 // Poller contains an initialized poller. 973 Poller DedicatedHostPoller 974 975 // RawResponse contains the underlying HTTP response. 976 RawResponse *http.Response 977} 978 979// Properties of the dedicated host. 980type DedicatedHostProperties struct { 981 // Specifies whether the dedicated host should be replaced automatically in case of a failure. The value is defaulted to 'true' when not provided. 982 AutoReplaceOnFailure *bool `json:"autoReplaceOnFailure,omitempty"` 983 984 // READ-ONLY; A unique id generated and assigned to the dedicated host by the platform. 985 // Does not change throughout the lifetime of the host. 986 HostID *string `json:"hostId,omitempty" azure:"ro"` 987 988 // READ-ONLY; The dedicated host instance view. 989 InstanceView *DedicatedHostInstanceView `json:"instanceView,omitempty" azure:"ro"` 990 991 // Specifies the software license type that will be applied to the VMs deployed on the dedicated host. 992 // Possible values are: 993 // None 994 // WindowsServerHybrid 995 // WindowsServerPerpetual 996 // Default: None 997 LicenseType *DedicatedHostLicenseTypes `json:"licenseType,omitempty"` 998 999 // Fault domain of the dedicated host within a dedicated host group. 1000 PlatformFaultDomain *int32 `json:"platformFaultDomain,omitempty"` 1001 1002 // READ-ONLY; The provisioning state, which only appears in the response. 1003 ProvisioningState *string `json:"provisioningState,omitempty" azure:"ro"` 1004 1005 // READ-ONLY; The date when the host was first provisioned. 1006 ProvisioningTime *time.Time `json:"provisioningTime,omitempty" azure:"ro"` 1007 1008 // READ-ONLY; A list of references to all virtual machines in the Dedicated Host. 1009 VirtualMachines *[]SubResourceReadOnly `json:"virtualMachines,omitempty" azure:"ro"` 1010} 1011 1012// MarshalJSON implements the json.Marshaller interface for type DedicatedHostProperties. 1013func (d DedicatedHostProperties) MarshalJSON() ([]byte, error) { 1014 objectMap := make(map[string]interface{}) 1015 if d.AutoReplaceOnFailure != nil { 1016 objectMap["autoReplaceOnFailure"] = d.AutoReplaceOnFailure 1017 } 1018 if d.HostID != nil { 1019 objectMap["hostId"] = d.HostID 1020 } 1021 if d.InstanceView != nil { 1022 objectMap["instanceView"] = d.InstanceView 1023 } 1024 if d.LicenseType != nil { 1025 objectMap["licenseType"] = d.LicenseType 1026 } 1027 if d.PlatformFaultDomain != nil { 1028 objectMap["platformFaultDomain"] = d.PlatformFaultDomain 1029 } 1030 if d.ProvisioningState != nil { 1031 objectMap["provisioningState"] = d.ProvisioningState 1032 } 1033 if d.ProvisioningTime != nil { 1034 objectMap["provisioningTime"] = (*timeRFC3339)(d.ProvisioningTime) 1035 } 1036 if d.VirtualMachines != nil { 1037 objectMap["virtualMachines"] = d.VirtualMachines 1038 } 1039 return json.Marshal(objectMap) 1040} 1041 1042// UnmarshalJSON implements the json.Unmarshaller interface for type DedicatedHostProperties. 1043func (d *DedicatedHostProperties) UnmarshalJSON(data []byte) error { 1044 var rawMsg map[string]*json.RawMessage 1045 if err := json.Unmarshal(data, &rawMsg); err != nil { 1046 return err 1047 } 1048 for key, val := range rawMsg { 1049 var err error 1050 switch key { 1051 case "autoReplaceOnFailure": 1052 if val != nil { 1053 err = json.Unmarshal(*val, &d.AutoReplaceOnFailure) 1054 } 1055 delete(rawMsg, key) 1056 case "hostId": 1057 if val != nil { 1058 err = json.Unmarshal(*val, &d.HostID) 1059 } 1060 delete(rawMsg, key) 1061 case "instanceView": 1062 if val != nil { 1063 err = json.Unmarshal(*val, &d.InstanceView) 1064 } 1065 delete(rawMsg, key) 1066 case "licenseType": 1067 if val != nil { 1068 err = json.Unmarshal(*val, &d.LicenseType) 1069 } 1070 delete(rawMsg, key) 1071 case "platformFaultDomain": 1072 if val != nil { 1073 err = json.Unmarshal(*val, &d.PlatformFaultDomain) 1074 } 1075 delete(rawMsg, key) 1076 case "provisioningState": 1077 if val != nil { 1078 err = json.Unmarshal(*val, &d.ProvisioningState) 1079 } 1080 delete(rawMsg, key) 1081 case "provisioningTime": 1082 if val != nil { 1083 var aux timeRFC3339 1084 err = json.Unmarshal(*val, &aux) 1085 d.ProvisioningTime = (*time.Time)(&aux) 1086 } 1087 delete(rawMsg, key) 1088 case "virtualMachines": 1089 if val != nil { 1090 err = json.Unmarshal(*val, &d.VirtualMachines) 1091 } 1092 delete(rawMsg, key) 1093 } 1094 if err != nil { 1095 return err 1096 } 1097 } 1098 return nil 1099} 1100 1101// DedicatedHostResponse is the response envelope for operations that return a DedicatedHost type. 1102type DedicatedHostResponse struct { 1103 // Specifies information about the Dedicated host. 1104 DedicatedHost *DedicatedHost 1105 1106 // RawResponse contains the underlying HTTP response. 1107 RawResponse *http.Response 1108} 1109 1110// Specifies information about the dedicated host. Only tags, autoReplaceOnFailure and licenseType may be updated. 1111type DedicatedHostUpdate struct { 1112 UpdateResource 1113 // Properties of the dedicated host. 1114 Properties *DedicatedHostProperties `json:"properties,omitempty"` 1115} 1116 1117// DedicatedHostsBeginCreateOrUpdateOptions contains the optional parameters for the DedicatedHosts.BeginCreateOrUpdate method. 1118type DedicatedHostsBeginCreateOrUpdateOptions struct { 1119 // placeholder for future optional parameters 1120} 1121 1122// DedicatedHostsBeginDeleteOptions contains the optional parameters for the DedicatedHosts.BeginDelete method. 1123type DedicatedHostsBeginDeleteOptions struct { 1124 // placeholder for future optional parameters 1125} 1126 1127// DedicatedHostsBeginUpdateOptions contains the optional parameters for the DedicatedHosts.BeginUpdate method. 1128type DedicatedHostsBeginUpdateOptions struct { 1129 // placeholder for future optional parameters 1130} 1131 1132// DedicatedHostsGetOptions contains the optional parameters for the DedicatedHosts.Get method. 1133type DedicatedHostsGetOptions struct { 1134 // The expand expression to apply on the operation. 1135 Expand *string 1136} 1137 1138// DedicatedHostsListByHostGroupOptions contains the optional parameters for the DedicatedHosts.ListByHostGroup method. 1139type DedicatedHostsListByHostGroupOptions struct { 1140 // placeholder for future optional parameters 1141} 1142 1143// Specifies the boot diagnostic settings state. 1144// Minimum api-version: 2015-06-15. 1145type DiagnosticsProfile struct { 1146 // Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. 1147 // You can easily view the output of your console log. 1148 // Azure also enables you to see a screenshot of the VM from the hypervisor. 1149 BootDiagnostics *BootDiagnostics `json:"bootDiagnostics,omitempty"` 1150} 1151 1152// Describes the parameters of ephemeral disk settings that can be specified for operating system disk. 1153// NOTE: The ephemeral disk settings can only be specified for managed disk. 1154type DiffDiskSettings struct { 1155 // Specifies the ephemeral disk settings for operating system disk. 1156 Option *DiffDiskOptions `json:"option,omitempty"` 1157 1158 // Specifies the ephemeral disk placement for operating system disk. 1159 // Possible values are: 1160 // CacheDisk 1161 // ResourceDisk 1162 // Default: CacheDisk if one is configured for the VM size otherwise ResourceDisk is used. 1163 // Refer to VM size documentation for Windows VM at https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes and Linux VM at 1164 // https://docs.microsoft.com/en-us/azure/virtual-machines/linux/sizes to check which VM sizes exposes a cache disk. 1165 Placement *DiffDiskPlacement `json:"placement,omitempty"` 1166} 1167 1168// Describes the disallowed disk types. 1169type Disallowed struct { 1170 // A list of disk types. 1171 DiskTypes *[]string `json:"diskTypes,omitempty"` 1172} 1173 1174// Specifies the disallowed configuration for a virtual machine image. 1175type DisallowedConfiguration struct { 1176 // VM disk types which are disallowed. 1177 VMDiskType *VMDiskTypes `json:"vmDiskType,omitempty"` 1178} 1179 1180// Disk resource. 1181type Disk struct { 1182 Resource 1183 // The extended location where the disk will be created. Extended location cannot be changed. 1184 ExtendedLocation *ExtendedLocation `json:"extendedLocation,omitempty"` 1185 1186 // READ-ONLY; A relative URI containing the ID of the VM that has the disk attached. 1187 ManagedBy *string `json:"managedBy,omitempty" azure:"ro"` 1188 1189 // READ-ONLY; List of relative URIs containing the IDs of the VMs that have the disk attached. maxShares should be set to a value greater than one for disks 1190 // to allow attaching them to multiple VMs. 1191 ManagedByExtended *[]string `json:"managedByExtended,omitempty" azure:"ro"` 1192 1193 // Disk resource properties. 1194 Properties *DiskProperties `json:"properties,omitempty"` 1195 1196 // The disks sku name. Can be StandardLRS, PremiumLRS, StandardSSDLRS, or UltraSSDLRS. 1197 SKU *DiskSKU `json:"sku,omitempty"` 1198 1199 // The Logical zone list for Disk. 1200 Zones *[]string `json:"zones,omitempty"` 1201} 1202 1203// disk access resource. 1204type DiskAccess struct { 1205 Resource 1206 Properties *DiskAccessProperties `json:"properties,omitempty"` 1207} 1208 1209// The List disk access operation response. 1210type DiskAccessList struct { 1211 // The uri to fetch the next page of disk access resources. Call ListNext() with this to fetch the next page of disk access resources. 1212 NextLink *string `json:"nextLink,omitempty"` 1213 1214 // A list of disk access resources. 1215 Value *[]DiskAccess `json:"value,omitempty"` 1216} 1217 1218// DiskAccessListResponse is the response envelope for operations that return a DiskAccessList type. 1219type DiskAccessListResponse struct { 1220 // The List disk access operation response. 1221 DiskAccessList *DiskAccessList 1222 1223 // RawResponse contains the underlying HTTP response. 1224 RawResponse *http.Response 1225} 1226 1227// DiskAccessPollerResponse is the response envelope for operations that asynchronously return a DiskAccess type. 1228type DiskAccessPollerResponse struct { 1229 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 1230 PollUntilDone func(ctx context.Context, frequency time.Duration) (DiskAccessResponse, error) 1231 1232 // Poller contains an initialized poller. 1233 Poller DiskAccessPoller 1234 1235 // RawResponse contains the underlying HTTP response. 1236 RawResponse *http.Response 1237} 1238 1239type DiskAccessProperties struct { 1240 // READ-ONLY; A readonly collection of private endpoint connections created on the disk. Currently only one endpoint connection is supported. 1241 PrivateEndpointConnections *[]PrivateEndpointConnection `json:"privateEndpointConnections,omitempty" azure:"ro"` 1242 1243 // READ-ONLY; The disk access resource provisioning state. 1244 ProvisioningState *string `json:"provisioningState,omitempty" azure:"ro"` 1245 1246 // READ-ONLY; The time when the disk access was created. 1247 TimeCreated *time.Time `json:"timeCreated,omitempty" azure:"ro"` 1248} 1249 1250// MarshalJSON implements the json.Marshaller interface for type DiskAccessProperties. 1251func (d DiskAccessProperties) MarshalJSON() ([]byte, error) { 1252 objectMap := make(map[string]interface{}) 1253 if d.PrivateEndpointConnections != nil { 1254 objectMap["privateEndpointConnections"] = d.PrivateEndpointConnections 1255 } 1256 if d.ProvisioningState != nil { 1257 objectMap["provisioningState"] = d.ProvisioningState 1258 } 1259 if d.TimeCreated != nil { 1260 objectMap["timeCreated"] = (*timeRFC3339)(d.TimeCreated) 1261 } 1262 return json.Marshal(objectMap) 1263} 1264 1265// UnmarshalJSON implements the json.Unmarshaller interface for type DiskAccessProperties. 1266func (d *DiskAccessProperties) UnmarshalJSON(data []byte) error { 1267 var rawMsg map[string]*json.RawMessage 1268 if err := json.Unmarshal(data, &rawMsg); err != nil { 1269 return err 1270 } 1271 for key, val := range rawMsg { 1272 var err error 1273 switch key { 1274 case "privateEndpointConnections": 1275 if val != nil { 1276 err = json.Unmarshal(*val, &d.PrivateEndpointConnections) 1277 } 1278 delete(rawMsg, key) 1279 case "provisioningState": 1280 if val != nil { 1281 err = json.Unmarshal(*val, &d.ProvisioningState) 1282 } 1283 delete(rawMsg, key) 1284 case "timeCreated": 1285 if val != nil { 1286 var aux timeRFC3339 1287 err = json.Unmarshal(*val, &aux) 1288 d.TimeCreated = (*time.Time)(&aux) 1289 } 1290 delete(rawMsg, key) 1291 } 1292 if err != nil { 1293 return err 1294 } 1295 } 1296 return nil 1297} 1298 1299// DiskAccessResponse is the response envelope for operations that return a DiskAccess type. 1300type DiskAccessResponse struct { 1301 // disk access resource. 1302 DiskAccess *DiskAccess 1303 1304 // RawResponse contains the underlying HTTP response. 1305 RawResponse *http.Response 1306} 1307 1308// Used for updating a disk access resource. 1309type DiskAccessUpdate struct { 1310 // Resource tags 1311 Tags *map[string]string `json:"tags,omitempty"` 1312} 1313 1314// DiskAccessesBeginCreateOrUpdateOptions contains the optional parameters for the DiskAccesses.BeginCreateOrUpdate method. 1315type DiskAccessesBeginCreateOrUpdateOptions struct { 1316 // placeholder for future optional parameters 1317} 1318 1319// DiskAccessesBeginDeleteAPrivateEndpointConnectionOptions contains the optional parameters for the DiskAccesses.BeginDeleteAPrivateEndpointConnection 1320// method. 1321type DiskAccessesBeginDeleteAPrivateEndpointConnectionOptions struct { 1322 // placeholder for future optional parameters 1323} 1324 1325// DiskAccessesBeginDeleteOptions contains the optional parameters for the DiskAccesses.BeginDelete method. 1326type DiskAccessesBeginDeleteOptions struct { 1327 // placeholder for future optional parameters 1328} 1329 1330// DiskAccessesBeginUpdateAPrivateEndpointConnectionOptions contains the optional parameters for the DiskAccesses.BeginUpdateAPrivateEndpointConnection 1331// method. 1332type DiskAccessesBeginUpdateAPrivateEndpointConnectionOptions struct { 1333 // placeholder for future optional parameters 1334} 1335 1336// DiskAccessesBeginUpdateOptions contains the optional parameters for the DiskAccesses.BeginUpdate method. 1337type DiskAccessesBeginUpdateOptions struct { 1338 // placeholder for future optional parameters 1339} 1340 1341// DiskAccessesGetAPrivateEndpointConnectionOptions contains the optional parameters for the DiskAccesses.GetAPrivateEndpointConnection method. 1342type DiskAccessesGetAPrivateEndpointConnectionOptions struct { 1343 // placeholder for future optional parameters 1344} 1345 1346// DiskAccessesGetOptions contains the optional parameters for the DiskAccesses.Get method. 1347type DiskAccessesGetOptions struct { 1348 // placeholder for future optional parameters 1349} 1350 1351// DiskAccessesGetPrivateLinkResourcesOptions contains the optional parameters for the DiskAccesses.GetPrivateLinkResources method. 1352type DiskAccessesGetPrivateLinkResourcesOptions struct { 1353 // placeholder for future optional parameters 1354} 1355 1356// DiskAccessesListByResourceGroupOptions contains the optional parameters for the DiskAccesses.ListByResourceGroup method. 1357type DiskAccessesListByResourceGroupOptions struct { 1358 // placeholder for future optional parameters 1359} 1360 1361// DiskAccessesListOptions contains the optional parameters for the DiskAccesses.List method. 1362type DiskAccessesListOptions struct { 1363 // placeholder for future optional parameters 1364} 1365 1366// DiskAccessesListPrivateEndpointConnectionsOptions contains the optional parameters for the DiskAccesses.ListPrivateEndpointConnections method. 1367type DiskAccessesListPrivateEndpointConnectionsOptions struct { 1368 // placeholder for future optional parameters 1369} 1370 1371// disk encryption set resource. 1372type DiskEncryptionSet struct { 1373 Resource 1374 // The managed identity for the disk encryption set. It should be given permission on the key vault before it can be used to encrypt disks. 1375 IDentity *EncryptionSetIDentity `json:"identity,omitempty"` 1376 Properties *EncryptionSetProperties `json:"properties,omitempty"` 1377} 1378 1379// The List disk encryption set operation response. 1380type DiskEncryptionSetList struct { 1381 // The uri to fetch the next page of disk encryption sets. Call ListNext() with this to fetch the next page of disk encryption sets. 1382 NextLink *string `json:"nextLink,omitempty"` 1383 1384 // A list of disk encryption sets. 1385 Value *[]DiskEncryptionSet `json:"value,omitempty"` 1386} 1387 1388// DiskEncryptionSetListResponse is the response envelope for operations that return a DiskEncryptionSetList type. 1389type DiskEncryptionSetListResponse struct { 1390 // The List disk encryption set operation response. 1391 DiskEncryptionSetList *DiskEncryptionSetList 1392 1393 // RawResponse contains the underlying HTTP response. 1394 RawResponse *http.Response 1395} 1396 1397// Describes the parameter of customer managed disk encryption set resource id that can be specified for disk. 1398// NOTE: The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. 1399type DiskEncryptionSetParameters struct { 1400 SubResource 1401} 1402 1403// DiskEncryptionSetPollerResponse is the response envelope for operations that asynchronously return a DiskEncryptionSet type. 1404type DiskEncryptionSetPollerResponse struct { 1405 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 1406 PollUntilDone func(ctx context.Context, frequency time.Duration) (DiskEncryptionSetResponse, error) 1407 1408 // Poller contains an initialized poller. 1409 Poller DiskEncryptionSetPoller 1410 1411 // RawResponse contains the underlying HTTP response. 1412 RawResponse *http.Response 1413} 1414 1415// DiskEncryptionSetResponse is the response envelope for operations that return a DiskEncryptionSet type. 1416type DiskEncryptionSetResponse struct { 1417 // disk encryption set resource. 1418 DiskEncryptionSet *DiskEncryptionSet 1419 1420 // RawResponse contains the underlying HTTP response. 1421 RawResponse *http.Response 1422} 1423 1424// disk encryption set update resource. 1425type DiskEncryptionSetUpdate struct { 1426 // disk encryption set resource update properties. 1427 Properties *DiskEncryptionSetUpdateProperties `json:"properties,omitempty"` 1428 1429 // Resource tags 1430 Tags *map[string]string `json:"tags,omitempty"` 1431} 1432 1433// disk encryption set resource update properties. 1434type DiskEncryptionSetUpdateProperties struct { 1435 // Key Vault Key Url to be used for server side encryption of Managed Disks and Snapshots 1436 ActiveKey *KeyForDiskEncryptionSet `json:"activeKey,omitempty"` 1437 1438 // The type of key used to encrypt the data of the disk. 1439 EncryptionType *DiskEncryptionSetType `json:"encryptionType,omitempty"` 1440} 1441 1442// DiskEncryptionSetsBeginCreateOrUpdateOptions contains the optional parameters for the DiskEncryptionSets.BeginCreateOrUpdate method. 1443type DiskEncryptionSetsBeginCreateOrUpdateOptions struct { 1444 // placeholder for future optional parameters 1445} 1446 1447// DiskEncryptionSetsBeginDeleteOptions contains the optional parameters for the DiskEncryptionSets.BeginDelete method. 1448type DiskEncryptionSetsBeginDeleteOptions struct { 1449 // placeholder for future optional parameters 1450} 1451 1452// DiskEncryptionSetsBeginUpdateOptions contains the optional parameters for the DiskEncryptionSets.BeginUpdate method. 1453type DiskEncryptionSetsBeginUpdateOptions struct { 1454 // placeholder for future optional parameters 1455} 1456 1457// DiskEncryptionSetsGetOptions contains the optional parameters for the DiskEncryptionSets.Get method. 1458type DiskEncryptionSetsGetOptions struct { 1459 // placeholder for future optional parameters 1460} 1461 1462// DiskEncryptionSetsListAssociatedResourcesOptions contains the optional parameters for the DiskEncryptionSets.ListAssociatedResources method. 1463type DiskEncryptionSetsListAssociatedResourcesOptions struct { 1464 // placeholder for future optional parameters 1465} 1466 1467// DiskEncryptionSetsListByResourceGroupOptions contains the optional parameters for the DiskEncryptionSets.ListByResourceGroup method. 1468type DiskEncryptionSetsListByResourceGroupOptions struct { 1469 // placeholder for future optional parameters 1470} 1471 1472// DiskEncryptionSetsListOptions contains the optional parameters for the DiskEncryptionSets.List method. 1473type DiskEncryptionSetsListOptions struct { 1474 // placeholder for future optional parameters 1475} 1476 1477// Describes a Encryption Settings for a Disk 1478type DiskEncryptionSettings struct { 1479 // Specifies the location of the disk encryption key, which is a Key Vault Secret. 1480 DiskEncryptionKey *KeyVaultSecretReference `json:"diskEncryptionKey,omitempty"` 1481 1482 // Specifies whether disk encryption should be enabled on the virtual machine. 1483 Enabled *bool `json:"enabled,omitempty"` 1484 1485 // Specifies the location of the key encryption key in Key Vault. 1486 KeyEncryptionKey *KeyVaultKeyReference `json:"keyEncryptionKey,omitempty"` 1487} 1488 1489// This is the disk image encryption base class. 1490type DiskImageEncryption struct { 1491 // A relative URI containing the resource ID of the disk encryption set. 1492 DiskEncryptionSetID *string `json:"diskEncryptionSetId,omitempty"` 1493} 1494 1495// The instance view of the disk. 1496type DiskInstanceView struct { 1497 // Specifies the encryption settings for the OS Disk. 1498 // Minimum api-version: 2015-06-15 1499 EncryptionSettings *[]DiskEncryptionSettings `json:"encryptionSettings,omitempty"` 1500 1501 // The disk name. 1502 Name *string `json:"name,omitempty"` 1503 1504 // The resource status information. 1505 Statuses *[]InstanceViewStatus `json:"statuses,omitempty"` 1506} 1507 1508// The List Disks operation response. 1509type DiskList struct { 1510 // The uri to fetch the next page of disks. Call ListNext() with this to fetch the next page of disks. 1511 NextLink *string `json:"nextLink,omitempty"` 1512 1513 // A list of disks. 1514 Value *[]Disk `json:"value,omitempty"` 1515} 1516 1517// DiskListResponse is the response envelope for operations that return a DiskList type. 1518type DiskListResponse struct { 1519 // The List Disks operation response. 1520 DiskList *DiskList 1521 1522 // RawResponse contains the underlying HTTP response. 1523 RawResponse *http.Response 1524} 1525 1526// DiskPollerResponse is the response envelope for operations that asynchronously return a Disk type. 1527type DiskPollerResponse struct { 1528 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 1529 PollUntilDone func(ctx context.Context, frequency time.Duration) (DiskResponse, error) 1530 1531 // Poller contains an initialized poller. 1532 Poller DiskPoller 1533 1534 // RawResponse contains the underlying HTTP response. 1535 RawResponse *http.Response 1536} 1537 1538// Disk resource properties. 1539type DiskProperties struct { 1540 // Set to true to enable bursting beyond the provisioned performance target of the disk. Bursting is disabled by default. Does not apply to Ultra disks. 1541 BurstingEnabled *bool `json:"burstingEnabled,omitempty"` 1542 1543 // Disk source information. CreationData information cannot be changed after the disk has been created. 1544 CreationData *CreationData `json:"creationData,omitempty"` 1545 1546 // ARM id of the DiskAccess resource for using private endpoints on disks. 1547 DiskAccessID *string `json:"diskAccessId,omitempty"` 1548 1549 // The total number of IOPS that will be allowed across all VMs mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes. 1550 DiskIopsReadOnly *int64 `json:"diskIOPSReadOnly,omitempty"` 1551 1552 // The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes. 1553 DiskIopsReadWrite *int64 `json:"diskIOPSReadWrite,omitempty"` 1554 1555 // The total throughput (MBps) that will be allowed across all VMs mounting the shared disk as ReadOnly. MBps means millions of bytes per second - MB here 1556 // uses the ISO notation, of powers of 10. 1557 DiskMBpsReadOnly *int64 `json:"diskMBpsReadOnly,omitempty"` 1558 1559 // 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 1560 // of 10. 1561 DiskMBpsReadWrite *int64 `json:"diskMBpsReadWrite,omitempty"` 1562 1563 // READ-ONLY; The size of the disk in bytes. This field is read only. 1564 DiskSizeBytes *int64 `json:"diskSizeBytes,omitempty" azure:"ro"` 1565 1566 // If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates 1567 // or creation with other options, it indicates a 1568 // resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size. 1569 DiskSizeGb *int32 `json:"diskSizeGB,omitempty"` 1570 1571 // READ-ONLY; The state of the disk. 1572 DiskState *DiskState `json:"diskState,omitempty" azure:"ro"` 1573 1574 // Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys. 1575 Encryption *Encryption `json:"encryption,omitempty"` 1576 1577 // Encryption settings collection used for Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot. 1578 EncryptionSettingsCollection *EncryptionSettingsCollection `json:"encryptionSettingsCollection,omitempty"` 1579 1580 // The hypervisor generation of the Virtual Machine. Applicable to OS disks only. 1581 HyperVGeneration *HyperVGeneration `json:"hyperVGeneration,omitempty"` 1582 1583 // The maximum number of VMs that can attach to the disk at the same time. Value greater than one indicates a disk that can be mounted on multiple VMs at 1584 // the same time. 1585 MaxShares *int32 `json:"maxShares,omitempty"` 1586 1587 // Policy for accessing the disk via network. 1588 NetworkAccessPolicy *NetworkAccessPolicy `json:"networkAccessPolicy,omitempty"` 1589 1590 // The Operating System type. 1591 OSType *OperatingSystemTypes `json:"osType,omitempty"` 1592 1593 // READ-ONLY; The disk provisioning state. 1594 ProvisioningState *string `json:"provisioningState,omitempty" azure:"ro"` 1595 1596 // Purchase plan information for the the image from which the OS disk was created. E.g. - {name: 2019-Datacenter, publisher: MicrosoftWindowsServer, product: 1597 // WindowsServer} 1598 PurchasePlan *PurchasePlanAutoGenerated `json:"purchasePlan,omitempty"` 1599 1600 // READ-ONLY; Details of the list of all VMs that have the disk attached. maxShares should be set to a value greater than one for disks to allow attaching 1601 // them to multiple VMs. 1602 ShareInfo *[]ShareInfoElement `json:"shareInfo,omitempty" azure:"ro"` 1603 1604 // Performance tier of the disk (e.g, P4, S10) as described here: https://azure.microsoft.com/en-us/pricing/details/managed-disks/. Does not apply to Ultra 1605 // disks. 1606 Tier *string `json:"tier,omitempty"` 1607 1608 // READ-ONLY; The time when the disk was created. 1609 TimeCreated *time.Time `json:"timeCreated,omitempty" azure:"ro"` 1610 1611 // READ-ONLY; Unique Guid identifying the resource. 1612 UniqueID *string `json:"uniqueId,omitempty" azure:"ro"` 1613} 1614 1615// MarshalJSON implements the json.Marshaller interface for type DiskProperties. 1616func (d DiskProperties) MarshalJSON() ([]byte, error) { 1617 objectMap := make(map[string]interface{}) 1618 if d.BurstingEnabled != nil { 1619 objectMap["burstingEnabled"] = d.BurstingEnabled 1620 } 1621 if d.CreationData != nil { 1622 objectMap["creationData"] = d.CreationData 1623 } 1624 if d.DiskAccessID != nil { 1625 objectMap["diskAccessId"] = d.DiskAccessID 1626 } 1627 if d.DiskIopsReadOnly != nil { 1628 objectMap["diskIOPSReadOnly"] = d.DiskIopsReadOnly 1629 } 1630 if d.DiskIopsReadWrite != nil { 1631 objectMap["diskIOPSReadWrite"] = d.DiskIopsReadWrite 1632 } 1633 if d.DiskMBpsReadOnly != nil { 1634 objectMap["diskMBpsReadOnly"] = d.DiskMBpsReadOnly 1635 } 1636 if d.DiskMBpsReadWrite != nil { 1637 objectMap["diskMBpsReadWrite"] = d.DiskMBpsReadWrite 1638 } 1639 if d.DiskSizeBytes != nil { 1640 objectMap["diskSizeBytes"] = d.DiskSizeBytes 1641 } 1642 if d.DiskSizeGb != nil { 1643 objectMap["diskSizeGB"] = d.DiskSizeGb 1644 } 1645 if d.DiskState != nil { 1646 objectMap["diskState"] = d.DiskState 1647 } 1648 if d.Encryption != nil { 1649 objectMap["encryption"] = d.Encryption 1650 } 1651 if d.EncryptionSettingsCollection != nil { 1652 objectMap["encryptionSettingsCollection"] = d.EncryptionSettingsCollection 1653 } 1654 if d.HyperVGeneration != nil { 1655 objectMap["hyperVGeneration"] = d.HyperVGeneration 1656 } 1657 if d.MaxShares != nil { 1658 objectMap["maxShares"] = d.MaxShares 1659 } 1660 if d.NetworkAccessPolicy != nil { 1661 objectMap["networkAccessPolicy"] = d.NetworkAccessPolicy 1662 } 1663 if d.OSType != nil { 1664 objectMap["osType"] = d.OSType 1665 } 1666 if d.ProvisioningState != nil { 1667 objectMap["provisioningState"] = d.ProvisioningState 1668 } 1669 if d.PurchasePlan != nil { 1670 objectMap["purchasePlan"] = d.PurchasePlan 1671 } 1672 if d.ShareInfo != nil { 1673 objectMap["shareInfo"] = d.ShareInfo 1674 } 1675 if d.Tier != nil { 1676 objectMap["tier"] = d.Tier 1677 } 1678 if d.TimeCreated != nil { 1679 objectMap["timeCreated"] = (*timeRFC3339)(d.TimeCreated) 1680 } 1681 if d.UniqueID != nil { 1682 objectMap["uniqueId"] = d.UniqueID 1683 } 1684 return json.Marshal(objectMap) 1685} 1686 1687// UnmarshalJSON implements the json.Unmarshaller interface for type DiskProperties. 1688func (d *DiskProperties) UnmarshalJSON(data []byte) error { 1689 var rawMsg map[string]*json.RawMessage 1690 if err := json.Unmarshal(data, &rawMsg); err != nil { 1691 return err 1692 } 1693 for key, val := range rawMsg { 1694 var err error 1695 switch key { 1696 case "burstingEnabled": 1697 if val != nil { 1698 err = json.Unmarshal(*val, &d.BurstingEnabled) 1699 } 1700 delete(rawMsg, key) 1701 case "creationData": 1702 if val != nil { 1703 err = json.Unmarshal(*val, &d.CreationData) 1704 } 1705 delete(rawMsg, key) 1706 case "diskAccessId": 1707 if val != nil { 1708 err = json.Unmarshal(*val, &d.DiskAccessID) 1709 } 1710 delete(rawMsg, key) 1711 case "diskIOPSReadOnly": 1712 if val != nil { 1713 err = json.Unmarshal(*val, &d.DiskIopsReadOnly) 1714 } 1715 delete(rawMsg, key) 1716 case "diskIOPSReadWrite": 1717 if val != nil { 1718 err = json.Unmarshal(*val, &d.DiskIopsReadWrite) 1719 } 1720 delete(rawMsg, key) 1721 case "diskMBpsReadOnly": 1722 if val != nil { 1723 err = json.Unmarshal(*val, &d.DiskMBpsReadOnly) 1724 } 1725 delete(rawMsg, key) 1726 case "diskMBpsReadWrite": 1727 if val != nil { 1728 err = json.Unmarshal(*val, &d.DiskMBpsReadWrite) 1729 } 1730 delete(rawMsg, key) 1731 case "diskSizeBytes": 1732 if val != nil { 1733 err = json.Unmarshal(*val, &d.DiskSizeBytes) 1734 } 1735 delete(rawMsg, key) 1736 case "diskSizeGB": 1737 if val != nil { 1738 err = json.Unmarshal(*val, &d.DiskSizeGb) 1739 } 1740 delete(rawMsg, key) 1741 case "diskState": 1742 if val != nil { 1743 err = json.Unmarshal(*val, &d.DiskState) 1744 } 1745 delete(rawMsg, key) 1746 case "encryption": 1747 if val != nil { 1748 err = json.Unmarshal(*val, &d.Encryption) 1749 } 1750 delete(rawMsg, key) 1751 case "encryptionSettingsCollection": 1752 if val != nil { 1753 err = json.Unmarshal(*val, &d.EncryptionSettingsCollection) 1754 } 1755 delete(rawMsg, key) 1756 case "hyperVGeneration": 1757 if val != nil { 1758 err = json.Unmarshal(*val, &d.HyperVGeneration) 1759 } 1760 delete(rawMsg, key) 1761 case "maxShares": 1762 if val != nil { 1763 err = json.Unmarshal(*val, &d.MaxShares) 1764 } 1765 delete(rawMsg, key) 1766 case "networkAccessPolicy": 1767 if val != nil { 1768 err = json.Unmarshal(*val, &d.NetworkAccessPolicy) 1769 } 1770 delete(rawMsg, key) 1771 case "osType": 1772 if val != nil { 1773 err = json.Unmarshal(*val, &d.OSType) 1774 } 1775 delete(rawMsg, key) 1776 case "provisioningState": 1777 if val != nil { 1778 err = json.Unmarshal(*val, &d.ProvisioningState) 1779 } 1780 delete(rawMsg, key) 1781 case "purchasePlan": 1782 if val != nil { 1783 err = json.Unmarshal(*val, &d.PurchasePlan) 1784 } 1785 delete(rawMsg, key) 1786 case "shareInfo": 1787 if val != nil { 1788 err = json.Unmarshal(*val, &d.ShareInfo) 1789 } 1790 delete(rawMsg, key) 1791 case "tier": 1792 if val != nil { 1793 err = json.Unmarshal(*val, &d.Tier) 1794 } 1795 delete(rawMsg, key) 1796 case "timeCreated": 1797 if val != nil { 1798 var aux timeRFC3339 1799 err = json.Unmarshal(*val, &aux) 1800 d.TimeCreated = (*time.Time)(&aux) 1801 } 1802 delete(rawMsg, key) 1803 case "uniqueId": 1804 if val != nil { 1805 err = json.Unmarshal(*val, &d.UniqueID) 1806 } 1807 delete(rawMsg, key) 1808 } 1809 if err != nil { 1810 return err 1811 } 1812 } 1813 return nil 1814} 1815 1816// DiskResponse is the response envelope for operations that return a Disk type. 1817type DiskResponse struct { 1818 // Disk resource. 1819 Disk *Disk 1820 1821 // RawResponse contains the underlying HTTP response. 1822 RawResponse *http.Response 1823} 1824 1825// Properties of disk restore point 1826type DiskRestorePoint struct { 1827 ProxyOnlyResource 1828 // Properties of an incremental disk restore point 1829 Properties *DiskRestorePointProperties `json:"properties,omitempty"` 1830} 1831 1832// DiskRestorePointGetOptions contains the optional parameters for the DiskRestorePoint.Get method. 1833type DiskRestorePointGetOptions struct { 1834 // placeholder for future optional parameters 1835} 1836 1837// The List Disk Restore Points operation response. 1838type DiskRestorePointList struct { 1839 // The uri to fetch the next page of disk restore points. Call ListNext() with this to fetch the next page of disk restore points. 1840 NextLink *string `json:"nextLink,omitempty"` 1841 1842 // A list of disk restore points. 1843 Value *[]DiskRestorePoint `json:"value,omitempty"` 1844} 1845 1846// DiskRestorePointListByRestorePointOptions contains the optional parameters for the DiskRestorePoint.ListByRestorePoint method. 1847type DiskRestorePointListByRestorePointOptions struct { 1848 // placeholder for future optional parameters 1849} 1850 1851// DiskRestorePointListResponse is the response envelope for operations that return a DiskRestorePointList type. 1852type DiskRestorePointListResponse struct { 1853 // The List Disk Restore Points operation response. 1854 DiskRestorePointList *DiskRestorePointList 1855 1856 // RawResponse contains the underlying HTTP response. 1857 RawResponse *http.Response 1858} 1859 1860// Properties of an incremental disk restore point 1861type DiskRestorePointProperties struct { 1862 // READ-ONLY; Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys. 1863 Encryption *Encryption `json:"encryption,omitempty" azure:"ro"` 1864 1865 // READ-ONLY; id of the backing snapshot's MIS family 1866 FamilyID *string `json:"familyId,omitempty" azure:"ro"` 1867 1868 // The hypervisor generation of the Virtual Machine. Applicable to OS disks only. 1869 HyperVGeneration *HyperVGeneration `json:"hyperVGeneration,omitempty"` 1870 1871 // READ-ONLY; The Operating System type. 1872 OSType *OperatingSystemTypes `json:"osType,omitempty" azure:"ro"` 1873 1874 // Purchase plan information for the the image from which the OS disk was created. 1875 PurchasePlan *PurchasePlanAutoGenerated `json:"purchasePlan,omitempty"` 1876 1877 // READ-ONLY; arm id of source disk 1878 SourceResourceID *string `json:"sourceResourceId,omitempty" azure:"ro"` 1879 1880 // READ-ONLY; unique incarnation id of the source disk 1881 SourceUniqueID *string `json:"sourceUniqueId,omitempty" azure:"ro"` 1882 1883 // READ-ONLY; The timestamp of restorePoint creation 1884 TimeCreated *time.Time `json:"timeCreated,omitempty" azure:"ro"` 1885} 1886 1887// MarshalJSON implements the json.Marshaller interface for type DiskRestorePointProperties. 1888func (d DiskRestorePointProperties) MarshalJSON() ([]byte, error) { 1889 objectMap := make(map[string]interface{}) 1890 if d.Encryption != nil { 1891 objectMap["encryption"] = d.Encryption 1892 } 1893 if d.FamilyID != nil { 1894 objectMap["familyId"] = d.FamilyID 1895 } 1896 if d.HyperVGeneration != nil { 1897 objectMap["hyperVGeneration"] = d.HyperVGeneration 1898 } 1899 if d.OSType != nil { 1900 objectMap["osType"] = d.OSType 1901 } 1902 if d.PurchasePlan != nil { 1903 objectMap["purchasePlan"] = d.PurchasePlan 1904 } 1905 if d.SourceResourceID != nil { 1906 objectMap["sourceResourceId"] = d.SourceResourceID 1907 } 1908 if d.SourceUniqueID != nil { 1909 objectMap["sourceUniqueId"] = d.SourceUniqueID 1910 } 1911 if d.TimeCreated != nil { 1912 objectMap["timeCreated"] = (*timeRFC3339)(d.TimeCreated) 1913 } 1914 return json.Marshal(objectMap) 1915} 1916 1917// UnmarshalJSON implements the json.Unmarshaller interface for type DiskRestorePointProperties. 1918func (d *DiskRestorePointProperties) UnmarshalJSON(data []byte) error { 1919 var rawMsg map[string]*json.RawMessage 1920 if err := json.Unmarshal(data, &rawMsg); err != nil { 1921 return err 1922 } 1923 for key, val := range rawMsg { 1924 var err error 1925 switch key { 1926 case "encryption": 1927 if val != nil { 1928 err = json.Unmarshal(*val, &d.Encryption) 1929 } 1930 delete(rawMsg, key) 1931 case "familyId": 1932 if val != nil { 1933 err = json.Unmarshal(*val, &d.FamilyID) 1934 } 1935 delete(rawMsg, key) 1936 case "hyperVGeneration": 1937 if val != nil { 1938 err = json.Unmarshal(*val, &d.HyperVGeneration) 1939 } 1940 delete(rawMsg, key) 1941 case "osType": 1942 if val != nil { 1943 err = json.Unmarshal(*val, &d.OSType) 1944 } 1945 delete(rawMsg, key) 1946 case "purchasePlan": 1947 if val != nil { 1948 err = json.Unmarshal(*val, &d.PurchasePlan) 1949 } 1950 delete(rawMsg, key) 1951 case "sourceResourceId": 1952 if val != nil { 1953 err = json.Unmarshal(*val, &d.SourceResourceID) 1954 } 1955 delete(rawMsg, key) 1956 case "sourceUniqueId": 1957 if val != nil { 1958 err = json.Unmarshal(*val, &d.SourceUniqueID) 1959 } 1960 delete(rawMsg, key) 1961 case "timeCreated": 1962 if val != nil { 1963 var aux timeRFC3339 1964 err = json.Unmarshal(*val, &aux) 1965 d.TimeCreated = (*time.Time)(&aux) 1966 } 1967 delete(rawMsg, key) 1968 } 1969 if err != nil { 1970 return err 1971 } 1972 } 1973 return nil 1974} 1975 1976// DiskRestorePointResponse is the response envelope for operations that return a DiskRestorePoint type. 1977type DiskRestorePointResponse struct { 1978 // Properties of disk restore point 1979 DiskRestorePoint *DiskRestorePoint 1980 1981 // RawResponse contains the underlying HTTP response. 1982 RawResponse *http.Response 1983} 1984 1985// The disks sku name. Can be StandardLRS, PremiumLRS, StandardSSDLRS, or UltraSSDLRS. 1986type DiskSKU struct { 1987 // The sku name. 1988 Name *DiskStorageAccountTypes `json:"name,omitempty"` 1989 1990 // READ-ONLY; The sku tier. 1991 Tier *string `json:"tier,omitempty" azure:"ro"` 1992} 1993 1994// Disk update resource. 1995type DiskUpdate struct { 1996 // Disk resource update properties. 1997 Properties *DiskUpdateProperties `json:"properties,omitempty"` 1998 1999 // The disks sku name. Can be StandardLRS, PremiumLRS, StandardSSDLRS, or UltraSSDLRS. 2000 SKU *DiskSKU `json:"sku,omitempty"` 2001 2002 // Resource tags 2003 Tags *map[string]string `json:"tags,omitempty"` 2004} 2005 2006// Disk resource update properties. 2007type DiskUpdateProperties struct { 2008 // Set to true to enable bursting beyond the provisioned performance target of the disk. Bursting is disabled by default. Does not apply to Ultra disks. 2009 BurstingEnabled *bool `json:"burstingEnabled,omitempty"` 2010 2011 // ARM id of the DiskAccess resource for using private endpoints on disks. 2012 DiskAccessID *string `json:"diskAccessId,omitempty"` 2013 2014 // The total number of IOPS that will be allowed across all VMs mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes. 2015 DiskIopsReadOnly *int64 `json:"diskIOPSReadOnly,omitempty"` 2016 2017 // The number of IOPS allowed for this disk; only settable for UltraSSD disks. One operation can transfer between 4k and 256k bytes. 2018 DiskIopsReadWrite *int64 `json:"diskIOPSReadWrite,omitempty"` 2019 2020 // The total throughput (MBps) that will be allowed across all VMs mounting the shared disk as ReadOnly. MBps means millions of bytes per second - MB here 2021 // uses the ISO notation, of powers of 10. 2022 DiskMBpsReadOnly *int64 `json:"diskMBpsReadOnly,omitempty"` 2023 2024 // 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 2025 // of 10. 2026 DiskMBpsReadWrite *int64 `json:"diskMBpsReadWrite,omitempty"` 2027 2028 // If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates 2029 // or creation with other options, it indicates a 2030 // resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size. 2031 DiskSizeGb *int32 `json:"diskSizeGB,omitempty"` 2032 2033 // Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys. 2034 Encryption *Encryption `json:"encryption,omitempty"` 2035 2036 // Encryption settings collection used be Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot. 2037 EncryptionSettingsCollection *EncryptionSettingsCollection `json:"encryptionSettingsCollection,omitempty"` 2038 2039 // The maximum number of VMs that can attach to the disk at the same time. Value greater than one indicates a disk that can be mounted on multiple VMs at 2040 // the same time. 2041 MaxShares *int32 `json:"maxShares,omitempty"` 2042 2043 // Policy for accessing the disk via network. 2044 NetworkAccessPolicy *NetworkAccessPolicy `json:"networkAccessPolicy,omitempty"` 2045 2046 // the Operating System type. 2047 OSType *OperatingSystemTypes `json:"osType,omitempty"` 2048 2049 // Purchase plan information to be added on the OS disk 2050 PurchasePlan *PurchasePlanAutoGenerated `json:"purchasePlan,omitempty"` 2051 2052 // Performance tier of the disk (e.g, P4, S10) as described here: https://azure.microsoft.com/en-us/pricing/details/managed-disks/. Does not apply to Ultra 2053 // disks. 2054 Tier *string `json:"tier,omitempty"` 2055} 2056 2057// DisksBeginCreateOrUpdateOptions contains the optional parameters for the Disks.BeginCreateOrUpdate method. 2058type DisksBeginCreateOrUpdateOptions struct { 2059 // placeholder for future optional parameters 2060} 2061 2062// DisksBeginDeleteOptions contains the optional parameters for the Disks.BeginDelete method. 2063type DisksBeginDeleteOptions struct { 2064 // placeholder for future optional parameters 2065} 2066 2067// DisksBeginGrantAccessOptions contains the optional parameters for the Disks.BeginGrantAccess method. 2068type DisksBeginGrantAccessOptions struct { 2069 // placeholder for future optional parameters 2070} 2071 2072// DisksBeginRevokeAccessOptions contains the optional parameters for the Disks.BeginRevokeAccess method. 2073type DisksBeginRevokeAccessOptions struct { 2074 // placeholder for future optional parameters 2075} 2076 2077// DisksBeginUpdateOptions contains the optional parameters for the Disks.BeginUpdate method. 2078type DisksBeginUpdateOptions struct { 2079 // placeholder for future optional parameters 2080} 2081 2082// DisksGetOptions contains the optional parameters for the Disks.Get method. 2083type DisksGetOptions struct { 2084 // placeholder for future optional parameters 2085} 2086 2087// DisksListByResourceGroupOptions contains the optional parameters for the Disks.ListByResourceGroup method. 2088type DisksListByResourceGroupOptions struct { 2089 // placeholder for future optional parameters 2090} 2091 2092// DisksListOptions contains the optional parameters for the Disks.List method. 2093type DisksListOptions struct { 2094 // placeholder for future optional parameters 2095} 2096 2097// Encryption at rest settings for disk or snapshot 2098type Encryption struct { 2099 // ResourceId of the disk encryption set to use for enabling encryption at rest. 2100 DiskEncryptionSetID *string `json:"diskEncryptionSetId,omitempty"` 2101 2102 // The type of key used to encrypt the data of the disk. 2103 Type *EncryptionType `json:"type,omitempty"` 2104} 2105 2106// Optional. Allows users to provide customer managed keys for encrypting the OS and data disks in the gallery artifact. 2107type EncryptionImages struct { 2108 // A list of encryption specifications for data disk images. 2109 DataDiskImages *[]DataDiskImageEncryption `json:"dataDiskImages,omitempty"` 2110 2111 // This is the disk image encryption base class. 2112 OSDiskImage *DiskImageEncryption `json:"osDiskImage,omitempty"` 2113} 2114 2115// The managed identity for the disk encryption set. It should be given permission on the key vault before it can be used to encrypt disks. 2116type EncryptionSetIDentity struct { 2117 // READ-ONLY; The object id of the Managed Identity Resource. This will be sent to the RP from ARM via the x-ms-identity-principal-id header in the PUT 2118 // request if the resource has a systemAssigned(implicit) 2119 // identity 2120 PrincipalID *string `json:"principalId,omitempty" azure:"ro"` 2121 2122 // READ-ONLY; The tenant id of the Managed Identity Resource. This will be sent to the RP from ARM via the x-ms-client-tenant-id header in the PUT request 2123 // if the resource has a systemAssigned(implicit) identity 2124 TenantID *string `json:"tenantId,omitempty" azure:"ro"` 2125 2126 // The type of Managed Identity used by the DiskEncryptionSet. Only SystemAssigned is supported for new creations. Disk Encryption Sets can be updated with 2127 // Identity type None during migration of 2128 // subscription to a new Azure Active Directory tenant; it will cause the encrypted resources to lose access to the keys. 2129 Type *DiskEncryptionSetIDentityType `json:"type,omitempty"` 2130} 2131 2132type EncryptionSetProperties struct { 2133 // The key vault key which is currently used by this disk encryption set. 2134 ActiveKey *KeyForDiskEncryptionSet `json:"activeKey,omitempty"` 2135 2136 // The type of key used to encrypt the data of the disk. 2137 EncryptionType *DiskEncryptionSetType `json:"encryptionType,omitempty"` 2138 2139 // READ-ONLY; A readonly collection of key vault keys previously used by this disk encryption set while a key rotation is in progress. It will be empty 2140 // if there is no ongoing key rotation. 2141 PreviousKeys *[]KeyForDiskEncryptionSet `json:"previousKeys,omitempty" azure:"ro"` 2142 2143 // READ-ONLY; The disk encryption set provisioning state. 2144 ProvisioningState *string `json:"provisioningState,omitempty" azure:"ro"` 2145} 2146 2147// Encryption settings for disk or snapshot 2148type EncryptionSettingsCollection struct { 2149 // Set this flag to true and provide DiskEncryptionKey and optional KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey 2150 // and KeyEncryptionKey to disable encryption. 2151 // If EncryptionSettings is null in the request object, the existing settings remain unchanged. 2152 Enabled *bool `json:"enabled,omitempty"` 2153 2154 // A collection of encryption settings, one for each disk volume. 2155 EncryptionSettings *[]EncryptionSettingsElement `json:"encryptionSettings,omitempty"` 2156 2157 // Describes what type of encryption is used for the disks. Once this field is set, it cannot be overwritten. '1.0' corresponds to Azure Disk Encryption 2158 // with AAD app.'1.1' corresponds to Azure Disk 2159 // Encryption. 2160 EncryptionSettingsVersion *string `json:"encryptionSettingsVersion,omitempty"` 2161} 2162 2163// Encryption settings for one disk volume. 2164type EncryptionSettingsElement struct { 2165 // Key Vault Secret Url and vault id of the disk encryption key 2166 DiskEncryptionKey *KeyVaultAndSecretReference `json:"diskEncryptionKey,omitempty"` 2167 2168 // Key Vault Key Url and vault id of the key encryption key. KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key. 2169 KeyEncryptionKey *KeyVaultAndKeyReference `json:"keyEncryptionKey,omitempty"` 2170} 2171 2172// The complex type of the extended location. 2173type ExtendedLocation struct { 2174 // The name of the extended location. 2175 Name *string `json:"name,omitempty"` 2176 2177 // The type of the extended location. 2178 Type *ExtendedLocationTypes `json:"type,omitempty"` 2179} 2180 2181// GalleriesBeginCreateOrUpdateOptions contains the optional parameters for the Galleries.BeginCreateOrUpdate method. 2182type GalleriesBeginCreateOrUpdateOptions struct { 2183 // placeholder for future optional parameters 2184} 2185 2186// GalleriesBeginDeleteOptions contains the optional parameters for the Galleries.BeginDelete method. 2187type GalleriesBeginDeleteOptions struct { 2188 // placeholder for future optional parameters 2189} 2190 2191// GalleriesBeginUpdateOptions contains the optional parameters for the Galleries.BeginUpdate method. 2192type GalleriesBeginUpdateOptions struct { 2193 // placeholder for future optional parameters 2194} 2195 2196// GalleriesGetOptions contains the optional parameters for the Galleries.Get method. 2197type GalleriesGetOptions struct { 2198 // The select expression to apply on the operation. 2199 SelectParameter *SelectPermissions 2200} 2201 2202// GalleriesListByResourceGroupOptions contains the optional parameters for the Galleries.ListByResourceGroup method. 2203type GalleriesListByResourceGroupOptions struct { 2204 // placeholder for future optional parameters 2205} 2206 2207// GalleriesListOptions contains the optional parameters for the Galleries.List method. 2208type GalleriesListOptions struct { 2209 // placeholder for future optional parameters 2210} 2211 2212// Specifies information about the Shared Image Gallery that you want to create or update. 2213type Gallery struct { 2214 Resource 2215 // Describes the properties of a Shared Image Gallery. 2216 Properties *GalleryProperties `json:"properties,omitempty"` 2217} 2218 2219// Specifies information about the gallery Application Definition that you want to create or update. 2220type GalleryApplication struct { 2221 Resource 2222 // Describes the properties of a gallery Application Definition. 2223 Properties *GalleryApplicationProperties `json:"properties,omitempty"` 2224} 2225 2226// The List Gallery Applications operation response. 2227type GalleryApplicationList struct { 2228 // The uri to fetch the next page of Application Definitions in the Application Gallery. Call ListNext() with this to fetch the next page of gallery Application 2229 // Definitions. 2230 NextLink *string `json:"nextLink,omitempty"` 2231 2232 // A list of Gallery Applications. 2233 Value *[]GalleryApplication `json:"value,omitempty"` 2234} 2235 2236// GalleryApplicationListResponse is the response envelope for operations that return a GalleryApplicationList type. 2237type GalleryApplicationListResponse struct { 2238 // The List Gallery Applications operation response. 2239 GalleryApplicationList *GalleryApplicationList 2240 2241 // RawResponse contains the underlying HTTP response. 2242 RawResponse *http.Response 2243} 2244 2245// GalleryApplicationPollerResponse is the response envelope for operations that asynchronously return a GalleryApplication type. 2246type GalleryApplicationPollerResponse struct { 2247 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 2248 PollUntilDone func(ctx context.Context, frequency time.Duration) (GalleryApplicationResponse, error) 2249 2250 // Poller contains an initialized poller. 2251 Poller GalleryApplicationPoller 2252 2253 // RawResponse contains the underlying HTTP response. 2254 RawResponse *http.Response 2255} 2256 2257// Describes the properties of a gallery Application Definition. 2258type GalleryApplicationProperties struct { 2259 // The description of this gallery Application Definition resource. This property is updatable. 2260 Description *string `json:"description,omitempty"` 2261 2262 // The end of life date of the gallery Application Definition. This property can be used for decommissioning purposes. This property is updatable. 2263 EndOfLifeDate *time.Time `json:"endOfLifeDate,omitempty"` 2264 2265 // The Eula agreement for the gallery Application Definition. 2266 Eula *string `json:"eula,omitempty"` 2267 2268 // The privacy statement uri. 2269 PrivacyStatementURI *string `json:"privacyStatementUri,omitempty"` 2270 2271 // The release note uri. 2272 ReleaseNoteURI *string `json:"releaseNoteUri,omitempty"` 2273 2274 // This property allows you to specify the supported type of the OS that application is built for. 2275 // Possible values are: 2276 // Windows 2277 // Linux 2278 SupportedOSType *OperatingSystemTypes `json:"supportedOSType,omitempty"` 2279} 2280 2281// MarshalJSON implements the json.Marshaller interface for type GalleryApplicationProperties. 2282func (g GalleryApplicationProperties) MarshalJSON() ([]byte, error) { 2283 objectMap := make(map[string]interface{}) 2284 if g.Description != nil { 2285 objectMap["description"] = g.Description 2286 } 2287 if g.EndOfLifeDate != nil { 2288 objectMap["endOfLifeDate"] = (*timeRFC3339)(g.EndOfLifeDate) 2289 } 2290 if g.Eula != nil { 2291 objectMap["eula"] = g.Eula 2292 } 2293 if g.PrivacyStatementURI != nil { 2294 objectMap["privacyStatementUri"] = g.PrivacyStatementURI 2295 } 2296 if g.ReleaseNoteURI != nil { 2297 objectMap["releaseNoteUri"] = g.ReleaseNoteURI 2298 } 2299 if g.SupportedOSType != nil { 2300 objectMap["supportedOSType"] = g.SupportedOSType 2301 } 2302 return json.Marshal(objectMap) 2303} 2304 2305// UnmarshalJSON implements the json.Unmarshaller interface for type GalleryApplicationProperties. 2306func (g *GalleryApplicationProperties) UnmarshalJSON(data []byte) error { 2307 var rawMsg map[string]*json.RawMessage 2308 if err := json.Unmarshal(data, &rawMsg); err != nil { 2309 return err 2310 } 2311 for key, val := range rawMsg { 2312 var err error 2313 switch key { 2314 case "description": 2315 if val != nil { 2316 err = json.Unmarshal(*val, &g.Description) 2317 } 2318 delete(rawMsg, key) 2319 case "endOfLifeDate": 2320 if val != nil { 2321 var aux timeRFC3339 2322 err = json.Unmarshal(*val, &aux) 2323 g.EndOfLifeDate = (*time.Time)(&aux) 2324 } 2325 delete(rawMsg, key) 2326 case "eula": 2327 if val != nil { 2328 err = json.Unmarshal(*val, &g.Eula) 2329 } 2330 delete(rawMsg, key) 2331 case "privacyStatementUri": 2332 if val != nil { 2333 err = json.Unmarshal(*val, &g.PrivacyStatementURI) 2334 } 2335 delete(rawMsg, key) 2336 case "releaseNoteUri": 2337 if val != nil { 2338 err = json.Unmarshal(*val, &g.ReleaseNoteURI) 2339 } 2340 delete(rawMsg, key) 2341 case "supportedOSType": 2342 if val != nil { 2343 err = json.Unmarshal(*val, &g.SupportedOSType) 2344 } 2345 delete(rawMsg, key) 2346 } 2347 if err != nil { 2348 return err 2349 } 2350 } 2351 return nil 2352} 2353 2354// GalleryApplicationResponse is the response envelope for operations that return a GalleryApplication type. 2355type GalleryApplicationResponse struct { 2356 // Specifies information about the gallery Application Definition that you want to create or update. 2357 GalleryApplication *GalleryApplication 2358 2359 // RawResponse contains the underlying HTTP response. 2360 RawResponse *http.Response 2361} 2362 2363// Specifies information about the gallery Application Definition that you want to update. 2364type GalleryApplicationUpdate struct { 2365 UpdateResourceDefinition 2366 // Describes the properties of a gallery Application Definition. 2367 Properties *GalleryApplicationProperties `json:"properties,omitempty"` 2368} 2369 2370// Specifies information about the gallery Application Version that you want to create or update. 2371type GalleryApplicationVersion struct { 2372 Resource 2373 // Describes the properties of a gallery image version. 2374 Properties *GalleryApplicationVersionProperties `json:"properties,omitempty"` 2375} 2376 2377// The List Gallery Application version operation response. 2378type GalleryApplicationVersionList struct { 2379 // The uri to fetch the next page of gallery Application Versions. Call ListNext() with this to fetch the next page of gallery Application Versions. 2380 NextLink *string `json:"nextLink,omitempty"` 2381 2382 // A list of gallery Application Versions. 2383 Value *[]GalleryApplicationVersion `json:"value,omitempty"` 2384} 2385 2386// GalleryApplicationVersionListResponse is the response envelope for operations that return a GalleryApplicationVersionList type. 2387type GalleryApplicationVersionListResponse struct { 2388 // The List Gallery Application version operation response. 2389 GalleryApplicationVersionList *GalleryApplicationVersionList 2390 2391 // RawResponse contains the underlying HTTP response. 2392 RawResponse *http.Response 2393} 2394 2395// GalleryApplicationVersionPollerResponse is the response envelope for operations that asynchronously return a GalleryApplicationVersion type. 2396type GalleryApplicationVersionPollerResponse struct { 2397 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 2398 PollUntilDone func(ctx context.Context, frequency time.Duration) (GalleryApplicationVersionResponse, error) 2399 2400 // Poller contains an initialized poller. 2401 Poller GalleryApplicationVersionPoller 2402 2403 // RawResponse contains the underlying HTTP response. 2404 RawResponse *http.Response 2405} 2406 2407// Describes the properties of a gallery image version. 2408type GalleryApplicationVersionProperties struct { 2409 // READ-ONLY; The provisioning state, which only appears in the response. 2410 ProvisioningState *GalleryApplicationVersionPropertiesProvisioningState `json:"provisioningState,omitempty" azure:"ro"` 2411 2412 // The publishing profile of a gallery image version. 2413 PublishingProfile *GalleryApplicationVersionPublishingProfile `json:"publishingProfile,omitempty"` 2414 2415 // READ-ONLY; This is the replication status of the gallery image version. 2416 ReplicationStatus *ReplicationStatus `json:"replicationStatus,omitempty" azure:"ro"` 2417} 2418 2419// The publishing profile of a gallery image version. 2420type GalleryApplicationVersionPublishingProfile struct { 2421 GalleryArtifactPublishingProfileBase 2422 // Optional. Whether or not this application reports health. 2423 EnableHealthCheck *bool `json:"enableHealthCheck,omitempty"` 2424 ManageActions *UserArtifactManage `json:"manageActions,omitempty"` 2425 2426 // The source image from which the Image Version is going to be created. 2427 Source *UserArtifactSource `json:"source,omitempty"` 2428} 2429 2430// MarshalJSON implements the json.Marshaller interface for type GalleryApplicationVersionPublishingProfile. 2431func (g GalleryApplicationVersionPublishingProfile) MarshalJSON() ([]byte, error) { 2432 objectMap := g.GalleryArtifactPublishingProfileBase.marshalInternal() 2433 if g.EnableHealthCheck != nil { 2434 objectMap["enableHealthCheck"] = g.EnableHealthCheck 2435 } 2436 if g.ManageActions != nil { 2437 objectMap["manageActions"] = g.ManageActions 2438 } 2439 if g.Source != nil { 2440 objectMap["source"] = g.Source 2441 } 2442 return json.Marshal(objectMap) 2443} 2444 2445// UnmarshalJSON implements the json.Unmarshaller interface for type GalleryApplicationVersionPublishingProfile. 2446func (g *GalleryApplicationVersionPublishingProfile) UnmarshalJSON(data []byte) error { 2447 var rawMsg map[string]*json.RawMessage 2448 if err := json.Unmarshal(data, &rawMsg); err != nil { 2449 return err 2450 } 2451 for key, val := range rawMsg { 2452 var err error 2453 switch key { 2454 case "enableHealthCheck": 2455 if val != nil { 2456 err = json.Unmarshal(*val, &g.EnableHealthCheck) 2457 } 2458 delete(rawMsg, key) 2459 case "manageActions": 2460 if val != nil { 2461 err = json.Unmarshal(*val, &g.ManageActions) 2462 } 2463 delete(rawMsg, key) 2464 case "source": 2465 if val != nil { 2466 err = json.Unmarshal(*val, &g.Source) 2467 } 2468 delete(rawMsg, key) 2469 } 2470 if err != nil { 2471 return err 2472 } 2473 } 2474 return g.GalleryArtifactPublishingProfileBase.unmarshalInternal(rawMsg) 2475} 2476 2477// GalleryApplicationVersionResponse is the response envelope for operations that return a GalleryApplicationVersion type. 2478type GalleryApplicationVersionResponse struct { 2479 // Specifies information about the gallery Application Version that you want to create or update. 2480 GalleryApplicationVersion *GalleryApplicationVersion 2481 2482 // RawResponse contains the underlying HTTP response. 2483 RawResponse *http.Response 2484} 2485 2486// Specifies information about the gallery Application Version that you want to update. 2487type GalleryApplicationVersionUpdate struct { 2488 UpdateResourceDefinition 2489 // Describes the properties of a gallery image version. 2490 Properties *GalleryApplicationVersionProperties `json:"properties,omitempty"` 2491} 2492 2493// GalleryApplicationVersionsBeginCreateOrUpdateOptions contains the optional parameters for the GalleryApplicationVersions.BeginCreateOrUpdate method. 2494type GalleryApplicationVersionsBeginCreateOrUpdateOptions struct { 2495 // placeholder for future optional parameters 2496} 2497 2498// GalleryApplicationVersionsBeginDeleteOptions contains the optional parameters for the GalleryApplicationVersions.BeginDelete method. 2499type GalleryApplicationVersionsBeginDeleteOptions struct { 2500 // placeholder for future optional parameters 2501} 2502 2503// GalleryApplicationVersionsBeginUpdateOptions contains the optional parameters for the GalleryApplicationVersions.BeginUpdate method. 2504type GalleryApplicationVersionsBeginUpdateOptions struct { 2505 // placeholder for future optional parameters 2506} 2507 2508// GalleryApplicationVersionsGetOptions contains the optional parameters for the GalleryApplicationVersions.Get method. 2509type GalleryApplicationVersionsGetOptions struct { 2510 // The expand expression to apply on the operation. 2511 Expand *ReplicationStatusTypes 2512} 2513 2514// GalleryApplicationVersionsListByGalleryApplicationOptions contains the optional parameters for the GalleryApplicationVersions.ListByGalleryApplication 2515// method. 2516type GalleryApplicationVersionsListByGalleryApplicationOptions struct { 2517 // placeholder for future optional parameters 2518} 2519 2520// GalleryApplicationsBeginCreateOrUpdateOptions contains the optional parameters for the GalleryApplications.BeginCreateOrUpdate method. 2521type GalleryApplicationsBeginCreateOrUpdateOptions struct { 2522 // placeholder for future optional parameters 2523} 2524 2525// GalleryApplicationsBeginDeleteOptions contains the optional parameters for the GalleryApplications.BeginDelete method. 2526type GalleryApplicationsBeginDeleteOptions struct { 2527 // placeholder for future optional parameters 2528} 2529 2530// GalleryApplicationsBeginUpdateOptions contains the optional parameters for the GalleryApplications.BeginUpdate method. 2531type GalleryApplicationsBeginUpdateOptions struct { 2532 // placeholder for future optional parameters 2533} 2534 2535// GalleryApplicationsGetOptions contains the optional parameters for the GalleryApplications.Get method. 2536type GalleryApplicationsGetOptions struct { 2537 // placeholder for future optional parameters 2538} 2539 2540// GalleryApplicationsListByGalleryOptions contains the optional parameters for the GalleryApplications.ListByGallery method. 2541type GalleryApplicationsListByGalleryOptions struct { 2542 // placeholder for future optional parameters 2543} 2544 2545// Describes the basic gallery artifact publishing profile. 2546type GalleryArtifactPublishingProfileBase struct { 2547 // The end of life date of the gallery image version. This property can be used for decommissioning purposes. This property is updatable. 2548 EndOfLifeDate *time.Time `json:"endOfLifeDate,omitempty"` 2549 2550 // If set to true, Virtual Machines deployed from the latest version of the Image Definition won't use this Image Version. 2551 ExcludeFromLatest *bool `json:"excludeFromLatest,omitempty"` 2552 2553 // READ-ONLY; The timestamp for when the gallery image version is published. 2554 PublishedDate *time.Time `json:"publishedDate,omitempty" azure:"ro"` 2555 2556 // 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. 2557 // This property is updatable. 2558 ReplicaCount *int32 `json:"replicaCount,omitempty"` 2559 2560 // Specifies the storage account type to be used to store the image. This property is not updatable. 2561 StorageAccountType *StorageAccountType `json:"storageAccountType,omitempty"` 2562 2563 // The target regions where the Image Version is going to be replicated to. This property is updatable. 2564 TargetRegions *[]TargetRegion `json:"targetRegions,omitempty"` 2565} 2566 2567// MarshalJSON implements the json.Marshaller interface for type GalleryArtifactPublishingProfileBase. 2568func (g GalleryArtifactPublishingProfileBase) MarshalJSON() ([]byte, error) { 2569 objectMap := g.marshalInternal() 2570 return json.Marshal(objectMap) 2571} 2572 2573// UnmarshalJSON implements the json.Unmarshaller interface for type GalleryArtifactPublishingProfileBase. 2574func (g *GalleryArtifactPublishingProfileBase) UnmarshalJSON(data []byte) error { 2575 var rawMsg map[string]*json.RawMessage 2576 if err := json.Unmarshal(data, &rawMsg); err != nil { 2577 return err 2578 } 2579 return g.unmarshalInternal(rawMsg) 2580} 2581 2582func (g GalleryArtifactPublishingProfileBase) marshalInternal() map[string]interface{} { 2583 objectMap := make(map[string]interface{}) 2584 if g.EndOfLifeDate != nil { 2585 objectMap["endOfLifeDate"] = (*timeRFC3339)(g.EndOfLifeDate) 2586 } 2587 if g.ExcludeFromLatest != nil { 2588 objectMap["excludeFromLatest"] = g.ExcludeFromLatest 2589 } 2590 if g.PublishedDate != nil { 2591 objectMap["publishedDate"] = (*timeRFC3339)(g.PublishedDate) 2592 } 2593 if g.ReplicaCount != nil { 2594 objectMap["replicaCount"] = g.ReplicaCount 2595 } 2596 if g.StorageAccountType != nil { 2597 objectMap["storageAccountType"] = g.StorageAccountType 2598 } 2599 if g.TargetRegions != nil { 2600 objectMap["targetRegions"] = g.TargetRegions 2601 } 2602 return objectMap 2603} 2604 2605func (g *GalleryArtifactPublishingProfileBase) unmarshalInternal(rawMsg map[string]*json.RawMessage) error { 2606 for key, val := range rawMsg { 2607 var err error 2608 switch key { 2609 case "endOfLifeDate": 2610 if val != nil { 2611 var aux timeRFC3339 2612 err = json.Unmarshal(*val, &aux) 2613 g.EndOfLifeDate = (*time.Time)(&aux) 2614 } 2615 delete(rawMsg, key) 2616 case "excludeFromLatest": 2617 if val != nil { 2618 err = json.Unmarshal(*val, &g.ExcludeFromLatest) 2619 } 2620 delete(rawMsg, key) 2621 case "publishedDate": 2622 if val != nil { 2623 var aux timeRFC3339 2624 err = json.Unmarshal(*val, &aux) 2625 g.PublishedDate = (*time.Time)(&aux) 2626 } 2627 delete(rawMsg, key) 2628 case "replicaCount": 2629 if val != nil { 2630 err = json.Unmarshal(*val, &g.ReplicaCount) 2631 } 2632 delete(rawMsg, key) 2633 case "storageAccountType": 2634 if val != nil { 2635 err = json.Unmarshal(*val, &g.StorageAccountType) 2636 } 2637 delete(rawMsg, key) 2638 case "targetRegions": 2639 if val != nil { 2640 err = json.Unmarshal(*val, &g.TargetRegions) 2641 } 2642 delete(rawMsg, key) 2643 } 2644 if err != nil { 2645 return err 2646 } 2647 } 2648 return nil 2649} 2650 2651// The source image from which the Image Version is going to be created. 2652type GalleryArtifactSource struct { 2653 // The managed artifact. 2654 ManagedImage *ManagedArtifact `json:"managedImage,omitempty"` 2655} 2656 2657// The gallery artifact version source. 2658type GalleryArtifactVersionSource struct { 2659 // The id of the gallery artifact version source. Can specify a disk uri, snapshot uri, user image or storage account resource. 2660 ID *string `json:"id,omitempty"` 2661 2662 // The uri of the gallery artifact version source. Currently used to specify vhd/blob source. 2663 URI *string `json:"uri,omitempty"` 2664} 2665 2666// This is the data disk image. 2667type GalleryDataDiskImage struct { 2668 GalleryDiskImage 2669 // 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 2670 // must be unique for each data disk attached to the 2671 // Virtual Machine. 2672 Lun *int32 `json:"lun,omitempty"` 2673} 2674 2675// This is the disk image base class. 2676type GalleryDiskImage struct { 2677 // The host caching of the disk. Valid values are 'None', 'ReadOnly', and 'ReadWrite' 2678 HostCaching *HostCaching `json:"hostCaching,omitempty"` 2679 2680 // READ-ONLY; This property indicates the size of the VHD to be created. 2681 SizeInGb *int32 `json:"sizeInGB,omitempty" azure:"ro"` 2682 2683 // The gallery artifact version source. 2684 Source *GalleryArtifactVersionSource `json:"source,omitempty"` 2685} 2686 2687// Describes the gallery unique name. 2688type GalleryIDentifier struct { 2689 // READ-ONLY; The unique name of the Shared Image Gallery. This name is generated automatically by Azure. 2690 UniqueName *string `json:"uniqueName,omitempty" azure:"ro"` 2691} 2692 2693// Specifies information about the gallery image definition that you want to create or update. 2694type GalleryImage struct { 2695 Resource 2696 // Describes the properties of a gallery image definition. 2697 Properties *GalleryImageProperties `json:"properties,omitempty"` 2698} 2699 2700// A feature for gallery image. 2701type GalleryImageFeature struct { 2702 // The name of the gallery image feature. 2703 Name *string `json:"name,omitempty"` 2704 2705 // The value of the gallery image feature. 2706 Value *string `json:"value,omitempty"` 2707} 2708 2709// This is the gallery image definition identifier. 2710type GalleryImageIDentifier struct { 2711 // The name of the gallery image definition offer. 2712 Offer *string `json:"offer,omitempty"` 2713 2714 // The name of the gallery image definition publisher. 2715 Publisher *string `json:"publisher,omitempty"` 2716 2717 // The name of the gallery image definition SKU. 2718 SKU *string `json:"sku,omitempty"` 2719} 2720 2721// The List Gallery Images operation response. 2722type GalleryImageList struct { 2723 // 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. 2724 NextLink *string `json:"nextLink,omitempty"` 2725 2726 // A list of Shared Image Gallery images. 2727 Value *[]GalleryImage `json:"value,omitempty"` 2728} 2729 2730// GalleryImageListResponse is the response envelope for operations that return a GalleryImageList type. 2731type GalleryImageListResponse struct { 2732 // The List Gallery Images operation response. 2733 GalleryImageList *GalleryImageList 2734 2735 // RawResponse contains the underlying HTTP response. 2736 RawResponse *http.Response 2737} 2738 2739// GalleryImagePollerResponse is the response envelope for operations that asynchronously return a GalleryImage type. 2740type GalleryImagePollerResponse struct { 2741 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 2742 PollUntilDone func(ctx context.Context, frequency time.Duration) (GalleryImageResponse, error) 2743 2744 // Poller contains an initialized poller. 2745 Poller GalleryImagePoller 2746 2747 // RawResponse contains the underlying HTTP response. 2748 RawResponse *http.Response 2749} 2750 2751// Describes the properties of a gallery image definition. 2752type GalleryImageProperties struct { 2753 // The description of this gallery image definition resource. This property is updatable. 2754 Description *string `json:"description,omitempty"` 2755 2756 // Describes the disallowed disk types. 2757 Disallowed *Disallowed `json:"disallowed,omitempty"` 2758 2759 // The end of life date of the gallery image definition. This property can be used for decommissioning purposes. This property is updatable. 2760 EndOfLifeDate *time.Time `json:"endOfLifeDate,omitempty"` 2761 2762 // The Eula agreement for the gallery image definition. 2763 Eula *string `json:"eula,omitempty"` 2764 2765 // A list of gallery image features. 2766 Features *[]GalleryImageFeature `json:"features,omitempty"` 2767 2768 // The hypervisor generation of the Virtual Machine. Applicable to OS disks only. 2769 HyperVGeneration *HyperVGeneration `json:"hyperVGeneration,omitempty"` 2770 2771 // This is the gallery image definition identifier. 2772 IDentifier *GalleryImageIDentifier `json:"identifier,omitempty"` 2773 2774 // This property allows the user to specify whether the virtual machines created under this image are 'Generalized' or 'Specialized'. 2775 OSState *OperatingSystemStateTypes `json:"osState,omitempty"` 2776 2777 // 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. 2778 // Possible values are: 2779 // Windows 2780 // Linux 2781 OSType *OperatingSystemTypes `json:"osType,omitempty"` 2782 2783 // The privacy statement uri. 2784 PrivacyStatementURI *string `json:"privacyStatementUri,omitempty"` 2785 2786 // READ-ONLY; The provisioning state, which only appears in the response. 2787 ProvisioningState *GalleryImagePropertiesProvisioningState `json:"provisioningState,omitempty" azure:"ro"` 2788 2789 // Describes the gallery image definition purchase plan. This is used by marketplace images. 2790 PurchasePlan *ImagePurchasePlan `json:"purchasePlan,omitempty"` 2791 2792 // The properties describe the recommended machine configuration for this Image Definition. These properties are updatable. 2793 Recommended *RecommendedMachineConfiguration `json:"recommended,omitempty"` 2794 2795 // The release note uri. 2796 ReleaseNoteURI *string `json:"releaseNoteUri,omitempty"` 2797} 2798 2799// MarshalJSON implements the json.Marshaller interface for type GalleryImageProperties. 2800func (g GalleryImageProperties) MarshalJSON() ([]byte, error) { 2801 objectMap := make(map[string]interface{}) 2802 if g.Description != nil { 2803 objectMap["description"] = g.Description 2804 } 2805 if g.Disallowed != nil { 2806 objectMap["disallowed"] = g.Disallowed 2807 } 2808 if g.EndOfLifeDate != nil { 2809 objectMap["endOfLifeDate"] = (*timeRFC3339)(g.EndOfLifeDate) 2810 } 2811 if g.Eula != nil { 2812 objectMap["eula"] = g.Eula 2813 } 2814 if g.Features != nil { 2815 objectMap["features"] = g.Features 2816 } 2817 if g.HyperVGeneration != nil { 2818 objectMap["hyperVGeneration"] = g.HyperVGeneration 2819 } 2820 if g.IDentifier != nil { 2821 objectMap["identifier"] = g.IDentifier 2822 } 2823 if g.OSState != nil { 2824 objectMap["osState"] = g.OSState 2825 } 2826 if g.OSType != nil { 2827 objectMap["osType"] = g.OSType 2828 } 2829 if g.PrivacyStatementURI != nil { 2830 objectMap["privacyStatementUri"] = g.PrivacyStatementURI 2831 } 2832 if g.ProvisioningState != nil { 2833 objectMap["provisioningState"] = g.ProvisioningState 2834 } 2835 if g.PurchasePlan != nil { 2836 objectMap["purchasePlan"] = g.PurchasePlan 2837 } 2838 if g.Recommended != nil { 2839 objectMap["recommended"] = g.Recommended 2840 } 2841 if g.ReleaseNoteURI != nil { 2842 objectMap["releaseNoteUri"] = g.ReleaseNoteURI 2843 } 2844 return json.Marshal(objectMap) 2845} 2846 2847// UnmarshalJSON implements the json.Unmarshaller interface for type GalleryImageProperties. 2848func (g *GalleryImageProperties) UnmarshalJSON(data []byte) error { 2849 var rawMsg map[string]*json.RawMessage 2850 if err := json.Unmarshal(data, &rawMsg); err != nil { 2851 return err 2852 } 2853 for key, val := range rawMsg { 2854 var err error 2855 switch key { 2856 case "description": 2857 if val != nil { 2858 err = json.Unmarshal(*val, &g.Description) 2859 } 2860 delete(rawMsg, key) 2861 case "disallowed": 2862 if val != nil { 2863 err = json.Unmarshal(*val, &g.Disallowed) 2864 } 2865 delete(rawMsg, key) 2866 case "endOfLifeDate": 2867 if val != nil { 2868 var aux timeRFC3339 2869 err = json.Unmarshal(*val, &aux) 2870 g.EndOfLifeDate = (*time.Time)(&aux) 2871 } 2872 delete(rawMsg, key) 2873 case "eula": 2874 if val != nil { 2875 err = json.Unmarshal(*val, &g.Eula) 2876 } 2877 delete(rawMsg, key) 2878 case "features": 2879 if val != nil { 2880 err = json.Unmarshal(*val, &g.Features) 2881 } 2882 delete(rawMsg, key) 2883 case "hyperVGeneration": 2884 if val != nil { 2885 err = json.Unmarshal(*val, &g.HyperVGeneration) 2886 } 2887 delete(rawMsg, key) 2888 case "identifier": 2889 if val != nil { 2890 err = json.Unmarshal(*val, &g.IDentifier) 2891 } 2892 delete(rawMsg, key) 2893 case "osState": 2894 if val != nil { 2895 err = json.Unmarshal(*val, &g.OSState) 2896 } 2897 delete(rawMsg, key) 2898 case "osType": 2899 if val != nil { 2900 err = json.Unmarshal(*val, &g.OSType) 2901 } 2902 delete(rawMsg, key) 2903 case "privacyStatementUri": 2904 if val != nil { 2905 err = json.Unmarshal(*val, &g.PrivacyStatementURI) 2906 } 2907 delete(rawMsg, key) 2908 case "provisioningState": 2909 if val != nil { 2910 err = json.Unmarshal(*val, &g.ProvisioningState) 2911 } 2912 delete(rawMsg, key) 2913 case "purchasePlan": 2914 if val != nil { 2915 err = json.Unmarshal(*val, &g.PurchasePlan) 2916 } 2917 delete(rawMsg, key) 2918 case "recommended": 2919 if val != nil { 2920 err = json.Unmarshal(*val, &g.Recommended) 2921 } 2922 delete(rawMsg, key) 2923 case "releaseNoteUri": 2924 if val != nil { 2925 err = json.Unmarshal(*val, &g.ReleaseNoteURI) 2926 } 2927 delete(rawMsg, key) 2928 } 2929 if err != nil { 2930 return err 2931 } 2932 } 2933 return nil 2934} 2935 2936// GalleryImageResponse is the response envelope for operations that return a GalleryImage type. 2937type GalleryImageResponse struct { 2938 // Specifies information about the gallery image definition that you want to create or update. 2939 GalleryImage *GalleryImage 2940 2941 // RawResponse contains the underlying HTTP response. 2942 RawResponse *http.Response 2943} 2944 2945// Specifies information about the gallery image definition that you want to update. 2946type GalleryImageUpdate struct { 2947 UpdateResourceDefinition 2948 // Describes the properties of a gallery image definition. 2949 Properties *GalleryImageProperties `json:"properties,omitempty"` 2950} 2951 2952// Specifies information about the gallery image version that you want to create or update. 2953type GalleryImageVersion struct { 2954 Resource 2955 // Describes the properties of a gallery image version. 2956 Properties *GalleryImageVersionProperties `json:"properties,omitempty"` 2957} 2958 2959// The List Gallery Image version operation response. 2960type GalleryImageVersionList struct { 2961 // The uri to fetch the next page of gallery image versions. Call ListNext() with this to fetch the next page of gallery image versions. 2962 NextLink *string `json:"nextLink,omitempty"` 2963 2964 // A list of gallery image versions. 2965 Value *[]GalleryImageVersion `json:"value,omitempty"` 2966} 2967 2968// GalleryImageVersionListResponse is the response envelope for operations that return a GalleryImageVersionList type. 2969type GalleryImageVersionListResponse struct { 2970 // The List Gallery Image version operation response. 2971 GalleryImageVersionList *GalleryImageVersionList 2972 2973 // RawResponse contains the underlying HTTP response. 2974 RawResponse *http.Response 2975} 2976 2977// GalleryImageVersionPollerResponse is the response envelope for operations that asynchronously return a GalleryImageVersion type. 2978type GalleryImageVersionPollerResponse struct { 2979 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 2980 PollUntilDone func(ctx context.Context, frequency time.Duration) (GalleryImageVersionResponse, error) 2981 2982 // Poller contains an initialized poller. 2983 Poller GalleryImageVersionPoller 2984 2985 // RawResponse contains the underlying HTTP response. 2986 RawResponse *http.Response 2987} 2988 2989// Describes the properties of a gallery image version. 2990type GalleryImageVersionProperties struct { 2991 // READ-ONLY; The provisioning state, which only appears in the response. 2992 ProvisioningState *GalleryImageVersionPropertiesProvisioningState `json:"provisioningState,omitempty" azure:"ro"` 2993 2994 // Describes the basic gallery artifact publishing profile. 2995 PublishingProfile *GalleryArtifactPublishingProfileBase `json:"publishingProfile,omitempty"` 2996 2997 // READ-ONLY; This is the replication status of the gallery image version. 2998 ReplicationStatus *ReplicationStatus `json:"replicationStatus,omitempty" azure:"ro"` 2999 3000 // This is the storage profile of a Gallery Image Version. 3001 StorageProfile *GalleryImageVersionStorageProfile `json:"storageProfile,omitempty"` 3002} 3003 3004// The publishing profile of a gallery image Version. 3005type GalleryImageVersionPublishingProfile struct { 3006 GalleryArtifactPublishingProfileBase 3007} 3008 3009// GalleryImageVersionResponse is the response envelope for operations that return a GalleryImageVersion type. 3010type GalleryImageVersionResponse struct { 3011 // Specifies information about the gallery image version that you want to create or update. 3012 GalleryImageVersion *GalleryImageVersion 3013 3014 // RawResponse contains the underlying HTTP response. 3015 RawResponse *http.Response 3016} 3017 3018// This is the storage profile of a Gallery Image Version. 3019type GalleryImageVersionStorageProfile struct { 3020 // A list of data disk images. 3021 DataDiskImages *[]GalleryDataDiskImage `json:"dataDiskImages,omitempty"` 3022 3023 // This is the disk image base class. 3024 OSDiskImage *GalleryDiskImage `json:"osDiskImage,omitempty"` 3025 3026 // The gallery artifact version source. 3027 Source *GalleryArtifactVersionSource `json:"source,omitempty"` 3028} 3029 3030// Specifies information about the gallery image version that you want to update. 3031type GalleryImageVersionUpdate struct { 3032 UpdateResourceDefinition 3033 // Describes the properties of a gallery image version. 3034 Properties *GalleryImageVersionProperties `json:"properties,omitempty"` 3035} 3036 3037// GalleryImageVersionsBeginCreateOrUpdateOptions contains the optional parameters for the GalleryImageVersions.BeginCreateOrUpdate method. 3038type GalleryImageVersionsBeginCreateOrUpdateOptions struct { 3039 // placeholder for future optional parameters 3040} 3041 3042// GalleryImageVersionsBeginDeleteOptions contains the optional parameters for the GalleryImageVersions.BeginDelete method. 3043type GalleryImageVersionsBeginDeleteOptions struct { 3044 // placeholder for future optional parameters 3045} 3046 3047// GalleryImageVersionsBeginUpdateOptions contains the optional parameters for the GalleryImageVersions.BeginUpdate method. 3048type GalleryImageVersionsBeginUpdateOptions struct { 3049 // placeholder for future optional parameters 3050} 3051 3052// GalleryImageVersionsGetOptions contains the optional parameters for the GalleryImageVersions.Get method. 3053type GalleryImageVersionsGetOptions struct { 3054 // The expand expression to apply on the operation. 3055 Expand *ReplicationStatusTypes 3056} 3057 3058// GalleryImageVersionsListByGalleryImageOptions contains the optional parameters for the GalleryImageVersions.ListByGalleryImage method. 3059type GalleryImageVersionsListByGalleryImageOptions struct { 3060 // placeholder for future optional parameters 3061} 3062 3063// GalleryImagesBeginCreateOrUpdateOptions contains the optional parameters for the GalleryImages.BeginCreateOrUpdate method. 3064type GalleryImagesBeginCreateOrUpdateOptions struct { 3065 // placeholder for future optional parameters 3066} 3067 3068// GalleryImagesBeginDeleteOptions contains the optional parameters for the GalleryImages.BeginDelete method. 3069type GalleryImagesBeginDeleteOptions struct { 3070 // placeholder for future optional parameters 3071} 3072 3073// GalleryImagesBeginUpdateOptions contains the optional parameters for the GalleryImages.BeginUpdate method. 3074type GalleryImagesBeginUpdateOptions struct { 3075 // placeholder for future optional parameters 3076} 3077 3078// GalleryImagesGetOptions contains the optional parameters for the GalleryImages.Get method. 3079type GalleryImagesGetOptions struct { 3080 // placeholder for future optional parameters 3081} 3082 3083// GalleryImagesListByGalleryOptions contains the optional parameters for the GalleryImages.ListByGallery method. 3084type GalleryImagesListByGalleryOptions struct { 3085 // placeholder for future optional parameters 3086} 3087 3088// The List Galleries operation response. 3089type GalleryList struct { 3090 // The uri to fetch the next page of galleries. Call ListNext() with this to fetch the next page of galleries. 3091 NextLink *string `json:"nextLink,omitempty"` 3092 3093 // A list of galleries. 3094 Value *[]Gallery `json:"value,omitempty"` 3095} 3096 3097// GalleryListResponse is the response envelope for operations that return a GalleryList type. 3098type GalleryListResponse struct { 3099 // The List Galleries operation response. 3100 GalleryList *GalleryList 3101 3102 // RawResponse contains the underlying HTTP response. 3103 RawResponse *http.Response 3104} 3105 3106// This is the OS disk image. 3107type GalleryOSDiskImage struct { 3108 GalleryDiskImage 3109} 3110 3111// GalleryPollerResponse is the response envelope for operations that asynchronously return a Gallery type. 3112type GalleryPollerResponse struct { 3113 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 3114 PollUntilDone func(ctx context.Context, frequency time.Duration) (GalleryResponse, error) 3115 3116 // Poller contains an initialized poller. 3117 Poller GalleryPoller 3118 3119 // RawResponse contains the underlying HTTP response. 3120 RawResponse *http.Response 3121} 3122 3123// Describes the properties of a Shared Image Gallery. 3124type GalleryProperties struct { 3125 // The description of this Shared Image Gallery resource. This property is updatable. 3126 Description *string `json:"description,omitempty"` 3127 3128 // Describes the gallery unique name. 3129 IDentifier *GalleryIDentifier `json:"identifier,omitempty"` 3130 3131 // READ-ONLY; The provisioning state, which only appears in the response. 3132 ProvisioningState *GalleryPropertiesProvisioningState `json:"provisioningState,omitempty" azure:"ro"` 3133 3134 // Profile for gallery sharing to subscription or tenant 3135 SharingProfile *SharingProfile `json:"sharingProfile,omitempty"` 3136} 3137 3138// GalleryResponse is the response envelope for operations that return a Gallery type. 3139type GalleryResponse struct { 3140 // Specifies information about the Shared Image Gallery that you want to create or update. 3141 Gallery *Gallery 3142 3143 // RawResponse contains the underlying HTTP response. 3144 RawResponse *http.Response 3145} 3146 3147// GallerySharingProfileBeginUpdateOptions contains the optional parameters for the GallerySharingProfile.BeginUpdate method. 3148type GallerySharingProfileBeginUpdateOptions struct { 3149 // placeholder for future optional parameters 3150} 3151 3152// Specifies information about the Shared Image Gallery that you want to update. 3153type GalleryUpdate struct { 3154 UpdateResourceDefinition 3155 // Describes the properties of a Shared Image Gallery. 3156 Properties *GalleryProperties `json:"properties,omitempty"` 3157} 3158 3159// Data used for requesting a SAS. 3160type GrantAccessData struct { 3161 Access *AccessLevel `json:"access,omitempty"` 3162 3163 // Time duration in seconds until the SAS access expires. 3164 DurationInSeconds *int32 `json:"durationInSeconds,omitempty"` 3165} 3166 3167// HTTPPollerResponse contains the asynchronous HTTP response from the call to the service endpoint. 3168type HTTPPollerResponse struct { 3169 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 3170 PollUntilDone func(ctx context.Context, frequency time.Duration) (*http.Response, error) 3171 3172 // Poller contains an initialized poller. 3173 Poller HTTPPoller 3174 3175 // RawResponse contains the underlying HTTP response. 3176 RawResponse *http.Response 3177} 3178 3179// Specifies the hardware settings for the virtual machine. 3180type HardwareProfile struct { 3181 // Specifies the size of the virtual machine. For more information about virtual machine sizes, see Sizes for virtual machines [https://docs.microsoft.com/en-us/azure/virtual-machines/sizes]. 3182 // The available VM sizes depend on region and availability set. For a list of available sizes use these APIs: 3183 // List all available virtual machine sizes in an availability set [https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes] 3184 // List all available virtual machine sizes in a region [https://docs.microsoft.com/en-us/rest/api/compute/resourceskus/list] 3185 // List all available virtual machine sizes for resizing [https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes]. 3186 // This list of sizes is no longer updated and the VirtualMachineSizeTypes string constants will be removed from the subsequent REST API specification. 3187 // Use List all available virtual machine sizes in a 3188 // region [https://docs.microsoft.com/en-us/rest/api/compute/resourceskus/list] to get the latest sizes. 3189 VMSize *VirtualMachineSizeTypes `json:"vmSize,omitempty"` 3190} 3191 3192// 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, 3193// the destination virtual hard drive must not 3194// exist. 3195type Image struct { 3196 Resource 3197 // Describes the properties of an Image. 3198 Properties *ImageProperties `json:"properties,omitempty"` 3199} 3200 3201// Describes a data disk. 3202type ImageDataDisk struct { 3203 ImageDisk 3204 // 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 3205 // disk attached to a VM. 3206 Lun *int32 `json:"lun,omitempty"` 3207} 3208 3209// Describes a image disk. 3210type ImageDisk struct { 3211 // The Virtual Hard Disk. 3212 BlobURI *string `json:"blobUri,omitempty"` 3213 3214 // Specifies the caching requirements. 3215 // Possible values are: 3216 // None 3217 // ReadOnly 3218 // ReadWrite 3219 // Default: None for Standard storage. ReadOnly for Premium storage 3220 Caching *CachingTypes `json:"caching,omitempty"` 3221 3222 // Specifies the customer managed disk encryption set resource id for the managed image disk. 3223 DiskEncryptionSet *SubResource `json:"diskEncryptionSet,omitempty"` 3224 3225 // 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. 3226 // This value cannot be larger than 1023 GB 3227 DiskSizeGb *int32 `json:"diskSizeGB,omitempty"` 3228 3229 // The managedDisk. 3230 ManagedDisk *SubResource `json:"managedDisk,omitempty"` 3231 3232 // The snapshot. 3233 Snapshot *SubResource `json:"snapshot,omitempty"` 3234 3235 // 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. 3236 StorageAccountType *StorageAccountTypes `json:"storageAccountType,omitempty"` 3237} 3238 3239// The source image used for creating the disk. 3240type ImageDiskReference struct { 3241 // A relative uri containing either a Platform Image Repository or user image reference. 3242 ID *string `json:"id,omitempty"` 3243 3244 // 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 3245 // is null. 3246 Lun *int32 `json:"lun,omitempty"` 3247} 3248 3249// The List Image operation response. 3250type ImageListResult struct { 3251 // The uri to fetch the next page of Images. Call ListNext() with this to fetch the next page of Images. 3252 NextLink *string `json:"nextLink,omitempty"` 3253 3254 // The list of Images. 3255 Value *[]Image `json:"value,omitempty"` 3256} 3257 3258// ImageListResultResponse is the response envelope for operations that return a ImageListResult type. 3259type ImageListResultResponse struct { 3260 // The List Image operation response. 3261 ImageListResult *ImageListResult 3262 3263 // RawResponse contains the underlying HTTP response. 3264 RawResponse *http.Response 3265} 3266 3267// Describes an Operating System disk. 3268type ImageOSDisk struct { 3269 ImageDisk 3270 // The OS State. 3271 OSState *OperatingSystemStateTypes `json:"osState,omitempty"` 3272 3273 // 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. 3274 // Possible values are: 3275 // Windows 3276 // Linux 3277 OSType *OperatingSystemTypes `json:"osType,omitempty"` 3278} 3279 3280// ImagePollerResponse is the response envelope for operations that asynchronously return a Image type. 3281type ImagePollerResponse struct { 3282 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 3283 PollUntilDone func(ctx context.Context, frequency time.Duration) (ImageResponse, error) 3284 3285 // Poller contains an initialized poller. 3286 Poller ImagePoller 3287 3288 // RawResponse contains the underlying HTTP response. 3289 RawResponse *http.Response 3290} 3291 3292// Describes the properties of an Image. 3293type ImageProperties struct { 3294 // Gets the HyperVGenerationType of the VirtualMachine created from the image 3295 HyperVGeneration *HyperVGenerationTypes `json:"hyperVGeneration,omitempty"` 3296 3297 // READ-ONLY; The provisioning state. 3298 ProvisioningState *string `json:"provisioningState,omitempty" azure:"ro"` 3299 3300 // The source virtual machine from which Image is created. 3301 SourceVirtualMachine *SubResource `json:"sourceVirtualMachine,omitempty"` 3302 3303 // Specifies the storage settings for the virtual machine disks. 3304 StorageProfile *ImageStorageProfile `json:"storageProfile,omitempty"` 3305} 3306 3307// Describes the gallery image definition purchase plan. This is used by marketplace images. 3308type ImagePurchasePlan struct { 3309 // The plan ID. 3310 Name *string `json:"name,omitempty"` 3311 3312 // The product ID. 3313 Product *string `json:"product,omitempty"` 3314 3315 // The publisher ID. 3316 Publisher *string `json:"publisher,omitempty"` 3317} 3318 3319// Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This 3320// element is required when you want to use a platform 3321// image, marketplace image, or virtual machine image, but is not used in other creation operations. NOTE: Image reference publisher and offer can only 3322// be set when you create the scale set. 3323type ImageReference struct { 3324 SubResource 3325 // READ-ONLY; Specifies in decimal numbers, the version of platform image or marketplace image used to create the virtual machine. This readonly field differs 3326 // from 'version', only if the value specified in 3327 // 'version' field is 'latest'. 3328 ExactVersion *string `json:"exactVersion,omitempty" azure:"ro"` 3329 3330 // Specifies the offer of the platform image or marketplace image used to create the virtual machine. 3331 Offer *string `json:"offer,omitempty"` 3332 3333 // The image publisher. 3334 Publisher *string `json:"publisher,omitempty"` 3335 3336 // The image SKU. 3337 SKU *string `json:"sku,omitempty"` 3338 3339 // 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'. 3340 // Major, Minor, and Build are decimal numbers. 3341 // 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 3342 // after deploy time even if a new version becomes 3343 // available. 3344 Version *string `json:"version,omitempty"` 3345} 3346 3347// ImageResponse is the response envelope for operations that return a Image type. 3348type ImageResponse struct { 3349 // 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, 3350 // the destination virtual hard drive must not exist. 3351 Image *Image 3352 3353 // RawResponse contains the underlying HTTP response. 3354 RawResponse *http.Response 3355} 3356 3357// Describes a storage profile. 3358type ImageStorageProfile struct { 3359 // Specifies the parameters that are used to add a data disk to a virtual machine. 3360 // For more information about disks, see About disks and VHDs for Azure virtual machines 3361 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json]. 3362 DataDisks *[]ImageDataDisk `json:"dataDisks,omitempty"` 3363 3364 // Specifies information about the operating system disk used by the virtual machine. 3365 // For more information about disks, see About disks and VHDs for Azure virtual machines 3366 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json]. 3367 OSDisk *ImageOSDisk `json:"osDisk,omitempty"` 3368 3369 // 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 3370 // Storage (ZRS). 3371 ZoneResilient *bool `json:"zoneResilient,omitempty"` 3372} 3373 3374// The source user image virtual hard disk. Only tags may be updated. 3375type ImageUpdate struct { 3376 UpdateResource 3377 // Describes the properties of an Image. 3378 Properties *ImageProperties `json:"properties,omitempty"` 3379} 3380 3381// ImagesBeginCreateOrUpdateOptions contains the optional parameters for the Images.BeginCreateOrUpdate method. 3382type ImagesBeginCreateOrUpdateOptions struct { 3383 // placeholder for future optional parameters 3384} 3385 3386// ImagesBeginDeleteOptions contains the optional parameters for the Images.BeginDelete method. 3387type ImagesBeginDeleteOptions struct { 3388 // placeholder for future optional parameters 3389} 3390 3391// ImagesBeginUpdateOptions contains the optional parameters for the Images.BeginUpdate method. 3392type ImagesBeginUpdateOptions struct { 3393 // placeholder for future optional parameters 3394} 3395 3396// ImagesGetOptions contains the optional parameters for the Images.Get method. 3397type ImagesGetOptions struct { 3398 // The expand expression to apply on the operation. 3399 Expand *string 3400} 3401 3402// ImagesListByResourceGroupOptions contains the optional parameters for the Images.ListByResourceGroup method. 3403type ImagesListByResourceGroupOptions struct { 3404 // placeholder for future optional parameters 3405} 3406 3407// ImagesListOptions contains the optional parameters for the Images.List method. 3408type ImagesListOptions struct { 3409 // placeholder for future optional parameters 3410} 3411 3412// Inner error details. 3413type InnerError struct { 3414 // The internal error message or exception dump. 3415 Errordetail *string `json:"errordetail,omitempty"` 3416 3417 // The exception type. 3418 Exceptiontype *string `json:"exceptiontype,omitempty"` 3419} 3420 3421// Instance view status. 3422type InstanceViewStatus struct { 3423 // The status code. 3424 Code *string `json:"code,omitempty"` 3425 3426 // The short localizable label for the status. 3427 DisplayStatus *string `json:"displayStatus,omitempty"` 3428 3429 // The level code. 3430 Level *StatusLevelTypes `json:"level,omitempty"` 3431 3432 // The detailed status message, including for alerts and error messages. 3433 Message *string `json:"message,omitempty"` 3434 3435 // The time of the status. 3436 Time *time.Time `json:"time,omitempty"` 3437} 3438 3439// MarshalJSON implements the json.Marshaller interface for type InstanceViewStatus. 3440func (i InstanceViewStatus) MarshalJSON() ([]byte, error) { 3441 objectMap := make(map[string]interface{}) 3442 if i.Code != nil { 3443 objectMap["code"] = i.Code 3444 } 3445 if i.DisplayStatus != nil { 3446 objectMap["displayStatus"] = i.DisplayStatus 3447 } 3448 if i.Level != nil { 3449 objectMap["level"] = i.Level 3450 } 3451 if i.Message != nil { 3452 objectMap["message"] = i.Message 3453 } 3454 if i.Time != nil { 3455 objectMap["time"] = (*timeRFC3339)(i.Time) 3456 } 3457 return json.Marshal(objectMap) 3458} 3459 3460// UnmarshalJSON implements the json.Unmarshaller interface for type InstanceViewStatus. 3461func (i *InstanceViewStatus) UnmarshalJSON(data []byte) error { 3462 var rawMsg map[string]*json.RawMessage 3463 if err := json.Unmarshal(data, &rawMsg); err != nil { 3464 return err 3465 } 3466 for key, val := range rawMsg { 3467 var err error 3468 switch key { 3469 case "code": 3470 if val != nil { 3471 err = json.Unmarshal(*val, &i.Code) 3472 } 3473 delete(rawMsg, key) 3474 case "displayStatus": 3475 if val != nil { 3476 err = json.Unmarshal(*val, &i.DisplayStatus) 3477 } 3478 delete(rawMsg, key) 3479 case "level": 3480 if val != nil { 3481 err = json.Unmarshal(*val, &i.Level) 3482 } 3483 delete(rawMsg, key) 3484 case "message": 3485 if val != nil { 3486 err = json.Unmarshal(*val, &i.Message) 3487 } 3488 delete(rawMsg, key) 3489 case "time": 3490 if val != nil { 3491 var aux timeRFC3339 3492 err = json.Unmarshal(*val, &aux) 3493 i.Time = (*time.Time)(&aux) 3494 } 3495 delete(rawMsg, key) 3496 } 3497 if err != nil { 3498 return err 3499 } 3500 } 3501 return nil 3502} 3503 3504// Key Vault Key Url to be used for server side encryption of Managed Disks and Snapshots 3505type KeyForDiskEncryptionSet struct { 3506 // Fully versioned Key Url pointing to a key in KeyVault 3507 KeyURL *string `json:"keyUrl,omitempty"` 3508 3509 // Resource id of the KeyVault containing the key or secret. This property is optional and cannot be used if the KeyVault subscription is not the same as 3510 // the Disk Encryption Set subscription. 3511 SourceVault *SourceVault `json:"sourceVault,omitempty"` 3512} 3513 3514// Key Vault Key Url and vault id of KeK, KeK is optional and when provided is used to unwrap the encryptionKey 3515type KeyVaultAndKeyReference struct { 3516 // Url pointing to a key or secret in KeyVault 3517 KeyURL *string `json:"keyUrl,omitempty"` 3518 3519 // Resource id of the KeyVault containing the key or secret 3520 SourceVault *SourceVault `json:"sourceVault,omitempty"` 3521} 3522 3523// Key Vault Secret Url and vault id of the encryption key 3524type KeyVaultAndSecretReference struct { 3525 // Url pointing to a key or secret in KeyVault 3526 SecretURL *string `json:"secretUrl,omitempty"` 3527 3528 // Resource id of the KeyVault containing the key or secret 3529 SourceVault *SourceVault `json:"sourceVault,omitempty"` 3530} 3531 3532// Describes a reference to Key Vault Key 3533type KeyVaultKeyReference struct { 3534 // The URL referencing a key encryption key in Key Vault. 3535 KeyURL *string `json:"keyUrl,omitempty"` 3536 3537 // The relative URL of the Key Vault containing the key. 3538 SourceVault *SubResource `json:"sourceVault,omitempty"` 3539} 3540 3541// Describes a reference to Key Vault Secret 3542type KeyVaultSecretReference struct { 3543 // The URL referencing a secret in a Key Vault. 3544 SecretURL *string `json:"secretUrl,omitempty"` 3545 3546 // The relative URL of the Key Vault containing the secret. 3547 SourceVault *SubResource `json:"sourceVault,omitempty"` 3548} 3549 3550// Describes the properties of the last installed patch summary. 3551type LastPatchInstallationSummary struct { 3552 // READ-ONLY; The errors that were encountered during execution of the operation. The details array contains the list of them. 3553 Error *APIError `json:"error,omitempty" azure:"ro"` 3554 3555 // READ-ONLY; The number of all available patches but excluded explicitly by a customer-specified exclusion list match. 3556 ExcludedPatchCount *int32 `json:"excludedPatchCount,omitempty" azure:"ro"` 3557 3558 // READ-ONLY; The count of patches that failed installation. 3559 FailedPatchCount *int32 `json:"failedPatchCount,omitempty" azure:"ro"` 3560 3561 // READ-ONLY; The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs. 3562 InstallationActivityID *string `json:"installationActivityId,omitempty" azure:"ro"` 3563 3564 // READ-ONLY; The count of patches that successfully installed. 3565 InstalledPatchCount *int32 `json:"installedPatchCount,omitempty" azure:"ro"` 3566 3567 // READ-ONLY; The UTC timestamp when the operation began. 3568 LastModifiedTime *time.Time `json:"lastModifiedTime,omitempty" azure:"ro"` 3569 3570 // READ-ONLY; Describes whether the operation ran out of time before it completed all its intended actions 3571 MaintenanceWindowExceeded *bool `json:"maintenanceWindowExceeded,omitempty" azure:"ro"` 3572 3573 // READ-ONLY; The number of all available patches but not going to be installed because it didn't match a classification or inclusion list entry. 3574 NotSelectedPatchCount *int32 `json:"notSelectedPatchCount,omitempty" azure:"ro"` 3575 3576 // READ-ONLY; The number of all available patches expected to be installed over the course of the patch installation operation. 3577 PendingPatchCount *int32 `json:"pendingPatchCount,omitempty" azure:"ro"` 3578 3579 // READ-ONLY; The reboot status of the machine after the patch operation. It will be in "NotNeeded" status if reboot is not needed after the patch operation. 3580 // "Required" will be the status once the patch is applied 3581 // and machine is required to reboot. "Started" will be the reboot status when the machine has started to reboot. "Failed" will be the status if the machine 3582 // is failed to reboot. "Completed" will be the 3583 // status once the machine is rebooted successfully 3584 RebootStatus *RebootStatus `json:"rebootStatus,omitempty" azure:"ro"` 3585 3586 // READ-ONLY; The UTC timestamp when the operation began. 3587 StartTime *time.Time `json:"startTime,omitempty" azure:"ro"` 3588 3589 // READ-ONLY; The person or system account that started the operation 3590 StartedBy *string `json:"startedBy,omitempty" azure:"ro"` 3591 3592 // READ-ONLY; The overall success or failure status of the operation. It remains "InProgress" until the operation completes. At that point it will become 3593 // "Failed", "Succeeded", or "CompletedWithWarnings." 3594 Status *PatchOperationStatus `json:"status,omitempty" azure:"ro"` 3595} 3596 3597// MarshalJSON implements the json.Marshaller interface for type LastPatchInstallationSummary. 3598func (l LastPatchInstallationSummary) MarshalJSON() ([]byte, error) { 3599 objectMap := make(map[string]interface{}) 3600 if l.Error != nil { 3601 objectMap["error"] = l.Error 3602 } 3603 if l.ExcludedPatchCount != nil { 3604 objectMap["excludedPatchCount"] = l.ExcludedPatchCount 3605 } 3606 if l.FailedPatchCount != nil { 3607 objectMap["failedPatchCount"] = l.FailedPatchCount 3608 } 3609 if l.InstallationActivityID != nil { 3610 objectMap["installationActivityId"] = l.InstallationActivityID 3611 } 3612 if l.InstalledPatchCount != nil { 3613 objectMap["installedPatchCount"] = l.InstalledPatchCount 3614 } 3615 if l.LastModifiedTime != nil { 3616 objectMap["lastModifiedTime"] = (*timeRFC3339)(l.LastModifiedTime) 3617 } 3618 if l.MaintenanceWindowExceeded != nil { 3619 objectMap["maintenanceWindowExceeded"] = l.MaintenanceWindowExceeded 3620 } 3621 if l.NotSelectedPatchCount != nil { 3622 objectMap["notSelectedPatchCount"] = l.NotSelectedPatchCount 3623 } 3624 if l.PendingPatchCount != nil { 3625 objectMap["pendingPatchCount"] = l.PendingPatchCount 3626 } 3627 if l.RebootStatus != nil { 3628 objectMap["rebootStatus"] = l.RebootStatus 3629 } 3630 if l.StartTime != nil { 3631 objectMap["startTime"] = (*timeRFC3339)(l.StartTime) 3632 } 3633 if l.StartedBy != nil { 3634 objectMap["startedBy"] = l.StartedBy 3635 } 3636 if l.Status != nil { 3637 objectMap["status"] = l.Status 3638 } 3639 return json.Marshal(objectMap) 3640} 3641 3642// UnmarshalJSON implements the json.Unmarshaller interface for type LastPatchInstallationSummary. 3643func (l *LastPatchInstallationSummary) UnmarshalJSON(data []byte) error { 3644 var rawMsg map[string]*json.RawMessage 3645 if err := json.Unmarshal(data, &rawMsg); err != nil { 3646 return err 3647 } 3648 for key, val := range rawMsg { 3649 var err error 3650 switch key { 3651 case "error": 3652 if val != nil { 3653 err = json.Unmarshal(*val, &l.Error) 3654 } 3655 delete(rawMsg, key) 3656 case "excludedPatchCount": 3657 if val != nil { 3658 err = json.Unmarshal(*val, &l.ExcludedPatchCount) 3659 } 3660 delete(rawMsg, key) 3661 case "failedPatchCount": 3662 if val != nil { 3663 err = json.Unmarshal(*val, &l.FailedPatchCount) 3664 } 3665 delete(rawMsg, key) 3666 case "installationActivityId": 3667 if val != nil { 3668 err = json.Unmarshal(*val, &l.InstallationActivityID) 3669 } 3670 delete(rawMsg, key) 3671 case "installedPatchCount": 3672 if val != nil { 3673 err = json.Unmarshal(*val, &l.InstalledPatchCount) 3674 } 3675 delete(rawMsg, key) 3676 case "lastModifiedTime": 3677 if val != nil { 3678 var aux timeRFC3339 3679 err = json.Unmarshal(*val, &aux) 3680 l.LastModifiedTime = (*time.Time)(&aux) 3681 } 3682 delete(rawMsg, key) 3683 case "maintenanceWindowExceeded": 3684 if val != nil { 3685 err = json.Unmarshal(*val, &l.MaintenanceWindowExceeded) 3686 } 3687 delete(rawMsg, key) 3688 case "notSelectedPatchCount": 3689 if val != nil { 3690 err = json.Unmarshal(*val, &l.NotSelectedPatchCount) 3691 } 3692 delete(rawMsg, key) 3693 case "pendingPatchCount": 3694 if val != nil { 3695 err = json.Unmarshal(*val, &l.PendingPatchCount) 3696 } 3697 delete(rawMsg, key) 3698 case "rebootStatus": 3699 if val != nil { 3700 err = json.Unmarshal(*val, &l.RebootStatus) 3701 } 3702 delete(rawMsg, key) 3703 case "startTime": 3704 if val != nil { 3705 var aux timeRFC3339 3706 err = json.Unmarshal(*val, &aux) 3707 l.StartTime = (*time.Time)(&aux) 3708 } 3709 delete(rawMsg, key) 3710 case "startedBy": 3711 if val != nil { 3712 err = json.Unmarshal(*val, &l.StartedBy) 3713 } 3714 delete(rawMsg, key) 3715 case "status": 3716 if val != nil { 3717 err = json.Unmarshal(*val, &l.Status) 3718 } 3719 delete(rawMsg, key) 3720 } 3721 if err != nil { 3722 return err 3723 } 3724 } 3725 return nil 3726} 3727 3728// Specifies the Linux operating system settings on the virtual machine. 3729// For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions 3730// [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json] 3731// For running non-endorsed distributions, see Information for Non-Endorsed Distributions 3732// [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json]. 3733type LinuxConfiguration struct { 3734 // Specifies whether password authentication should be disabled. 3735 DisablePasswordAuthentication *bool `json:"disablePasswordAuthentication,omitempty"` 3736 3737 // Indicates whether virtual machine agent should be provisioned on the virtual machine. 3738 // 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 3739 // so that extensions can be added to the VM later. 3740 ProvisionVMAgent *bool `json:"provisionVMAgent,omitempty"` 3741 3742 // Specifies the ssh key configuration for a Linux OS. 3743 SSH *SSHConfiguration `json:"ssh,omitempty"` 3744} 3745 3746// The List Usages operation response. 3747type ListUsagesResult struct { 3748 // 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. 3749 NextLink *string `json:"nextLink,omitempty"` 3750 3751 // The list of compute resource usages. 3752 Value *[]Usage `json:"value,omitempty"` 3753} 3754 3755// ListUsagesResultResponse is the response envelope for operations that return a ListUsagesResult type. 3756type ListUsagesResultResponse struct { 3757 // The List Usages operation response. 3758 ListUsagesResult *ListUsagesResult 3759 3760 // RawResponse contains the underlying HTTP response. 3761 RawResponse *http.Response 3762} 3763 3764// LogAnalyticsBeginExportRequestRateByIntervalOptions contains the optional parameters for the LogAnalytics.BeginExportRequestRateByInterval method. 3765type LogAnalyticsBeginExportRequestRateByIntervalOptions struct { 3766 // placeholder for future optional parameters 3767} 3768 3769// LogAnalyticsBeginExportThrottledRequestsOptions contains the optional parameters for the LogAnalytics.BeginExportThrottledRequests method. 3770type LogAnalyticsBeginExportThrottledRequestsOptions struct { 3771 // placeholder for future optional parameters 3772} 3773 3774// Api input base class for LogAnalytics Api. 3775type LogAnalyticsInputBase struct { 3776 // SAS Uri of the logging blob container to which LogAnalytics Api writes output logs to. 3777 BlobContainerSasURI *string `json:"blobContainerSasUri,omitempty"` 3778 3779 // From time of the query 3780 FromTime *time.Time `json:"fromTime,omitempty"` 3781 3782 // Group query result by Client Application ID. 3783 GroupByClientApplicationID *bool `json:"groupByClientApplicationId,omitempty"` 3784 3785 // Group query result by Operation Name. 3786 GroupByOperationName *bool `json:"groupByOperationName,omitempty"` 3787 3788 // Group query result by Resource Name. 3789 GroupByResourceName *bool `json:"groupByResourceName,omitempty"` 3790 3791 // Group query result by Throttle Policy applied. 3792 GroupByThrottlePolicy *bool `json:"groupByThrottlePolicy,omitempty"` 3793 3794 // Group query result by User Agent. 3795 GroupByUserAgent *bool `json:"groupByUserAgent,omitempty"` 3796 3797 // To time of the query 3798 ToTime *time.Time `json:"toTime,omitempty"` 3799} 3800 3801// MarshalJSON implements the json.Marshaller interface for type LogAnalyticsInputBase. 3802func (l LogAnalyticsInputBase) MarshalJSON() ([]byte, error) { 3803 objectMap := l.marshalInternal() 3804 return json.Marshal(objectMap) 3805} 3806 3807// UnmarshalJSON implements the json.Unmarshaller interface for type LogAnalyticsInputBase. 3808func (l *LogAnalyticsInputBase) UnmarshalJSON(data []byte) error { 3809 var rawMsg map[string]*json.RawMessage 3810 if err := json.Unmarshal(data, &rawMsg); err != nil { 3811 return err 3812 } 3813 return l.unmarshalInternal(rawMsg) 3814} 3815 3816func (l LogAnalyticsInputBase) marshalInternal() map[string]interface{} { 3817 objectMap := make(map[string]interface{}) 3818 if l.BlobContainerSasURI != nil { 3819 objectMap["blobContainerSasUri"] = l.BlobContainerSasURI 3820 } 3821 if l.FromTime != nil { 3822 objectMap["fromTime"] = (*timeRFC3339)(l.FromTime) 3823 } 3824 if l.GroupByClientApplicationID != nil { 3825 objectMap["groupByClientApplicationId"] = l.GroupByClientApplicationID 3826 } 3827 if l.GroupByOperationName != nil { 3828 objectMap["groupByOperationName"] = l.GroupByOperationName 3829 } 3830 if l.GroupByResourceName != nil { 3831 objectMap["groupByResourceName"] = l.GroupByResourceName 3832 } 3833 if l.GroupByThrottlePolicy != nil { 3834 objectMap["groupByThrottlePolicy"] = l.GroupByThrottlePolicy 3835 } 3836 if l.GroupByUserAgent != nil { 3837 objectMap["groupByUserAgent"] = l.GroupByUserAgent 3838 } 3839 if l.ToTime != nil { 3840 objectMap["toTime"] = (*timeRFC3339)(l.ToTime) 3841 } 3842 return objectMap 3843} 3844 3845func (l *LogAnalyticsInputBase) unmarshalInternal(rawMsg map[string]*json.RawMessage) error { 3846 for key, val := range rawMsg { 3847 var err error 3848 switch key { 3849 case "blobContainerSasUri": 3850 if val != nil { 3851 err = json.Unmarshal(*val, &l.BlobContainerSasURI) 3852 } 3853 delete(rawMsg, key) 3854 case "fromTime": 3855 if val != nil { 3856 var aux timeRFC3339 3857 err = json.Unmarshal(*val, &aux) 3858 l.FromTime = (*time.Time)(&aux) 3859 } 3860 delete(rawMsg, key) 3861 case "groupByClientApplicationId": 3862 if val != nil { 3863 err = json.Unmarshal(*val, &l.GroupByClientApplicationID) 3864 } 3865 delete(rawMsg, key) 3866 case "groupByOperationName": 3867 if val != nil { 3868 err = json.Unmarshal(*val, &l.GroupByOperationName) 3869 } 3870 delete(rawMsg, key) 3871 case "groupByResourceName": 3872 if val != nil { 3873 err = json.Unmarshal(*val, &l.GroupByResourceName) 3874 } 3875 delete(rawMsg, key) 3876 case "groupByThrottlePolicy": 3877 if val != nil { 3878 err = json.Unmarshal(*val, &l.GroupByThrottlePolicy) 3879 } 3880 delete(rawMsg, key) 3881 case "groupByUserAgent": 3882 if val != nil { 3883 err = json.Unmarshal(*val, &l.GroupByUserAgent) 3884 } 3885 delete(rawMsg, key) 3886 case "toTime": 3887 if val != nil { 3888 var aux timeRFC3339 3889 err = json.Unmarshal(*val, &aux) 3890 l.ToTime = (*time.Time)(&aux) 3891 } 3892 delete(rawMsg, key) 3893 } 3894 if err != nil { 3895 return err 3896 } 3897 } 3898 return nil 3899} 3900 3901// LogAnalytics operation status response 3902type LogAnalyticsOperationResult struct { 3903 // READ-ONLY; LogAnalyticsOutput 3904 Properties *LogAnalyticsOutput `json:"properties,omitempty" azure:"ro"` 3905} 3906 3907// LogAnalyticsOperationResultPollerResponse is the response envelope for operations that asynchronously return a LogAnalyticsOperationResult type. 3908type LogAnalyticsOperationResultPollerResponse struct { 3909 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 3910 PollUntilDone func(ctx context.Context, frequency time.Duration) (LogAnalyticsOperationResultResponse, error) 3911 3912 // Poller contains an initialized poller. 3913 Poller LogAnalyticsOperationResultPoller 3914 3915 // RawResponse contains the underlying HTTP response. 3916 RawResponse *http.Response 3917} 3918 3919// LogAnalyticsOperationResultResponse is the response envelope for operations that return a LogAnalyticsOperationResult type. 3920type LogAnalyticsOperationResultResponse struct { 3921 // LogAnalytics operation status response 3922 LogAnalyticsOperationResult *LogAnalyticsOperationResult 3923 3924 // RawResponse contains the underlying HTTP response. 3925 RawResponse *http.Response 3926} 3927 3928// LogAnalytics output properties 3929type LogAnalyticsOutput struct { 3930 // READ-ONLY; Output file Uri path to blob container. 3931 Output *string `json:"output,omitempty" azure:"ro"` 3932} 3933 3934// Maintenance Operation Status. 3935type MaintenanceRedeployStatus struct { 3936 // True, if customer is allowed to perform Maintenance. 3937 IsCustomerInitiatedMaintenanceAllowed *bool `json:"isCustomerInitiatedMaintenanceAllowed,omitempty"` 3938 3939 // Message returned for the last Maintenance Operation. 3940 LastOperationMessage *string `json:"lastOperationMessage,omitempty"` 3941 3942 // The Last Maintenance Operation Result Code. 3943 LastOperationResultCode *MaintenanceOperationResultCodeTypes `json:"lastOperationResultCode,omitempty"` 3944 3945 // End Time for the Maintenance Window. 3946 MaintenanceWindowEndTime *time.Time `json:"maintenanceWindowEndTime,omitempty"` 3947 3948 // Start Time for the Maintenance Window. 3949 MaintenanceWindowStartTime *time.Time `json:"maintenanceWindowStartTime,omitempty"` 3950 3951 // End Time for the Pre Maintenance Window. 3952 PreMaintenanceWindowEndTime *time.Time `json:"preMaintenanceWindowEndTime,omitempty"` 3953 3954 // Start Time for the Pre Maintenance Window. 3955 PreMaintenanceWindowStartTime *time.Time `json:"preMaintenanceWindowStartTime,omitempty"` 3956} 3957 3958// MarshalJSON implements the json.Marshaller interface for type MaintenanceRedeployStatus. 3959func (m MaintenanceRedeployStatus) MarshalJSON() ([]byte, error) { 3960 objectMap := make(map[string]interface{}) 3961 if m.IsCustomerInitiatedMaintenanceAllowed != nil { 3962 objectMap["isCustomerInitiatedMaintenanceAllowed"] = m.IsCustomerInitiatedMaintenanceAllowed 3963 } 3964 if m.LastOperationMessage != nil { 3965 objectMap["lastOperationMessage"] = m.LastOperationMessage 3966 } 3967 if m.LastOperationResultCode != nil { 3968 objectMap["lastOperationResultCode"] = m.LastOperationResultCode 3969 } 3970 if m.MaintenanceWindowEndTime != nil { 3971 objectMap["maintenanceWindowEndTime"] = (*timeRFC3339)(m.MaintenanceWindowEndTime) 3972 } 3973 if m.MaintenanceWindowStartTime != nil { 3974 objectMap["maintenanceWindowStartTime"] = (*timeRFC3339)(m.MaintenanceWindowStartTime) 3975 } 3976 if m.PreMaintenanceWindowEndTime != nil { 3977 objectMap["preMaintenanceWindowEndTime"] = (*timeRFC3339)(m.PreMaintenanceWindowEndTime) 3978 } 3979 if m.PreMaintenanceWindowStartTime != nil { 3980 objectMap["preMaintenanceWindowStartTime"] = (*timeRFC3339)(m.PreMaintenanceWindowStartTime) 3981 } 3982 return json.Marshal(objectMap) 3983} 3984 3985// UnmarshalJSON implements the json.Unmarshaller interface for type MaintenanceRedeployStatus. 3986func (m *MaintenanceRedeployStatus) UnmarshalJSON(data []byte) error { 3987 var rawMsg map[string]*json.RawMessage 3988 if err := json.Unmarshal(data, &rawMsg); err != nil { 3989 return err 3990 } 3991 for key, val := range rawMsg { 3992 var err error 3993 switch key { 3994 case "isCustomerInitiatedMaintenanceAllowed": 3995 if val != nil { 3996 err = json.Unmarshal(*val, &m.IsCustomerInitiatedMaintenanceAllowed) 3997 } 3998 delete(rawMsg, key) 3999 case "lastOperationMessage": 4000 if val != nil { 4001 err = json.Unmarshal(*val, &m.LastOperationMessage) 4002 } 4003 delete(rawMsg, key) 4004 case "lastOperationResultCode": 4005 if val != nil { 4006 err = json.Unmarshal(*val, &m.LastOperationResultCode) 4007 } 4008 delete(rawMsg, key) 4009 case "maintenanceWindowEndTime": 4010 if val != nil { 4011 var aux timeRFC3339 4012 err = json.Unmarshal(*val, &aux) 4013 m.MaintenanceWindowEndTime = (*time.Time)(&aux) 4014 } 4015 delete(rawMsg, key) 4016 case "maintenanceWindowStartTime": 4017 if val != nil { 4018 var aux timeRFC3339 4019 err = json.Unmarshal(*val, &aux) 4020 m.MaintenanceWindowStartTime = (*time.Time)(&aux) 4021 } 4022 delete(rawMsg, key) 4023 case "preMaintenanceWindowEndTime": 4024 if val != nil { 4025 var aux timeRFC3339 4026 err = json.Unmarshal(*val, &aux) 4027 m.PreMaintenanceWindowEndTime = (*time.Time)(&aux) 4028 } 4029 delete(rawMsg, key) 4030 case "preMaintenanceWindowStartTime": 4031 if val != nil { 4032 var aux timeRFC3339 4033 err = json.Unmarshal(*val, &aux) 4034 m.PreMaintenanceWindowStartTime = (*time.Time)(&aux) 4035 } 4036 delete(rawMsg, key) 4037 } 4038 if err != nil { 4039 return err 4040 } 4041 } 4042 return nil 4043} 4044 4045// The managed artifact. 4046type ManagedArtifact struct { 4047 // The managed artifact id. 4048 ID *string `json:"id,omitempty"` 4049} 4050 4051// The parameters of a managed disk. 4052type ManagedDiskParameters struct { 4053 SubResource 4054 // Specifies the customer managed disk encryption set resource id for the managed disk. 4055 DiskEncryptionSet *SubResource `json:"diskEncryptionSet,omitempty"` 4056 4057 // 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. 4058 StorageAccountType *StorageAccountTypes `json:"storageAccountType,omitempty"` 4059} 4060 4061// Describes a network interface reference. 4062type NetworkInterfaceReference struct { 4063 SubResource 4064 // Describes a network interface reference properties. 4065 Properties *NetworkInterfaceReferenceProperties `json:"properties,omitempty"` 4066} 4067 4068// Describes a network interface reference properties. 4069type NetworkInterfaceReferenceProperties struct { 4070 // Specifies the primary network interface in case the virtual machine has more than 1 network interface. 4071 Primary *bool `json:"primary,omitempty"` 4072} 4073 4074// Specifies the network interfaces of the virtual machine. 4075type NetworkProfile struct { 4076 // Specifies the list of resource Ids for the network interfaces associated with the virtual machine. 4077 NetworkInterfaces *[]NetworkInterfaceReference `json:"networkInterfaces,omitempty"` 4078} 4079 4080// Specifies information about the operating system disk used by the virtual machine. 4081// For more information about disks, see About disks and VHDs for Azure virtual machines 4082// [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json]. 4083type OSDisk struct { 4084 // Specifies the caching requirements. 4085 // Possible values are: 4086 // None 4087 // ReadOnly 4088 // ReadWrite 4089 // Default: None for Standard storage. ReadOnly for Premium storage. 4090 Caching *CachingTypes `json:"caching,omitempty"` 4091 4092 // Specifies how the virtual machine should be created. 4093 // Possible values are: 4094 // Attach \u2013 This value is used when you are using a specialized disk to create the virtual machine. 4095 // 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 4096 // element described above. If you are 4097 // using a marketplace image, you also use the plan element previously described. 4098 CreateOption *DiskCreateOptionTypes `json:"createOption,omitempty"` 4099 4100 // Specifies the ephemeral Disk Settings for the operating system disk used by the virtual machine. 4101 DiffDiskSettings *DiffDiskSettings `json:"diffDiskSettings,omitempty"` 4102 4103 // 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. 4104 // This value cannot be larger than 1023 GB 4105 DiskSizeGb *int32 `json:"diskSizeGB,omitempty"` 4106 4107 // Specifies the encryption settings for the OS Disk. 4108 // Minimum api-version: 2015-06-15 4109 EncryptionSettings *DiskEncryptionSettings `json:"encryptionSettings,omitempty"` 4110 4111 // 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, 4112 // the destination virtual hard drive must not 4113 // exist. 4114 Image *VirtualHardDisk `json:"image,omitempty"` 4115 4116 // The managed disk parameters. 4117 ManagedDisk *ManagedDiskParameters `json:"managedDisk,omitempty"` 4118 4119 // The disk name. 4120 Name *string `json:"name,omitempty"` 4121 4122 // 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. 4123 // Possible values are: 4124 // Windows 4125 // Linux 4126 OSType *OperatingSystemTypes `json:"osType,omitempty"` 4127 4128 // The virtual hard disk. 4129 Vhd *VirtualHardDisk `json:"vhd,omitempty"` 4130 4131 // Specifies whether writeAccelerator should be enabled or disabled on the disk. 4132 WriteAcceleratorEnabled *bool `json:"writeAcceleratorEnabled,omitempty"` 4133} 4134 4135// Contains the os disk image information. 4136type OSDiskImage struct { 4137 // The operating system of the osDiskImage. 4138 OperatingSystem *OperatingSystemTypes `json:"operatingSystem,omitempty"` 4139} 4140 4141// Contains encryption settings for an OS disk image. 4142type OSDiskImageEncryption struct { 4143 DiskImageEncryption 4144} 4145 4146// Specifies the operating system settings for the virtual machine. Some of the settings cannot be changed once VM is provisioned. 4147type OSProfile struct { 4148 // Specifies the password of the administrator account. 4149 // Minimum-length (Windows): 8 characters 4150 // Minimum-length (Linux): 6 characters 4151 // Max-length (Windows): 123 characters 4152 // Max-length (Linux): 72 characters 4153 // Complexity requirements: 3 out of 4 conditions below need to be fulfilled 4154 // Has lower characters 4155 // Has upper characters 4156 // Has a digit 4157 // Has a special character (Regex match [\W_]) 4158 // Disallowed values: "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" 4159 // For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM 4160 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-reset-rdp?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json] 4161 // For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension 4162 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-vmaccess-extension?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#reset-root-password] 4163 AdminPassword *string `json:"adminPassword,omitempty"` 4164 4165 // Specifies the name of the administrator account. 4166 // This property cannot be updated after the VM is created. 4167 // Windows-only restriction: Cannot end in "." 4168 // Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", 4169 // "aspnet", "backup", "console", "david", "guest", 4170 // "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". 4171 // Minimum-length (Linux): 1 character 4172 // Max-length (Linux): 64 characters 4173 // Max-length (Windows): 20 characters 4174 // For root access to the Linux VM, see Using root privileges on Linux virtual machines in Azure 4175 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json] 4176 // 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 4177 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json] 4178 AdminUsername *string `json:"adminUsername,omitempty"` 4179 4180 // Specifies whether extension operations should be allowed on the virtual machine. 4181 // This may only be set to False when no extensions are present on the virtual machine. 4182 AllowExtensionOperations *bool `json:"allowExtensionOperations,omitempty"` 4183 4184 // Specifies the host OS name of the virtual machine. 4185 // This name cannot be updated after the VM is created. 4186 // Max-length (Windows): 15 characters 4187 // Max-length (Linux): 64 characters. 4188 // For naming conventions and restrictions see Azure infrastructure services implementation guidelines 4189 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-infrastructure-subscription-accounts-guidelines?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#1-naming-conventions]. 4190 ComputerName *string `json:"computerName,omitempty"` 4191 4192 // 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. 4193 // The maximum length of the binary array is 4194 // 65535 bytes. 4195 // Note: Do not pass any secrets or passwords in customData property 4196 // This property cannot be updated after the VM is created. 4197 // customData is passed to the VM to be saved as a file, for more information see Custom Data on Azure VMs [https://azure.microsoft.com/en-us/blog/custom-data-and-cloud-init-on-windows-azure/] 4198 // For using cloud-init for your Linux VM, see Using cloud-init to customize a Linux VM during creation 4199 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json] 4200 CustomData *string `json:"customData,omitempty"` 4201 4202 // Specifies the Linux operating system settings on the virtual machine. 4203 // For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions 4204 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json] 4205 // For running non-endorsed distributions, see Information for Non-Endorsed Distributions 4206 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json]. 4207 LinuxConfiguration *LinuxConfiguration `json:"linuxConfiguration,omitempty"` 4208 4209 // Specifies whether the guest provision signal is required to infer provision success of the virtual machine. Note: This property is for private testing 4210 // only, and all customers must not set the property 4211 // to false. 4212 RequireGuestProvisionSignal *bool `json:"requireGuestProvisionSignal,omitempty"` 4213 4214 // Specifies set of certificates that should be installed onto the virtual machine. 4215 Secrets *[]VaultSecretGroup `json:"secrets,omitempty"` 4216 4217 // Specifies Windows operating system settings on the virtual machine. 4218 WindowsConfiguration *WindowsConfiguration `json:"windowsConfiguration,omitempty"` 4219} 4220 4221// OperationsListOptions contains the optional parameters for the Operations.List method. 4222type OperationsListOptions struct { 4223 // placeholder for future optional parameters 4224} 4225 4226// The input for OrchestrationServiceState 4227type OrchestrationServiceStateInput struct { 4228 // The action to be performed. 4229 Action *OrchestrationServiceStateAction `json:"action,omitempty"` 4230 4231 // The name of the service. 4232 ServiceName *OrchestrationServiceNames `json:"serviceName,omitempty"` 4233} 4234 4235// Summary for an orchestration service of a virtual machine scale set. 4236type OrchestrationServiceSummary struct { 4237 // READ-ONLY; The name of the service. 4238 ServiceName *OrchestrationServiceNames `json:"serviceName,omitempty" azure:"ro"` 4239 4240 // READ-ONLY; The current state of the service. 4241 ServiceState *OrchestrationServiceState `json:"serviceState,omitempty" azure:"ro"` 4242} 4243 4244type PatchSettings struct { 4245 // Specifies the mode of in-guest patching to IaaS virtual machine. 4246 // Possible values are: 4247 // Manual - You control the application of patches to a virtual machine. You do this by applying patches manually inside the VM. In this mode, automatic 4248 // updates are disabled; the property 4249 // WindowsConfiguration.enableAutomaticUpdates must be false 4250 // AutomaticByOS - The virtual machine will automatically be updated by the OS. The property WindowsConfiguration.enableAutomaticUpdates must be true. 4251 // ** AutomaticByPlatform** - the virtual machine will automatically updated by the platform. The properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates 4252 // must be true 4253 PatchMode *InGuestPatchMode `json:"patchMode,omitempty"` 4254} 4255 4256// The Resource model definition. 4257type PirResource struct { 4258 // READ-ONLY; Resource location 4259 Location *string `json:"location,omitempty" azure:"ro"` 4260 4261 // READ-ONLY; Resource name 4262 Name *string `json:"name,omitempty" azure:"ro"` 4263} 4264 4265// Base information about the shared gallery resource in pir. 4266type PirSharedGalleryResource struct { 4267 PirResource 4268 // The identifier information of shared gallery. 4269 IDentifier *SharedGalleryIDentifier `json:"identifier,omitempty"` 4270} 4271 4272// PirSharedGalleryResourceResponse is the response envelope for operations that return a PirSharedGalleryResource type. 4273type PirSharedGalleryResourceResponse struct { 4274 // Base information about the shared gallery resource in pir. 4275 PirSharedGalleryResource *PirSharedGalleryResource 4276 4277 // RawResponse contains the underlying HTTP response. 4278 RawResponse *http.Response 4279} 4280 4281// Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can 4282// use a marketplace image from an API, you must 4283// 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, 4284// Get Started ->. Enter any required 4285// information and then click Save. 4286type Plan struct { 4287 // The plan ID. 4288 Name *string `json:"name,omitempty"` 4289 4290 // Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element. 4291 Product *string `json:"product,omitempty"` 4292 4293 // The promotion code. 4294 PromotionCode *string `json:"promotionCode,omitempty"` 4295 4296 // The publisher ID. 4297 Publisher *string `json:"publisher,omitempty"` 4298} 4299 4300// The Private Endpoint resource. 4301type PrivateEndpoint struct { 4302 // READ-ONLY; The ARM identifier for Private Endpoint 4303 ID *string `json:"id,omitempty" azure:"ro"` 4304} 4305 4306// The Private Endpoint Connection resource. 4307type PrivateEndpointConnection struct { 4308 ProxyOnlyResource 4309 // Resource properties. 4310 Properties *PrivateEndpointConnectionProperties `json:"properties,omitempty"` 4311} 4312 4313// A list of private link resources 4314type PrivateEndpointConnectionListResult struct { 4315 // The uri to fetch the next page of snapshots. Call ListNext() with this to fetch the next page of snapshots. 4316 NextLink *string `json:"nextLink,omitempty"` 4317 4318 // Array of private endpoint connections 4319 Value *[]PrivateEndpointConnection `json:"value,omitempty"` 4320} 4321 4322// PrivateEndpointConnectionListResultResponse is the response envelope for operations that return a PrivateEndpointConnectionListResult type. 4323type PrivateEndpointConnectionListResultResponse struct { 4324 // A list of private link resources 4325 PrivateEndpointConnectionListResult *PrivateEndpointConnectionListResult 4326 4327 // RawResponse contains the underlying HTTP response. 4328 RawResponse *http.Response 4329} 4330 4331// PrivateEndpointConnectionPollerResponse is the response envelope for operations that asynchronously return a PrivateEndpointConnection type. 4332type PrivateEndpointConnectionPollerResponse struct { 4333 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 4334 PollUntilDone func(ctx context.Context, frequency time.Duration) (PrivateEndpointConnectionResponse, error) 4335 4336 // Poller contains an initialized poller. 4337 Poller PrivateEndpointConnectionPoller 4338 4339 // RawResponse contains the underlying HTTP response. 4340 RawResponse *http.Response 4341} 4342 4343// Properties of the PrivateEndpointConnectProperties. 4344type PrivateEndpointConnectionProperties struct { 4345 // The resource of private end point. 4346 PrivateEndpoint *PrivateEndpoint `json:"privateEndpoint,omitempty"` 4347 4348 // A collection of information about the state of the connection between DiskAccess and Virtual Network. 4349 PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionState `json:"privateLinkServiceConnectionState,omitempty"` 4350 4351 // READ-ONLY; The provisioning state of the private endpoint connection resource. 4352 ProvisioningState *PrivateEndpointConnectionProvisioningState `json:"provisioningState,omitempty" azure:"ro"` 4353} 4354 4355// PrivateEndpointConnectionResponse is the response envelope for operations that return a PrivateEndpointConnection type. 4356type PrivateEndpointConnectionResponse struct { 4357 // The Private Endpoint Connection resource. 4358 PrivateEndpointConnection *PrivateEndpointConnection 4359 4360 // RawResponse contains the underlying HTTP response. 4361 RawResponse *http.Response 4362} 4363 4364// A private link resource 4365type PrivateLinkResource struct { 4366 // READ-ONLY; private link resource Id 4367 ID *string `json:"id,omitempty" azure:"ro"` 4368 4369 // READ-ONLY; private link resource name 4370 Name *string `json:"name,omitempty" azure:"ro"` 4371 4372 // Resource properties. 4373 Properties *PrivateLinkResourceProperties `json:"properties,omitempty"` 4374 4375 // READ-ONLY; private link resource type 4376 Type *string `json:"type,omitempty" azure:"ro"` 4377} 4378 4379// A list of private link resources 4380type PrivateLinkResourceListResult struct { 4381 // Array of private link resources 4382 Value *[]PrivateLinkResource `json:"value,omitempty"` 4383} 4384 4385// PrivateLinkResourceListResultResponse is the response envelope for operations that return a PrivateLinkResourceListResult type. 4386type PrivateLinkResourceListResultResponse struct { 4387 // A list of private link resources 4388 PrivateLinkResourceListResult *PrivateLinkResourceListResult 4389 4390 // RawResponse contains the underlying HTTP response. 4391 RawResponse *http.Response 4392} 4393 4394// Properties of a private link resource. 4395type PrivateLinkResourceProperties struct { 4396 // READ-ONLY; The private link resource group id. 4397 GroupID *string `json:"groupId,omitempty" azure:"ro"` 4398 4399 // READ-ONLY; The private link resource required member names. 4400 RequiredMembers *[]string `json:"requiredMembers,omitempty" azure:"ro"` 4401 4402 // The private link resource DNS zone name. 4403 RequiredZoneNames *[]string `json:"requiredZoneNames,omitempty"` 4404} 4405 4406// A collection of information about the state of the connection between service consumer and provider. 4407type PrivateLinkServiceConnectionState struct { 4408 // A message indicating if changes on the service provider require any updates on the consumer. 4409 ActionsRequired *string `json:"actionsRequired,omitempty"` 4410 4411 // The reason for approval/rejection of the connection. 4412 Description *string `json:"description,omitempty"` 4413 4414 // Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. 4415 Status *PrivateEndpointServiceConnectionStatus `json:"status,omitempty"` 4416} 4417 4418// Specifies information about the proximity placement group. 4419type ProximityPlacementGroup struct { 4420 Resource 4421 // Describes the properties of a Proximity Placement Group. 4422 Properties *ProximityPlacementGroupProperties `json:"properties,omitempty"` 4423} 4424 4425// The List Proximity Placement Group operation response. 4426type ProximityPlacementGroupListResult struct { 4427 // The URI to fetch the next page of proximity placement groups. 4428 NextLink *string `json:"nextLink,omitempty"` 4429 4430 // The list of proximity placement groups 4431 Value *[]ProximityPlacementGroup `json:"value,omitempty"` 4432} 4433 4434// ProximityPlacementGroupListResultResponse is the response envelope for operations that return a ProximityPlacementGroupListResult type. 4435type ProximityPlacementGroupListResultResponse struct { 4436 // The List Proximity Placement Group operation response. 4437 ProximityPlacementGroupListResult *ProximityPlacementGroupListResult 4438 4439 // RawResponse contains the underlying HTTP response. 4440 RawResponse *http.Response 4441} 4442 4443// Describes the properties of a Proximity Placement Group. 4444type ProximityPlacementGroupProperties struct { 4445 // READ-ONLY; A list of references to all availability sets in the proximity placement group. 4446 AvailabilitySets *[]SubResourceWithColocationStatus `json:"availabilitySets,omitempty" azure:"ro"` 4447 4448 // Describes colocation status of the Proximity Placement Group. 4449 ColocationStatus *InstanceViewStatus `json:"colocationStatus,omitempty"` 4450 4451 // Specifies the type of the proximity placement group. 4452 // Possible values are: 4453 // Standard : Co-locate resources within an Azure region or Availability Zone. 4454 // Ultra : For future use. 4455 ProximityPlacementGroupType *ProximityPlacementGroupType `json:"proximityPlacementGroupType,omitempty"` 4456 4457 // READ-ONLY; A list of references to all virtual machine scale sets in the proximity placement group. 4458 VirtualMachineScaleSets *[]SubResourceWithColocationStatus `json:"virtualMachineScaleSets,omitempty" azure:"ro"` 4459 4460 // READ-ONLY; A list of references to all virtual machines in the proximity placement group. 4461 VirtualMachines *[]SubResourceWithColocationStatus `json:"virtualMachines,omitempty" azure:"ro"` 4462} 4463 4464// ProximityPlacementGroupResponse is the response envelope for operations that return a ProximityPlacementGroup type. 4465type ProximityPlacementGroupResponse struct { 4466 // Specifies information about the proximity placement group. 4467 ProximityPlacementGroup *ProximityPlacementGroup 4468 4469 // RawResponse contains the underlying HTTP response. 4470 RawResponse *http.Response 4471} 4472 4473// Specifies information about the proximity placement group. 4474type ProximityPlacementGroupUpdate struct { 4475 UpdateResource 4476} 4477 4478// ProximityPlacementGroupsCreateOrUpdateOptions contains the optional parameters for the ProximityPlacementGroups.CreateOrUpdate method. 4479type ProximityPlacementGroupsCreateOrUpdateOptions struct { 4480 // placeholder for future optional parameters 4481} 4482 4483// ProximityPlacementGroupsDeleteOptions contains the optional parameters for the ProximityPlacementGroups.Delete method. 4484type ProximityPlacementGroupsDeleteOptions struct { 4485 // placeholder for future optional parameters 4486} 4487 4488// ProximityPlacementGroupsGetOptions contains the optional parameters for the ProximityPlacementGroups.Get method. 4489type ProximityPlacementGroupsGetOptions struct { 4490 // includeColocationStatus=true enables fetching the colocation status of all the resources in the proximity placement group. 4491 IncludeColocationStatus *string 4492} 4493 4494// ProximityPlacementGroupsListByResourceGroupOptions contains the optional parameters for the ProximityPlacementGroups.ListByResourceGroup method. 4495type ProximityPlacementGroupsListByResourceGroupOptions struct { 4496 // placeholder for future optional parameters 4497} 4498 4499// ProximityPlacementGroupsListBySubscriptionOptions contains the optional parameters for the ProximityPlacementGroups.ListBySubscription method. 4500type ProximityPlacementGroupsListBySubscriptionOptions struct { 4501 // placeholder for future optional parameters 4502} 4503 4504// ProximityPlacementGroupsUpdateOptions contains the optional parameters for the ProximityPlacementGroups.Update method. 4505type ProximityPlacementGroupsUpdateOptions struct { 4506 // placeholder for future optional parameters 4507} 4508 4509// The ProxyOnly Resource model definition. 4510type ProxyOnlyResource struct { 4511 // READ-ONLY; Resource Id 4512 ID *string `json:"id,omitempty" azure:"ro"` 4513 4514 // READ-ONLY; Resource name 4515 Name *string `json:"name,omitempty" azure:"ro"` 4516 4517 // READ-ONLY; Resource type 4518 Type *string `json:"type,omitempty" azure:"ro"` 4519} 4520 4521// Used for establishing the purchase context of any 3rd Party artifact through MarketPlace. 4522type PurchasePlan struct { 4523 // The plan ID. 4524 Name *string `json:"name,omitempty"` 4525 4526 // Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element. 4527 Product *string `json:"product,omitempty"` 4528 4529 // The publisher ID. 4530 Publisher *string `json:"publisher,omitempty"` 4531} 4532 4533// Used for establishing the purchase context of any 3rd Party artifact through MarketPlace. 4534type PurchasePlanAutoGenerated struct { 4535 // The plan ID. 4536 Name *string `json:"name,omitempty"` 4537 4538 // Specifies the product of the image from the marketplace. This is the same value as Offer under the imageReference element. 4539 Product *string `json:"product,omitempty"` 4540 4541 // The Offer Promotion Code. 4542 PromotionCode *string `json:"promotionCode,omitempty"` 4543 4544 // The publisher ID. 4545 Publisher *string `json:"publisher,omitempty"` 4546} 4547 4548// The properties describe the recommended machine configuration for this Image Definition. These properties are updatable. 4549type RecommendedMachineConfiguration struct { 4550 // Describes the resource range. 4551 Memory *ResourceRange `json:"memory,omitempty"` 4552 4553 // Describes the resource range. 4554 VCpUs *ResourceRange `json:"vCPUs,omitempty"` 4555} 4556 4557// Response after calling a manual recovery walk 4558type RecoveryWalkResponse struct { 4559 // READ-ONLY; The next update domain that needs to be walked. Null means walk spanning all update domains has been completed 4560 NextPlatformUpdateDomain *int32 `json:"nextPlatformUpdateDomain,omitempty" azure:"ro"` 4561 4562 // READ-ONLY; Whether the recovery walk was performed 4563 WalkPerformed *bool `json:"walkPerformed,omitempty" azure:"ro"` 4564} 4565 4566// RecoveryWalkResponseResponse is the response envelope for operations that return a RecoveryWalkResponse type. 4567type RecoveryWalkResponseResponse struct { 4568 // RawResponse contains the underlying HTTP response. 4569 RawResponse *http.Response 4570 4571 // Response after calling a manual recovery walk 4572 RecoveryWalkResponse *RecoveryWalkResponse 4573} 4574 4575// This is the regional replication status. 4576type RegionalReplicationStatus struct { 4577 // READ-ONLY; The details of the replication status. 4578 Details *string `json:"details,omitempty" azure:"ro"` 4579 4580 // READ-ONLY; It indicates progress of the replication job. 4581 Progress *int32 `json:"progress,omitempty" azure:"ro"` 4582 4583 // READ-ONLY; The region to which the gallery image version is being replicated to. 4584 Region *string `json:"region,omitempty" azure:"ro"` 4585 4586 // READ-ONLY; This is the regional replication state. 4587 State *ReplicationState `json:"state,omitempty" azure:"ro"` 4588} 4589 4590// This is the replication status of the gallery image version. 4591type ReplicationStatus struct { 4592 // READ-ONLY; This is the aggregated replication status based on all the regional replication status flags. 4593 AggregatedState *AggregatedReplicationState `json:"aggregatedState,omitempty" azure:"ro"` 4594 4595 // READ-ONLY; This is a summary of replication status for each region. 4596 Summary *[]RegionalReplicationStatus `json:"summary,omitempty" azure:"ro"` 4597} 4598 4599// Api request input for LogAnalytics getRequestRateByInterval Api. 4600type RequestRateByIntervalInput struct { 4601 LogAnalyticsInputBase 4602 // Interval value in minutes used to create LogAnalytics call rate logs. 4603 IntervalLength *IntervalInMins `json:"intervalLength,omitempty"` 4604} 4605 4606// MarshalJSON implements the json.Marshaller interface for type RequestRateByIntervalInput. 4607func (r RequestRateByIntervalInput) MarshalJSON() ([]byte, error) { 4608 objectMap := r.LogAnalyticsInputBase.marshalInternal() 4609 if r.IntervalLength != nil { 4610 objectMap["intervalLength"] = r.IntervalLength 4611 } 4612 return json.Marshal(objectMap) 4613} 4614 4615// UnmarshalJSON implements the json.Unmarshaller interface for type RequestRateByIntervalInput. 4616func (r *RequestRateByIntervalInput) UnmarshalJSON(data []byte) error { 4617 var rawMsg map[string]*json.RawMessage 4618 if err := json.Unmarshal(data, &rawMsg); err != nil { 4619 return err 4620 } 4621 for key, val := range rawMsg { 4622 var err error 4623 switch key { 4624 case "intervalLength": 4625 if val != nil { 4626 err = json.Unmarshal(*val, &r.IntervalLength) 4627 } 4628 delete(rawMsg, key) 4629 } 4630 if err != nil { 4631 return err 4632 } 4633 } 4634 return r.LogAnalyticsInputBase.unmarshalInternal(rawMsg) 4635} 4636 4637// The Resource model definition. 4638type Resource struct { 4639 // READ-ONLY; Resource Id 4640 ID *string `json:"id,omitempty" azure:"ro"` 4641 4642 // Resource location 4643 Location *string `json:"location,omitempty"` 4644 4645 // READ-ONLY; Resource name 4646 Name *string `json:"name,omitempty" azure:"ro"` 4647 4648 // Resource tags 4649 Tags *map[string]string `json:"tags,omitempty"` 4650 4651 // READ-ONLY; Resource type 4652 Type *string `json:"type,omitempty" azure:"ro"` 4653} 4654 4655// Describes the resource range. 4656type ResourceRange struct { 4657 // The maximum number of the resource. 4658 Max *int32 `json:"max,omitempty"` 4659 4660 // The minimum number of the resource. 4661 Min *int32 `json:"min,omitempty"` 4662} 4663 4664// Describes an available Compute SKU. 4665type ResourceSKU struct { 4666 // READ-ONLY; The api versions that support this SKU. 4667 APIVersions *[]string `json:"apiVersions,omitempty" azure:"ro"` 4668 4669 // READ-ONLY; A name value pair to describe the capability. 4670 Capabilities *[]ResourceSKUCapabilities `json:"capabilities,omitempty" azure:"ro"` 4671 4672 // READ-ONLY; Specifies the number of virtual machines in the scale set. 4673 Capacity *ResourceSKUCapacity `json:"capacity,omitempty" azure:"ro"` 4674 4675 // READ-ONLY; Metadata for retrieving price info. 4676 Costs *[]ResourceSKUCosts `json:"costs,omitempty" azure:"ro"` 4677 4678 // READ-ONLY; The Family of this particular SKU. 4679 Family *string `json:"family,omitempty" azure:"ro"` 4680 4681 // READ-ONLY; The Kind of resources that are supported in this SKU. 4682 Kind *string `json:"kind,omitempty" azure:"ro"` 4683 4684 // READ-ONLY; A list of locations and availability zones in those locations where the SKU is available. 4685 LocationInfo *[]ResourceSKULocationInfo `json:"locationInfo,omitempty" azure:"ro"` 4686 4687 // READ-ONLY; The set of locations that the SKU is available. 4688 Locations *[]string `json:"locations,omitempty" azure:"ro"` 4689 4690 // READ-ONLY; The name of SKU. 4691 Name *string `json:"name,omitempty" azure:"ro"` 4692 4693 // READ-ONLY; The type of resource the SKU applies to. 4694 ResourceType *string `json:"resourceType,omitempty" azure:"ro"` 4695 4696 // READ-ONLY; The restrictions because of which SKU cannot be used. This is empty if there are no restrictions. 4697 Restrictions *[]ResourceSKURestrictions `json:"restrictions,omitempty" azure:"ro"` 4698 4699 // READ-ONLY; The Size of the SKU. 4700 Size *string `json:"size,omitempty" azure:"ro"` 4701 4702 // READ-ONLY; Specifies the tier of virtual machines in a scale set. 4703 // Possible Values: 4704 // Standard 4705 // Basic 4706 Tier *string `json:"tier,omitempty" azure:"ro"` 4707} 4708 4709// Describes The SKU capabilities object. 4710type ResourceSKUCapabilities struct { 4711 // READ-ONLY; An invariant to describe the feature. 4712 Name *string `json:"name,omitempty" azure:"ro"` 4713 4714 // READ-ONLY; An invariant if the feature is measured by quantity. 4715 Value *string `json:"value,omitempty" azure:"ro"` 4716} 4717 4718// Describes scaling information of a SKU. 4719type ResourceSKUCapacity struct { 4720 // READ-ONLY; The default capacity. 4721 Default *int64 `json:"default,omitempty" azure:"ro"` 4722 4723 // READ-ONLY; The maximum capacity that can be set. 4724 Maximum *int64 `json:"maximum,omitempty" azure:"ro"` 4725 4726 // READ-ONLY; The minimum capacity. 4727 Minimum *int64 `json:"minimum,omitempty" azure:"ro"` 4728 4729 // READ-ONLY; The scale type applicable to the sku. 4730 ScaleType *ResourceSKUCapacityScaleType `json:"scaleType,omitempty" azure:"ro"` 4731} 4732 4733// Describes metadata for retrieving price info. 4734type ResourceSKUCosts struct { 4735 // READ-ONLY; An invariant to show the extended unit. 4736 ExtendedUnit *string `json:"extendedUnit,omitempty" azure:"ro"` 4737 4738 // READ-ONLY; Used for querying price from commerce. 4739 MeterID *string `json:"meterID,omitempty" azure:"ro"` 4740 4741 // READ-ONLY; The multiplier is needed to extend the base metered cost. 4742 Quantity *int64 `json:"quantity,omitempty" azure:"ro"` 4743} 4744 4745type ResourceSKULocationInfo struct { 4746 // READ-ONLY; Location of the SKU 4747 Location *string `json:"location,omitempty" azure:"ro"` 4748 4749 // READ-ONLY; Details of capabilities available to a SKU in specific zones. 4750 ZoneDetails *[]ResourceSKUZoneDetails `json:"zoneDetails,omitempty" azure:"ro"` 4751 4752 // READ-ONLY; List of availability zones where the SKU is supported. 4753 Zones *[]string `json:"zones,omitempty" azure:"ro"` 4754} 4755 4756type ResourceSKURestrictionInfo struct { 4757 // READ-ONLY; Locations where the SKU is restricted 4758 Locations *[]string `json:"locations,omitempty" azure:"ro"` 4759 4760 // READ-ONLY; List of availability zones where the SKU is restricted. 4761 Zones *[]string `json:"zones,omitempty" azure:"ro"` 4762} 4763 4764// Describes scaling information of a SKU. 4765type ResourceSKURestrictions struct { 4766 // READ-ONLY; The reason for restriction. 4767 ReasonCode *ResourceSKURestrictionsReasonCode `json:"reasonCode,omitempty" azure:"ro"` 4768 4769 // READ-ONLY; The information about the restriction where the SKU cannot be used. 4770 RestrictionInfo *ResourceSKURestrictionInfo `json:"restrictionInfo,omitempty" azure:"ro"` 4771 4772 // READ-ONLY; The type of restrictions. 4773 Type *ResourceSKURestrictionsType `json:"type,omitempty" azure:"ro"` 4774 4775 // READ-ONLY; The value of restrictions. If the restriction type is set to location. This would be different locations where the SKU is restricted. 4776 Values *[]string `json:"values,omitempty" azure:"ro"` 4777} 4778 4779// Describes The zonal capabilities of a SKU. 4780type ResourceSKUZoneDetails struct { 4781 // READ-ONLY; A list of capabilities that are available for the SKU in the specified list of zones. 4782 Capabilities *[]ResourceSKUCapabilities `json:"capabilities,omitempty" azure:"ro"` 4783 4784 // READ-ONLY; The set of zones that the SKU is available in with the specified capabilities. 4785 Name *[]string `json:"name,omitempty" azure:"ro"` 4786} 4787 4788// ResourceSKUsListOptions contains the optional parameters for the ResourceSKUs.List method. 4789type ResourceSKUsListOptions struct { 4790 // The filter to apply on the operation. Only **location** filter is supported currently. 4791 Filter *string 4792} 4793 4794// The List Resource Skus operation response. 4795type ResourceSKUsResult struct { 4796 // The URI to fetch the next page of Resource Skus. Call ListNext() with this URI to fetch the next page of Resource Skus 4797 NextLink *string `json:"nextLink,omitempty"` 4798 4799 // The list of skus available for the subscription. 4800 Value *[]ResourceSKU `json:"value,omitempty"` 4801} 4802 4803// ResourceSKUsResultResponse is the response envelope for operations that return a ResourceSKUsResult type. 4804type ResourceSKUsResultResponse struct { 4805 // RawResponse contains the underlying HTTP response. 4806 RawResponse *http.Response 4807 4808 // The List Resource Skus operation response. 4809 ResourceSKUsResult *ResourceSKUsResult 4810} 4811 4812// The List resources which are encrypted with the disk encryption set. 4813type ResourceURIList struct { 4814 // The uri to fetch the next page of encrypted resources. Call ListNext() with this to fetch the next page of encrypted resources. 4815 NextLink *string `json:"nextLink,omitempty"` 4816 4817 // A list of IDs or Owner IDs of resources which are encrypted with the disk encryption set. 4818 Value *[]string `json:"value,omitempty"` 4819} 4820 4821// ResourceURIListResponse is the response envelope for operations that return a ResourceURIList type. 4822type ResourceURIListResponse struct { 4823 // RawResponse contains the underlying HTTP response. 4824 RawResponse *http.Response 4825 4826 // The List resources which are encrypted with the disk encryption set. 4827 ResourceURIList *ResourceURIList 4828} 4829 4830// The SAS URIs of the console screenshot and serial log blobs. 4831type RetrieveBootDiagnosticsDataResult struct { 4832 // READ-ONLY; The console screenshot blob URI 4833 ConsoleScreenshotBlobURI *string `json:"consoleScreenshotBlobUri,omitempty" azure:"ro"` 4834 4835 // READ-ONLY; The serial console log blob URI. 4836 SerialConsoleLogBlobURI *string `json:"serialConsoleLogBlobUri,omitempty" azure:"ro"` 4837} 4838 4839// RetrieveBootDiagnosticsDataResultResponse is the response envelope for operations that return a RetrieveBootDiagnosticsDataResult type. 4840type RetrieveBootDiagnosticsDataResultResponse struct { 4841 // RawResponse contains the underlying HTTP response. 4842 RawResponse *http.Response 4843 4844 // The SAS URIs of the console screenshot and serial log blobs. 4845 RetrieveBootDiagnosticsDataResult *RetrieveBootDiagnosticsDataResult 4846} 4847 4848// Information about rollback on failed VM instances after a OS Upgrade operation. 4849type RollbackStatusInfo struct { 4850 // READ-ONLY; The number of instances which failed to rollback. 4851 FailedRolledbackInstanceCount *int32 `json:"failedRolledbackInstanceCount,omitempty" azure:"ro"` 4852 4853 // READ-ONLY; Error details if OS rollback failed. 4854 RollbackError *APIError `json:"rollbackError,omitempty" azure:"ro"` 4855 4856 // READ-ONLY; The number of instances which have been successfully rolled back. 4857 SuccessfullyRolledbackInstanceCount *int32 `json:"successfullyRolledbackInstanceCount,omitempty" azure:"ro"` 4858} 4859 4860// The configuration parameters used while performing a rolling upgrade. 4861type RollingUpgradePolicy struct { 4862 // 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, 4863 // unhealthy instances in previous or future batches 4864 // can cause the percentage of instances in a batch to decrease to ensure higher reliability. The default value for this parameter is 20%. 4865 MaxBatchInstancePercent *int32 `json:"maxBatchInstancePercent,omitempty"` 4866 4867 // 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, 4868 // or by being found in an unhealthy state by 4869 // the virtual machine health checks before the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The default value for 4870 // this parameter is 20%. 4871 MaxUnhealthyInstancePercent *int32 `json:"maxUnhealthyInstancePercent,omitempty"` 4872 4873 // 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 4874 // upgraded. If this percentage is ever exceeded, 4875 // the rolling update aborts. The default value for this parameter is 20%. 4876 MaxUnhealthyUpgradedInstancePercent *int32 `json:"maxUnhealthyUpgradedInstancePercent,omitempty"` 4877 4878 // 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 4879 // in ISO 8601 format. The default value is 0 seconds 4880 // (PT0S). 4881 PauseTimeBetweenBatches *string `json:"pauseTimeBetweenBatches,omitempty"` 4882} 4883 4884// Information about the number of virtual machine instances in each upgrade state. 4885type RollingUpgradeProgressInfo struct { 4886 // READ-ONLY; The number of instances that have failed to be upgraded successfully. 4887 FailedInstanceCount *int32 `json:"failedInstanceCount,omitempty" azure:"ro"` 4888 4889 // READ-ONLY; The number of instances that are currently being upgraded. 4890 InProgressInstanceCount *int32 `json:"inProgressInstanceCount,omitempty" azure:"ro"` 4891 4892 // READ-ONLY; The number of instances that have not yet begun to be upgraded. 4893 PendingInstanceCount *int32 `json:"pendingInstanceCount,omitempty" azure:"ro"` 4894 4895 // READ-ONLY; The number of instances that have been successfully upgraded. 4896 SuccessfulInstanceCount *int32 `json:"successfulInstanceCount,omitempty" azure:"ro"` 4897} 4898 4899// Information about the current running state of the overall upgrade. 4900type RollingUpgradeRunningStatus struct { 4901 // READ-ONLY; Code indicating the current status of the upgrade. 4902 Code *RollingUpgradeStatusCode `json:"code,omitempty" azure:"ro"` 4903 4904 // READ-ONLY; The last action performed on the rolling upgrade. 4905 LastAction *RollingUpgradeActionType `json:"lastAction,omitempty" azure:"ro"` 4906 4907 // READ-ONLY; Last action time of the upgrade. 4908 LastActionTime *time.Time `json:"lastActionTime,omitempty" azure:"ro"` 4909 4910 // READ-ONLY; Start time of the upgrade. 4911 StartTime *time.Time `json:"startTime,omitempty" azure:"ro"` 4912} 4913 4914// MarshalJSON implements the json.Marshaller interface for type RollingUpgradeRunningStatus. 4915func (r RollingUpgradeRunningStatus) MarshalJSON() ([]byte, error) { 4916 objectMap := make(map[string]interface{}) 4917 if r.Code != nil { 4918 objectMap["code"] = r.Code 4919 } 4920 if r.LastAction != nil { 4921 objectMap["lastAction"] = r.LastAction 4922 } 4923 if r.LastActionTime != nil { 4924 objectMap["lastActionTime"] = (*timeRFC3339)(r.LastActionTime) 4925 } 4926 if r.StartTime != nil { 4927 objectMap["startTime"] = (*timeRFC3339)(r.StartTime) 4928 } 4929 return json.Marshal(objectMap) 4930} 4931 4932// UnmarshalJSON implements the json.Unmarshaller interface for type RollingUpgradeRunningStatus. 4933func (r *RollingUpgradeRunningStatus) UnmarshalJSON(data []byte) error { 4934 var rawMsg map[string]*json.RawMessage 4935 if err := json.Unmarshal(data, &rawMsg); err != nil { 4936 return err 4937 } 4938 for key, val := range rawMsg { 4939 var err error 4940 switch key { 4941 case "code": 4942 if val != nil { 4943 err = json.Unmarshal(*val, &r.Code) 4944 } 4945 delete(rawMsg, key) 4946 case "lastAction": 4947 if val != nil { 4948 err = json.Unmarshal(*val, &r.LastAction) 4949 } 4950 delete(rawMsg, key) 4951 case "lastActionTime": 4952 if val != nil { 4953 var aux timeRFC3339 4954 err = json.Unmarshal(*val, &aux) 4955 r.LastActionTime = (*time.Time)(&aux) 4956 } 4957 delete(rawMsg, key) 4958 case "startTime": 4959 if val != nil { 4960 var aux timeRFC3339 4961 err = json.Unmarshal(*val, &aux) 4962 r.StartTime = (*time.Time)(&aux) 4963 } 4964 delete(rawMsg, key) 4965 } 4966 if err != nil { 4967 return err 4968 } 4969 } 4970 return nil 4971} 4972 4973// The status of the latest virtual machine scale set rolling upgrade. 4974type RollingUpgradeStatusInfo struct { 4975 Resource 4976 // The status of the latest virtual machine scale set rolling upgrade. 4977 Properties *RollingUpgradeStatusInfoProperties `json:"properties,omitempty"` 4978} 4979 4980// The status of the latest virtual machine scale set rolling upgrade. 4981type RollingUpgradeStatusInfoProperties struct { 4982 // READ-ONLY; Error details for this upgrade, if there are any. 4983 Error *APIError `json:"error,omitempty" azure:"ro"` 4984 4985 // READ-ONLY; The rolling upgrade policies applied for this upgrade. 4986 Policy *RollingUpgradePolicy `json:"policy,omitempty" azure:"ro"` 4987 4988 // READ-ONLY; Information about the number of virtual machine instances in each upgrade state. 4989 Progress *RollingUpgradeProgressInfo `json:"progress,omitempty" azure:"ro"` 4990 4991 // READ-ONLY; Information about the current running state of the overall upgrade. 4992 RunningStatus *RollingUpgradeRunningStatus `json:"runningStatus,omitempty" azure:"ro"` 4993} 4994 4995// RollingUpgradeStatusInfoResponse is the response envelope for operations that return a RollingUpgradeStatusInfo type. 4996type RollingUpgradeStatusInfoResponse struct { 4997 // RawResponse contains the underlying HTTP response. 4998 RawResponse *http.Response 4999 5000 // The status of the latest virtual machine scale set rolling upgrade. 5001 RollingUpgradeStatusInfo *RollingUpgradeStatusInfo 5002} 5003 5004// Describes the properties of a Run Command. 5005type RunCommandDocument struct { 5006 RunCommandDocumentBase 5007 // The parameters used by the script. 5008 Parameters *[]RunCommandParameterDefinition `json:"parameters,omitempty"` 5009 5010 // The script to be executed. 5011 Script *[]string `json:"script,omitempty"` 5012} 5013 5014// Describes the properties of a Run Command metadata. 5015type RunCommandDocumentBase struct { 5016 // The VM run command description. 5017 Description *string `json:"description,omitempty"` 5018 5019 // The VM run command id. 5020 ID *string `json:"id,omitempty"` 5021 5022 // The VM run command label. 5023 Label *string `json:"label,omitempty"` 5024 5025 // The Operating System type. 5026 OSType *OperatingSystemTypes `json:"osType,omitempty"` 5027 5028 // The VM run command schema. 5029 Schema *string `json:"$schema,omitempty"` 5030} 5031 5032// RunCommandDocumentResponse is the response envelope for operations that return a RunCommandDocument type. 5033type RunCommandDocumentResponse struct { 5034 // RawResponse contains the underlying HTTP response. 5035 RawResponse *http.Response 5036 5037 // Describes the properties of a Run Command. 5038 RunCommandDocument *RunCommandDocument 5039} 5040 5041// Capture Virtual Machine parameters. 5042type RunCommandInput struct { 5043 // The run command id. 5044 CommandID *string `json:"commandId,omitempty"` 5045 5046 // The run command parameters. 5047 Parameters *[]RunCommandInputParameter `json:"parameters,omitempty"` 5048 5049 // Optional. The script to be executed. When this value is given, the given script will override the default script of the command. 5050 Script *[]string `json:"script,omitempty"` 5051} 5052 5053// Describes the properties of a run command parameter. 5054type RunCommandInputParameter struct { 5055 // The run command parameter name. 5056 Name *string `json:"name,omitempty"` 5057 5058 // The run command parameter value. 5059 Value *string `json:"value,omitempty"` 5060} 5061 5062// The List Virtual Machine operation response. 5063type RunCommandListResult struct { 5064 // The uri to fetch the next page of run commands. Call ListNext() with this to fetch the next page of run commands. 5065 NextLink *string `json:"nextLink,omitempty"` 5066 5067 // The list of virtual machine run commands. 5068 Value *[]RunCommandDocumentBase `json:"value,omitempty"` 5069} 5070 5071// RunCommandListResultResponse is the response envelope for operations that return a RunCommandListResult type. 5072type RunCommandListResultResponse struct { 5073 // RawResponse contains the underlying HTTP response. 5074 RawResponse *http.Response 5075 5076 // The List Virtual Machine operation response. 5077 RunCommandListResult *RunCommandListResult 5078} 5079 5080// Describes the properties of a run command parameter. 5081type RunCommandParameterDefinition struct { 5082 // The run command parameter default value. 5083 DefaultValue *string `json:"defaultValue,omitempty"` 5084 5085 // The run command parameter name. 5086 Name *string `json:"name,omitempty"` 5087 5088 // The run command parameter required. 5089 Required *bool `json:"required,omitempty"` 5090 5091 // The run command parameter type. 5092 Type *string `json:"type,omitempty"` 5093} 5094 5095type RunCommandResult struct { 5096 // Run command operation response. 5097 Value *[]InstanceViewStatus `json:"value,omitempty"` 5098} 5099 5100// RunCommandResultPollerResponse is the response envelope for operations that asynchronously return a RunCommandResult type. 5101type RunCommandResultPollerResponse struct { 5102 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 5103 PollUntilDone func(ctx context.Context, frequency time.Duration) (RunCommandResultResponse, error) 5104 5105 // Poller contains an initialized poller. 5106 Poller RunCommandResultPoller 5107 5108 // RawResponse contains the underlying HTTP response. 5109 RawResponse *http.Response 5110} 5111 5112// RunCommandResultResponse is the response envelope for operations that return a RunCommandResult type. 5113type RunCommandResultResponse struct { 5114 // RawResponse contains the underlying HTTP response. 5115 RawResponse *http.Response 5116 RunCommandResult *RunCommandResult 5117} 5118 5119// Describes a virtual machine scale set sku. NOTE: If the new VM SKU is not supported on the hardware the scale set is currently on, you need to deallocate 5120// the VMs in the scale set before you modify the 5121// SKU name. 5122type SKU struct { 5123 // Specifies the number of virtual machines in the scale set. 5124 Capacity *int64 `json:"capacity,omitempty"` 5125 5126 // The sku name. 5127 Name *string `json:"name,omitempty"` 5128 5129 // Specifies the tier of virtual machines in a scale set. 5130 // Possible Values: 5131 // Standard 5132 // Basic 5133 Tier *string `json:"tier,omitempty"` 5134} 5135 5136// SSH configuration for Linux based VMs running on Azure 5137type SSHConfiguration struct { 5138 // The list of SSH public keys used to authenticate with linux based VMs. 5139 PublicKeys *[]SSHPublicKey `json:"publicKeys,omitempty"` 5140} 5141 5142// Contains information about SSH certificate public key and the path on the Linux VM where the public key is placed. 5143type SSHPublicKey struct { 5144 // 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. 5145 // For creating ssh keys, see Create SSH keys on Linux and Mac for Linux VMs in Azure 5146 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-mac-create-ssh-keys?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json]. 5147 KeyData *string `json:"keyData,omitempty"` 5148 5149 // 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: 5150 // /home/user/.ssh/authorized_keys 5151 Path *string `json:"path,omitempty"` 5152} 5153 5154// Response from generation of an SSH key pair. 5155type SSHPublicKeyGenerateKeyPairResult struct { 5156 // The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/sshPublicKeys/{SshPublicKeyName} 5157 ID *string `json:"id,omitempty"` 5158 5159 // Private key portion of the key pair used to authenticate to a virtual machine through ssh. The private key is returned in RFC3447 format and should be 5160 // treated as a secret. 5161 PrivateKey *string `json:"privateKey,omitempty"` 5162 5163 // Public key portion of the key pair used to authenticate to a virtual machine through ssh. The public key is in ssh-rsa format. 5164 PublicKey *string `json:"publicKey,omitempty"` 5165} 5166 5167// SSHPublicKeyGenerateKeyPairResultResponse is the response envelope for operations that return a SSHPublicKeyGenerateKeyPairResult type. 5168type SSHPublicKeyGenerateKeyPairResultResponse struct { 5169 // RawResponse contains the underlying HTTP response. 5170 RawResponse *http.Response 5171 5172 // Response from generation of an SSH key pair. 5173 SSHPublicKeyGenerateKeyPairResult *SSHPublicKeyGenerateKeyPairResult 5174} 5175 5176// Specifies information about the SSH public key. 5177type SSHPublicKeyResource struct { 5178 Resource 5179 // Properties of the SSH public key. 5180 Properties *SSHPublicKeyResourceProperties `json:"properties,omitempty"` 5181} 5182 5183// Properties of the SSH public key. 5184type SSHPublicKeyResourceProperties struct { 5185 // SSH public key used to authenticate to a virtual machine through ssh. If this property is not initially provided when the resource is created, the publicKey 5186 // property will be populated when 5187 // generateKeyPair is called. If the public key is provided upon resource creation, the provided public key needs to be at least 2048-bit and in ssh-rsa 5188 // format. 5189 PublicKey *string `json:"publicKey,omitempty"` 5190} 5191 5192// SSHPublicKeyResourceResponse is the response envelope for operations that return a SSHPublicKeyResource type. 5193type SSHPublicKeyResourceResponse struct { 5194 // RawResponse contains the underlying HTTP response. 5195 RawResponse *http.Response 5196 5197 // Specifies information about the SSH public key. 5198 SSHPublicKeyResource *SSHPublicKeyResource 5199} 5200 5201// Specifies information about the SSH public key. 5202type SSHPublicKeyUpdateResource struct { 5203 UpdateResource 5204 // Properties of the SSH public key. 5205 Properties *SSHPublicKeyResourceProperties `json:"properties,omitempty"` 5206} 5207 5208// SSHPublicKeysCreateOptions contains the optional parameters for the SSHPublicKeys.Create method. 5209type SSHPublicKeysCreateOptions struct { 5210 // placeholder for future optional parameters 5211} 5212 5213// SSHPublicKeysDeleteOptions contains the optional parameters for the SSHPublicKeys.Delete method. 5214type SSHPublicKeysDeleteOptions struct { 5215 // placeholder for future optional parameters 5216} 5217 5218// SSHPublicKeysGenerateKeyPairOptions contains the optional parameters for the SSHPublicKeys.GenerateKeyPair method. 5219type SSHPublicKeysGenerateKeyPairOptions struct { 5220 // placeholder for future optional parameters 5221} 5222 5223// SSHPublicKeysGetOptions contains the optional parameters for the SSHPublicKeys.Get method. 5224type SSHPublicKeysGetOptions struct { 5225 // placeholder for future optional parameters 5226} 5227 5228// The list SSH public keys operation response. 5229type SSHPublicKeysGroupListResult struct { 5230 // The URI to fetch the next page of SSH public keys. Call ListNext() with this URI to fetch the next page of SSH public keys. 5231 NextLink *string `json:"nextLink,omitempty"` 5232 5233 // The list of SSH public keys 5234 Value *[]SSHPublicKeyResource `json:"value,omitempty"` 5235} 5236 5237// SSHPublicKeysGroupListResultResponse is the response envelope for operations that return a SSHPublicKeysGroupListResult type. 5238type SSHPublicKeysGroupListResultResponse struct { 5239 // RawResponse contains the underlying HTTP response. 5240 RawResponse *http.Response 5241 5242 // The list SSH public keys operation response. 5243 SSHPublicKeysGroupListResult *SSHPublicKeysGroupListResult 5244} 5245 5246// SSHPublicKeysListByResourceGroupOptions contains the optional parameters for the SSHPublicKeys.ListByResourceGroup method. 5247type SSHPublicKeysListByResourceGroupOptions struct { 5248 // placeholder for future optional parameters 5249} 5250 5251// SSHPublicKeysListBySubscriptionOptions contains the optional parameters for the SSHPublicKeys.ListBySubscription method. 5252type SSHPublicKeysListBySubscriptionOptions struct { 5253 // placeholder for future optional parameters 5254} 5255 5256// SSHPublicKeysUpdateOptions contains the optional parameters for the SSHPublicKeys.Update method. 5257type SSHPublicKeysUpdateOptions struct { 5258 // placeholder for future optional parameters 5259} 5260 5261// Describes a scale-in policy for a virtual machine scale set. 5262type ScaleInPolicy struct { 5263 // The rules to be followed when scaling-in a virtual machine scale set. 5264 // Possible values are: 5265 // Default When a virtual machine scale set is scaled in, the scale set will first be balanced across zones if it is a zonal scale set. Then, it will be 5266 // balanced across Fault Domains as far as possible. 5267 // Within each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not protected from scale-in. 5268 // OldestVM When a virtual machine scale set is being scaled-in, the oldest virtual machines that are not protected from scale-in will be chosen for removal. 5269 // For zonal virtual machine scale sets, the 5270 // scale set will first be balanced across zones. Within each zone, the oldest virtual machines that are not protected will be chosen for removal. 5271 // NewestVM When a virtual machine scale set is being scaled-in, the newest virtual machines that are not protected from scale-in will be chosen for removal. 5272 // For zonal virtual machine scale sets, the 5273 // scale set will first be balanced across zones. Within each zone, the newest virtual machines that are not protected will be chosen for removal. 5274 Rules *[]VirtualMachineScaleSetScaleInRules `json:"rules,omitempty"` 5275} 5276 5277type ScheduledEventsProfile struct { 5278 // Specifies Terminate Scheduled Event related configurations. 5279 TerminateNotificationProfile *TerminateNotificationProfile `json:"terminateNotificationProfile,omitempty"` 5280} 5281 5282// Specifies the Security profile settings for the virtual machine or virtual machine scale set. 5283type SecurityProfile struct { 5284 // This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This 5285 // will enable the encryption for all the disks 5286 // including Resource/Temp disk at host itself. 5287 // Default: The Encryption at host will be disabled unless this property is set to true for the resource. 5288 EncryptionAtHost *bool `json:"encryptionAtHost,omitempty"` 5289} 5290 5291type ShareInfoElement struct { 5292 // READ-ONLY; A relative URI containing the ID of the VM that has the disk attached. 5293 VMURI *string `json:"vmUri,omitempty" azure:"ro"` 5294} 5295 5296// SharedGalleriesGetOptions contains the optional parameters for the SharedGalleries.Get method. 5297type SharedGalleriesGetOptions struct { 5298 // placeholder for future optional parameters 5299} 5300 5301// SharedGalleriesListOptions contains the optional parameters for the SharedGalleries.List method. 5302type SharedGalleriesListOptions struct { 5303 // The query parameter to decide what shared galleries to fetch when doing listing operations. 5304 SharedTo *SharedToValues 5305} 5306 5307// Specifies information about the Shared Gallery that you want to create or update. 5308type SharedGallery struct { 5309 PirSharedGalleryResource 5310} 5311 5312// The identifier information of shared gallery. 5313type SharedGalleryIDentifier struct { 5314 // The unique id of this shared gallery. 5315 UniqueID *string `json:"uniqueId,omitempty"` 5316} 5317 5318// Specifies information about the gallery image definition that you want to create or update. 5319type SharedGalleryImage struct { 5320 PirSharedGalleryResource 5321 // Describes the properties of a gallery image definition. 5322 Properties *SharedGalleryImageProperties `json:"properties,omitempty"` 5323} 5324 5325// The List Shared Gallery Images operation response. 5326type SharedGalleryImageList struct { 5327 // The uri to fetch the next page of shared gallery images. Call ListNext() with this to fetch the next page of shared gallery images. 5328 NextLink *string `json:"nextLink,omitempty"` 5329 5330 // A list of shared gallery images. 5331 Value *[]SharedGalleryImage `json:"value,omitempty"` 5332} 5333 5334// SharedGalleryImageListResponse is the response envelope for operations that return a SharedGalleryImageList type. 5335type SharedGalleryImageListResponse struct { 5336 // RawResponse contains the underlying HTTP response. 5337 RawResponse *http.Response 5338 5339 // The List Shared Gallery Images operation response. 5340 SharedGalleryImageList *SharedGalleryImageList 5341} 5342 5343// Describes the properties of a gallery image definition. 5344type SharedGalleryImageProperties struct { 5345 // Describes the disallowed disk types. 5346 Disallowed *Disallowed `json:"disallowed,omitempty"` 5347 5348 // The end of life date of the gallery image definition. This property can be used for decommissioning purposes. This property is updatable. 5349 EndOfLifeDate *time.Time `json:"endOfLifeDate,omitempty"` 5350 5351 // A list of gallery image features. 5352 Features *[]GalleryImageFeature `json:"features,omitempty"` 5353 5354 // The hypervisor generation of the Virtual Machine. Applicable to OS disks only. 5355 HyperVGeneration *HyperVGeneration `json:"hyperVGeneration,omitempty"` 5356 5357 // This is the gallery image definition identifier. 5358 IDentifier *GalleryImageIDentifier `json:"identifier,omitempty"` 5359 5360 // This property allows the user to specify whether the virtual machines created under this image are 'Generalized' or 'Specialized'. 5361 OSState *OperatingSystemStateTypes `json:"osState,omitempty"` 5362 5363 // 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. 5364 // Possible values are: 5365 // Windows 5366 // Linux 5367 OSType *OperatingSystemTypes `json:"osType,omitempty"` 5368 5369 // Describes the gallery image definition purchase plan. This is used by marketplace images. 5370 PurchasePlan *ImagePurchasePlan `json:"purchasePlan,omitempty"` 5371 5372 // The properties describe the recommended machine configuration for this Image Definition. These properties are updatable. 5373 Recommended *RecommendedMachineConfiguration `json:"recommended,omitempty"` 5374} 5375 5376// MarshalJSON implements the json.Marshaller interface for type SharedGalleryImageProperties. 5377func (s SharedGalleryImageProperties) MarshalJSON() ([]byte, error) { 5378 objectMap := make(map[string]interface{}) 5379 if s.Disallowed != nil { 5380 objectMap["disallowed"] = s.Disallowed 5381 } 5382 if s.EndOfLifeDate != nil { 5383 objectMap["endOfLifeDate"] = (*timeRFC3339)(s.EndOfLifeDate) 5384 } 5385 if s.Features != nil { 5386 objectMap["features"] = s.Features 5387 } 5388 if s.HyperVGeneration != nil { 5389 objectMap["hyperVGeneration"] = s.HyperVGeneration 5390 } 5391 if s.IDentifier != nil { 5392 objectMap["identifier"] = s.IDentifier 5393 } 5394 if s.OSState != nil { 5395 objectMap["osState"] = s.OSState 5396 } 5397 if s.OSType != nil { 5398 objectMap["osType"] = s.OSType 5399 } 5400 if s.PurchasePlan != nil { 5401 objectMap["purchasePlan"] = s.PurchasePlan 5402 } 5403 if s.Recommended != nil { 5404 objectMap["recommended"] = s.Recommended 5405 } 5406 return json.Marshal(objectMap) 5407} 5408 5409// UnmarshalJSON implements the json.Unmarshaller interface for type SharedGalleryImageProperties. 5410func (s *SharedGalleryImageProperties) UnmarshalJSON(data []byte) error { 5411 var rawMsg map[string]*json.RawMessage 5412 if err := json.Unmarshal(data, &rawMsg); err != nil { 5413 return err 5414 } 5415 for key, val := range rawMsg { 5416 var err error 5417 switch key { 5418 case "disallowed": 5419 if val != nil { 5420 err = json.Unmarshal(*val, &s.Disallowed) 5421 } 5422 delete(rawMsg, key) 5423 case "endOfLifeDate": 5424 if val != nil { 5425 var aux timeRFC3339 5426 err = json.Unmarshal(*val, &aux) 5427 s.EndOfLifeDate = (*time.Time)(&aux) 5428 } 5429 delete(rawMsg, key) 5430 case "features": 5431 if val != nil { 5432 err = json.Unmarshal(*val, &s.Features) 5433 } 5434 delete(rawMsg, key) 5435 case "hyperVGeneration": 5436 if val != nil { 5437 err = json.Unmarshal(*val, &s.HyperVGeneration) 5438 } 5439 delete(rawMsg, key) 5440 case "identifier": 5441 if val != nil { 5442 err = json.Unmarshal(*val, &s.IDentifier) 5443 } 5444 delete(rawMsg, key) 5445 case "osState": 5446 if val != nil { 5447 err = json.Unmarshal(*val, &s.OSState) 5448 } 5449 delete(rawMsg, key) 5450 case "osType": 5451 if val != nil { 5452 err = json.Unmarshal(*val, &s.OSType) 5453 } 5454 delete(rawMsg, key) 5455 case "purchasePlan": 5456 if val != nil { 5457 err = json.Unmarshal(*val, &s.PurchasePlan) 5458 } 5459 delete(rawMsg, key) 5460 case "recommended": 5461 if val != nil { 5462 err = json.Unmarshal(*val, &s.Recommended) 5463 } 5464 delete(rawMsg, key) 5465 } 5466 if err != nil { 5467 return err 5468 } 5469 } 5470 return nil 5471} 5472 5473// SharedGalleryImageResponse is the response envelope for operations that return a SharedGalleryImage type. 5474type SharedGalleryImageResponse struct { 5475 // RawResponse contains the underlying HTTP response. 5476 RawResponse *http.Response 5477 5478 // Specifies information about the gallery image definition that you want to create or update. 5479 SharedGalleryImage *SharedGalleryImage 5480} 5481 5482// Specifies information about the gallery image version that you want to create or update. 5483type SharedGalleryImageVersion struct { 5484 PirSharedGalleryResource 5485 // Describes the properties of a gallery image version. 5486 Properties *SharedGalleryImageVersionProperties `json:"properties,omitempty"` 5487} 5488 5489// The List Shared Gallery Image versions operation response. 5490type SharedGalleryImageVersionList struct { 5491 // The uri to fetch the next page of shared gallery image versions. Call ListNext() with this to fetch the next page of shared gallery image versions. 5492 NextLink *string `json:"nextLink,omitempty"` 5493 5494 // A list of shared gallery images versions. 5495 Value *[]SharedGalleryImageVersion `json:"value,omitempty"` 5496} 5497 5498// SharedGalleryImageVersionListResponse is the response envelope for operations that return a SharedGalleryImageVersionList type. 5499type SharedGalleryImageVersionListResponse struct { 5500 // RawResponse contains the underlying HTTP response. 5501 RawResponse *http.Response 5502 5503 // The List Shared Gallery Image versions operation response. 5504 SharedGalleryImageVersionList *SharedGalleryImageVersionList 5505} 5506 5507// Describes the properties of a gallery image version. 5508type SharedGalleryImageVersionProperties struct { 5509 // The end of life date of the gallery image version Definition. This property can be used for decommissioning purposes. This property is updatable. 5510 EndOfLifeDate *time.Time `json:"endOfLifeDate,omitempty"` 5511 5512 // The published date of the gallery image version Definition. This property can be used for decommissioning purposes. This property is updatable. 5513 PublishedDate *time.Time `json:"publishedDate,omitempty"` 5514} 5515 5516// MarshalJSON implements the json.Marshaller interface for type SharedGalleryImageVersionProperties. 5517func (s SharedGalleryImageVersionProperties) MarshalJSON() ([]byte, error) { 5518 objectMap := make(map[string]interface{}) 5519 if s.EndOfLifeDate != nil { 5520 objectMap["endOfLifeDate"] = (*timeRFC3339)(s.EndOfLifeDate) 5521 } 5522 if s.PublishedDate != nil { 5523 objectMap["publishedDate"] = (*timeRFC3339)(s.PublishedDate) 5524 } 5525 return json.Marshal(objectMap) 5526} 5527 5528// UnmarshalJSON implements the json.Unmarshaller interface for type SharedGalleryImageVersionProperties. 5529func (s *SharedGalleryImageVersionProperties) UnmarshalJSON(data []byte) error { 5530 var rawMsg map[string]*json.RawMessage 5531 if err := json.Unmarshal(data, &rawMsg); err != nil { 5532 return err 5533 } 5534 for key, val := range rawMsg { 5535 var err error 5536 switch key { 5537 case "endOfLifeDate": 5538 if val != nil { 5539 var aux timeRFC3339 5540 err = json.Unmarshal(*val, &aux) 5541 s.EndOfLifeDate = (*time.Time)(&aux) 5542 } 5543 delete(rawMsg, key) 5544 case "publishedDate": 5545 if val != nil { 5546 var aux timeRFC3339 5547 err = json.Unmarshal(*val, &aux) 5548 s.PublishedDate = (*time.Time)(&aux) 5549 } 5550 delete(rawMsg, key) 5551 } 5552 if err != nil { 5553 return err 5554 } 5555 } 5556 return nil 5557} 5558 5559// SharedGalleryImageVersionResponse is the response envelope for operations that return a SharedGalleryImageVersion type. 5560type SharedGalleryImageVersionResponse struct { 5561 // RawResponse contains the underlying HTTP response. 5562 RawResponse *http.Response 5563 5564 // Specifies information about the gallery image version that you want to create or update. 5565 SharedGalleryImageVersion *SharedGalleryImageVersion 5566} 5567 5568// SharedGalleryImageVersionsGetOptions contains the optional parameters for the SharedGalleryImageVersions.Get method. 5569type SharedGalleryImageVersionsGetOptions struct { 5570 // placeholder for future optional parameters 5571} 5572 5573// SharedGalleryImageVersionsListOptions contains the optional parameters for the SharedGalleryImageVersions.List method. 5574type SharedGalleryImageVersionsListOptions struct { 5575 // The query parameter to decide what shared galleries to fetch when doing listing operations. 5576 SharedTo *SharedToValues 5577} 5578 5579// SharedGalleryImagesGetOptions contains the optional parameters for the SharedGalleryImages.Get method. 5580type SharedGalleryImagesGetOptions struct { 5581 // placeholder for future optional parameters 5582} 5583 5584// SharedGalleryImagesListOptions contains the optional parameters for the SharedGalleryImages.List method. 5585type SharedGalleryImagesListOptions struct { 5586 // The query parameter to decide what shared galleries to fetch when doing listing operations. 5587 SharedTo *SharedToValues 5588} 5589 5590// The List Shared Galleries operation response. 5591type SharedGalleryList struct { 5592 // The uri to fetch the next page of shared galleries. Call ListNext() with this to fetch the next page of shared galleries. 5593 NextLink *string `json:"nextLink,omitempty"` 5594 5595 // A list of shared galleries. 5596 Value *[]PirSharedGalleryResource `json:"value,omitempty"` 5597} 5598 5599// SharedGalleryListResponse is the response envelope for operations that return a SharedGalleryList type. 5600type SharedGalleryListResponse struct { 5601 // RawResponse contains the underlying HTTP response. 5602 RawResponse *http.Response 5603 5604 // The List Shared Galleries operation response. 5605 SharedGalleryList *SharedGalleryList 5606} 5607 5608// Profile for gallery sharing to subscription or tenant 5609type SharingProfile struct { 5610 // READ-ONLY; A list of sharing profile groups. 5611 Groups *[]SharingProfileGroup `json:"groups,omitempty" azure:"ro"` 5612 5613 // This property allows you to specify the permission of sharing gallery. 5614 // Possible values are: 5615 // Private 5616 // Groups 5617 Permissions *GallerySharingPermissionTypes `json:"permissions,omitempty"` 5618} 5619 5620// Group of the gallery sharing profile 5621type SharingProfileGroup struct { 5622 // A list of subscription/tenant ids the gallery is aimed to be shared to. 5623 IDs *[]string `json:"ids,omitempty"` 5624 5625 // This property allows you to specify the type of sharing group. 5626 // Possible values are: 5627 // Subscriptions 5628 // AADTenants 5629 Type *SharingProfileGroupTypes `json:"type,omitempty"` 5630} 5631 5632// Specifies information about the gallery sharing profile update. 5633type SharingUpdate struct { 5634 // A list of sharing profile groups. 5635 Groups *[]SharingProfileGroup `json:"groups,omitempty"` 5636 5637 // This property allows you to specify the operation type of gallery sharing update. 5638 // Possible values are: 5639 // Add 5640 // Remove 5641 // Reset 5642 OperationType *SharingUpdateOperationTypes `json:"operationType,omitempty"` 5643} 5644 5645// SharingUpdatePollerResponse is the response envelope for operations that asynchronously return a SharingUpdate type. 5646type SharingUpdatePollerResponse struct { 5647 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 5648 PollUntilDone func(ctx context.Context, frequency time.Duration) (SharingUpdateResponse, error) 5649 5650 // Poller contains an initialized poller. 5651 Poller SharingUpdatePoller 5652 5653 // RawResponse contains the underlying HTTP response. 5654 RawResponse *http.Response 5655} 5656 5657// SharingUpdateResponse is the response envelope for operations that return a SharingUpdate type. 5658type SharingUpdateResponse struct { 5659 // RawResponse contains the underlying HTTP response. 5660 RawResponse *http.Response 5661 5662 // Specifies information about the gallery sharing profile update. 5663 SharingUpdate *SharingUpdate 5664} 5665 5666// Snapshot resource. 5667type Snapshot struct { 5668 Resource 5669 // The extended location where the snapshot will be created. Extended location cannot be changed. 5670 ExtendedLocation *ExtendedLocation `json:"extendedLocation,omitempty"` 5671 5672 // READ-ONLY; Unused. Always Null. 5673 ManagedBy *string `json:"managedBy,omitempty" azure:"ro"` 5674 5675 // Snapshot resource properties. 5676 Properties *SnapshotProperties `json:"properties,omitempty"` 5677 5678 // The snapshots sku name. Can be StandardLRS, PremiumLRS, or Standard_ZRS. This is an optional parameter for incremental snapshot and the default behavior 5679 // is the SKU will be set to the same sku as the 5680 // previous snapshot 5681 SKU *SnapshotSKU `json:"sku,omitempty"` 5682} 5683 5684// The List Snapshots operation response. 5685type SnapshotList struct { 5686 // The uri to fetch the next page of snapshots. Call ListNext() with this to fetch the next page of snapshots. 5687 NextLink *string `json:"nextLink,omitempty"` 5688 5689 // A list of snapshots. 5690 Value *[]Snapshot `json:"value,omitempty"` 5691} 5692 5693// SnapshotListResponse is the response envelope for operations that return a SnapshotList type. 5694type SnapshotListResponse struct { 5695 // RawResponse contains the underlying HTTP response. 5696 RawResponse *http.Response 5697 5698 // The List Snapshots operation response. 5699 SnapshotList *SnapshotList 5700} 5701 5702// SnapshotPollerResponse is the response envelope for operations that asynchronously return a Snapshot type. 5703type SnapshotPollerResponse struct { 5704 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 5705 PollUntilDone func(ctx context.Context, frequency time.Duration) (SnapshotResponse, error) 5706 5707 // Poller contains an initialized poller. 5708 Poller SnapshotPoller 5709 5710 // RawResponse contains the underlying HTTP response. 5711 RawResponse *http.Response 5712} 5713 5714// Snapshot resource properties. 5715type SnapshotProperties struct { 5716 // Disk source information. CreationData information cannot be changed after the disk has been created. 5717 CreationData *CreationData `json:"creationData,omitempty"` 5718 5719 // ARM id of the DiskAccess resource for using private endpoints on disks. 5720 DiskAccessID *string `json:"diskAccessId,omitempty"` 5721 5722 // READ-ONLY; The size of the disk in bytes. This field is read only. 5723 DiskSizeBytes *int64 `json:"diskSizeBytes,omitempty" azure:"ro"` 5724 5725 // If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates 5726 // or creation with other options, it indicates a 5727 // resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size. 5728 DiskSizeGb *int32 `json:"diskSizeGB,omitempty"` 5729 5730 // READ-ONLY; The state of the snapshot. 5731 DiskState *DiskState `json:"diskState,omitempty" azure:"ro"` 5732 5733 // Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys. 5734 Encryption *Encryption `json:"encryption,omitempty"` 5735 5736 // Encryption settings collection used be Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot. 5737 EncryptionSettingsCollection *EncryptionSettingsCollection `json:"encryptionSettingsCollection,omitempty"` 5738 5739 // The hypervisor generation of the Virtual Machine. Applicable to OS disks only. 5740 HyperVGeneration *HyperVGeneration `json:"hyperVGeneration,omitempty"` 5741 5742 // Whether a snapshot is incremental. Incremental snapshots on the same disk occupy less space than full snapshots and can be diffed. 5743 Incremental *bool `json:"incremental,omitempty"` 5744 5745 // Policy for accessing the disk via network. 5746 NetworkAccessPolicy *NetworkAccessPolicy `json:"networkAccessPolicy,omitempty"` 5747 5748 // The Operating System type. 5749 OSType *OperatingSystemTypes `json:"osType,omitempty"` 5750 5751 // READ-ONLY; The disk provisioning state. 5752 ProvisioningState *string `json:"provisioningState,omitempty" azure:"ro"` 5753 5754 // Purchase plan information for the image from which the source disk for the snapshot was originally created. 5755 PurchasePlan *PurchasePlanAutoGenerated `json:"purchasePlan,omitempty"` 5756 5757 // READ-ONLY; The time when the snapshot was created. 5758 TimeCreated *time.Time `json:"timeCreated,omitempty" azure:"ro"` 5759 5760 // READ-ONLY; Unique Guid identifying the resource. 5761 UniqueID *string `json:"uniqueId,omitempty" azure:"ro"` 5762} 5763 5764// MarshalJSON implements the json.Marshaller interface for type SnapshotProperties. 5765func (s SnapshotProperties) MarshalJSON() ([]byte, error) { 5766 objectMap := make(map[string]interface{}) 5767 if s.CreationData != nil { 5768 objectMap["creationData"] = s.CreationData 5769 } 5770 if s.DiskAccessID != nil { 5771 objectMap["diskAccessId"] = s.DiskAccessID 5772 } 5773 if s.DiskSizeBytes != nil { 5774 objectMap["diskSizeBytes"] = s.DiskSizeBytes 5775 } 5776 if s.DiskSizeGb != nil { 5777 objectMap["diskSizeGB"] = s.DiskSizeGb 5778 } 5779 if s.DiskState != nil { 5780 objectMap["diskState"] = s.DiskState 5781 } 5782 if s.Encryption != nil { 5783 objectMap["encryption"] = s.Encryption 5784 } 5785 if s.EncryptionSettingsCollection != nil { 5786 objectMap["encryptionSettingsCollection"] = s.EncryptionSettingsCollection 5787 } 5788 if s.HyperVGeneration != nil { 5789 objectMap["hyperVGeneration"] = s.HyperVGeneration 5790 } 5791 if s.Incremental != nil { 5792 objectMap["incremental"] = s.Incremental 5793 } 5794 if s.NetworkAccessPolicy != nil { 5795 objectMap["networkAccessPolicy"] = s.NetworkAccessPolicy 5796 } 5797 if s.OSType != nil { 5798 objectMap["osType"] = s.OSType 5799 } 5800 if s.ProvisioningState != nil { 5801 objectMap["provisioningState"] = s.ProvisioningState 5802 } 5803 if s.PurchasePlan != nil { 5804 objectMap["purchasePlan"] = s.PurchasePlan 5805 } 5806 if s.TimeCreated != nil { 5807 objectMap["timeCreated"] = (*timeRFC3339)(s.TimeCreated) 5808 } 5809 if s.UniqueID != nil { 5810 objectMap["uniqueId"] = s.UniqueID 5811 } 5812 return json.Marshal(objectMap) 5813} 5814 5815// UnmarshalJSON implements the json.Unmarshaller interface for type SnapshotProperties. 5816func (s *SnapshotProperties) UnmarshalJSON(data []byte) error { 5817 var rawMsg map[string]*json.RawMessage 5818 if err := json.Unmarshal(data, &rawMsg); err != nil { 5819 return err 5820 } 5821 for key, val := range rawMsg { 5822 var err error 5823 switch key { 5824 case "creationData": 5825 if val != nil { 5826 err = json.Unmarshal(*val, &s.CreationData) 5827 } 5828 delete(rawMsg, key) 5829 case "diskAccessId": 5830 if val != nil { 5831 err = json.Unmarshal(*val, &s.DiskAccessID) 5832 } 5833 delete(rawMsg, key) 5834 case "diskSizeBytes": 5835 if val != nil { 5836 err = json.Unmarshal(*val, &s.DiskSizeBytes) 5837 } 5838 delete(rawMsg, key) 5839 case "diskSizeGB": 5840 if val != nil { 5841 err = json.Unmarshal(*val, &s.DiskSizeGb) 5842 } 5843 delete(rawMsg, key) 5844 case "diskState": 5845 if val != nil { 5846 err = json.Unmarshal(*val, &s.DiskState) 5847 } 5848 delete(rawMsg, key) 5849 case "encryption": 5850 if val != nil { 5851 err = json.Unmarshal(*val, &s.Encryption) 5852 } 5853 delete(rawMsg, key) 5854 case "encryptionSettingsCollection": 5855 if val != nil { 5856 err = json.Unmarshal(*val, &s.EncryptionSettingsCollection) 5857 } 5858 delete(rawMsg, key) 5859 case "hyperVGeneration": 5860 if val != nil { 5861 err = json.Unmarshal(*val, &s.HyperVGeneration) 5862 } 5863 delete(rawMsg, key) 5864 case "incremental": 5865 if val != nil { 5866 err = json.Unmarshal(*val, &s.Incremental) 5867 } 5868 delete(rawMsg, key) 5869 case "networkAccessPolicy": 5870 if val != nil { 5871 err = json.Unmarshal(*val, &s.NetworkAccessPolicy) 5872 } 5873 delete(rawMsg, key) 5874 case "osType": 5875 if val != nil { 5876 err = json.Unmarshal(*val, &s.OSType) 5877 } 5878 delete(rawMsg, key) 5879 case "provisioningState": 5880 if val != nil { 5881 err = json.Unmarshal(*val, &s.ProvisioningState) 5882 } 5883 delete(rawMsg, key) 5884 case "purchasePlan": 5885 if val != nil { 5886 err = json.Unmarshal(*val, &s.PurchasePlan) 5887 } 5888 delete(rawMsg, key) 5889 case "timeCreated": 5890 if val != nil { 5891 var aux timeRFC3339 5892 err = json.Unmarshal(*val, &aux) 5893 s.TimeCreated = (*time.Time)(&aux) 5894 } 5895 delete(rawMsg, key) 5896 case "uniqueId": 5897 if val != nil { 5898 err = json.Unmarshal(*val, &s.UniqueID) 5899 } 5900 delete(rawMsg, key) 5901 } 5902 if err != nil { 5903 return err 5904 } 5905 } 5906 return nil 5907} 5908 5909// SnapshotResponse is the response envelope for operations that return a Snapshot type. 5910type SnapshotResponse struct { 5911 // RawResponse contains the underlying HTTP response. 5912 RawResponse *http.Response 5913 5914 // Snapshot resource. 5915 Snapshot *Snapshot 5916} 5917 5918// The snapshots sku name. Can be StandardLRS, PremiumLRS, or Standard_ZRS. This is an optional parameter for incremental snapshot and the default behavior 5919// is the SKU will be set to the same sku as the 5920// previous snapshot 5921type SnapshotSKU struct { 5922 // The sku name. 5923 Name *SnapshotStorageAccountTypes `json:"name,omitempty"` 5924 5925 // READ-ONLY; The sku tier. 5926 Tier *string `json:"tier,omitempty" azure:"ro"` 5927} 5928 5929// Snapshot update resource. 5930type SnapshotUpdate struct { 5931 // Snapshot resource update properties. 5932 Properties *SnapshotUpdateProperties `json:"properties,omitempty"` 5933 5934 // The snapshots sku name. Can be StandardLRS, PremiumLRS, or Standard_ZRS. This is an optional parameter for incremental snapshot and the default behavior 5935 // is the SKU will be set to the same sku as the 5936 // previous snapshot 5937 SKU *SnapshotSKU `json:"sku,omitempty"` 5938 5939 // Resource tags 5940 Tags *map[string]string `json:"tags,omitempty"` 5941} 5942 5943// Snapshot resource update properties. 5944type SnapshotUpdateProperties struct { 5945 // ARM id of the DiskAccess resource for using private endpoints on disks. 5946 DiskAccessID *string `json:"diskAccessId,omitempty"` 5947 5948 // If creationData.createOption is Empty, this field is mandatory and it indicates the size of the disk to create. If this field is present for updates 5949 // or creation with other options, it indicates a 5950 // resize. Resizes are only allowed if the disk is not attached to a running VM, and can only increase the disk's size. 5951 DiskSizeGb *int32 `json:"diskSizeGB,omitempty"` 5952 5953 // Encryption property can be used to encrypt data at rest with customer managed keys or platform managed keys. 5954 Encryption *Encryption `json:"encryption,omitempty"` 5955 5956 // Encryption settings collection used be Azure Disk Encryption, can contain multiple encryption settings per disk or snapshot. 5957 EncryptionSettingsCollection *EncryptionSettingsCollection `json:"encryptionSettingsCollection,omitempty"` 5958 5959 // Policy for accessing the disk via network. 5960 NetworkAccessPolicy *NetworkAccessPolicy `json:"networkAccessPolicy,omitempty"` 5961 5962 // the Operating System type. 5963 OSType *OperatingSystemTypes `json:"osType,omitempty"` 5964} 5965 5966// SnapshotsBeginCreateOrUpdateOptions contains the optional parameters for the Snapshots.BeginCreateOrUpdate method. 5967type SnapshotsBeginCreateOrUpdateOptions struct { 5968 // placeholder for future optional parameters 5969} 5970 5971// SnapshotsBeginDeleteOptions contains the optional parameters for the Snapshots.BeginDelete method. 5972type SnapshotsBeginDeleteOptions struct { 5973 // placeholder for future optional parameters 5974} 5975 5976// SnapshotsBeginGrantAccessOptions contains the optional parameters for the Snapshots.BeginGrantAccess method. 5977type SnapshotsBeginGrantAccessOptions struct { 5978 // placeholder for future optional parameters 5979} 5980 5981// SnapshotsBeginRevokeAccessOptions contains the optional parameters for the Snapshots.BeginRevokeAccess method. 5982type SnapshotsBeginRevokeAccessOptions struct { 5983 // placeholder for future optional parameters 5984} 5985 5986// SnapshotsBeginUpdateOptions contains the optional parameters for the Snapshots.BeginUpdate method. 5987type SnapshotsBeginUpdateOptions struct { 5988 // placeholder for future optional parameters 5989} 5990 5991// SnapshotsGetOptions contains the optional parameters for the Snapshots.Get method. 5992type SnapshotsGetOptions struct { 5993 // placeholder for future optional parameters 5994} 5995 5996// SnapshotsListByResourceGroupOptions contains the optional parameters for the Snapshots.ListByResourceGroup method. 5997type SnapshotsListByResourceGroupOptions struct { 5998 // placeholder for future optional parameters 5999} 6000 6001// SnapshotsListOptions contains the optional parameters for the Snapshots.List method. 6002type SnapshotsListOptions struct { 6003 // placeholder for future optional parameters 6004} 6005 6006// The vault id is an Azure Resource Manager Resource id in the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName} 6007type SourceVault struct { 6008 // Resource Id 6009 ID *string `json:"id,omitempty"` 6010} 6011 6012// Specifies the storage settings for the virtual machine disks. 6013type StorageProfile struct { 6014 // Specifies the parameters that are used to add a data disk to a virtual machine. 6015 // For more information about disks, see About disks and VHDs for Azure virtual machines 6016 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json]. 6017 DataDisks *[]DataDisk `json:"dataDisks,omitempty"` 6018 6019 // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This 6020 // element is required when you want to use a platform 6021 // image, marketplace image, or virtual machine image, but is not used in other creation operations. 6022 ImageReference *ImageReference `json:"imageReference,omitempty"` 6023 6024 // Specifies information about the operating system disk used by the virtual machine. 6025 // For more information about disks, see About disks and VHDs for Azure virtual machines 6026 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json]. 6027 OSDisk *OSDisk `json:"osDisk,omitempty"` 6028} 6029 6030type SubResource struct { 6031 // Resource Id 6032 ID *string `json:"id,omitempty"` 6033} 6034 6035type SubResourceReadOnly struct { 6036 // READ-ONLY; Resource Id 6037 ID *string `json:"id,omitempty" azure:"ro"` 6038} 6039 6040type SubResourceWithColocationStatus struct { 6041 SubResource 6042 // Describes colocation status of a resource in the Proximity Placement Group. 6043 ColocationStatus *InstanceViewStatus `json:"colocationStatus,omitempty"` 6044} 6045 6046// Describes the target region information. 6047type TargetRegion struct { 6048 // Optional. Allows users to provide customer managed keys for encrypting the OS and data disks in the gallery artifact. 6049 Encryption *EncryptionImages `json:"encryption,omitempty"` 6050 6051 // The name of the region. 6052 Name *string `json:"name,omitempty"` 6053 6054 // The number of replicas of the Image Version to be created per region. This property is updatable. 6055 RegionalReplicaCount *int32 `json:"regionalReplicaCount,omitempty"` 6056 6057 // Specifies the storage account type to be used to store the image. This property is not updatable. 6058 StorageAccountType *StorageAccountType `json:"storageAccountType,omitempty"` 6059} 6060 6061type TerminateNotificationProfile struct { 6062 // Specifies whether the Terminate Scheduled event is enabled or disabled. 6063 Enable *bool `json:"enable,omitempty"` 6064 6065 // Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved 6066 // (timed out). The configuration must be 6067 // specified in ISO 8601 format, the default value is 5 minutes (PT5M) 6068 NotBeforeTimeout *string `json:"notBeforeTimeout,omitempty"` 6069} 6070 6071// Api request input for LogAnalytics getThrottledRequests Api. 6072type ThrottledRequestsInput struct { 6073 LogAnalyticsInputBase 6074} 6075 6076// The Update Resource model definition. 6077type UpdateResource struct { 6078 // Resource tags 6079 Tags *map[string]string `json:"tags,omitempty"` 6080} 6081 6082// The Update Resource model definition. 6083type UpdateResourceDefinition struct { 6084 // READ-ONLY; Resource Id 6085 ID *string `json:"id,omitempty" azure:"ro"` 6086 6087 // READ-ONLY; Resource name 6088 Name *string `json:"name,omitempty" azure:"ro"` 6089 6090 // Resource tags 6091 Tags *map[string]string `json:"tags,omitempty"` 6092 6093 // READ-ONLY; Resource type 6094 Type *string `json:"type,omitempty" azure:"ro"` 6095} 6096 6097// Virtual Machine Scale Set OS Upgrade History operation response. 6098type UpgradeOperationHistoricalStatusInfo struct { 6099 // READ-ONLY; Resource location 6100 Location *string `json:"location,omitempty" azure:"ro"` 6101 6102 // READ-ONLY; Information about the properties of the upgrade operation. 6103 Properties *UpgradeOperationHistoricalStatusInfoProperties `json:"properties,omitempty" azure:"ro"` 6104 6105 // READ-ONLY; Resource type 6106 Type *string `json:"type,omitempty" azure:"ro"` 6107} 6108 6109// Describes each OS upgrade on the Virtual Machine Scale Set. 6110type UpgradeOperationHistoricalStatusInfoProperties struct { 6111 // READ-ONLY; Error Details for this upgrade if there are any. 6112 Error *APIError `json:"error,omitempty" azure:"ro"` 6113 6114 // READ-ONLY; Counts of the VMs in each state. 6115 Progress *RollingUpgradeProgressInfo `json:"progress,omitempty" azure:"ro"` 6116 6117 // READ-ONLY; Information about OS rollback if performed 6118 RollbackInfo *RollbackStatusInfo `json:"rollbackInfo,omitempty" azure:"ro"` 6119 6120 // READ-ONLY; Information about the overall status of the upgrade operation. 6121 RunningStatus *UpgradeOperationHistoryStatus `json:"runningStatus,omitempty" azure:"ro"` 6122 6123 // READ-ONLY; Invoker of the Upgrade Operation 6124 StartedBy *UpgradeOperationInvoker `json:"startedBy,omitempty" azure:"ro"` 6125 6126 // READ-ONLY; Image Reference details 6127 TargetImageReference *ImageReference `json:"targetImageReference,omitempty" azure:"ro"` 6128} 6129 6130// Information about the current running state of the overall upgrade. 6131type UpgradeOperationHistoryStatus struct { 6132 // READ-ONLY; Code indicating the current status of the upgrade. 6133 Code *UpgradeState `json:"code,omitempty" azure:"ro"` 6134 6135 // READ-ONLY; End time of the upgrade. 6136 EndTime *time.Time `json:"endTime,omitempty" azure:"ro"` 6137 6138 // READ-ONLY; Start time of the upgrade. 6139 StartTime *time.Time `json:"startTime,omitempty" azure:"ro"` 6140} 6141 6142// MarshalJSON implements the json.Marshaller interface for type UpgradeOperationHistoryStatus. 6143func (u UpgradeOperationHistoryStatus) MarshalJSON() ([]byte, error) { 6144 objectMap := make(map[string]interface{}) 6145 if u.Code != nil { 6146 objectMap["code"] = u.Code 6147 } 6148 if u.EndTime != nil { 6149 objectMap["endTime"] = (*timeRFC3339)(u.EndTime) 6150 } 6151 if u.StartTime != nil { 6152 objectMap["startTime"] = (*timeRFC3339)(u.StartTime) 6153 } 6154 return json.Marshal(objectMap) 6155} 6156 6157// UnmarshalJSON implements the json.Unmarshaller interface for type UpgradeOperationHistoryStatus. 6158func (u *UpgradeOperationHistoryStatus) UnmarshalJSON(data []byte) error { 6159 var rawMsg map[string]*json.RawMessage 6160 if err := json.Unmarshal(data, &rawMsg); err != nil { 6161 return err 6162 } 6163 for key, val := range rawMsg { 6164 var err error 6165 switch key { 6166 case "code": 6167 if val != nil { 6168 err = json.Unmarshal(*val, &u.Code) 6169 } 6170 delete(rawMsg, key) 6171 case "endTime": 6172 if val != nil { 6173 var aux timeRFC3339 6174 err = json.Unmarshal(*val, &aux) 6175 u.EndTime = (*time.Time)(&aux) 6176 } 6177 delete(rawMsg, key) 6178 case "startTime": 6179 if val != nil { 6180 var aux timeRFC3339 6181 err = json.Unmarshal(*val, &aux) 6182 u.StartTime = (*time.Time)(&aux) 6183 } 6184 delete(rawMsg, key) 6185 } 6186 if err != nil { 6187 return err 6188 } 6189 } 6190 return nil 6191} 6192 6193// Describes an upgrade policy - automatic, manual, or rolling. 6194type UpgradePolicy struct { 6195 // Configuration parameters used for performing automatic OS Upgrade. 6196 AutomaticOSUpgradePolicy *AutomaticOSUpgradePolicy `json:"automaticOSUpgradePolicy,omitempty"` 6197 6198 // Specifies the mode of an upgrade to virtual machines in the scale set. 6199 // Possible values are: 6200 // Manual - You control the application of updates to virtual machines in the scale set. You do this by using the manualUpgrade action. 6201 // Automatic - All virtual machines in the scale set are automatically updated at the same time. 6202 Mode *UpgradeMode `json:"mode,omitempty"` 6203 6204 // The configuration parameters used while performing a rolling upgrade. 6205 RollingUpgradePolicy *RollingUpgradePolicy `json:"rollingUpgradePolicy,omitempty"` 6206} 6207 6208// Describes Compute Resource Usage. 6209type Usage struct { 6210 // The current usage of the resource. 6211 CurrentValue *int32 `json:"currentValue,omitempty"` 6212 6213 // The maximum permitted usage of the resource. 6214 Limit *int64 `json:"limit,omitempty"` 6215 6216 // The name of the type of usage. 6217 Name *UsageName `json:"name,omitempty"` 6218 6219 // An enum describing the unit of usage measurement. 6220 Unit *string `json:"unit,omitempty"` 6221} 6222 6223// UsageListOptions contains the optional parameters for the Usage.List method. 6224type UsageListOptions struct { 6225 // placeholder for future optional parameters 6226} 6227 6228// The Usage Names. 6229type UsageName struct { 6230 // The localized name of the resource. 6231 LocalizedValue *string `json:"localizedValue,omitempty"` 6232 6233 // The name of the resource. 6234 Value *string `json:"value,omitempty"` 6235} 6236 6237type UserArtifactManage struct { 6238 // Required. The path and arguments to install the gallery application. This is limited to 4096 characters. 6239 Install *string `json:"install,omitempty"` 6240 6241 // Required. The path and arguments to remove the gallery application. This is limited to 4096 characters. 6242 Remove *string `json:"remove,omitempty"` 6243 6244 // Optional. The path and arguments to update the gallery application. If not present, then update operation will invoke remove command on the previous 6245 // version and install command on the current version 6246 // of the gallery application. This is limited to 4096 characters. 6247 Update *string `json:"update,omitempty"` 6248} 6249 6250// The source image from which the Image Version is going to be created. 6251type UserArtifactSource struct { 6252 // Optional. The defaultConfigurationLink of the artifact, must be a readable storage page blob. 6253 DefaultConfigurationLink *string `json:"defaultConfigurationLink,omitempty"` 6254 6255 // Required. The mediaLink of the artifact, must be a readable storage page blob. 6256 MediaLink *string `json:"mediaLink,omitempty"` 6257} 6258 6259type UserAssignedIDentitiesValue struct { 6260 // READ-ONLY; The client id of user assigned identity. 6261 ClientID *string `json:"clientId,omitempty" azure:"ro"` 6262 6263 // READ-ONLY; The principal id of user assigned identity. 6264 PrincipalID *string `json:"principalId,omitempty" azure:"ro"` 6265} 6266 6267type VMScaleSetConvertToSinglePlacementGroupInput struct { 6268 // Id of the placement group in which you want future virtual machine instances to be placed. To query placement group Id, please use Virtual Machine Scale 6269 // Set VMs - Get API. If not provided, the 6270 // platform will choose one with maximum number of virtual machine instances. 6271 ActivePlacementGroupID *string `json:"activePlacementGroupId,omitempty"` 6272} 6273 6274// Describes a single certificate reference in a Key Vault, and where the certificate should reside on the VM. 6275type VaultCertificate struct { 6276 // For Windows VMs, specifies the certificate store on the Virtual Machine to which the certificate should be added. The specified certificate store is 6277 // implicitly in the LocalMachine account. 6278 // For Linux VMs, the certificate file is placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt for the X509 certificate 6279 // file and <UppercaseThumbprint>.prv for private 6280 // key. Both of these files are .pem formatted. 6281 CertificateStore *string `json:"certificateStore,omitempty"` 6282 6283 // 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 6284 // key vault 6285 // [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 6286 // following JSON Object which is encoded in UTF-8: 6287 // { 6288 // "data":"", 6289 // "dataType":"pfx", 6290 // "password":"" 6291 // } 6292 CertificateURL *string `json:"certificateUrl,omitempty"` 6293} 6294 6295// Describes a set of certificates which are all in the same Key Vault. 6296type VaultSecretGroup struct { 6297 // The relative URL of the Key Vault containing all of the certificates in VaultCertificates. 6298 SourceVault *SubResource `json:"sourceVault,omitempty"` 6299 6300 // The list of key vault references in SourceVault which contain certificates. 6301 VaultCertificates *[]VaultCertificate `json:"vaultCertificates,omitempty"` 6302} 6303 6304// Describes the uri of a disk. 6305type VirtualHardDisk struct { 6306 // Specifies the virtual hard disk's uri. 6307 URI *string `json:"uri,omitempty"` 6308} 6309 6310// Describes a Virtual Machine. 6311type VirtualMachine struct { 6312 Resource 6313 // The identity of the virtual machine, if configured. 6314 IDentity *VirtualMachineIDentity `json:"identity,omitempty"` 6315 6316 // Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can 6317 // use a marketplace image from an API, you must 6318 // 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, 6319 // Get Started ->. Enter any required 6320 // information and then click Save. 6321 Plan *Plan `json:"plan,omitempty"` 6322 6323 // Describes the properties of a Virtual Machine. 6324 Properties *VirtualMachineProperties `json:"properties,omitempty"` 6325 6326 // READ-ONLY; The virtual machine child extension resources. 6327 Resources *[]VirtualMachineExtension `json:"resources,omitempty" azure:"ro"` 6328 6329 // The virtual machine zones. 6330 Zones *[]string `json:"zones,omitempty"` 6331} 6332 6333// The instance view of the VM Agent running on the virtual machine. 6334type VirtualMachineAgentInstanceView struct { 6335 // The virtual machine extension handler instance view. 6336 ExtensionHandlers *[]VirtualMachineExtensionHandlerInstanceView `json:"extensionHandlers,omitempty"` 6337 6338 // The resource status information. 6339 Statuses *[]InstanceViewStatus `json:"statuses,omitempty"` 6340 6341 // The VM Agent full version. 6342 VMAgentVersion *string `json:"vmAgentVersion,omitempty"` 6343} 6344 6345// Describes the properties of an AssessPatches result. 6346type VirtualMachineAssessPatchesResult struct { 6347 // READ-ONLY; The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs. 6348 AssessmentActivityID *string `json:"assessmentActivityId,omitempty" azure:"ro"` 6349 6350 // READ-ONLY; The number of critical or security patches that have been detected as available and not yet installed. 6351 CriticalAndSecurityPatchCount *int32 `json:"criticalAndSecurityPatchCount,omitempty" azure:"ro"` 6352 6353 // READ-ONLY; The errors that were encountered during execution of the operation. The details array contains the list of them. 6354 Error *APIError `json:"error,omitempty" azure:"ro"` 6355 6356 // READ-ONLY; The number of all available patches excluding critical and security. 6357 OtherPatchCount *int32 `json:"otherPatchCount,omitempty" azure:"ro"` 6358 6359 // READ-ONLY; The list of patches that have been detected as available for installation. 6360 Patches *[]VirtualMachineSoftwarePatchProperties `json:"patches,omitempty" azure:"ro"` 6361 6362 // READ-ONLY; The overall reboot status of the VM. It will be true when partially installed patches require a reboot to complete installation but the reboot 6363 // has not yet occurred. 6364 RebootPending *bool `json:"rebootPending,omitempty" azure:"ro"` 6365 6366 // READ-ONLY; The UTC timestamp when the operation began. 6367 StartDateTime *time.Time `json:"startDateTime,omitempty" azure:"ro"` 6368 6369 // READ-ONLY; The overall success or failure status of the operation. It remains "InProgress" until the operation completes. At that point it will become 6370 // "Failed", "Succeeded", or "CompletedWithWarnings." 6371 Status *PatchOperationStatus `json:"status,omitempty" azure:"ro"` 6372} 6373 6374// MarshalJSON implements the json.Marshaller interface for type VirtualMachineAssessPatchesResult. 6375func (v VirtualMachineAssessPatchesResult) MarshalJSON() ([]byte, error) { 6376 objectMap := make(map[string]interface{}) 6377 if v.AssessmentActivityID != nil { 6378 objectMap["assessmentActivityId"] = v.AssessmentActivityID 6379 } 6380 if v.CriticalAndSecurityPatchCount != nil { 6381 objectMap["criticalAndSecurityPatchCount"] = v.CriticalAndSecurityPatchCount 6382 } 6383 if v.Error != nil { 6384 objectMap["error"] = v.Error 6385 } 6386 if v.OtherPatchCount != nil { 6387 objectMap["otherPatchCount"] = v.OtherPatchCount 6388 } 6389 if v.Patches != nil { 6390 objectMap["patches"] = v.Patches 6391 } 6392 if v.RebootPending != nil { 6393 objectMap["rebootPending"] = v.RebootPending 6394 } 6395 if v.StartDateTime != nil { 6396 objectMap["startDateTime"] = (*timeRFC3339)(v.StartDateTime) 6397 } 6398 if v.Status != nil { 6399 objectMap["status"] = v.Status 6400 } 6401 return json.Marshal(objectMap) 6402} 6403 6404// UnmarshalJSON implements the json.Unmarshaller interface for type VirtualMachineAssessPatchesResult. 6405func (v *VirtualMachineAssessPatchesResult) UnmarshalJSON(data []byte) error { 6406 var rawMsg map[string]*json.RawMessage 6407 if err := json.Unmarshal(data, &rawMsg); err != nil { 6408 return err 6409 } 6410 for key, val := range rawMsg { 6411 var err error 6412 switch key { 6413 case "assessmentActivityId": 6414 if val != nil { 6415 err = json.Unmarshal(*val, &v.AssessmentActivityID) 6416 } 6417 delete(rawMsg, key) 6418 case "criticalAndSecurityPatchCount": 6419 if val != nil { 6420 err = json.Unmarshal(*val, &v.CriticalAndSecurityPatchCount) 6421 } 6422 delete(rawMsg, key) 6423 case "error": 6424 if val != nil { 6425 err = json.Unmarshal(*val, &v.Error) 6426 } 6427 delete(rawMsg, key) 6428 case "otherPatchCount": 6429 if val != nil { 6430 err = json.Unmarshal(*val, &v.OtherPatchCount) 6431 } 6432 delete(rawMsg, key) 6433 case "patches": 6434 if val != nil { 6435 err = json.Unmarshal(*val, &v.Patches) 6436 } 6437 delete(rawMsg, key) 6438 case "rebootPending": 6439 if val != nil { 6440 err = json.Unmarshal(*val, &v.RebootPending) 6441 } 6442 delete(rawMsg, key) 6443 case "startDateTime": 6444 if val != nil { 6445 var aux timeRFC3339 6446 err = json.Unmarshal(*val, &aux) 6447 v.StartDateTime = (*time.Time)(&aux) 6448 } 6449 delete(rawMsg, key) 6450 case "status": 6451 if val != nil { 6452 err = json.Unmarshal(*val, &v.Status) 6453 } 6454 delete(rawMsg, key) 6455 } 6456 if err != nil { 6457 return err 6458 } 6459 } 6460 return nil 6461} 6462 6463// VirtualMachineAssessPatchesResultPollerResponse is the response envelope for operations that asynchronously return a VirtualMachineAssessPatchesResult 6464// type. 6465type VirtualMachineAssessPatchesResultPollerResponse struct { 6466 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 6467 PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualMachineAssessPatchesResultResponse, error) 6468 6469 // Poller contains an initialized poller. 6470 Poller VirtualMachineAssessPatchesResultPoller 6471 6472 // RawResponse contains the underlying HTTP response. 6473 RawResponse *http.Response 6474} 6475 6476// VirtualMachineAssessPatchesResultResponse is the response envelope for operations that return a VirtualMachineAssessPatchesResult type. 6477type VirtualMachineAssessPatchesResultResponse struct { 6478 // RawResponse contains the underlying HTTP response. 6479 RawResponse *http.Response 6480 6481 // Describes the properties of an AssessPatches result. 6482 VirtualMachineAssessPatchesResult *VirtualMachineAssessPatchesResult 6483} 6484 6485// Capture Virtual Machine parameters. 6486type VirtualMachineCaptureParameters struct { 6487 // The destination container name. 6488 DestinationContainerName *string `json:"destinationContainerName,omitempty"` 6489 6490 // Specifies whether to overwrite the destination virtual hard disk, in case of conflict. 6491 OverwriteVhds *bool `json:"overwriteVhds,omitempty"` 6492 6493 // The captured virtual hard disk's name prefix. 6494 VhdPrefix *string `json:"vhdPrefix,omitempty"` 6495} 6496 6497// Output of virtual machine capture operation. 6498type VirtualMachineCaptureResult struct { 6499 SubResource 6500 // READ-ONLY; the version of the content 6501 ContentVersion *string `json:"contentVersion,omitempty" azure:"ro"` 6502 6503 // READ-ONLY; parameters of the captured virtual machine 6504 Parameters interface{} `json:"parameters,omitempty" azure:"ro"` 6505 6506 // READ-ONLY; a list of resource items of the captured virtual machine 6507 Resources *[]interface{} `json:"resources,omitempty" azure:"ro"` 6508 6509 // READ-ONLY; the schema of the captured virtual machine 6510 Schema *string `json:"$schema,omitempty" azure:"ro"` 6511} 6512 6513// VirtualMachineCaptureResultPollerResponse is the response envelope for operations that asynchronously return a VirtualMachineCaptureResult type. 6514type VirtualMachineCaptureResultPollerResponse struct { 6515 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 6516 PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualMachineCaptureResultResponse, error) 6517 6518 // Poller contains an initialized poller. 6519 Poller VirtualMachineCaptureResultPoller 6520 6521 // RawResponse contains the underlying HTTP response. 6522 RawResponse *http.Response 6523} 6524 6525// VirtualMachineCaptureResultResponse is the response envelope for operations that return a VirtualMachineCaptureResult type. 6526type VirtualMachineCaptureResultResponse struct { 6527 // RawResponse contains the underlying HTTP response. 6528 RawResponse *http.Response 6529 6530 // Output of virtual machine capture operation. 6531 VirtualMachineCaptureResult *VirtualMachineCaptureResult 6532} 6533 6534// Describes a Virtual Machine Extension. 6535type VirtualMachineExtension struct { 6536 Resource 6537 // Describes the properties of a Virtual Machine Extension. 6538 Properties *VirtualMachineExtensionProperties `json:"properties,omitempty"` 6539} 6540 6541// The instance view of a virtual machine extension handler. 6542type VirtualMachineExtensionHandlerInstanceView struct { 6543 // The extension handler status. 6544 Status *InstanceViewStatus `json:"status,omitempty"` 6545 6546 // Specifies the type of the extension; an example is "CustomScriptExtension". 6547 Type *string `json:"type,omitempty"` 6548 6549 // Specifies the version of the script handler. 6550 TypeHandlerVersion *string `json:"typeHandlerVersion,omitempty"` 6551} 6552 6553// Describes a Virtual Machine Extension Image. 6554type VirtualMachineExtensionImage struct { 6555 Resource 6556 // Describes the properties of a Virtual Machine Extension Image. 6557 Properties *VirtualMachineExtensionImageProperties `json:"properties,omitempty"` 6558} 6559 6560// VirtualMachineExtensionImageArrayResponse is the response envelope for operations that return a []VirtualMachineExtensionImage type. 6561type VirtualMachineExtensionImageArrayResponse struct { 6562 // RawResponse contains the underlying HTTP response. 6563 RawResponse *http.Response 6564 6565 // Array of VirtualMachineExtensionImage 6566 VirtualMachineExtensionImageArray *[]VirtualMachineExtensionImage 6567} 6568 6569// Describes the properties of a Virtual Machine Extension Image. 6570type VirtualMachineExtensionImageProperties struct { 6571 // The type of role (IaaS or PaaS) this extension supports. 6572 ComputeRole *string `json:"computeRole,omitempty"` 6573 6574 // The schema defined by publisher, where extension consumers should provide settings in a matching schema. 6575 HandlerSchema *string `json:"handlerSchema,omitempty"` 6576 6577 // The operating system this extension supports. 6578 OperatingSystem *string `json:"operatingSystem,omitempty"` 6579 6580 // Whether the handler can support multiple extensions. 6581 SupportsMultipleExtensions *bool `json:"supportsMultipleExtensions,omitempty"` 6582 6583 // 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 6584 // wants to explicitly indicate the extension is 6585 // only enabled for CRP VMs but not VMSS. 6586 VMScaleSetEnabled *bool `json:"vmScaleSetEnabled,omitempty"` 6587} 6588 6589// VirtualMachineExtensionImageResponse is the response envelope for operations that return a VirtualMachineExtensionImage type. 6590type VirtualMachineExtensionImageResponse struct { 6591 // RawResponse contains the underlying HTTP response. 6592 RawResponse *http.Response 6593 6594 // Describes a Virtual Machine Extension Image. 6595 VirtualMachineExtensionImage *VirtualMachineExtensionImage 6596} 6597 6598// VirtualMachineExtensionImagesGetOptions contains the optional parameters for the VirtualMachineExtensionImages.Get method. 6599type VirtualMachineExtensionImagesGetOptions struct { 6600 // placeholder for future optional parameters 6601} 6602 6603// VirtualMachineExtensionImagesListTypesOptions contains the optional parameters for the VirtualMachineExtensionImages.ListTypes method. 6604type VirtualMachineExtensionImagesListTypesOptions struct { 6605 // placeholder for future optional parameters 6606} 6607 6608// VirtualMachineExtensionImagesListVersionsOptions contains the optional parameters for the VirtualMachineExtensionImages.ListVersions method. 6609type VirtualMachineExtensionImagesListVersionsOptions struct { 6610 // The filter to apply on the operation. 6611 Filter *string 6612 Orderby *string 6613 Top *int32 6614} 6615 6616// The instance view of a virtual machine extension. 6617type VirtualMachineExtensionInstanceView struct { 6618 // The virtual machine extension name. 6619 Name *string `json:"name,omitempty"` 6620 6621 // The resource status information. 6622 Statuses *[]InstanceViewStatus `json:"statuses,omitempty"` 6623 6624 // The resource status information. 6625 Substatuses *[]InstanceViewStatus `json:"substatuses,omitempty"` 6626 6627 // Specifies the type of the extension; an example is "CustomScriptExtension". 6628 Type *string `json:"type,omitempty"` 6629 6630 // Specifies the version of the script handler. 6631 TypeHandlerVersion *string `json:"typeHandlerVersion,omitempty"` 6632} 6633 6634// VirtualMachineExtensionPollerResponse is the response envelope for operations that asynchronously return a VirtualMachineExtension type. 6635type VirtualMachineExtensionPollerResponse struct { 6636 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 6637 PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualMachineExtensionResponse, error) 6638 6639 // Poller contains an initialized poller. 6640 Poller VirtualMachineExtensionPoller 6641 6642 // RawResponse contains the underlying HTTP response. 6643 RawResponse *http.Response 6644} 6645 6646// Describes the properties of a Virtual Machine Extension. 6647type VirtualMachineExtensionProperties struct { 6648 // Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not 6649 // upgrade minor versions unless redeployed, even 6650 // with this property set to true. 6651 AutoUpgradeMinorVersion *bool `json:"autoUpgradeMinorVersion,omitempty"` 6652 6653 // Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available. 6654 EnableAutomaticUpgrade *bool `json:"enableAutomaticUpgrade,omitempty"` 6655 6656 // How the extension handler should be forced to update even if the extension configuration has not changed. 6657 ForceUpdateTag *string `json:"forceUpdateTag,omitempty"` 6658 6659 // The virtual machine extension instance view. 6660 InstanceView *VirtualMachineExtensionInstanceView `json:"instanceView,omitempty"` 6661 6662 // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. 6663 ProtectedSettings interface{} `json:"protectedSettings,omitempty"` 6664 6665 // READ-ONLY; The provisioning state, which only appears in the response. 6666 ProvisioningState *string `json:"provisioningState,omitempty" azure:"ro"` 6667 6668 // The name of the extension handler publisher. 6669 Publisher *string `json:"publisher,omitempty"` 6670 6671 // Json formatted public settings for the extension. 6672 Settings interface{} `json:"settings,omitempty"` 6673 6674 // Specifies the type of the extension; an example is "CustomScriptExtension". 6675 Type *string `json:"type,omitempty"` 6676 6677 // Specifies the version of the script handler. 6678 TypeHandlerVersion *string `json:"typeHandlerVersion,omitempty"` 6679} 6680 6681// VirtualMachineExtensionResponse is the response envelope for operations that return a VirtualMachineExtension type. 6682type VirtualMachineExtensionResponse struct { 6683 // RawResponse contains the underlying HTTP response. 6684 RawResponse *http.Response 6685 6686 // Describes a Virtual Machine Extension. 6687 VirtualMachineExtension *VirtualMachineExtension 6688} 6689 6690// Describes a Virtual Machine Extension. 6691type VirtualMachineExtensionUpdate struct { 6692 UpdateResource 6693 // Describes the properties of a Virtual Machine Extension. 6694 Properties *VirtualMachineExtensionUpdateProperties `json:"properties,omitempty"` 6695} 6696 6697// Describes the properties of a Virtual Machine Extension. 6698type VirtualMachineExtensionUpdateProperties struct { 6699 // Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not 6700 // upgrade minor versions unless redeployed, even 6701 // with this property set to true. 6702 AutoUpgradeMinorVersion *bool `json:"autoUpgradeMinorVersion,omitempty"` 6703 6704 // Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available. 6705 EnableAutomaticUpgrade *bool `json:"enableAutomaticUpgrade,omitempty"` 6706 6707 // How the extension handler should be forced to update even if the extension configuration has not changed. 6708 ForceUpdateTag *string `json:"forceUpdateTag,omitempty"` 6709 6710 // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. 6711 ProtectedSettings interface{} `json:"protectedSettings,omitempty"` 6712 6713 // The name of the extension handler publisher. 6714 Publisher *string `json:"publisher,omitempty"` 6715 6716 // Json formatted public settings for the extension. 6717 Settings interface{} `json:"settings,omitempty"` 6718 6719 // Specifies the type of the extension; an example is "CustomScriptExtension". 6720 Type *string `json:"type,omitempty"` 6721 6722 // Specifies the version of the script handler. 6723 TypeHandlerVersion *string `json:"typeHandlerVersion,omitempty"` 6724} 6725 6726// VirtualMachineExtensionsBeginCreateOrUpdateOptions contains the optional parameters for the VirtualMachineExtensions.BeginCreateOrUpdate method. 6727type VirtualMachineExtensionsBeginCreateOrUpdateOptions struct { 6728 // placeholder for future optional parameters 6729} 6730 6731// VirtualMachineExtensionsBeginDeleteOptions contains the optional parameters for the VirtualMachineExtensions.BeginDelete method. 6732type VirtualMachineExtensionsBeginDeleteOptions struct { 6733 // placeholder for future optional parameters 6734} 6735 6736// VirtualMachineExtensionsBeginUpdateOptions contains the optional parameters for the VirtualMachineExtensions.BeginUpdate method. 6737type VirtualMachineExtensionsBeginUpdateOptions struct { 6738 // placeholder for future optional parameters 6739} 6740 6741// VirtualMachineExtensionsGetOptions contains the optional parameters for the VirtualMachineExtensions.Get method. 6742type VirtualMachineExtensionsGetOptions struct { 6743 // The expand expression to apply on the operation. 6744 Expand *string 6745} 6746 6747// VirtualMachineExtensionsListOptions contains the optional parameters for the VirtualMachineExtensions.List method. 6748type VirtualMachineExtensionsListOptions struct { 6749 // The expand expression to apply on the operation. 6750 Expand *string 6751} 6752 6753// The List Extension operation response 6754type VirtualMachineExtensionsListResult struct { 6755 // The list of extensions 6756 Value *[]VirtualMachineExtension `json:"value,omitempty"` 6757} 6758 6759// VirtualMachineExtensionsListResultResponse is the response envelope for operations that return a VirtualMachineExtensionsListResult type. 6760type VirtualMachineExtensionsListResultResponse struct { 6761 // RawResponse contains the underlying HTTP response. 6762 RawResponse *http.Response 6763 6764 // The List Extension operation response 6765 VirtualMachineExtensionsListResult *VirtualMachineExtensionsListResult 6766} 6767 6768// The health status of the VM. 6769type VirtualMachineHealthStatus struct { 6770 // READ-ONLY; The health status information for the VM. 6771 Status *InstanceViewStatus `json:"status,omitempty" azure:"ro"` 6772} 6773 6774// Identity for the virtual machine. 6775type VirtualMachineIDentity struct { 6776 // READ-ONLY; The principal id of virtual machine identity. This property will only be provided for a system assigned identity. 6777 PrincipalID *string `json:"principalId,omitempty" azure:"ro"` 6778 6779 // READ-ONLY; The tenant id associated with the virtual machine. This property will only be provided for a system assigned identity. 6780 TenantID *string `json:"tenantId,omitempty" azure:"ro"` 6781 6782 // The type of identity used for the virtual machine. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of 6783 // user assigned identities. The type 'None' will 6784 // remove any identities from the virtual machine. 6785 Type *ResourceIDentityType `json:"type,omitempty"` 6786 6787 // The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: 6788 // '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. 6789 UserAssignedIDentities *map[string]UserAssignedIDentitiesValue `json:"userAssignedIdentities,omitempty"` 6790} 6791 6792// Describes a Virtual Machine Image. 6793type VirtualMachineImage struct { 6794 VirtualMachineImageResource 6795 // Describes the properties of a Virtual Machine Image. 6796 Properties *VirtualMachineImageProperties `json:"properties,omitempty"` 6797} 6798 6799// Describes the properties of a Virtual Machine Image. 6800type VirtualMachineImageProperties struct { 6801 // Describes automatic OS upgrade properties on the image. 6802 AutomaticOSUpgradeProperties *AutomaticOSUpgradeProperties `json:"automaticOSUpgradeProperties,omitempty"` 6803 DataDiskImages *[]DataDiskImage `json:"dataDiskImages,omitempty"` 6804 6805 // Specifies disallowed configuration for the VirtualMachine created from the image 6806 Disallowed *DisallowedConfiguration `json:"disallowed,omitempty"` 6807 6808 // Specifies the HyperVGeneration Type 6809 HyperVGeneration *HyperVGenerationTypes `json:"hyperVGeneration,omitempty"` 6810 6811 // Contains the os disk image information. 6812 OSDiskImage *OSDiskImage `json:"osDiskImage,omitempty"` 6813 6814 // Used for establishing the purchase context of any 3rd Party artifact through MarketPlace. 6815 Plan *PurchasePlan `json:"plan,omitempty"` 6816} 6817 6818// Virtual machine image resource information. 6819type VirtualMachineImageResource struct { 6820 SubResource 6821 // The supported Azure location of the resource. 6822 Location *string `json:"location,omitempty"` 6823 6824 // The name of the resource. 6825 Name *string `json:"name,omitempty"` 6826 6827 // Specifies the tags that are assigned to the virtual machine. For more information about using tags, see Using tags to organize your Azure resources 6828 // [https://docs.microsoft.com/azure/azure-resource-manager/resource-group-using-tags.md]. 6829 Tags *map[string]string `json:"tags,omitempty"` 6830} 6831 6832// VirtualMachineImageResourceArrayResponse is the response envelope for operations that return a []VirtualMachineImageResource type. 6833type VirtualMachineImageResourceArrayResponse struct { 6834 // RawResponse contains the underlying HTTP response. 6835 RawResponse *http.Response 6836 6837 // Array of VirtualMachineImageResource 6838 VirtualMachineImageResourceArray *[]VirtualMachineImageResource 6839} 6840 6841// VirtualMachineImageResponse is the response envelope for operations that return a VirtualMachineImage type. 6842type VirtualMachineImageResponse struct { 6843 // RawResponse contains the underlying HTTP response. 6844 RawResponse *http.Response 6845 6846 // Describes a Virtual Machine Image. 6847 VirtualMachineImage *VirtualMachineImage 6848} 6849 6850// VirtualMachineImagesGetOptions contains the optional parameters for the VirtualMachineImages.Get method. 6851type VirtualMachineImagesGetOptions struct { 6852 // placeholder for future optional parameters 6853} 6854 6855// VirtualMachineImagesListOffersOptions contains the optional parameters for the VirtualMachineImages.ListOffers method. 6856type VirtualMachineImagesListOffersOptions struct { 6857 // placeholder for future optional parameters 6858} 6859 6860// VirtualMachineImagesListOptions contains the optional parameters for the VirtualMachineImages.List method. 6861type VirtualMachineImagesListOptions struct { 6862 // The expand expression to apply on the operation. 6863 Expand *string 6864 Orderby *string 6865 Top *int32 6866} 6867 6868// VirtualMachineImagesListPublishersOptions contains the optional parameters for the VirtualMachineImages.ListPublishers method. 6869type VirtualMachineImagesListPublishersOptions struct { 6870 // placeholder for future optional parameters 6871} 6872 6873// VirtualMachineImagesListSKUsOptions contains the optional parameters for the VirtualMachineImages.ListSKUs method. 6874type VirtualMachineImagesListSKUsOptions struct { 6875 // placeholder for future optional parameters 6876} 6877 6878// The instance view of a virtual machine. 6879type VirtualMachineInstanceView struct { 6880 // READ-ONLY; Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated 6881 // with a dedicated host group that has automatic 6882 // placement enabled. 6883 // Minimum api-version: 2020-06-01. 6884 AssignedHost *string `json:"assignedHost,omitempty" azure:"ro"` 6885 6886 // Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. 6887 // You can easily view the output of your console log. 6888 // Azure also enables you to see a screenshot of the VM from the hypervisor. 6889 BootDiagnostics *BootDiagnosticsInstanceView `json:"bootDiagnostics,omitempty"` 6890 6891 // The computer name assigned to the virtual machine. 6892 ComputerName *string `json:"computerName,omitempty"` 6893 6894 // The virtual machine disk information. 6895 Disks *[]DiskInstanceView `json:"disks,omitempty"` 6896 6897 // The extensions information. 6898 Extensions *[]VirtualMachineExtensionInstanceView `json:"extensions,omitempty"` 6899 6900 // Specifies the HyperVGeneration Type associated with a resource 6901 HyperVGeneration *HyperVGenerationType `json:"hyperVGeneration,omitempty"` 6902 6903 // The Maintenance Operation status on the virtual machine. 6904 MaintenanceRedeployStatus *MaintenanceRedeployStatus `json:"maintenanceRedeployStatus,omitempty"` 6905 6906 // The Operating System running on the virtual machine. 6907 OSName *string `json:"osName,omitempty"` 6908 6909 // The version of Operating System running on the virtual machine. 6910 OSVersion *string `json:"osVersion,omitempty"` 6911 6912 // The status of virtual machine patch operations. 6913 PatchStatus *VirtualMachinePatchStatus `json:"patchStatus,omitempty"` 6914 6915 // Specifies the fault domain of the virtual machine. 6916 PlatformFaultDomain *int32 `json:"platformFaultDomain,omitempty"` 6917 6918 // Specifies the update domain of the virtual machine. 6919 PlatformUpdateDomain *int32 `json:"platformUpdateDomain,omitempty"` 6920 6921 // The Remote desktop certificate thumbprint. 6922 RdpThumbPrint *string `json:"rdpThumbPrint,omitempty"` 6923 6924 // The resource status information. 6925 Statuses *[]InstanceViewStatus `json:"statuses,omitempty"` 6926 6927 // The VM Agent running on the virtual machine. 6928 VMAgent *VirtualMachineAgentInstanceView `json:"vmAgent,omitempty"` 6929 6930 // READ-ONLY; The health status for the VM. 6931 VMHealth *VirtualMachineHealthStatus `json:"vmHealth,omitempty" azure:"ro"` 6932} 6933 6934// VirtualMachineInstanceViewResponse is the response envelope for operations that return a VirtualMachineInstanceView type. 6935type VirtualMachineInstanceViewResponse struct { 6936 // RawResponse contains the underlying HTTP response. 6937 RawResponse *http.Response 6938 6939 // The instance view of a virtual machine. 6940 VirtualMachineInstanceView *VirtualMachineInstanceView 6941} 6942 6943// The List Virtual Machine operation response. 6944type VirtualMachineListResult struct { 6945 // The URI to fetch the next page of VMs. Call ListNext() with this URI to fetch the next page of Virtual Machines. 6946 NextLink *string `json:"nextLink,omitempty"` 6947 6948 // The list of virtual machines. 6949 Value *[]VirtualMachine `json:"value,omitempty"` 6950} 6951 6952// VirtualMachineListResultResponse is the response envelope for operations that return a VirtualMachineListResult type. 6953type VirtualMachineListResultResponse struct { 6954 // RawResponse contains the underlying HTTP response. 6955 RawResponse *http.Response 6956 6957 // The List Virtual Machine operation response. 6958 VirtualMachineListResult *VirtualMachineListResult 6959} 6960 6961// The status of virtual machine patch operations. 6962type VirtualMachinePatchStatus struct { 6963 // The available patch summary of the latest assessment operation for the virtual machine. 6964 AvailablePatchSummary *AvailablePatchSummary `json:"availablePatchSummary,omitempty"` 6965 6966 // The installation summary of the latest installation operation for the virtual machine. 6967 LastPatchInstallationSummary *LastPatchInstallationSummary `json:"lastPatchInstallationSummary,omitempty"` 6968} 6969 6970// VirtualMachinePollerResponse is the response envelope for operations that asynchronously return a VirtualMachine type. 6971type VirtualMachinePollerResponse struct { 6972 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 6973 PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualMachineResponse, error) 6974 6975 // Poller contains an initialized poller. 6976 Poller VirtualMachinePoller 6977 6978 // RawResponse contains the underlying HTTP response. 6979 RawResponse *http.Response 6980} 6981 6982// Describes the properties of a Virtual Machine. 6983type VirtualMachineProperties struct { 6984 // Specifies additional capabilities enabled or disabled on the virtual machine. 6985 AdditionalCapabilities *AdditionalCapabilities `json:"additionalCapabilities,omitempty"` 6986 6987 // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability 6988 // set are allocated to different nodes to maximize 6989 // availability. For more information about availability sets, see Manage the availability of virtual machines 6990 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json]. 6991 // For more information on Azure planned maintenance, see Planned maintenance for virtual machines in Azure 6992 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json] 6993 // Currently, a VM can only be added to availability set at creation time. The availability set to which the VM is being added should be under the same 6994 // resource group as the availability set resource. An 6995 // existing VM cannot be added to an availability set. 6996 // This property cannot exist along with a non-null properties.virtualMachineScaleSet reference. 6997 AvailabilitySet *SubResource `json:"availabilitySet,omitempty"` 6998 6999 // Specifies the billing related details of a Azure Spot virtual machine. 7000 // Minimum api-version: 2019-03-01. 7001 BillingProfile *BillingProfile `json:"billingProfile,omitempty"` 7002 7003 // Specifies the boot diagnostic settings state. 7004 // Minimum api-version: 2015-06-15. 7005 DiagnosticsProfile *DiagnosticsProfile `json:"diagnosticsProfile,omitempty"` 7006 7007 // Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. 7008 // For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. 7009 // For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. 7010 EvictionPolicy *VirtualMachineEvictionPolicyTypes `json:"evictionPolicy,omitempty"` 7011 7012 // Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified 7013 // in ISO 8601 format. The default value is 90 7014 // minutes (PT1H30M). 7015 // Minimum api-version: 2020-06-01 7016 ExtensionsTimeBudget *string `json:"extensionsTimeBudget,omitempty"` 7017 7018 // Specifies the hardware settings for the virtual machine. 7019 HardwareProfile *HardwareProfile `json:"hardwareProfile,omitempty"` 7020 7021 // Specifies information about the dedicated host that the virtual machine resides in. 7022 // Minimum api-version: 2018-10-01. 7023 Host *SubResource `json:"host,omitempty"` 7024 7025 // Specifies information about the dedicated host group that the virtual machine resides in. 7026 // Minimum api-version: 2020-06-01. 7027 // NOTE: User cannot specify both host and hostGroup properties. 7028 HostGroup *SubResource `json:"hostGroup,omitempty"` 7029 7030 // READ-ONLY; The virtual machine instance view. 7031 InstanceView *VirtualMachineInstanceView `json:"instanceView,omitempty" azure:"ro"` 7032 7033 // Specifies that the image or disk that is being used was licensed on-premises. 7034 // Possible values for Windows Server operating system are: 7035 // WindowsClient 7036 // WindowsServer 7037 // Possible values for Linux Server operating system are: 7038 // RHELBYOS (for RHEL) 7039 // SLESBYOS (for SUSE) 7040 // For more information, see Azure Hybrid Use Benefit for Windows Server [https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing] 7041 // Azure Hybrid Use Benefit for Linux Server [https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux] 7042 // Minimum api-version: 2015-06-15 7043 LicenseType *string `json:"licenseType,omitempty"` 7044 7045 // Specifies the network interfaces of the virtual machine. 7046 NetworkProfile *NetworkProfile `json:"networkProfile,omitempty"` 7047 7048 // Specifies the operating system settings used while creating the virtual machine. Some of the settings cannot be changed once VM is provisioned. 7049 OSProfile *OSProfile `json:"osProfile,omitempty"` 7050 7051 // Specifies the priority for the virtual machine. 7052 // Minimum api-version: 2019-03-01 7053 Priority *VirtualMachinePriorityTypes `json:"priority,omitempty"` 7054 7055 // READ-ONLY; The provisioning state, which only appears in the response. 7056 ProvisioningState *string `json:"provisioningState,omitempty" azure:"ro"` 7057 7058 // Specifies information about the proximity placement group that the virtual machine should be assigned to. 7059 // Minimum api-version: 2018-04-01. 7060 ProximityPlacementGroup *SubResource `json:"proximityPlacementGroup,omitempty"` 7061 7062 // Specifies the Security related profile settings for the virtual machine. 7063 SecurityProfile *SecurityProfile `json:"securityProfile,omitempty"` 7064 7065 // Specifies the storage settings for the virtual machine disks. 7066 StorageProfile *StorageProfile `json:"storageProfile,omitempty"` 7067 7068 // READ-ONLY; 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 7069 // BIOS commands. 7070 VMID *string `json:"vmId,omitempty" azure:"ro"` 7071 7072 // Specifies information about the virtual machine scale set that the virtual machine should be assigned to. Virtual machines specified in the same virtual 7073 // machine scale set are allocated to different 7074 // nodes to maximize availability. Currently, a VM can only be added to virtual machine scale set at creation time. An existing VM cannot be added to a 7075 // virtual machine scale set. 7076 // This property cannot exist along with a non-null properties.availabilitySet reference. 7077 // Minimum api‐version: 2019‐03‐01 7078 VirtualMachineScaleSet *SubResource `json:"virtualMachineScaleSet,omitempty"` 7079} 7080 7081// Parameters for Reimaging Virtual Machine. NOTE: Virtual Machine OS disk will always be reimaged 7082type VirtualMachineReimageParameters struct { 7083 // Specifies whether to reimage temp disk. Default value: false. Note: This temp disk reimage parameter is only supported for VM/VMSS with Ephemeral OS 7084 // disk. 7085 TempDisk *bool `json:"tempDisk,omitempty"` 7086} 7087 7088// VirtualMachineResponse is the response envelope for operations that return a VirtualMachine type. 7089type VirtualMachineResponse struct { 7090 // RawResponse contains the underlying HTTP response. 7091 RawResponse *http.Response 7092 7093 // Describes a Virtual Machine. 7094 VirtualMachine *VirtualMachine 7095} 7096 7097// Describes a Virtual Machine run command. 7098type VirtualMachineRunCommand struct { 7099 Resource 7100 // Describes the properties of a Virtual Machine run command. 7101 Properties *VirtualMachineRunCommandProperties `json:"properties,omitempty"` 7102} 7103 7104// The instance view of a virtual machine run command. 7105type VirtualMachineRunCommandInstanceView struct { 7106 // Script end time. 7107 EndTime *time.Time `json:"endTime,omitempty"` 7108 7109 // Script error stream. 7110 Error *string `json:"error,omitempty"` 7111 7112 // Communicate script configuration errors or execution messages. 7113 ExecutionMessage *string `json:"executionMessage,omitempty"` 7114 7115 // Script execution status. 7116 ExecutionState *ExecutionState `json:"executionState,omitempty"` 7117 7118 // Exit code returned from script execution. 7119 ExitCode *int32 `json:"exitCode,omitempty"` 7120 7121 // Script output stream. 7122 Output *string `json:"output,omitempty"` 7123 7124 // Script start time. 7125 StartTime *time.Time `json:"startTime,omitempty"` 7126 7127 // The resource status information. 7128 Statuses *[]InstanceViewStatus `json:"statuses,omitempty"` 7129} 7130 7131// MarshalJSON implements the json.Marshaller interface for type VirtualMachineRunCommandInstanceView. 7132func (v VirtualMachineRunCommandInstanceView) MarshalJSON() ([]byte, error) { 7133 objectMap := make(map[string]interface{}) 7134 if v.EndTime != nil { 7135 objectMap["endTime"] = (*timeRFC3339)(v.EndTime) 7136 } 7137 if v.Error != nil { 7138 objectMap["error"] = v.Error 7139 } 7140 if v.ExecutionMessage != nil { 7141 objectMap["executionMessage"] = v.ExecutionMessage 7142 } 7143 if v.ExecutionState != nil { 7144 objectMap["executionState"] = v.ExecutionState 7145 } 7146 if v.ExitCode != nil { 7147 objectMap["exitCode"] = v.ExitCode 7148 } 7149 if v.Output != nil { 7150 objectMap["output"] = v.Output 7151 } 7152 if v.StartTime != nil { 7153 objectMap["startTime"] = (*timeRFC3339)(v.StartTime) 7154 } 7155 if v.Statuses != nil { 7156 objectMap["statuses"] = v.Statuses 7157 } 7158 return json.Marshal(objectMap) 7159} 7160 7161// UnmarshalJSON implements the json.Unmarshaller interface for type VirtualMachineRunCommandInstanceView. 7162func (v *VirtualMachineRunCommandInstanceView) UnmarshalJSON(data []byte) error { 7163 var rawMsg map[string]*json.RawMessage 7164 if err := json.Unmarshal(data, &rawMsg); err != nil { 7165 return err 7166 } 7167 for key, val := range rawMsg { 7168 var err error 7169 switch key { 7170 case "endTime": 7171 if val != nil { 7172 var aux timeRFC3339 7173 err = json.Unmarshal(*val, &aux) 7174 v.EndTime = (*time.Time)(&aux) 7175 } 7176 delete(rawMsg, key) 7177 case "error": 7178 if val != nil { 7179 err = json.Unmarshal(*val, &v.Error) 7180 } 7181 delete(rawMsg, key) 7182 case "executionMessage": 7183 if val != nil { 7184 err = json.Unmarshal(*val, &v.ExecutionMessage) 7185 } 7186 delete(rawMsg, key) 7187 case "executionState": 7188 if val != nil { 7189 err = json.Unmarshal(*val, &v.ExecutionState) 7190 } 7191 delete(rawMsg, key) 7192 case "exitCode": 7193 if val != nil { 7194 err = json.Unmarshal(*val, &v.ExitCode) 7195 } 7196 delete(rawMsg, key) 7197 case "output": 7198 if val != nil { 7199 err = json.Unmarshal(*val, &v.Output) 7200 } 7201 delete(rawMsg, key) 7202 case "startTime": 7203 if val != nil { 7204 var aux timeRFC3339 7205 err = json.Unmarshal(*val, &aux) 7206 v.StartTime = (*time.Time)(&aux) 7207 } 7208 delete(rawMsg, key) 7209 case "statuses": 7210 if val != nil { 7211 err = json.Unmarshal(*val, &v.Statuses) 7212 } 7213 delete(rawMsg, key) 7214 } 7215 if err != nil { 7216 return err 7217 } 7218 } 7219 return nil 7220} 7221 7222// VirtualMachineRunCommandPollerResponse is the response envelope for operations that asynchronously return a VirtualMachineRunCommand type. 7223type VirtualMachineRunCommandPollerResponse struct { 7224 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 7225 PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualMachineRunCommandResponse, error) 7226 7227 // Poller contains an initialized poller. 7228 Poller VirtualMachineRunCommandPoller 7229 7230 // RawResponse contains the underlying HTTP response. 7231 RawResponse *http.Response 7232} 7233 7234// Describes the properties of a Virtual Machine run command. 7235type VirtualMachineRunCommandProperties struct { 7236 // Optional. If set to true, provisioning will complete as soon as the script starts and will not wait for script to complete. 7237 AsyncExecution *bool `json:"asyncExecution,omitempty"` 7238 7239 // Specifies the Azure storage blob where script error stream will be uploaded. 7240 ErrorBlobURI *string `json:"errorBlobUri,omitempty"` 7241 7242 // READ-ONLY; The virtual machine run command instance view. 7243 InstanceView *VirtualMachineRunCommandInstanceView `json:"instanceView,omitempty" azure:"ro"` 7244 7245 // Specifies the Azure storage blob where script output stream will be uploaded. 7246 OutputBlobURI *string `json:"outputBlobUri,omitempty"` 7247 7248 // The parameters used by the script. 7249 Parameters *[]RunCommandInputParameter `json:"parameters,omitempty"` 7250 7251 // The parameters used by the script. 7252 ProtectedParameters *[]RunCommandInputParameter `json:"protectedParameters,omitempty"` 7253 7254 // READ-ONLY; The provisioning state, which only appears in the response. 7255 ProvisioningState *string `json:"provisioningState,omitempty" azure:"ro"` 7256 7257 // Specifies the user account password on the VM when executing the run command. 7258 RunAsPassword *string `json:"runAsPassword,omitempty"` 7259 7260 // Specifies the user account on the VM when executing the run command. 7261 RunAsUser *string `json:"runAsUser,omitempty"` 7262 7263 // The source of the run command script. 7264 Source *VirtualMachineRunCommandScriptSource `json:"source,omitempty"` 7265 7266 // The timeout in seconds to execute the run command. 7267 TimeoutInSeconds *int32 `json:"timeoutInSeconds,omitempty"` 7268} 7269 7270// VirtualMachineRunCommandResponse is the response envelope for operations that return a VirtualMachineRunCommand type. 7271type VirtualMachineRunCommandResponse struct { 7272 // RawResponse contains the underlying HTTP response. 7273 RawResponse *http.Response 7274 7275 // Describes a Virtual Machine run command. 7276 VirtualMachineRunCommand *VirtualMachineRunCommand 7277} 7278 7279// Describes the script sources for run command. 7280type VirtualMachineRunCommandScriptSource struct { 7281 // Specifies a commandId of predefined built-in script. 7282 CommandID *string `json:"commandId,omitempty"` 7283 7284 // Specifies the script content to be executed on the VM. 7285 Script *string `json:"script,omitempty"` 7286 7287 // Specifies the script download location. 7288 ScriptURI *string `json:"scriptUri,omitempty"` 7289} 7290 7291// Describes a Virtual Machine run command. 7292type VirtualMachineRunCommandUpdate struct { 7293 UpdateResource 7294 // Describes the properties of a Virtual Machine run command. 7295 Properties *VirtualMachineRunCommandProperties `json:"properties,omitempty"` 7296} 7297 7298// VirtualMachineRunCommandsBeginCreateOrUpdateOptions contains the optional parameters for the VirtualMachineRunCommands.BeginCreateOrUpdate method. 7299type VirtualMachineRunCommandsBeginCreateOrUpdateOptions struct { 7300 // placeholder for future optional parameters 7301} 7302 7303// VirtualMachineRunCommandsBeginDeleteOptions contains the optional parameters for the VirtualMachineRunCommands.BeginDelete method. 7304type VirtualMachineRunCommandsBeginDeleteOptions struct { 7305 // placeholder for future optional parameters 7306} 7307 7308// VirtualMachineRunCommandsBeginUpdateOptions contains the optional parameters for the VirtualMachineRunCommands.BeginUpdate method. 7309type VirtualMachineRunCommandsBeginUpdateOptions struct { 7310 // placeholder for future optional parameters 7311} 7312 7313// VirtualMachineRunCommandsGetByVirtualMachineOptions contains the optional parameters for the VirtualMachineRunCommands.GetByVirtualMachine method. 7314type VirtualMachineRunCommandsGetByVirtualMachineOptions struct { 7315 // The expand expression to apply on the operation. 7316 Expand *string 7317} 7318 7319// VirtualMachineRunCommandsGetOptions contains the optional parameters for the VirtualMachineRunCommands.Get method. 7320type VirtualMachineRunCommandsGetOptions struct { 7321 // placeholder for future optional parameters 7322} 7323 7324// VirtualMachineRunCommandsListByVirtualMachineOptions contains the optional parameters for the VirtualMachineRunCommands.ListByVirtualMachine method. 7325type VirtualMachineRunCommandsListByVirtualMachineOptions struct { 7326 // The expand expression to apply on the operation. 7327 Expand *string 7328} 7329 7330// VirtualMachineRunCommandsListOptions contains the optional parameters for the VirtualMachineRunCommands.List method. 7331type VirtualMachineRunCommandsListOptions struct { 7332 // placeholder for future optional parameters 7333} 7334 7335// The List run command operation response 7336type VirtualMachineRunCommandsListResult struct { 7337 // The uri to fetch the next page of run commands. 7338 NextLink *string `json:"nextLink,omitempty"` 7339 7340 // The list of run commands 7341 Value *[]VirtualMachineRunCommand `json:"value,omitempty"` 7342} 7343 7344// VirtualMachineRunCommandsListResultResponse is the response envelope for operations that return a VirtualMachineRunCommandsListResult type. 7345type VirtualMachineRunCommandsListResultResponse struct { 7346 // RawResponse contains the underlying HTTP response. 7347 RawResponse *http.Response 7348 7349 // The List run command operation response 7350 VirtualMachineRunCommandsListResult *VirtualMachineRunCommandsListResult 7351} 7352 7353// Describes a Virtual Machine Scale Set. 7354type VirtualMachineScaleSet struct { 7355 Resource 7356 // The identity of the virtual machine scale set, if configured. 7357 IDentity *VirtualMachineScaleSetIDentity `json:"identity,omitempty"` 7358 7359 // Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can 7360 // use a marketplace image from an API, you must 7361 // 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, 7362 // Get Started ->. Enter any required 7363 // information and then click Save. 7364 Plan *Plan `json:"plan,omitempty"` 7365 7366 // Describes the properties of a Virtual Machine Scale Set. 7367 Properties *VirtualMachineScaleSetProperties `json:"properties,omitempty"` 7368 7369 // The virtual machine scale set sku. 7370 SKU *SKU `json:"sku,omitempty"` 7371 7372 // The virtual machine scale set zones. NOTE: Availability zones can only be set when you create the scale set 7373 Zones *[]string `json:"zones,omitempty"` 7374} 7375 7376// Describes a virtual machine scale set data disk. 7377type VirtualMachineScaleSetDataDisk struct { 7378 // Specifies the caching requirements. 7379 // Possible values are: 7380 // None 7381 // ReadOnly 7382 // ReadWrite 7383 // Default: None for Standard storage. ReadOnly for Premium storage 7384 Caching *CachingTypes `json:"caching,omitempty"` 7385 7386 // The create option. 7387 CreateOption *DiskCreateOptionTypes `json:"createOption,omitempty"` 7388 7389 // Specifies the Read-Write IOPS for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would 7390 // be assigned based on diskSizeGB. 7391 DiskIopsReadWrite *int64 `json:"diskIOPSReadWrite,omitempty"` 7392 7393 // Specifies the bandwidth in MB per second for the managed disk. Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default 7394 // value would be assigned based on diskSizeGB. 7395 DiskMBpsReadWrite *int64 `json:"diskMBpsReadWrite,omitempty"` 7396 7397 // 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. 7398 // This value cannot be larger than 1023 GB 7399 DiskSizeGb *int32 `json:"diskSizeGB,omitempty"` 7400 7401 // 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 7402 // disk attached to a VM. 7403 Lun *int32 `json:"lun,omitempty"` 7404 7405 // The managed disk parameters. 7406 ManagedDisk *VirtualMachineScaleSetManagedDiskParameters `json:"managedDisk,omitempty"` 7407 7408 // The disk name. 7409 Name *string `json:"name,omitempty"` 7410 7411 // Specifies whether writeAccelerator should be enabled or disabled on the disk. 7412 WriteAcceleratorEnabled *bool `json:"writeAcceleratorEnabled,omitempty"` 7413} 7414 7415// Describes a Virtual Machine Scale Set Extension. 7416type VirtualMachineScaleSetExtension struct { 7417 SubResourceReadOnly 7418 // The name of the extension. 7419 Name *string `json:"name,omitempty"` 7420 7421 // Describes the properties of a Virtual Machine Scale Set Extension. 7422 Properties *VirtualMachineScaleSetExtensionProperties `json:"properties,omitempty"` 7423 7424 // READ-ONLY; Resource type 7425 Type *string `json:"type,omitempty" azure:"ro"` 7426} 7427 7428// The List VM scale set extension operation response. 7429type VirtualMachineScaleSetExtensionListResult struct { 7430 // 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. 7431 NextLink *string `json:"nextLink,omitempty"` 7432 7433 // The list of VM scale set extensions. 7434 Value *[]VirtualMachineScaleSetExtension `json:"value,omitempty"` 7435} 7436 7437// VirtualMachineScaleSetExtensionListResultResponse is the response envelope for operations that return a VirtualMachineScaleSetExtensionListResult type. 7438type VirtualMachineScaleSetExtensionListResultResponse struct { 7439 // RawResponse contains the underlying HTTP response. 7440 RawResponse *http.Response 7441 7442 // The List VM scale set extension operation response. 7443 VirtualMachineScaleSetExtensionListResult *VirtualMachineScaleSetExtensionListResult 7444} 7445 7446// VirtualMachineScaleSetExtensionPollerResponse is the response envelope for operations that asynchronously return a VirtualMachineScaleSetExtension type. 7447type VirtualMachineScaleSetExtensionPollerResponse struct { 7448 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 7449 PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualMachineScaleSetExtensionResponse, error) 7450 7451 // Poller contains an initialized poller. 7452 Poller VirtualMachineScaleSetExtensionPoller 7453 7454 // RawResponse contains the underlying HTTP response. 7455 RawResponse *http.Response 7456} 7457 7458// Describes a virtual machine scale set extension profile. 7459type VirtualMachineScaleSetExtensionProfile struct { 7460 // The virtual machine scale set child extension resources. 7461 Extensions *[]VirtualMachineScaleSetExtension `json:"extensions,omitempty"` 7462 7463 // Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified 7464 // in ISO 8601 format. The default value is 90 7465 // minutes (PT1H30M). 7466 // Minimum api-version: 2020-06-01 7467 ExtensionsTimeBudget *string `json:"extensionsTimeBudget,omitempty"` 7468} 7469 7470// Describes the properties of a Virtual Machine Scale Set Extension. 7471type VirtualMachineScaleSetExtensionProperties struct { 7472 // Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not 7473 // upgrade minor versions unless redeployed, even 7474 // with this property set to true. 7475 AutoUpgradeMinorVersion *bool `json:"autoUpgradeMinorVersion,omitempty"` 7476 7477 // Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available. 7478 EnableAutomaticUpgrade *bool `json:"enableAutomaticUpgrade,omitempty"` 7479 7480 // 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 7481 // not changed. 7482 ForceUpdateTag *string `json:"forceUpdateTag,omitempty"` 7483 7484 // The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all. 7485 ProtectedSettings interface{} `json:"protectedSettings,omitempty"` 7486 7487 // Collection of extension names after which this extension needs to be provisioned. 7488 ProvisionAfterExtensions *[]string `json:"provisionAfterExtensions,omitempty"` 7489 7490 // READ-ONLY; The provisioning state, which only appears in the response. 7491 ProvisioningState *string `json:"provisioningState,omitempty" azure:"ro"` 7492 7493 // The name of the extension handler publisher. 7494 Publisher *string `json:"publisher,omitempty"` 7495 7496 // Json formatted public settings for the extension. 7497 Settings interface{} `json:"settings,omitempty"` 7498 7499 // Specifies the type of the extension; an example is "CustomScriptExtension". 7500 Type *string `json:"type,omitempty"` 7501 7502 // Specifies the version of the script handler. 7503 TypeHandlerVersion *string `json:"typeHandlerVersion,omitempty"` 7504} 7505 7506// VirtualMachineScaleSetExtensionResponse is the response envelope for operations that return a VirtualMachineScaleSetExtension type. 7507type VirtualMachineScaleSetExtensionResponse struct { 7508 // RawResponse contains the underlying HTTP response. 7509 RawResponse *http.Response 7510 7511 // Describes a Virtual Machine Scale Set Extension. 7512 VirtualMachineScaleSetExtension *VirtualMachineScaleSetExtension 7513} 7514 7515// Describes a Virtual Machine Scale Set Extension. 7516type VirtualMachineScaleSetExtensionUpdate struct { 7517 SubResourceReadOnly 7518 // READ-ONLY; The name of the extension. 7519 Name *string `json:"name,omitempty" azure:"ro"` 7520 7521 // Describes the properties of a Virtual Machine Scale Set Extension. 7522 Properties *VirtualMachineScaleSetExtensionProperties `json:"properties,omitempty"` 7523 7524 // READ-ONLY; Resource type 7525 Type *string `json:"type,omitempty" azure:"ro"` 7526} 7527 7528// VirtualMachineScaleSetExtensionsBeginCreateOrUpdateOptions contains the optional parameters for the VirtualMachineScaleSetExtensions.BeginCreateOrUpdate 7529// method. 7530type VirtualMachineScaleSetExtensionsBeginCreateOrUpdateOptions struct { 7531 // placeholder for future optional parameters 7532} 7533 7534// VirtualMachineScaleSetExtensionsBeginDeleteOptions contains the optional parameters for the VirtualMachineScaleSetExtensions.BeginDelete method. 7535type VirtualMachineScaleSetExtensionsBeginDeleteOptions struct { 7536 // placeholder for future optional parameters 7537} 7538 7539// VirtualMachineScaleSetExtensionsBeginUpdateOptions contains the optional parameters for the VirtualMachineScaleSetExtensions.BeginUpdate method. 7540type VirtualMachineScaleSetExtensionsBeginUpdateOptions struct { 7541 // placeholder for future optional parameters 7542} 7543 7544// VirtualMachineScaleSetExtensionsGetOptions contains the optional parameters for the VirtualMachineScaleSetExtensions.Get method. 7545type VirtualMachineScaleSetExtensionsGetOptions struct { 7546 // The expand expression to apply on the operation. 7547 Expand *string 7548} 7549 7550// VirtualMachineScaleSetExtensionsListOptions contains the optional parameters for the VirtualMachineScaleSetExtensions.List method. 7551type VirtualMachineScaleSetExtensionsListOptions struct { 7552 // placeholder for future optional parameters 7553} 7554 7555// Identity for the virtual machine scale set. 7556type VirtualMachineScaleSetIDentity struct { 7557 // READ-ONLY; The principal id of virtual machine scale set identity. This property will only be provided for a system assigned identity. 7558 PrincipalID *string `json:"principalId,omitempty" azure:"ro"` 7559 7560 // READ-ONLY; The tenant id associated with the virtual machine scale set. This property will only be provided for a system assigned identity. 7561 TenantID *string `json:"tenantId,omitempty" azure:"ro"` 7562 7563 // The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and 7564 // a set of user assigned identities. The type 'None' 7565 // will remove any identities from the virtual machine scale set. 7566 Type *ResourceIDentityType `json:"type,omitempty"` 7567 7568 // 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 7569 // form: 7570 // '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. 7571 UserAssignedIDentities *map[string]VirtualMachineScaleSetIDentityUserAssignedIdentitiesValue `json:"userAssignedIdentities,omitempty"` 7572} 7573 7574type VirtualMachineScaleSetIDentityUserAssignedIdentitiesValue struct { 7575 // READ-ONLY; The client id of user assigned identity. 7576 ClientID *string `json:"clientId,omitempty" azure:"ro"` 7577 7578 // READ-ONLY; The principal id of user assigned identity. 7579 PrincipalID *string `json:"principalId,omitempty" azure:"ro"` 7580} 7581 7582// Describes a virtual machine scale set network profile's IP configuration. 7583type VirtualMachineScaleSetIPConfiguration struct { 7584 SubResource 7585 // The IP configuration name. 7586 Name *string `json:"name,omitempty"` 7587 7588 // Describes a virtual machine scale set network profile's IP configuration properties. 7589 Properties *VirtualMachineScaleSetIPConfigurationProperties `json:"properties,omitempty"` 7590} 7591 7592// Describes a virtual machine scale set network profile's IP configuration properties. 7593type VirtualMachineScaleSetIPConfigurationProperties struct { 7594 // Specifies an array of references to backend address pools of application gateways. A scale set can reference backend address pools of multiple application 7595 // gateways. Multiple scale sets cannot use the 7596 // same application gateway. 7597 ApplicationGatewayBackendAddressPools *[]SubResource `json:"applicationGatewayBackendAddressPools,omitempty"` 7598 7599 // Specifies an array of references to application security group. 7600 ApplicationSecurityGroups *[]SubResource `json:"applicationSecurityGroups,omitempty"` 7601 7602 // 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 7603 // load balancer. Multiple scale sets cannot 7604 // use the same basic sku load balancer. 7605 LoadBalancerBackendAddressPools *[]SubResource `json:"loadBalancerBackendAddressPools,omitempty"` 7606 7607 // 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 7608 // load balancer. Multiple scale sets cannot use 7609 // the same basic sku load balancer. 7610 LoadBalancerInboundNatPools *[]SubResource `json:"loadBalancerInboundNatPools,omitempty"` 7611 7612 // Specifies the primary network interface in case the virtual machine has more than 1 network interface. 7613 Primary *bool `json:"primary,omitempty"` 7614 7615 // Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible 7616 // values are: 'IPv4' and 'IPv6'. 7617 PrivateIPAddressVersion *IPVersion `json:"privateIPAddressVersion,omitempty"` 7618 7619 // The publicIPAddressConfiguration. 7620 PublicIPAddressConfiguration *VirtualMachineScaleSetPublicIPAddressConfiguration `json:"publicIPAddressConfiguration,omitempty"` 7621 7622 // Specifies the identifier of the subnet. 7623 Subnet *APIEntityReference `json:"subnet,omitempty"` 7624} 7625 7626// Contains the IP tag associated with the public IP address. 7627type VirtualMachineScaleSetIPTag struct { 7628 // IP tag type. Example: FirstPartyUsage. 7629 IPTagType *string `json:"ipTagType,omitempty"` 7630 7631 // IP tag associated with the public IP. Example: SQL, Storage etc. 7632 Tag *string `json:"tag,omitempty"` 7633} 7634 7635// The instance view of a virtual machine scale set. 7636type VirtualMachineScaleSetInstanceView struct { 7637 // READ-ONLY; The extensions information. 7638 Extensions *[]VirtualMachineScaleSetVMExtensionsSummary `json:"extensions,omitempty" azure:"ro"` 7639 7640 // READ-ONLY; The orchestration services information. 7641 OrchestrationServices *[]OrchestrationServiceSummary `json:"orchestrationServices,omitempty" azure:"ro"` 7642 7643 // The resource status information. 7644 Statuses *[]InstanceViewStatus `json:"statuses,omitempty"` 7645 7646 // READ-ONLY; The instance view status summary for the virtual machine scale set. 7647 VirtualMachine *VirtualMachineScaleSetInstanceViewStatusesSummary `json:"virtualMachine,omitempty" azure:"ro"` 7648} 7649 7650// VirtualMachineScaleSetInstanceViewResponse is the response envelope for operations that return a VirtualMachineScaleSetInstanceView type. 7651type VirtualMachineScaleSetInstanceViewResponse struct { 7652 // RawResponse contains the underlying HTTP response. 7653 RawResponse *http.Response 7654 7655 // The instance view of a virtual machine scale set. 7656 VirtualMachineScaleSetInstanceView *VirtualMachineScaleSetInstanceView 7657} 7658 7659// Instance view statuses summary for virtual machines of a virtual machine scale set. 7660type VirtualMachineScaleSetInstanceViewStatusesSummary struct { 7661 // READ-ONLY; The extensions information. 7662 StatusesSummary *[]VirtualMachineStatusCodeCount `json:"statusesSummary,omitempty" azure:"ro"` 7663} 7664 7665// List of Virtual Machine Scale Set OS Upgrade History operation response. 7666type VirtualMachineScaleSetListOSUpgradeHistory struct { 7667 // The uri to fetch the next page of OS Upgrade History. Call ListNext() with this to fetch the next page of history of upgrades. 7668 NextLink *string `json:"nextLink,omitempty"` 7669 7670 // The list of OS upgrades performed on the virtual machine scale set. 7671 Value *[]UpgradeOperationHistoricalStatusInfo `json:"value,omitempty"` 7672} 7673 7674// VirtualMachineScaleSetListOSUpgradeHistoryResponse is the response envelope for operations that return a VirtualMachineScaleSetListOSUpgradeHistory type. 7675type VirtualMachineScaleSetListOSUpgradeHistoryResponse struct { 7676 // RawResponse contains the underlying HTTP response. 7677 RawResponse *http.Response 7678 7679 // List of Virtual Machine Scale Set OS Upgrade History operation response. 7680 VirtualMachineScaleSetListOSUpgradeHistory *VirtualMachineScaleSetListOSUpgradeHistory 7681} 7682 7683// The List Virtual Machine operation response. 7684type VirtualMachineScaleSetListResult struct { 7685 // The uri to fetch the next page of Virtual Machine Scale Sets. Call ListNext() with this to fetch the next page of VMSS. 7686 NextLink *string `json:"nextLink,omitempty"` 7687 7688 // The list of virtual machine scale sets. 7689 Value *[]VirtualMachineScaleSet `json:"value,omitempty"` 7690} 7691 7692// VirtualMachineScaleSetListResultResponse is the response envelope for operations that return a VirtualMachineScaleSetListResult type. 7693type VirtualMachineScaleSetListResultResponse struct { 7694 // RawResponse contains the underlying HTTP response. 7695 RawResponse *http.Response 7696 7697 // The List Virtual Machine operation response. 7698 VirtualMachineScaleSetListResult *VirtualMachineScaleSetListResult 7699} 7700 7701// The Virtual Machine Scale Set List Skus operation response. 7702type VirtualMachineScaleSetListSKUsResult struct { 7703 // 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. 7704 NextLink *string `json:"nextLink,omitempty"` 7705 7706 // The list of skus available for the virtual machine scale set. 7707 Value *[]VirtualMachineScaleSetSKU `json:"value,omitempty"` 7708} 7709 7710// VirtualMachineScaleSetListSKUsResultResponse is the response envelope for operations that return a VirtualMachineScaleSetListSKUsResult type. 7711type VirtualMachineScaleSetListSKUsResultResponse struct { 7712 // RawResponse contains the underlying HTTP response. 7713 RawResponse *http.Response 7714 7715 // The Virtual Machine Scale Set List Skus operation response. 7716 VirtualMachineScaleSetListSKUsResult *VirtualMachineScaleSetListSKUsResult 7717} 7718 7719// The List Virtual Machine operation response. 7720type VirtualMachineScaleSetListWithLinkResult struct { 7721 // 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. 7722 NextLink *string `json:"nextLink,omitempty"` 7723 7724 // The list of virtual machine scale sets. 7725 Value *[]VirtualMachineScaleSet `json:"value,omitempty"` 7726} 7727 7728// VirtualMachineScaleSetListWithLinkResultResponse is the response envelope for operations that return a VirtualMachineScaleSetListWithLinkResult type. 7729type VirtualMachineScaleSetListWithLinkResultResponse struct { 7730 // RawResponse contains the underlying HTTP response. 7731 RawResponse *http.Response 7732 7733 // The List Virtual Machine operation response. 7734 VirtualMachineScaleSetListWithLinkResult *VirtualMachineScaleSetListWithLinkResult 7735} 7736 7737// Describes the parameters of a ScaleSet managed disk. 7738type VirtualMachineScaleSetManagedDiskParameters struct { 7739 // Specifies the customer managed disk encryption set resource id for the managed disk. 7740 DiskEncryptionSet *SubResource `json:"diskEncryptionSet,omitempty"` 7741 7742 // 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. 7743 StorageAccountType *StorageAccountTypes `json:"storageAccountType,omitempty"` 7744} 7745 7746// Describes a virtual machine scale set network profile's network configurations. 7747type VirtualMachineScaleSetNetworkConfiguration struct { 7748 SubResource 7749 // The network configuration name. 7750 Name *string `json:"name,omitempty"` 7751 7752 // Describes a virtual machine scale set network profile's IP configuration. 7753 Properties *VirtualMachineScaleSetNetworkConfigurationProperties `json:"properties,omitempty"` 7754} 7755 7756// Describes a virtual machines scale sets network configuration's DNS settings. 7757type VirtualMachineScaleSetNetworkConfigurationDNSSettings struct { 7758 // List of DNS servers IP addresses 7759 DNSServers *[]string `json:"dnsServers,omitempty"` 7760} 7761 7762// Describes a virtual machine scale set network profile's IP configuration. 7763type VirtualMachineScaleSetNetworkConfigurationProperties struct { 7764 // The dns settings to be applied on the network interfaces. 7765 DNSSettings *VirtualMachineScaleSetNetworkConfigurationDNSSettings `json:"dnsSettings,omitempty"` 7766 7767 // Specifies whether the network interface is accelerated networking-enabled. 7768 EnableAcceleratedNetworking *bool `json:"enableAcceleratedNetworking,omitempty"` 7769 7770 // Specifies whether the network interface is FPGA networking-enabled. 7771 EnableFpga *bool `json:"enableFpga,omitempty"` 7772 7773 // Whether IP forwarding enabled on this NIC. 7774 EnableIPForwarding *bool `json:"enableIPForwarding,omitempty"` 7775 7776 // Specifies the IP configurations of the network interface. 7777 IPConfigurations *[]VirtualMachineScaleSetIPConfiguration `json:"ipConfigurations,omitempty"` 7778 7779 // The network security group. 7780 NetworkSecurityGroup *SubResource `json:"networkSecurityGroup,omitempty"` 7781 7782 // Specifies the primary network interface in case the virtual machine has more than 1 network interface. 7783 Primary *bool `json:"primary,omitempty"` 7784} 7785 7786// Describes a virtual machine scale set network profile. 7787type VirtualMachineScaleSetNetworkProfile struct { 7788 // 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: 7789 // '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'. 7790 HealthProbe *APIEntityReference `json:"healthProbe,omitempty"` 7791 7792 // The list of network configurations. 7793 NetworkInterfaceConfigurations *[]VirtualMachineScaleSetNetworkConfiguration `json:"networkInterfaceConfigurations,omitempty"` 7794} 7795 7796// Describes a virtual machine scale set operating system disk. 7797type VirtualMachineScaleSetOSDisk struct { 7798 // Specifies the caching requirements. 7799 // Possible values are: 7800 // None 7801 // ReadOnly 7802 // ReadWrite 7803 // Default: None for Standard storage. ReadOnly for Premium storage 7804 Caching *CachingTypes `json:"caching,omitempty"` 7805 7806 // Specifies how the virtual machines in the scale set should be created. 7807 // 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 7808 // image, you also use the imageReference element 7809 // described above. If you are using a marketplace image, you also use the plan element previously described. 7810 CreateOption *DiskCreateOptionTypes `json:"createOption,omitempty"` 7811 7812 // Specifies the ephemeral disk Settings for the operating system disk used by the virtual machine scale set. 7813 DiffDiskSettings *DiffDiskSettings `json:"diffDiskSettings,omitempty"` 7814 7815 // 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. 7816 // This value cannot be larger than 1023 GB 7817 DiskSizeGb *int32 `json:"diskSizeGB,omitempty"` 7818 7819 // Specifies information about the unmanaged user image to base the scale set on. 7820 Image *VirtualHardDisk `json:"image,omitempty"` 7821 7822 // The managed disk parameters. 7823 ManagedDisk *VirtualMachineScaleSetManagedDiskParameters `json:"managedDisk,omitempty"` 7824 7825 // The disk name. 7826 Name *string `json:"name,omitempty"` 7827 7828 // 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. 7829 // Possible values are: 7830 // Windows 7831 // Linux 7832 OSType *OperatingSystemTypes `json:"osType,omitempty"` 7833 7834 // Specifies the container urls that are used to store operating system disks for the scale set. 7835 VhdContainers *[]string `json:"vhdContainers,omitempty"` 7836 7837 // Specifies whether writeAccelerator should be enabled or disabled on the disk. 7838 WriteAcceleratorEnabled *bool `json:"writeAcceleratorEnabled,omitempty"` 7839} 7840 7841// Describes a virtual machine scale set OS profile. 7842type VirtualMachineScaleSetOSProfile struct { 7843 // Specifies the password of the administrator account. 7844 // Minimum-length (Windows): 8 characters 7845 // Minimum-length (Linux): 6 characters 7846 // Max-length (Windows): 123 characters 7847 // Max-length (Linux): 72 characters 7848 // Complexity requirements: 3 out of 4 conditions below need to be fulfilled 7849 // Has lower characters 7850 // Has upper characters 7851 // Has a digit 7852 // Has a special character (Regex match [\W_]) 7853 // Disallowed values: "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" 7854 // For resetting the password, see How to reset the Remote Desktop service or its login password in a Windows VM 7855 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-reset-rdp?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json] 7856 // For resetting root password, see Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension 7857 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-vmaccess-extension?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#reset-root-password] 7858 AdminPassword *string `json:"adminPassword,omitempty"` 7859 7860 // Specifies the name of the administrator account. 7861 // Windows-only restriction: Cannot end in "." 7862 // Disallowed values: "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", 7863 // "aspnet", "backup", "console", "david", "guest", 7864 // "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". 7865 // Minimum-length (Linux): 1 character 7866 // Max-length (Linux): 64 characters 7867 // Max-length (Windows): 20 characters 7868 // For root access to the Linux VM, see Using root privileges on Linux virtual machines in Azure 7869 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json] 7870 // 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 7871 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json] 7872 AdminUsername *string `json:"adminUsername,omitempty"` 7873 7874 // 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. 7875 ComputerNamePrefix *string `json:"computerNamePrefix,omitempty"` 7876 7877 // 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. 7878 // The maximum length of the binary array is 7879 // 65535 bytes. 7880 // For using cloud-init for your VM, see Using cloud-init to customize a Linux VM during creation 7881 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json] 7882 CustomData *string `json:"customData,omitempty"` 7883 7884 // Specifies the Linux operating system settings on the virtual machine. 7885 // For a list of supported Linux distributions, see Linux on Azure-Endorsed Distributions 7886 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json] 7887 // For running non-endorsed distributions, see Information for Non-Endorsed Distributions 7888 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json]. 7889 LinuxConfiguration *LinuxConfiguration `json:"linuxConfiguration,omitempty"` 7890 7891 // Specifies set of certificates that should be installed onto the virtual machines in the scale set. 7892 Secrets *[]VaultSecretGroup `json:"secrets,omitempty"` 7893 7894 // Specifies Windows operating system settings on the virtual machine. 7895 WindowsConfiguration *WindowsConfiguration `json:"windowsConfiguration,omitempty"` 7896} 7897 7898// VirtualMachineScaleSetPollerResponse is the response envelope for operations that asynchronously return a VirtualMachineScaleSet type. 7899type VirtualMachineScaleSetPollerResponse struct { 7900 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 7901 PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualMachineScaleSetResponse, error) 7902 7903 // Poller contains an initialized poller. 7904 Poller VirtualMachineScaleSetPoller 7905 7906 // RawResponse contains the underlying HTTP response. 7907 RawResponse *http.Response 7908} 7909 7910// Describes the properties of a Virtual Machine Scale Set. 7911type VirtualMachineScaleSetProperties struct { 7912 // Specifies additional capabilities enabled or disabled on the Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines 7913 // have the capability to support attaching 7914 // managed data disks with UltraSSD_LRS storage account type. 7915 AdditionalCapabilities *AdditionalCapabilities `json:"additionalCapabilities,omitempty"` 7916 7917 // Policy for automatic repairs. 7918 AutomaticRepairsPolicy *AutomaticRepairsPolicy `json:"automaticRepairsPolicy,omitempty"` 7919 7920 // When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that 7921 // the extensions do not run on the extra 7922 // overprovisioned VMs. 7923 DoNotRunExtensionsOnOverprovisionedVMS *bool `json:"doNotRunExtensionsOnOverprovisionedVMs,omitempty"` 7924 7925 // Specifies information about the dedicated host group that the virtual machine scale set resides in. 7926 // Minimum api-version: 2020-06-01. 7927 HostGroup *SubResource `json:"hostGroup,omitempty"` 7928 7929 // Specifies whether the Virtual Machine Scale Set should be overprovisioned. 7930 Overprovision *bool `json:"overprovision,omitempty"` 7931 7932 // Fault Domain count for each placement group. 7933 PlatformFaultDomainCount *int32 `json:"platformFaultDomainCount,omitempty"` 7934 7935 // READ-ONLY; The provisioning state, which only appears in the response. 7936 ProvisioningState *string `json:"provisioningState,omitempty" azure:"ro"` 7937 7938 // Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. 7939 // Minimum api-version: 2018-04-01. 7940 ProximityPlacementGroup *SubResource `json:"proximityPlacementGroup,omitempty"` 7941 7942 // Specifies the scale-in policy that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled-in. 7943 ScaleInPolicy *ScaleInPolicy `json:"scaleInPolicy,omitempty"` 7944 7945 // When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified 7946 // to false. However, if singlePlacementGroup 7947 // is false, it may not be modified to true. 7948 SinglePlacementGroup *bool `json:"singlePlacementGroup,omitempty"` 7949 7950 // READ-ONLY; Specifies the ID which uniquely identifies a Virtual Machine Scale Set. 7951 UniqueID *string `json:"uniqueId,omitempty" azure:"ro"` 7952 7953 // The upgrade policy. 7954 UpgradePolicy *UpgradePolicy `json:"upgradePolicy,omitempty"` 7955 7956 // The virtual machine profile. 7957 VirtualMachineProfile *VirtualMachineScaleSetVMProfile `json:"virtualMachineProfile,omitempty"` 7958 7959 // Whether to force strictly even Virtual Machine distribution cross x-zones in case there is zone outage. 7960 ZoneBalance *bool `json:"zoneBalance,omitempty"` 7961} 7962 7963// Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration 7964type VirtualMachineScaleSetPublicIPAddressConfiguration struct { 7965 // The publicIP address configuration name. 7966 Name *string `json:"name,omitempty"` 7967 7968 // Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration 7969 Properties *VirtualMachineScaleSetPublicIPAddressConfigurationProperties `json:"properties,omitempty"` 7970} 7971 7972// Describes a virtual machines scale sets network configuration's DNS settings. 7973type VirtualMachineScaleSetPublicIPAddressConfigurationDNSSettings struct { 7974 // 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 7975 // be created 7976 DomainNameLabel *string `json:"domainNameLabel,omitempty"` 7977} 7978 7979// Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration 7980type VirtualMachineScaleSetPublicIPAddressConfigurationProperties struct { 7981 // The dns settings to be applied on the publicIP addresses . 7982 DNSSettings *VirtualMachineScaleSetPublicIPAddressConfigurationDNSSettings `json:"dnsSettings,omitempty"` 7983 7984 // The idle timeout of the public IP address. 7985 IDleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"` 7986 7987 // The list of IP tags associated with the public IP address. 7988 IPTags *[]VirtualMachineScaleSetIPTag `json:"ipTags,omitempty"` 7989 7990 // Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible 7991 // values are: 'IPv4' and 'IPv6'. 7992 PublicIPAddressVersion *IPVersion `json:"publicIPAddressVersion,omitempty"` 7993 7994 // The PublicIPPrefix from which to allocate publicIP addresses. 7995 PublicIPPrefix *SubResource `json:"publicIPPrefix,omitempty"` 7996} 7997 7998// Describes a Virtual Machine Scale Set VM Reimage Parameters. 7999type VirtualMachineScaleSetReimageParameters struct { 8000 VirtualMachineReimageParameters 8001 // 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 8002 // machines in the virtual machine scale set. 8003 InstanceIDs *[]string `json:"instanceIds,omitempty"` 8004} 8005 8006// VirtualMachineScaleSetResponse is the response envelope for operations that return a VirtualMachineScaleSet type. 8007type VirtualMachineScaleSetResponse struct { 8008 // RawResponse contains the underlying HTTP response. 8009 RawResponse *http.Response 8010 8011 // Describes a Virtual Machine Scale Set. 8012 VirtualMachineScaleSet *VirtualMachineScaleSet 8013} 8014 8015// VirtualMachineScaleSetRollingUpgradesBeginCancelOptions contains the optional parameters for the VirtualMachineScaleSetRollingUpgrades.BeginCancel method. 8016type VirtualMachineScaleSetRollingUpgradesBeginCancelOptions struct { 8017 // placeholder for future optional parameters 8018} 8019 8020// VirtualMachineScaleSetRollingUpgradesBeginStartExtensionUpgradeOptions contains the optional parameters for the VirtualMachineScaleSetRollingUpgrades.BeginStartExtensionUpgrade 8021// method. 8022type VirtualMachineScaleSetRollingUpgradesBeginStartExtensionUpgradeOptions struct { 8023 // placeholder for future optional parameters 8024} 8025 8026// VirtualMachineScaleSetRollingUpgradesBeginStartOSUpgradeOptions contains the optional parameters for the VirtualMachineScaleSetRollingUpgrades.BeginStartOSUpgrade 8027// method. 8028type VirtualMachineScaleSetRollingUpgradesBeginStartOSUpgradeOptions struct { 8029 // placeholder for future optional parameters 8030} 8031 8032// VirtualMachineScaleSetRollingUpgradesGetLatestOptions contains the optional parameters for the VirtualMachineScaleSetRollingUpgrades.GetLatest method. 8033type VirtualMachineScaleSetRollingUpgradesGetLatestOptions struct { 8034 // placeholder for future optional parameters 8035} 8036 8037// Describes an available virtual machine scale set sku. 8038type VirtualMachineScaleSetSKU struct { 8039 // READ-ONLY; Specifies the number of virtual machines in the scale set. 8040 Capacity *VirtualMachineScaleSetSKUCapacity `json:"capacity,omitempty" azure:"ro"` 8041 8042 // READ-ONLY; The type of resource the sku applies to. 8043 ResourceType *string `json:"resourceType,omitempty" azure:"ro"` 8044 8045 // READ-ONLY; The Sku. 8046 SKU *SKU `json:"sku,omitempty" azure:"ro"` 8047} 8048 8049// Describes scaling information of a sku. 8050type VirtualMachineScaleSetSKUCapacity struct { 8051 // READ-ONLY; The default capacity. 8052 DefaultCapacity *int64 `json:"defaultCapacity,omitempty" azure:"ro"` 8053 8054 // READ-ONLY; The maximum capacity that can be set. 8055 Maximum *int64 `json:"maximum,omitempty" azure:"ro"` 8056 8057 // READ-ONLY; The minimum capacity. 8058 Minimum *int64 `json:"minimum,omitempty" azure:"ro"` 8059 8060 // READ-ONLY; The scale type applicable to the sku. 8061 ScaleType *VirtualMachineScaleSetSKUScaleType `json:"scaleType,omitempty" azure:"ro"` 8062} 8063 8064// Describes a virtual machine scale set storage profile. 8065type VirtualMachineScaleSetStorageProfile struct { 8066 // Specifies the parameters that are used to add data disks to the virtual machines in the scale set. 8067 // For more information about disks, see About disks and VHDs for Azure virtual machines 8068 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json]. 8069 DataDisks *[]VirtualMachineScaleSetDataDisk `json:"dataDisks,omitempty"` 8070 8071 // Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This 8072 // element is required when you want to use a platform 8073 // image, marketplace image, or virtual machine image, but is not used in other creation operations. 8074 ImageReference *ImageReference `json:"imageReference,omitempty"` 8075 8076 // Specifies information about the operating system disk used by the virtual machines in the scale set. 8077 // For more information about disks, see About disks and VHDs for Azure virtual machines 8078 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json]. 8079 OSDisk *VirtualMachineScaleSetOSDisk `json:"osDisk,omitempty"` 8080} 8081 8082// Describes a Virtual Machine Scale Set. 8083type VirtualMachineScaleSetUpdate struct { 8084 UpdateResource 8085 // The identity of the virtual machine scale set, if configured. 8086 IDentity *VirtualMachineScaleSetIDentity `json:"identity,omitempty"` 8087 8088 // The purchase plan when deploying a virtual machine scale set from VM Marketplace images. 8089 Plan *Plan `json:"plan,omitempty"` 8090 8091 // Describes the properties of a Virtual Machine Scale Set. 8092 Properties *VirtualMachineScaleSetUpdateProperties `json:"properties,omitempty"` 8093 8094 // The virtual machine scale set sku. 8095 SKU *SKU `json:"sku,omitempty"` 8096} 8097 8098// Describes a virtual machine scale set network profile's IP configuration. NOTE: The subnet of a scale set may be modified as long as the original subnet 8099// and the new subnet are in the same virtual 8100// network 8101type VirtualMachineScaleSetUpdateIPConfiguration struct { 8102 SubResource 8103 // The IP configuration name. 8104 Name *string `json:"name,omitempty"` 8105 8106 // Describes a virtual machine scale set network profile's IP configuration properties. 8107 Properties *VirtualMachineScaleSetUpdateIPConfigurationProperties `json:"properties,omitempty"` 8108} 8109 8110// Describes a virtual machine scale set network profile's IP configuration properties. 8111type VirtualMachineScaleSetUpdateIPConfigurationProperties struct { 8112 // The application gateway backend address pools. 8113 ApplicationGatewayBackendAddressPools *[]SubResource `json:"applicationGatewayBackendAddressPools,omitempty"` 8114 8115 // Specifies an array of references to application security group. 8116 ApplicationSecurityGroups *[]SubResource `json:"applicationSecurityGroups,omitempty"` 8117 8118 // The load balancer backend address pools. 8119 LoadBalancerBackendAddressPools *[]SubResource `json:"loadBalancerBackendAddressPools,omitempty"` 8120 8121 // The load balancer inbound nat pools. 8122 LoadBalancerInboundNatPools *[]SubResource `json:"loadBalancerInboundNatPools,omitempty"` 8123 8124 // Specifies the primary IP Configuration in case the network interface has more than one IP Configuration. 8125 Primary *bool `json:"primary,omitempty"` 8126 8127 // Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible 8128 // values are: 'IPv4' and 'IPv6'. 8129 PrivateIPAddressVersion *IPVersion `json:"privateIPAddressVersion,omitempty"` 8130 8131 // The publicIPAddressConfiguration. 8132 PublicIPAddressConfiguration *VirtualMachineScaleSetUpdatePublicIPAddressConfiguration `json:"publicIPAddressConfiguration,omitempty"` 8133 8134 // The subnet. 8135 Subnet *APIEntityReference `json:"subnet,omitempty"` 8136} 8137 8138// Describes a virtual machine scale set network profile's network configurations. 8139type VirtualMachineScaleSetUpdateNetworkConfiguration struct { 8140 SubResource 8141 // The network configuration name. 8142 Name *string `json:"name,omitempty"` 8143 8144 // Describes a virtual machine scale set updatable network profile's IP configuration.Use this object for updating network profile's IP Configuration. 8145 Properties *VirtualMachineScaleSetUpdateNetworkConfigurationProperties `json:"properties,omitempty"` 8146} 8147 8148// Describes a virtual machine scale set updatable network profile's IP configuration.Use this object for updating network profile's IP Configuration. 8149type VirtualMachineScaleSetUpdateNetworkConfigurationProperties struct { 8150 // The dns settings to be applied on the network interfaces. 8151 DNSSettings *VirtualMachineScaleSetNetworkConfigurationDNSSettings `json:"dnsSettings,omitempty"` 8152 8153 // Specifies whether the network interface is accelerated networking-enabled. 8154 EnableAcceleratedNetworking *bool `json:"enableAcceleratedNetworking,omitempty"` 8155 8156 // Specifies whether the network interface is FPGA networking-enabled. 8157 EnableFpga *bool `json:"enableFpga,omitempty"` 8158 8159 // Whether IP forwarding enabled on this NIC. 8160 EnableIPForwarding *bool `json:"enableIPForwarding,omitempty"` 8161 8162 // The virtual machine scale set IP Configuration. 8163 IPConfigurations *[]VirtualMachineScaleSetUpdateIPConfiguration `json:"ipConfigurations,omitempty"` 8164 8165 // The network security group. 8166 NetworkSecurityGroup *SubResource `json:"networkSecurityGroup,omitempty"` 8167 8168 // Whether this is a primary NIC on a virtual machine. 8169 Primary *bool `json:"primary,omitempty"` 8170} 8171 8172// Describes a virtual machine scale set network profile. 8173type VirtualMachineScaleSetUpdateNetworkProfile struct { 8174 // 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: 8175 // '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'. 8176 HealthProbe *APIEntityReference `json:"healthProbe,omitempty"` 8177 8178 // The list of network configurations. 8179 NetworkInterfaceConfigurations *[]VirtualMachineScaleSetUpdateNetworkConfiguration `json:"networkInterfaceConfigurations,omitempty"` 8180} 8181 8182// Describes virtual machine scale set operating system disk Update Object. This should be used for Updating VMSS OS Disk. 8183type VirtualMachineScaleSetUpdateOSDisk struct { 8184 // The caching type. 8185 Caching *CachingTypes `json:"caching,omitempty"` 8186 8187 // 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. 8188 // This value cannot be larger than 1023 GB 8189 DiskSizeGb *int32 `json:"diskSizeGB,omitempty"` 8190 8191 // The Source User Image VirtualHardDisk. This VirtualHardDisk will be copied before using it to attach to the Virtual Machine. If SourceImage is provided, 8192 // the destination VirtualHardDisk should not 8193 // exist. 8194 Image *VirtualHardDisk `json:"image,omitempty"` 8195 8196 // The managed disk parameters. 8197 ManagedDisk *VirtualMachineScaleSetManagedDiskParameters `json:"managedDisk,omitempty"` 8198 8199 // The list of virtual hard disk container uris. 8200 VhdContainers *[]string `json:"vhdContainers,omitempty"` 8201 8202 // Specifies whether writeAccelerator should be enabled or disabled on the disk. 8203 WriteAcceleratorEnabled *bool `json:"writeAcceleratorEnabled,omitempty"` 8204} 8205 8206// Describes a virtual machine scale set OS profile. 8207type VirtualMachineScaleSetUpdateOSProfile struct { 8208 // A base-64 encoded string of custom data. 8209 CustomData *string `json:"customData,omitempty"` 8210 8211 // The Linux Configuration of the OS profile. 8212 LinuxConfiguration *LinuxConfiguration `json:"linuxConfiguration,omitempty"` 8213 8214 // The List of certificates for addition to the VM. 8215 Secrets *[]VaultSecretGroup `json:"secrets,omitempty"` 8216 8217 // The Windows Configuration of the OS profile. 8218 WindowsConfiguration *WindowsConfiguration `json:"windowsConfiguration,omitempty"` 8219} 8220 8221// Describes the properties of a Virtual Machine Scale Set. 8222type VirtualMachineScaleSetUpdateProperties struct { 8223 // Specifies additional capabilities enabled or disabled on the Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines 8224 // have the capability to support attaching 8225 // managed data disks with UltraSSD_LRS storage account type. 8226 AdditionalCapabilities *AdditionalCapabilities `json:"additionalCapabilities,omitempty"` 8227 8228 // Policy for automatic repairs. 8229 AutomaticRepairsPolicy *AutomaticRepairsPolicy `json:"automaticRepairsPolicy,omitempty"` 8230 8231 // When Overprovision is enabled, extensions are launched only on the requested number of VMs which are finally kept. This property will hence ensure that 8232 // the extensions do not run on the extra 8233 // overprovisioned VMs. 8234 DoNotRunExtensionsOnOverprovisionedVMS *bool `json:"doNotRunExtensionsOnOverprovisionedVMs,omitempty"` 8235 8236 // Specifies whether the Virtual Machine Scale Set should be overprovisioned. 8237 Overprovision *bool `json:"overprovision,omitempty"` 8238 8239 // Specifies information about the proximity placement group that the virtual machine scale set should be assigned to. 8240 // Minimum api-version: 2018-04-01. 8241 ProximityPlacementGroup *SubResource `json:"proximityPlacementGroup,omitempty"` 8242 8243 // Specifies the scale-in policy that decides which virtual machines are chosen for removal when a Virtual Machine Scale Set is scaled-in. 8244 ScaleInPolicy *ScaleInPolicy `json:"scaleInPolicy,omitempty"` 8245 8246 // When true this limits the scale set to a single placement group, of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified 8247 // to false. However, if singlePlacementGroup 8248 // is false, it may not be modified to true. 8249 SinglePlacementGroup *bool `json:"singlePlacementGroup,omitempty"` 8250 8251 // The upgrade policy. 8252 UpgradePolicy *UpgradePolicy `json:"upgradePolicy,omitempty"` 8253 8254 // The virtual machine profile. 8255 VirtualMachineProfile *VirtualMachineScaleSetUpdateVMProfile `json:"virtualMachineProfile,omitempty"` 8256} 8257 8258// Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration 8259type VirtualMachineScaleSetUpdatePublicIPAddressConfiguration struct { 8260 // The publicIP address configuration name. 8261 Name *string `json:"name,omitempty"` 8262 8263 // Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration 8264 Properties *VirtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties `json:"properties,omitempty"` 8265} 8266 8267// Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration 8268type VirtualMachineScaleSetUpdatePublicIPAddressConfigurationProperties struct { 8269 // The dns settings to be applied on the publicIP addresses . 8270 DNSSettings *VirtualMachineScaleSetPublicIPAddressConfigurationDNSSettings `json:"dnsSettings,omitempty"` 8271 8272 // The idle timeout of the public IP address. 8273 IDleTimeoutInMinutes *int32 `json:"idleTimeoutInMinutes,omitempty"` 8274} 8275 8276// Describes a virtual machine scale set storage profile. 8277type VirtualMachineScaleSetUpdateStorageProfile struct { 8278 // The data disks. 8279 DataDisks *[]VirtualMachineScaleSetDataDisk `json:"dataDisks,omitempty"` 8280 8281 // The image reference. 8282 ImageReference *ImageReference `json:"imageReference,omitempty"` 8283 8284 // The OS disk. 8285 OSDisk *VirtualMachineScaleSetUpdateOSDisk `json:"osDisk,omitempty"` 8286} 8287 8288// Describes a virtual machine scale set virtual machine profile. 8289type VirtualMachineScaleSetUpdateVMProfile struct { 8290 // Specifies the billing related details of a Azure Spot VMSS. 8291 // Minimum api-version: 2019-03-01. 8292 BillingProfile *BillingProfile `json:"billingProfile,omitempty"` 8293 8294 // The virtual machine scale set diagnostics profile. 8295 DiagnosticsProfile *DiagnosticsProfile `json:"diagnosticsProfile,omitempty"` 8296 8297 // The virtual machine scale set extension profile. 8298 ExtensionProfile *VirtualMachineScaleSetExtensionProfile `json:"extensionProfile,omitempty"` 8299 8300 // The license type, which is for bring your own license scenario. 8301 LicenseType *string `json:"licenseType,omitempty"` 8302 8303 // The virtual machine scale set network profile. 8304 NetworkProfile *VirtualMachineScaleSetUpdateNetworkProfile `json:"networkProfile,omitempty"` 8305 8306 // The virtual machine scale set OS profile. 8307 OSProfile *VirtualMachineScaleSetUpdateOSProfile `json:"osProfile,omitempty"` 8308 8309 // Specifies Scheduled Event related configurations. 8310 ScheduledEventsProfile *ScheduledEventsProfile `json:"scheduledEventsProfile,omitempty"` 8311 8312 // The virtual machine scale set Security profile 8313 SecurityProfile *SecurityProfile `json:"securityProfile,omitempty"` 8314 8315 // The virtual machine scale set storage profile. 8316 StorageProfile *VirtualMachineScaleSetUpdateStorageProfile `json:"storageProfile,omitempty"` 8317} 8318 8319// Describes a virtual machine scale set virtual machine. 8320type VirtualMachineScaleSetVM struct { 8321 Resource 8322 // READ-ONLY; The virtual machine instance ID. 8323 InstanceID *string `json:"instanceId,omitempty" azure:"ro"` 8324 8325 // Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can 8326 // use a marketplace image from an API, you must 8327 // 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, 8328 // Get Started ->. Enter any required 8329 // information and then click Save. 8330 Plan *Plan `json:"plan,omitempty"` 8331 8332 // Describes the properties of a virtual machine scale set virtual machine. 8333 Properties *VirtualMachineScaleSetVMProperties `json:"properties,omitempty"` 8334 8335 // READ-ONLY; The virtual machine child extension resources. 8336 Resources *[]VirtualMachineExtension `json:"resources,omitempty" azure:"ro"` 8337 8338 // READ-ONLY; The virtual machine SKU. 8339 SKU *SKU `json:"sku,omitempty" azure:"ro"` 8340 8341 // READ-ONLY; The virtual machine zones. 8342 Zones *[]string `json:"zones,omitempty" azure:"ro"` 8343} 8344 8345// Describes a VMSS VM Extension. 8346type VirtualMachineScaleSetVMExtension struct { 8347 SubResourceReadOnly 8348 // READ-ONLY; The name of the extension. 8349 Name *string `json:"name,omitempty" azure:"ro"` 8350 8351 // Describes the properties of a Virtual Machine Extension. 8352 Properties *VirtualMachineExtensionProperties `json:"properties,omitempty"` 8353 8354 // READ-ONLY; Resource type 8355 Type *string `json:"type,omitempty" azure:"ro"` 8356} 8357 8358// VirtualMachineScaleSetVMExtensionPollerResponse is the response envelope for operations that asynchronously return a VirtualMachineScaleSetVMExtension 8359// type. 8360type VirtualMachineScaleSetVMExtensionPollerResponse struct { 8361 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 8362 PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualMachineScaleSetVMExtensionResponse, error) 8363 8364 // Poller contains an initialized poller. 8365 Poller VirtualMachineScaleSetVMExtensionPoller 8366 8367 // RawResponse contains the underlying HTTP response. 8368 RawResponse *http.Response 8369} 8370 8371// VirtualMachineScaleSetVMExtensionResponse is the response envelope for operations that return a VirtualMachineScaleSetVMExtension type. 8372type VirtualMachineScaleSetVMExtensionResponse struct { 8373 // RawResponse contains the underlying HTTP response. 8374 RawResponse *http.Response 8375 8376 // Describes a VMSS VM Extension. 8377 VirtualMachineScaleSetVMExtension *VirtualMachineScaleSetVMExtension 8378} 8379 8380// Describes a VMSS VM Extension. 8381type VirtualMachineScaleSetVMExtensionUpdate struct { 8382 SubResourceReadOnly 8383 // READ-ONLY; The name of the extension. 8384 Name *string `json:"name,omitempty" azure:"ro"` 8385 8386 // Describes the properties of a Virtual Machine Extension. 8387 Properties *VirtualMachineExtensionUpdateProperties `json:"properties,omitempty"` 8388 8389 // READ-ONLY; Resource type 8390 Type *string `json:"type,omitempty" azure:"ro"` 8391} 8392 8393// VirtualMachineScaleSetVMExtensionsBeginCreateOrUpdateOptions contains the optional parameters for the VirtualMachineScaleSetVMExtensions.BeginCreateOrUpdate 8394// method. 8395type VirtualMachineScaleSetVMExtensionsBeginCreateOrUpdateOptions struct { 8396 // placeholder for future optional parameters 8397} 8398 8399// VirtualMachineScaleSetVMExtensionsBeginDeleteOptions contains the optional parameters for the VirtualMachineScaleSetVMExtensions.BeginDelete method. 8400type VirtualMachineScaleSetVMExtensionsBeginDeleteOptions struct { 8401 // placeholder for future optional parameters 8402} 8403 8404// VirtualMachineScaleSetVMExtensionsBeginUpdateOptions contains the optional parameters for the VirtualMachineScaleSetVMExtensions.BeginUpdate method. 8405type VirtualMachineScaleSetVMExtensionsBeginUpdateOptions struct { 8406 // placeholder for future optional parameters 8407} 8408 8409// VirtualMachineScaleSetVMExtensionsGetOptions contains the optional parameters for the VirtualMachineScaleSetVMExtensions.Get method. 8410type VirtualMachineScaleSetVMExtensionsGetOptions struct { 8411 // The expand expression to apply on the operation. 8412 Expand *string 8413} 8414 8415// VirtualMachineScaleSetVMExtensionsListOptions contains the optional parameters for the VirtualMachineScaleSetVMExtensions.List method. 8416type VirtualMachineScaleSetVMExtensionsListOptions struct { 8417 // The expand expression to apply on the operation. 8418 Expand *string 8419} 8420 8421// The List VMSS VM Extension operation response 8422type VirtualMachineScaleSetVMExtensionsListResult struct { 8423 // The list of VMSS VM extensions 8424 Value *[]VirtualMachineScaleSetVMExtension `json:"value,omitempty"` 8425} 8426 8427// VirtualMachineScaleSetVMExtensionsListResultResponse is the response envelope for operations that return a VirtualMachineScaleSetVMExtensionsListResult 8428// type. 8429type VirtualMachineScaleSetVMExtensionsListResultResponse struct { 8430 // RawResponse contains the underlying HTTP response. 8431 RawResponse *http.Response 8432 8433 // The List VMSS VM Extension operation response 8434 VirtualMachineScaleSetVMExtensionsListResult *VirtualMachineScaleSetVMExtensionsListResult 8435} 8436 8437// Extensions summary for virtual machines of a virtual machine scale set. 8438type VirtualMachineScaleSetVMExtensionsSummary struct { 8439 // READ-ONLY; The extension name. 8440 Name *string `json:"name,omitempty" azure:"ro"` 8441 8442 // READ-ONLY; The extensions information. 8443 StatusesSummary *[]VirtualMachineStatusCodeCount `json:"statusesSummary,omitempty" azure:"ro"` 8444} 8445 8446// Specifies a list of virtual machine instance IDs from the VM scale set. 8447type VirtualMachineScaleSetVMInstanceIDs struct { 8448 // 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 8449 // machines in the virtual machine scale set. 8450 InstanceIDs *[]string `json:"instanceIds,omitempty"` 8451} 8452 8453// Specifies a list of virtual machine instance IDs from the VM scale set. 8454type VirtualMachineScaleSetVMInstanceRequiredIDs struct { 8455 // The virtual machine scale set instance ids. 8456 InstanceIDs *[]string `json:"instanceIds,omitempty"` 8457} 8458 8459// The instance view of a virtual machine scale set VM. 8460type VirtualMachineScaleSetVMInstanceView struct { 8461 // READ-ONLY; Resource id of the dedicated host, on which the virtual machine is allocated through automatic placement, when the virtual machine is associated 8462 // with a dedicated host group that has automatic 8463 // placement enabled. 8464 // Minimum api-version: 2020-06-01. 8465 AssignedHost *string `json:"assignedHost,omitempty" azure:"ro"` 8466 8467 // Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. 8468 // You can easily view the output of your console log. 8469 // Azure also enables you to see a screenshot of the VM from the hypervisor. 8470 BootDiagnostics *BootDiagnosticsInstanceView `json:"bootDiagnostics,omitempty"` 8471 8472 // The disks information. 8473 Disks *[]DiskInstanceView `json:"disks,omitempty"` 8474 8475 // The extensions information. 8476 Extensions *[]VirtualMachineExtensionInstanceView `json:"extensions,omitempty"` 8477 8478 // The Maintenance Operation status on the virtual machine. 8479 MaintenanceRedeployStatus *MaintenanceRedeployStatus `json:"maintenanceRedeployStatus,omitempty"` 8480 8481 // The placement group in which the VM is running. If the VM is deallocated it will not have a placementGroupId. 8482 PlacementGroupID *string `json:"placementGroupId,omitempty"` 8483 8484 // The Fault Domain count. 8485 PlatformFaultDomain *int32 `json:"platformFaultDomain,omitempty"` 8486 8487 // The Update Domain count. 8488 PlatformUpdateDomain *int32 `json:"platformUpdateDomain,omitempty"` 8489 8490 // The Remote desktop certificate thumbprint. 8491 RdpThumbPrint *string `json:"rdpThumbPrint,omitempty"` 8492 8493 // The resource status information. 8494 Statuses *[]InstanceViewStatus `json:"statuses,omitempty"` 8495 8496 // The VM Agent running on the virtual machine. 8497 VMAgent *VirtualMachineAgentInstanceView `json:"vmAgent,omitempty"` 8498 8499 // READ-ONLY; The health status for the VM. 8500 VMHealth *VirtualMachineHealthStatus `json:"vmHealth,omitempty" azure:"ro"` 8501} 8502 8503// VirtualMachineScaleSetVMInstanceViewResponse is the response envelope for operations that return a VirtualMachineScaleSetVMInstanceView type. 8504type VirtualMachineScaleSetVMInstanceViewResponse struct { 8505 // RawResponse contains the underlying HTTP response. 8506 RawResponse *http.Response 8507 8508 // The instance view of a virtual machine scale set VM. 8509 VirtualMachineScaleSetVMInstanceView *VirtualMachineScaleSetVMInstanceView 8510} 8511 8512// The List Virtual Machine Scale Set VMs operation response. 8513type VirtualMachineScaleSetVMListResult struct { 8514 // 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 8515 NextLink *string `json:"nextLink,omitempty"` 8516 8517 // The list of virtual machine scale sets VMs. 8518 Value *[]VirtualMachineScaleSetVM `json:"value,omitempty"` 8519} 8520 8521// VirtualMachineScaleSetVMListResultResponse is the response envelope for operations that return a VirtualMachineScaleSetVMListResult type. 8522type VirtualMachineScaleSetVMListResultResponse struct { 8523 // RawResponse contains the underlying HTTP response. 8524 RawResponse *http.Response 8525 8526 // The List Virtual Machine Scale Set VMs operation response. 8527 VirtualMachineScaleSetVMListResult *VirtualMachineScaleSetVMListResult 8528} 8529 8530// Describes a virtual machine scale set VM network profile. 8531type VirtualMachineScaleSetVMNetworkProfileConfiguration struct { 8532 // The list of network configurations. 8533 NetworkInterfaceConfigurations *[]VirtualMachineScaleSetNetworkConfiguration `json:"networkInterfaceConfigurations,omitempty"` 8534} 8535 8536// VirtualMachineScaleSetVMPollerResponse is the response envelope for operations that asynchronously return a VirtualMachineScaleSetVM type. 8537type VirtualMachineScaleSetVMPollerResponse struct { 8538 // PollUntilDone will poll the service endpoint until a terminal state is reached or an error is received 8539 PollUntilDone func(ctx context.Context, frequency time.Duration) (VirtualMachineScaleSetVMResponse, error) 8540 8541 // Poller contains an initialized poller. 8542 Poller VirtualMachineScaleSetVMPoller 8543 8544 // RawResponse contains the underlying HTTP response. 8545 RawResponse *http.Response 8546} 8547 8548// Describes a virtual machine scale set virtual machine profile. 8549type VirtualMachineScaleSetVMProfile struct { 8550 // Specifies the billing related details of a Azure Spot VMSS. 8551 // Minimum api-version: 2019-03-01. 8552 BillingProfile *BillingProfile `json:"billingProfile,omitempty"` 8553 8554 // Specifies the boot diagnostic settings state. 8555 // Minimum api-version: 2015-06-15. 8556 DiagnosticsProfile *DiagnosticsProfile `json:"diagnosticsProfile,omitempty"` 8557 8558 // Specifies the eviction policy for the Azure Spot virtual machine and Azure Spot scale set. 8559 // For Azure Spot virtual machines, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. 8560 // For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported and the minimum api-version is 2017-10-30-preview. 8561 EvictionPolicy *VirtualMachineEvictionPolicyTypes `json:"evictionPolicy,omitempty"` 8562 8563 // Specifies a collection of settings for extensions installed on virtual machines in the scale set. 8564 ExtensionProfile *VirtualMachineScaleSetExtensionProfile `json:"extensionProfile,omitempty"` 8565 8566 // Specifies that the image or disk that is being used was licensed on-premises. 8567 // Possible values for Windows Server operating system are: 8568 // WindowsClient 8569 // WindowsServer 8570 // Possible values for Linux Server operating system are: 8571 // RHELBYOS (for RHEL) 8572 // SLESBYOS (for SUSE) 8573 // For more information, see Azure Hybrid Use Benefit for Windows Server [https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing] 8574 // Azure Hybrid Use Benefit for Linux Server [https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux] 8575 // Minimum api-version: 2015-06-15 8576 LicenseType *string `json:"licenseType,omitempty"` 8577 8578 // Specifies properties of the network interfaces of the virtual machines in the scale set. 8579 NetworkProfile *VirtualMachineScaleSetNetworkProfile `json:"networkProfile,omitempty"` 8580 8581 // Specifies the operating system settings for the virtual machines in the scale set. 8582 OSProfile *VirtualMachineScaleSetOSProfile `json:"osProfile,omitempty"` 8583 8584 // Specifies the priority for the virtual machines in the scale set. 8585 // Minimum api-version: 2017-10-30-preview 8586 Priority *VirtualMachinePriorityTypes `json:"priority,omitempty"` 8587 8588 // Specifies Scheduled Event related configurations. 8589 ScheduledEventsProfile *ScheduledEventsProfile `json:"scheduledEventsProfile,omitempty"` 8590 8591 // Specifies the Security related profile settings for the virtual machines in the scale set. 8592 SecurityProfile *SecurityProfile `json:"securityProfile,omitempty"` 8593 8594 // Specifies the storage settings for the virtual machine disks. 8595 StorageProfile *VirtualMachineScaleSetStorageProfile `json:"storageProfile,omitempty"` 8596} 8597 8598// Describes the properties of a virtual machine scale set virtual machine. 8599type VirtualMachineScaleSetVMProperties struct { 8600 // Specifies additional capabilities enabled or disabled on the virtual machine in the scale set. For instance: whether the virtual machine has the capability 8601 // to support attaching managed data disks with 8602 // UltraSSD_LRS storage account type. 8603 AdditionalCapabilities *AdditionalCapabilities `json:"additionalCapabilities,omitempty"` 8604 8605 // Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability 8606 // set are allocated to different nodes to maximize 8607 // availability. For more information about availability sets, see Manage the availability of virtual machines 8608 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json]. 8609 // For more information on Azure planned maintenance, see Planned maintenance for virtual machines in Azure 8610 // [https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json] 8611 // Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. 8612 AvailabilitySet *SubResource `json:"availabilitySet,omitempty"` 8613 8614 // Specifies the boot diagnostic settings state. 8615 // Minimum api-version: 2015-06-15. 8616 DiagnosticsProfile *DiagnosticsProfile `json:"diagnosticsProfile,omitempty"` 8617 8618 // Specifies the hardware settings for the virtual machine. 8619 HardwareProfile *HardwareProfile `json:"hardwareProfile,omitempty"` 8620 8621 // READ-ONLY; The virtual machine instance view. 8622 InstanceView *VirtualMachineScaleSetVMInstanceView `json:"instanceView,omitempty" azure:"ro"` 8623 8624 // READ-ONLY; Specifies whether the latest model has been applied to the virtual machine. 8625 LatestModelApplied *bool `json:"latestModelApplied,omitempty" azure:"ro"` 8626 8627 // Specifies that the image or disk that is being used was licensed on-premises. 8628 // Possible values for Windows Server operating system are: 8629 // WindowsClient 8630 // WindowsServer 8631 // Possible values for Linux Server operating system are: 8632 // RHELBYOS (for RHEL) 8633 // SLESBYOS (for SUSE) 8634 // For more information, see Azure Hybrid Use Benefit for Windows Server [https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing] 8635 // Azure Hybrid Use Benefit for Linux Server [https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux] 8636 // Minimum api-version: 2015-06-15 8637 LicenseType *string `json:"licenseType,omitempty"` 8638 8639 // READ-ONLY; Specifies whether the model applied to the virtual machine is the model of the virtual machine scale set or the customized model for the virtual 8640 // machine. 8641 ModelDefinitionApplied *string `json:"modelDefinitionApplied,omitempty" azure:"ro"` 8642 8643 // Specifies the network interfaces of the virtual machine. 8644 NetworkProfile *NetworkProfile `json:"networkProfile,omitempty"` 8645 8646 // Specifies the network profile configuration of the virtual machine. 8647 NetworkProfileConfiguration *VirtualMachineScaleSetVMNetworkProfileConfiguration `json:"networkProfileConfiguration,omitempty"` 8648 8649 // Specifies the operating system settings for the virtual machine. 8650 OSProfile *OSProfile `json:"osProfile,omitempty"` 8651 8652 // Specifies the protection policy of the virtual machine. 8653 ProtectionPolicy *VirtualMachineScaleSetVMProtectionPolicy `json:"protectionPolicy,omitempty"` 8654 8655 // READ-ONLY; The provisioning state, which only appears in the response. 8656 ProvisioningState *string `json:"provisioningState,omitempty" azure:"ro"` 8657 8658 // Specifies the Security related profile settings for the virtual machine. 8659 SecurityProfile *SecurityProfile `json:"securityProfile,omitempty"` 8660 8661 // Specifies the storage settings for the virtual machine disks. 8662 StorageProfile *StorageProfile `json:"storageProfile,omitempty"` 8663 8664 // READ-ONLY; Azure VM unique ID. 8665 VMID *string `json:"vmId,omitempty" azure:"ro"` 8666} 8667 8668// The protection policy of a virtual machine scale set VM. 8669type VirtualMachineScaleSetVMProtectionPolicy struct { 8670 // Indicates that the virtual machine scale set VM shouldn't be considered for deletion during a scale-in operation. 8671 ProtectFromScaleIn *bool `json:"protectFromScaleIn,omitempty"` 8672 8673 // Indicates that model updates or actions (including scale-in) initiated on the virtual machine scale set should not be applied to the virtual machine 8674 // scale set VM. 8675 ProtectFromScaleSetActions *bool `json:"protectFromScaleSetActions,omitempty"` 8676} 8677 8678// Describes a Virtual Machine Scale Set VM Reimage Parameters. 8679type VirtualMachineScaleSetVMReimageParameters struct { 8680 VirtualMachineReimageParameters 8681} 8682 8683// VirtualMachineScaleSetVMResponse is the response envelope for operations that return a VirtualMachineScaleSetVM type. 8684type VirtualMachineScaleSetVMResponse struct { 8685 // RawResponse contains the underlying HTTP response. 8686 RawResponse *http.Response 8687 8688 // Describes a virtual machine scale set virtual machine. 8689 VirtualMachineScaleSetVM *VirtualMachineScaleSetVM 8690} 8691 8692// VirtualMachineScaleSetVMRunCommandsBeginCreateOrUpdateOptions contains the optional parameters for the VirtualMachineScaleSetVMRunCommands.BeginCreateOrUpdate 8693// method. 8694type VirtualMachineScaleSetVMRunCommandsBeginCreateOrUpdateOptions struct { 8695 // placeholder for future optional parameters 8696} 8697 8698// VirtualMachineScaleSetVMRunCommandsBeginDeleteOptions contains the optional parameters for the VirtualMachineScaleSetVMRunCommands.BeginDelete method. 8699type VirtualMachineScaleSetVMRunCommandsBeginDeleteOptions struct { 8700 // placeholder for future optional parameters 8701} 8702 8703// VirtualMachineScaleSetVMRunCommandsBeginUpdateOptions contains the optional parameters for the VirtualMachineScaleSetVMRunCommands.BeginUpdate method. 8704type VirtualMachineScaleSetVMRunCommandsBeginUpdateOptions struct { 8705 // placeholder for future optional parameters 8706} 8707 8708// VirtualMachineScaleSetVMRunCommandsGetOptions contains the optional parameters for the VirtualMachineScaleSetVMRunCommands.Get method. 8709type VirtualMachineScaleSetVMRunCommandsGetOptions struct { 8710 // The expand expression to apply on the operation. 8711 Expand *string 8712} 8713 8714// VirtualMachineScaleSetVMRunCommandsListOptions contains the optional parameters for the VirtualMachineScaleSetVMRunCommands.List method. 8715type VirtualMachineScaleSetVMRunCommandsListOptions struct { 8716 // The expand expression to apply on the operation. 8717 Expand *string 8718} 8719 8720// VirtualMachineScaleSetVMSBeginDeallocateOptions contains the optional parameters for the VirtualMachineScaleSetVMS.BeginDeallocate method. 8721type VirtualMachineScaleSetVMSBeginDeallocateOptions struct { 8722 // placeholder for future optional parameters 8723} 8724 8725// VirtualMachineScaleSetVMSBeginDeleteOptions contains the optional parameters for the VirtualMachineScaleSetVMS.BeginDelete method. 8726type VirtualMachineScaleSetVMSBeginDeleteOptions struct { 8727 // placeholder for future optional parameters 8728} 8729 8730// VirtualMachineScaleSetVMSBeginPerformMaintenanceOptions contains the optional parameters for the VirtualMachineScaleSetVMS.BeginPerformMaintenance method. 8731type VirtualMachineScaleSetVMSBeginPerformMaintenanceOptions struct { 8732 // placeholder for future optional parameters 8733} 8734 8735// VirtualMachineScaleSetVMSBeginPowerOffOptions contains the optional parameters for the VirtualMachineScaleSetVMS.BeginPowerOff method. 8736type VirtualMachineScaleSetVMSBeginPowerOffOptions struct { 8737 // The parameter to request non-graceful VM shutdown. True value for this flag indicates non-graceful shutdown whereas false indicates otherwise. Default 8738 // value for this flag is false if not specified 8739 SkipShutdown *bool 8740} 8741 8742// VirtualMachineScaleSetVMSBeginRedeployOptions contains the optional parameters for the VirtualMachineScaleSetVMS.BeginRedeploy method. 8743type VirtualMachineScaleSetVMSBeginRedeployOptions struct { 8744 // placeholder for future optional parameters 8745} 8746 8747// VirtualMachineScaleSetVMSBeginReimageAllOptions contains the optional parameters for the VirtualMachineScaleSetVMS.BeginReimageAll method. 8748type VirtualMachineScaleSetVMSBeginReimageAllOptions struct { 8749 // placeholder for future optional parameters 8750} 8751 8752// VirtualMachineScaleSetVMSBeginReimageOptions contains the optional parameters for the VirtualMachineScaleSetVMS.BeginReimage method. 8753type VirtualMachineScaleSetVMSBeginReimageOptions struct { 8754 // Parameters for the Reimaging Virtual machine in ScaleSet. 8755 VMScaleSetVMReimageInput *VirtualMachineReimageParameters 8756} 8757 8758// VirtualMachineScaleSetVMSBeginRestartOptions contains the optional parameters for the VirtualMachineScaleSetVMS.BeginRestart method. 8759type VirtualMachineScaleSetVMSBeginRestartOptions struct { 8760 // placeholder for future optional parameters 8761} 8762 8763// VirtualMachineScaleSetVMSBeginRunCommandOptions contains the optional parameters for the VirtualMachineScaleSetVMS.BeginRunCommand method. 8764type VirtualMachineScaleSetVMSBeginRunCommandOptions struct { 8765 // placeholder for future optional parameters 8766} 8767 8768// VirtualMachineScaleSetVMSBeginStartOptions contains the optional parameters for the VirtualMachineScaleSetVMS.BeginStart method. 8769type VirtualMachineScaleSetVMSBeginStartOptions struct { 8770 // placeholder for future optional parameters 8771} 8772 8773// VirtualMachineScaleSetVMSBeginUpdateOptions contains the optional parameters for the VirtualMachineScaleSetVMS.BeginUpdate method. 8774type VirtualMachineScaleSetVMSBeginUpdateOptions struct { 8775 // placeholder for future optional parameters 8776} 8777 8778// VirtualMachineScaleSetVMSGetInstanceViewOptions contains the optional parameters for the VirtualMachineScaleSetVMS.GetInstanceView method. 8779type VirtualMachineScaleSetVMSGetInstanceViewOptions struct { 8780 // placeholder for future optional parameters 8781} 8782 8783// VirtualMachineScaleSetVMSGetOptions contains the optional parameters for the VirtualMachineScaleSetVMS.Get method. 8784type VirtualMachineScaleSetVMSGetOptions struct { 8785 // The expand expression to apply on the operation. 8786 Expand *string 8787} 8788 8789// VirtualMachineScaleSetVMSListOptions contains the optional parameters for the VirtualMachineScaleSetVMS.List method. 8790type VirtualMachineScaleSetVMSListOptions struct { 8791 // The expand expression to apply to the operation. Allowed values are 'instanceView'. 8792 Expand *string 8793 // The filter to apply to the operation. Allowed values are 'startswith(instanceView/statuses/code, 'PowerState') eq true', 'properties/latestModelApplied 8794 // eq true', 'properties/latestModelApplied eq false'. 8795 Filter *string 8796 // The list parameters. Allowed values are 'instanceView', 'instanceView/statuses'. 8797 SelectParameter *string 8798} 8799 8800// VirtualMachineScaleSetVMSRetrieveBootDiagnosticsDataOptions contains the optional parameters for the VirtualMachineScaleSetVMS.RetrieveBootDiagnosticsData 8801// method. 8802type VirtualMachineScaleSetVMSRetrieveBootDiagnosticsDataOptions struct { 8803 // Expiration duration in minutes for the SAS URIs with a value between 1 to 1440 minutes. <br><br>NOTE: If not specified, SAS URIs will be generated with 8804 // a default expiration duration of 120 minutes. 8805 SasUriExpirationTimeInMinutes *int32 8806} 8807 8808// VirtualMachineScaleSetVMSSimulateEvictionOptions contains the optional parameters for the VirtualMachineScaleSetVMS.SimulateEviction method. 8809type VirtualMachineScaleSetVMSSimulateEvictionOptions struct { 8810 // placeholder for future optional parameters 8811} 8812 8813// VirtualMachineScaleSetsBeginCreateOrUpdateOptions contains the optional parameters for the VirtualMachineScaleSets.BeginCreateOrUpdate method. 8814type VirtualMachineScaleSetsBeginCreateOrUpdateOptions struct { 8815 // placeholder for future optional parameters 8816} 8817 8818// VirtualMachineScaleSetsBeginDeallocateOptions contains the optional parameters for the VirtualMachineScaleSets.BeginDeallocate method. 8819type VirtualMachineScaleSetsBeginDeallocateOptions struct { 8820 // A list of virtual machine instance IDs from the VM scale set. 8821 VMInstanceIDs *VirtualMachineScaleSetVMInstanceIDs 8822} 8823 8824// VirtualMachineScaleSetsBeginDeleteInstancesOptions contains the optional parameters for the VirtualMachineScaleSets.BeginDeleteInstances method. 8825type VirtualMachineScaleSetsBeginDeleteInstancesOptions struct { 8826 // placeholder for future optional parameters 8827} 8828 8829// VirtualMachineScaleSetsBeginDeleteOptions contains the optional parameters for the VirtualMachineScaleSets.BeginDelete method. 8830type VirtualMachineScaleSetsBeginDeleteOptions struct { 8831 // placeholder for future optional parameters 8832} 8833 8834// VirtualMachineScaleSetsBeginPerformMaintenanceOptions contains the optional parameters for the VirtualMachineScaleSets.BeginPerformMaintenance method. 8835type VirtualMachineScaleSetsBeginPerformMaintenanceOptions struct { 8836 // A list of virtual machine instance IDs from the VM scale set. 8837 VMInstanceIDs *VirtualMachineScaleSetVMInstanceIDs 8838} 8839 8840// VirtualMachineScaleSetsBeginPowerOffOptions contains the optional parameters for the VirtualMachineScaleSets.BeginPowerOff method. 8841type VirtualMachineScaleSetsBeginPowerOffOptions struct { 8842 // The parameter to request non-graceful VM shutdown. True value for this flag indicates non-graceful shutdown whereas false indicates otherwise. Default 8843 // value for this flag is false if not specified 8844 SkipShutdown *bool 8845 // A list of virtual machine instance IDs from the VM scale set. 8846 VMInstanceIDs *VirtualMachineScaleSetVMInstanceIDs 8847} 8848 8849// VirtualMachineScaleSetsBeginRedeployOptions contains the optional parameters for the VirtualMachineScaleSets.BeginRedeploy method. 8850type VirtualMachineScaleSetsBeginRedeployOptions struct { 8851 // A list of virtual machine instance IDs from the VM scale set. 8852 VMInstanceIDs *VirtualMachineScaleSetVMInstanceIDs 8853} 8854 8855// VirtualMachineScaleSetsBeginReimageAllOptions contains the optional parameters for the VirtualMachineScaleSets.BeginReimageAll method. 8856type VirtualMachineScaleSetsBeginReimageAllOptions struct { 8857 // A list of virtual machine instance IDs from the VM scale set. 8858 VMInstanceIDs *VirtualMachineScaleSetVMInstanceIDs 8859} 8860 8861// VirtualMachineScaleSetsBeginReimageOptions contains the optional parameters for the VirtualMachineScaleSets.BeginReimage method. 8862type VirtualMachineScaleSetsBeginReimageOptions struct { 8863 // Parameters for Reimaging VM ScaleSet. 8864 VMScaleSetReimageInput *VirtualMachineScaleSetReimageParameters 8865} 8866 8867// VirtualMachineScaleSetsBeginRestartOptions contains the optional parameters for the VirtualMachineScaleSets.BeginRestart method. 8868type VirtualMachineScaleSetsBeginRestartOptions struct { 8869 // A list of virtual machine instance IDs from the VM scale set. 8870 VMInstanceIDs *VirtualMachineScaleSetVMInstanceIDs 8871} 8872 8873// VirtualMachineScaleSetsBeginSetOrchestrationServiceStateOptions contains the optional parameters for the VirtualMachineScaleSets.BeginSetOrchestrationServiceState 8874// method. 8875type VirtualMachineScaleSetsBeginSetOrchestrationServiceStateOptions struct { 8876 // placeholder for future optional parameters 8877} 8878 8879// VirtualMachineScaleSetsBeginStartOptions contains the optional parameters for the VirtualMachineScaleSets.BeginStart method. 8880type VirtualMachineScaleSetsBeginStartOptions struct { 8881 // A list of virtual machine instance IDs from the VM scale set. 8882 VMInstanceIDs *VirtualMachineScaleSetVMInstanceIDs 8883} 8884 8885// VirtualMachineScaleSetsBeginUpdateInstancesOptions contains the optional parameters for the VirtualMachineScaleSets.BeginUpdateInstances method. 8886type VirtualMachineScaleSetsBeginUpdateInstancesOptions struct { 8887 // placeholder for future optional parameters 8888} 8889 8890// VirtualMachineScaleSetsBeginUpdateOptions contains the optional parameters for the VirtualMachineScaleSets.BeginUpdate method. 8891type VirtualMachineScaleSetsBeginUpdateOptions struct { 8892 // placeholder for future optional parameters 8893} 8894 8895// VirtualMachineScaleSetsConvertToSinglePlacementGroupOptions contains the optional parameters for the VirtualMachineScaleSets.ConvertToSinglePlacementGroup 8896// method. 8897type VirtualMachineScaleSetsConvertToSinglePlacementGroupOptions struct { 8898 // placeholder for future optional parameters 8899} 8900 8901// VirtualMachineScaleSetsForceRecoveryServiceFabricPlatformUpdateDomainWalkOptions contains the optional parameters for the VirtualMachineScaleSets.ForceRecoveryServiceFabricPlatformUpdateDomainWalk 8902// method. 8903type VirtualMachineScaleSetsForceRecoveryServiceFabricPlatformUpdateDomainWalkOptions struct { 8904 // placeholder for future optional parameters 8905} 8906 8907// VirtualMachineScaleSetsGetInstanceViewOptions contains the optional parameters for the VirtualMachineScaleSets.GetInstanceView method. 8908type VirtualMachineScaleSetsGetInstanceViewOptions struct { 8909 // placeholder for future optional parameters 8910} 8911 8912// VirtualMachineScaleSetsGetOSUpgradeHistoryOptions contains the optional parameters for the VirtualMachineScaleSets.GetOSUpgradeHistory method. 8913type VirtualMachineScaleSetsGetOSUpgradeHistoryOptions struct { 8914 // placeholder for future optional parameters 8915} 8916 8917// VirtualMachineScaleSetsGetOptions contains the optional parameters for the VirtualMachineScaleSets.Get method. 8918type VirtualMachineScaleSetsGetOptions struct { 8919 // placeholder for future optional parameters 8920} 8921 8922// VirtualMachineScaleSetsListAllOptions contains the optional parameters for the VirtualMachineScaleSets.ListAll method. 8923type VirtualMachineScaleSetsListAllOptions struct { 8924 // placeholder for future optional parameters 8925} 8926 8927// VirtualMachineScaleSetsListOptions contains the optional parameters for the VirtualMachineScaleSets.List method. 8928type VirtualMachineScaleSetsListOptions struct { 8929 // placeholder for future optional parameters 8930} 8931 8932// VirtualMachineScaleSetsListSKUsOptions contains the optional parameters for the VirtualMachineScaleSets.ListSKUs method. 8933type VirtualMachineScaleSetsListSKUsOptions struct { 8934 // placeholder for future optional parameters 8935} 8936 8937// Describes the properties of a VM size. 8938type VirtualMachineSize struct { 8939 // The maximum number of data disks that can be attached to the virtual machine size. 8940 MaxDataDiskCount *int32 `json:"maxDataDiskCount,omitempty"` 8941 8942 // The amount of memory, in MB, supported by the virtual machine size. 8943 MemoryInMb *int32 `json:"memoryInMB,omitempty"` 8944 8945 // The name of the virtual machine size. 8946 Name *string `json:"name,omitempty"` 8947 8948 // The number of cores supported by the virtual machine size. 8949 NumberOfCores *int32 `json:"numberOfCores,omitempty"` 8950 8951 // The OS disk size, in MB, allowed by the virtual machine size. 8952 OSDiskSizeInMb *int32 `json:"osDiskSizeInMB,omitempty"` 8953 8954 // The resource disk size, in MB, allowed by the virtual machine size. 8955 ResourceDiskSizeInMb *int32 `json:"resourceDiskSizeInMB,omitempty"` 8956} 8957 8958// The List Virtual Machine operation response. 8959type VirtualMachineSizeListResult struct { 8960 // The list of virtual machine sizes. 8961 Value *[]VirtualMachineSize `json:"value,omitempty"` 8962} 8963 8964// VirtualMachineSizeListResultResponse is the response envelope for operations that return a VirtualMachineSizeListResult type. 8965type VirtualMachineSizeListResultResponse struct { 8966 // RawResponse contains the underlying HTTP response. 8967 RawResponse *http.Response 8968 8969 // The List Virtual Machine operation response. 8970 VirtualMachineSizeListResult *VirtualMachineSizeListResult 8971} 8972 8973// VirtualMachineSizesListOptions contains the optional parameters for the VirtualMachineSizes.List method. 8974type VirtualMachineSizesListOptions struct { 8975 // placeholder for future optional parameters 8976} 8977 8978// Describes the properties of a Virtual Machine software patch. 8979type VirtualMachineSoftwarePatchProperties struct { 8980 // READ-ONLY; The activity ID of the operation that produced this result. It is used to correlate across CRP and extension logs. 8981 ActivityID *string `json:"activityId,omitempty" azure:"ro"` 8982 8983 // READ-ONLY; Describes the outcome of an install operation for a given patch. 8984 AssessmentState *PatchAssessmentState `json:"assessmentState,omitempty" azure:"ro"` 8985 8986 // READ-ONLY; The classification(s) of the patch as provided by the patch publisher. 8987 Classifications *[]string `json:"classifications,omitempty" azure:"ro"` 8988 8989 // READ-ONLY; The KBID of the patch. Only applies to Windows patches. 8990 Kbid *string `json:"kbid,omitempty" azure:"ro"` 8991 8992 // READ-ONLY; The UTC timestamp of the last update to this patch record. 8993 LastModifiedDateTime *time.Time `json:"lastModifiedDateTime,omitempty" azure:"ro"` 8994 8995 // READ-ONLY; The friendly name of the patch. 8996 Name *string `json:"name,omitempty" azure:"ro"` 8997 8998 // READ-ONLY; A unique identifier for the patch. 8999 PatchID *string `json:"patchId,omitempty" azure:"ro"` 9000 9001 // READ-ONLY; The UTC timestamp when the repository published this patch. 9002 PublishedDate *time.Time `json:"publishedDate,omitempty" azure:"ro"` 9003 9004 // READ-ONLY; Describes the reboot requirements of the patch. 9005 RebootBehavior *SoftwareUpdateRebootBehavior `json:"rebootBehavior,omitempty" azure:"ro"` 9006 9007 // READ-ONLY; The version number of the patch. This property applies only to Linux patches. 9008 Version *string `json:"version,omitempty" azure:"ro"` 9009} 9010 9011// MarshalJSON implements the json.Marshaller interface for type VirtualMachineSoftwarePatchProperties. 9012func (v VirtualMachineSoftwarePatchProperties) MarshalJSON() ([]byte, error) { 9013 objectMap := make(map[string]interface{}) 9014 if v.ActivityID != nil { 9015 objectMap["activityId"] = v.ActivityID 9016 } 9017 if v.AssessmentState != nil { 9018 objectMap["assessmentState"] = v.AssessmentState 9019 } 9020 if v.Classifications != nil { 9021 objectMap["classifications"] = v.Classifications 9022 } 9023 if v.Kbid != nil { 9024 objectMap["kbid"] = v.Kbid 9025 } 9026 if v.LastModifiedDateTime != nil { 9027 objectMap["lastModifiedDateTime"] = (*timeRFC3339)(v.LastModifiedDateTime) 9028 } 9029 if v.Name != nil { 9030 objectMap["name"] = v.Name 9031 } 9032 if v.PatchID != nil { 9033 objectMap["patchId"] = v.PatchID 9034 } 9035 if v.PublishedDate != nil { 9036 objectMap["publishedDate"] = (*timeRFC3339)(v.PublishedDate) 9037 } 9038 if v.RebootBehavior != nil { 9039 objectMap["rebootBehavior"] = v.RebootBehavior 9040 } 9041 if v.Version != nil { 9042 objectMap["version"] = v.Version 9043 } 9044 return json.Marshal(objectMap) 9045} 9046 9047// UnmarshalJSON implements the json.Unmarshaller interface for type VirtualMachineSoftwarePatchProperties. 9048func (v *VirtualMachineSoftwarePatchProperties) UnmarshalJSON(data []byte) error { 9049 var rawMsg map[string]*json.RawMessage 9050 if err := json.Unmarshal(data, &rawMsg); err != nil { 9051 return err 9052 } 9053 for key, val := range rawMsg { 9054 var err error 9055 switch key { 9056 case "activityId": 9057 if val != nil { 9058 err = json.Unmarshal(*val, &v.ActivityID) 9059 } 9060 delete(rawMsg, key) 9061 case "assessmentState": 9062 if val != nil { 9063 err = json.Unmarshal(*val, &v.AssessmentState) 9064 } 9065 delete(rawMsg, key) 9066 case "classifications": 9067 if val != nil { 9068 err = json.Unmarshal(*val, &v.Classifications) 9069 } 9070 delete(rawMsg, key) 9071 case "kbid": 9072 if val != nil { 9073 err = json.Unmarshal(*val, &v.Kbid) 9074 } 9075 delete(rawMsg, key) 9076 case "lastModifiedDateTime": 9077 if val != nil { 9078 var aux timeRFC3339 9079 err = json.Unmarshal(*val, &aux) 9080 v.LastModifiedDateTime = (*time.Time)(&aux) 9081 } 9082 delete(rawMsg, key) 9083 case "name": 9084 if val != nil { 9085 err = json.Unmarshal(*val, &v.Name) 9086 } 9087 delete(rawMsg, key) 9088 case "patchId": 9089 if val != nil { 9090 err = json.Unmarshal(*val, &v.PatchID) 9091 } 9092 delete(rawMsg, key) 9093 case "publishedDate": 9094 if val != nil { 9095 var aux timeRFC3339 9096 err = json.Unmarshal(*val, &aux) 9097 v.PublishedDate = (*time.Time)(&aux) 9098 } 9099 delete(rawMsg, key) 9100 case "rebootBehavior": 9101 if val != nil { 9102 err = json.Unmarshal(*val, &v.RebootBehavior) 9103 } 9104 delete(rawMsg, key) 9105 case "version": 9106 if val != nil { 9107 err = json.Unmarshal(*val, &v.Version) 9108 } 9109 delete(rawMsg, key) 9110 } 9111 if err != nil { 9112 return err 9113 } 9114 } 9115 return nil 9116} 9117 9118// The status code and count of the virtual machine scale set instance view status summary. 9119type VirtualMachineStatusCodeCount struct { 9120 // READ-ONLY; The instance view status code. 9121 Code *string `json:"code,omitempty" azure:"ro"` 9122 9123 // READ-ONLY; The number of instances having a particular status code. 9124 Count *int32 `json:"count,omitempty" azure:"ro"` 9125} 9126 9127// Describes a Virtual Machine Update. 9128type VirtualMachineUpdate struct { 9129 UpdateResource 9130 // The identity of the virtual machine, if configured. 9131 IDentity *VirtualMachineIDentity `json:"identity,omitempty"` 9132 9133 // Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can 9134 // use a marketplace image from an API, you must 9135 // 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, 9136 // Get Started ->. Enter any required 9137 // information and then click Save. 9138 Plan *Plan `json:"plan,omitempty"` 9139 9140 // Describes the properties of a Virtual Machine. 9141 Properties *VirtualMachineProperties `json:"properties,omitempty"` 9142 9143 // The virtual machine zones. 9144 Zones *[]string `json:"zones,omitempty"` 9145} 9146 9147// VirtualMachinesBeginAssessPatchesOptions contains the optional parameters for the VirtualMachines.BeginAssessPatches method. 9148type VirtualMachinesBeginAssessPatchesOptions struct { 9149 // placeholder for future optional parameters 9150} 9151 9152// VirtualMachinesBeginCaptureOptions contains the optional parameters for the VirtualMachines.BeginCapture method. 9153type VirtualMachinesBeginCaptureOptions struct { 9154 // placeholder for future optional parameters 9155} 9156 9157// VirtualMachinesBeginConvertToManagedDisksOptions contains the optional parameters for the VirtualMachines.BeginConvertToManagedDisks method. 9158type VirtualMachinesBeginConvertToManagedDisksOptions struct { 9159 // placeholder for future optional parameters 9160} 9161 9162// VirtualMachinesBeginCreateOrUpdateOptions contains the optional parameters for the VirtualMachines.BeginCreateOrUpdate method. 9163type VirtualMachinesBeginCreateOrUpdateOptions struct { 9164 // placeholder for future optional parameters 9165} 9166 9167// VirtualMachinesBeginDeallocateOptions contains the optional parameters for the VirtualMachines.BeginDeallocate method. 9168type VirtualMachinesBeginDeallocateOptions struct { 9169 // placeholder for future optional parameters 9170} 9171 9172// VirtualMachinesBeginDeleteOptions contains the optional parameters for the VirtualMachines.BeginDelete method. 9173type VirtualMachinesBeginDeleteOptions struct { 9174 // Optional parameter to force delete virtual machines.(Feature in Preview) 9175 ForceDeletion *bool 9176} 9177 9178// VirtualMachinesBeginPerformMaintenanceOptions contains the optional parameters for the VirtualMachines.BeginPerformMaintenance method. 9179type VirtualMachinesBeginPerformMaintenanceOptions struct { 9180 // placeholder for future optional parameters 9181} 9182 9183// VirtualMachinesBeginPowerOffOptions contains the optional parameters for the VirtualMachines.BeginPowerOff method. 9184type VirtualMachinesBeginPowerOffOptions struct { 9185 // The parameter to request non-graceful VM shutdown. True value for this flag indicates non-graceful shutdown whereas false indicates otherwise. Default 9186 // value for this flag is false if not specified 9187 SkipShutdown *bool 9188} 9189 9190// VirtualMachinesBeginReapplyOptions contains the optional parameters for the VirtualMachines.BeginReapply method. 9191type VirtualMachinesBeginReapplyOptions struct { 9192 // placeholder for future optional parameters 9193} 9194 9195// VirtualMachinesBeginRedeployOptions contains the optional parameters for the VirtualMachines.BeginRedeploy method. 9196type VirtualMachinesBeginRedeployOptions struct { 9197 // placeholder for future optional parameters 9198} 9199 9200// VirtualMachinesBeginReimageOptions contains the optional parameters for the VirtualMachines.BeginReimage method. 9201type VirtualMachinesBeginReimageOptions struct { 9202 // Parameters supplied to the Reimage Virtual Machine operation. 9203 Parameters *VirtualMachineReimageParameters 9204} 9205 9206// VirtualMachinesBeginRestartOptions contains the optional parameters for the VirtualMachines.BeginRestart method. 9207type VirtualMachinesBeginRestartOptions struct { 9208 // placeholder for future optional parameters 9209} 9210 9211// VirtualMachinesBeginRunCommandOptions contains the optional parameters for the VirtualMachines.BeginRunCommand method. 9212type VirtualMachinesBeginRunCommandOptions struct { 9213 // placeholder for future optional parameters 9214} 9215 9216// VirtualMachinesBeginStartOptions contains the optional parameters for the VirtualMachines.BeginStart method. 9217type VirtualMachinesBeginStartOptions struct { 9218 // placeholder for future optional parameters 9219} 9220 9221// VirtualMachinesBeginUpdateOptions contains the optional parameters for the VirtualMachines.BeginUpdate method. 9222type VirtualMachinesBeginUpdateOptions struct { 9223 // placeholder for future optional parameters 9224} 9225 9226// VirtualMachinesGeneralizeOptions contains the optional parameters for the VirtualMachines.Generalize method. 9227type VirtualMachinesGeneralizeOptions struct { 9228 // placeholder for future optional parameters 9229} 9230 9231// VirtualMachinesGetOptions contains the optional parameters for the VirtualMachines.Get method. 9232type VirtualMachinesGetOptions struct { 9233 // The expand expression to apply on the operation. 9234 Expand *string 9235} 9236 9237// VirtualMachinesInstanceViewOptions contains the optional parameters for the VirtualMachines.InstanceView method. 9238type VirtualMachinesInstanceViewOptions struct { 9239 // placeholder for future optional parameters 9240} 9241 9242// VirtualMachinesListAllOptions contains the optional parameters for the VirtualMachines.ListAll method. 9243type VirtualMachinesListAllOptions struct { 9244 // statusOnly=true enables fetching run time status of all Virtual Machines in the subscription. 9245 StatusOnly *string 9246} 9247 9248// VirtualMachinesListAvailableSizesOptions contains the optional parameters for the VirtualMachines.ListAvailableSizes method. 9249type VirtualMachinesListAvailableSizesOptions struct { 9250 // placeholder for future optional parameters 9251} 9252 9253// VirtualMachinesListByLocationOptions contains the optional parameters for the VirtualMachines.ListByLocation method. 9254type VirtualMachinesListByLocationOptions struct { 9255 // placeholder for future optional parameters 9256} 9257 9258// VirtualMachinesListOptions contains the optional parameters for the VirtualMachines.List method. 9259type VirtualMachinesListOptions struct { 9260 // placeholder for future optional parameters 9261} 9262 9263// VirtualMachinesRetrieveBootDiagnosticsDataOptions contains the optional parameters for the VirtualMachines.RetrieveBootDiagnosticsData method. 9264type VirtualMachinesRetrieveBootDiagnosticsDataOptions struct { 9265 // Expiration duration in minutes for the SAS URIs with a value between 1 to 1440 minutes. <br><br>NOTE: If not specified, SAS URIs will be generated with 9266 // a default expiration duration of 120 minutes. 9267 SasUriExpirationTimeInMinutes *int32 9268} 9269 9270// VirtualMachinesSimulateEvictionOptions contains the optional parameters for the VirtualMachines.SimulateEviction method. 9271type VirtualMachinesSimulateEvictionOptions struct { 9272 // placeholder for future optional parameters 9273} 9274 9275// Describes Windows Remote Management configuration of the VM 9276type WinRmConfiguration struct { 9277 // The list of Windows Remote Management listeners 9278 Listeners *[]WinRmListener `json:"listeners,omitempty"` 9279} 9280 9281// Describes Protocol and thumbprint of Windows Remote Management listener 9282type WinRmListener struct { 9283 // 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 9284 // key vault 9285 // [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 9286 // following JSON Object which is encoded in UTF-8: 9287 // { 9288 // "data":"", 9289 // "dataType":"pfx", 9290 // "password":"" 9291 // } 9292 CertificateURL *string `json:"certificateUrl,omitempty"` 9293 9294 // Specifies the protocol of WinRM listener. 9295 // Possible values are: 9296 // http 9297 // https 9298 Protocol *ProtocolTypes `json:"protocol,omitempty"` 9299} 9300 9301// Specifies Windows operating system settings on the virtual machine. 9302type WindowsConfiguration struct { 9303 // Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup. 9304 AdditionalUnattendContent *[]AdditionalUnattendContent `json:"additionalUnattendContent,omitempty"` 9305 9306 // Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. 9307 // For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning. 9308 EnableAutomaticUpdates *bool `json:"enableAutomaticUpdates,omitempty"` 9309 9310 // Specifies settings related to in-guest patching (KBs). 9311 PatchSettings *PatchSettings `json:"patchSettings,omitempty"` 9312 9313 // Indicates whether virtual machine agent should be provisioned on the virtual machine. 9314 // 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 9315 // so that extensions can be added to the VM later. 9316 ProvisionVMAgent *bool `json:"provisionVMAgent,omitempty"` 9317 9318 // Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". 9319 // Possible values can be TimeZoneInfo.Id [https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id] value from time zones 9320 // returned by TimeZoneInfo.GetSystemTimeZones 9321 // [https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.getsystemtimezones]. 9322 TimeZone *string `json:"timeZone,omitempty"` 9323 9324 // Specifies the Windows Remote Management listeners. This enables remote Windows PowerShell. 9325 WinRm *WinRmConfiguration `json:"winRM,omitempty"` 9326} 9327