1# coding=utf-8 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# -------------------------------------------------------------------------- 8 9import datetime 10from typing import Any, Dict, List, Optional, Union 11 12import msrest.serialization 13 14from ._compute_management_client_enums import * 15 16 17class AdditionalCapabilities(msrest.serialization.Model): 18 """Enables or disables a capability on the virtual machine or virtual machine scale set. 19 20 :param ultra_ssd_enabled: The flag that enables or disables a capability to have one or more 21 managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with 22 storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale 23 set only if this property is enabled. 24 :type ultra_ssd_enabled: bool 25 """ 26 27 _attribute_map = { 28 'ultra_ssd_enabled': {'key': 'ultraSSDEnabled', 'type': 'bool'}, 29 } 30 31 def __init__( 32 self, 33 *, 34 ultra_ssd_enabled: Optional[bool] = None, 35 **kwargs 36 ): 37 super(AdditionalCapabilities, self).__init__(**kwargs) 38 self.ultra_ssd_enabled = ultra_ssd_enabled 39 40 41class AdditionalUnattendContent(msrest.serialization.Model): 42 """Specifies additional XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup. Contents are defined by setting name, component name, and the pass in which the content is applied. 43 44 :param pass_name: The pass name. Currently, the only allowable value is OobeSystem. The only 45 acceptable values to pass in are None and "OobeSystem". The default value is None. 46 :type pass_name: str 47 :param component_name: The component name. Currently, the only allowable value is 48 Microsoft-Windows-Shell-Setup. The only acceptable values to pass in are None and 49 "Microsoft-Windows-Shell-Setup". The default value is None. 50 :type component_name: str 51 :param setting_name: Specifies the name of the setting to which the content applies. Possible 52 values are: FirstLogonCommands and AutoLogon. Possible values include: "AutoLogon", 53 "FirstLogonCommands". 54 :type setting_name: str or ~azure.mgmt.compute.v2018_10_01.models.SettingNames 55 :param content: Specifies the XML formatted content that is added to the unattend.xml file for 56 the specified path and component. The XML must be less than 4KB and must include the root 57 element for the setting or feature that is being inserted. 58 :type content: str 59 """ 60 61 _attribute_map = { 62 'pass_name': {'key': 'passName', 'type': 'str'}, 63 'component_name': {'key': 'componentName', 'type': 'str'}, 64 'setting_name': {'key': 'settingName', 'type': 'str'}, 65 'content': {'key': 'content', 'type': 'str'}, 66 } 67 68 def __init__( 69 self, 70 *, 71 pass_name: Optional[str] = None, 72 component_name: Optional[str] = None, 73 setting_name: Optional[Union[str, "SettingNames"]] = None, 74 content: Optional[str] = None, 75 **kwargs 76 ): 77 super(AdditionalUnattendContent, self).__init__(**kwargs) 78 self.pass_name = pass_name 79 self.component_name = component_name 80 self.setting_name = setting_name 81 self.content = content 82 83 84class ApiEntityReference(msrest.serialization.Model): 85 """The API entity reference. 86 87 :param id: The ARM resource id in the form of 88 /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/... 89 :type id: str 90 """ 91 92 _attribute_map = { 93 'id': {'key': 'id', 'type': 'str'}, 94 } 95 96 def __init__( 97 self, 98 *, 99 id: Optional[str] = None, 100 **kwargs 101 ): 102 super(ApiEntityReference, self).__init__(**kwargs) 103 self.id = id 104 105 106class ApiError(msrest.serialization.Model): 107 """Api error. 108 109 :param details: The Api error details. 110 :type details: list[~azure.mgmt.compute.v2018_10_01.models.ApiErrorBase] 111 :param innererror: The Api inner error. 112 :type innererror: ~azure.mgmt.compute.v2018_10_01.models.InnerError 113 :param code: The error code. 114 :type code: str 115 :param target: The target of the particular error. 116 :type target: str 117 :param message: The error message. 118 :type message: str 119 """ 120 121 _attribute_map = { 122 'details': {'key': 'details', 'type': '[ApiErrorBase]'}, 123 'innererror': {'key': 'innererror', 'type': 'InnerError'}, 124 'code': {'key': 'code', 'type': 'str'}, 125 'target': {'key': 'target', 'type': 'str'}, 126 'message': {'key': 'message', 'type': 'str'}, 127 } 128 129 def __init__( 130 self, 131 *, 132 details: Optional[List["ApiErrorBase"]] = None, 133 innererror: Optional["InnerError"] = None, 134 code: Optional[str] = None, 135 target: Optional[str] = None, 136 message: Optional[str] = None, 137 **kwargs 138 ): 139 super(ApiError, self).__init__(**kwargs) 140 self.details = details 141 self.innererror = innererror 142 self.code = code 143 self.target = target 144 self.message = message 145 146 147class ApiErrorBase(msrest.serialization.Model): 148 """Api error base. 149 150 :param code: The error code. 151 :type code: str 152 :param target: The target of the particular error. 153 :type target: str 154 :param message: The error message. 155 :type message: str 156 """ 157 158 _attribute_map = { 159 'code': {'key': 'code', 'type': 'str'}, 160 'target': {'key': 'target', 'type': 'str'}, 161 'message': {'key': 'message', 'type': 'str'}, 162 } 163 164 def __init__( 165 self, 166 *, 167 code: Optional[str] = None, 168 target: Optional[str] = None, 169 message: Optional[str] = None, 170 **kwargs 171 ): 172 super(ApiErrorBase, self).__init__(**kwargs) 173 self.code = code 174 self.target = target 175 self.message = message 176 177 178class AutomaticOSUpgradePolicy(msrest.serialization.Model): 179 """The configuration parameters used for performing automatic OS upgrade. 180 181 :param enable_automatic_os_upgrade: Indicates whether OS upgrades should automatically be 182 applied to scale set instances in a rolling fashion when a newer version of the OS image 183 becomes available. Default value is false. If this is set to true for Windows based scale sets, 184 recommendation is to set `enableAutomaticUpdates 185 <https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet>`_ 186 to false. 187 :type enable_automatic_os_upgrade: bool 188 :param disable_automatic_rollback: Whether OS image rollback feature should be disabled. 189 Default value is false. 190 :type disable_automatic_rollback: bool 191 """ 192 193 _attribute_map = { 194 'enable_automatic_os_upgrade': {'key': 'enableAutomaticOSUpgrade', 'type': 'bool'}, 195 'disable_automatic_rollback': {'key': 'disableAutomaticRollback', 'type': 'bool'}, 196 } 197 198 def __init__( 199 self, 200 *, 201 enable_automatic_os_upgrade: Optional[bool] = None, 202 disable_automatic_rollback: Optional[bool] = None, 203 **kwargs 204 ): 205 super(AutomaticOSUpgradePolicy, self).__init__(**kwargs) 206 self.enable_automatic_os_upgrade = enable_automatic_os_upgrade 207 self.disable_automatic_rollback = disable_automatic_rollback 208 209 210class AutomaticOSUpgradeProperties(msrest.serialization.Model): 211 """Describes automatic OS upgrade properties on the image. 212 213 All required parameters must be populated in order to send to Azure. 214 215 :param automatic_os_upgrade_supported: Required. Specifies whether automatic OS upgrade is 216 supported on the image. 217 :type automatic_os_upgrade_supported: bool 218 """ 219 220 _validation = { 221 'automatic_os_upgrade_supported': {'required': True}, 222 } 223 224 _attribute_map = { 225 'automatic_os_upgrade_supported': {'key': 'automaticOSUpgradeSupported', 'type': 'bool'}, 226 } 227 228 def __init__( 229 self, 230 *, 231 automatic_os_upgrade_supported: bool, 232 **kwargs 233 ): 234 super(AutomaticOSUpgradeProperties, self).__init__(**kwargs) 235 self.automatic_os_upgrade_supported = automatic_os_upgrade_supported 236 237 238class AutomaticRepairsPolicy(msrest.serialization.Model): 239 """Specifies the configuration parameters for automatic repairs on the virtual machine scale set. 240 241 :param enabled: Specifies whether automatic repairs should be enabled on the virtual machine 242 scale set. The default value is false. 243 :type enabled: bool 244 :param grace_period: The amount of time for which automatic repairs are suspended due to a 245 state change on VM. The grace time starts after the state change has completed. This helps 246 avoid premature or accidental repairs. The time duration should be specified in ISO 8601 247 format. The minimum allowed grace period is 30 minutes (PT30M), which is also the default 248 value. The maximum allowed grace period is 90 minutes (PT90M). 249 :type grace_period: str 250 """ 251 252 _attribute_map = { 253 'enabled': {'key': 'enabled', 'type': 'bool'}, 254 'grace_period': {'key': 'gracePeriod', 'type': 'str'}, 255 } 256 257 def __init__( 258 self, 259 *, 260 enabled: Optional[bool] = None, 261 grace_period: Optional[str] = None, 262 **kwargs 263 ): 264 super(AutomaticRepairsPolicy, self).__init__(**kwargs) 265 self.enabled = enabled 266 self.grace_period = grace_period 267 268 269class Resource(msrest.serialization.Model): 270 """The Resource model definition. 271 272 Variables are only populated by the server, and will be ignored when sending a request. 273 274 All required parameters must be populated in order to send to Azure. 275 276 :ivar id: Resource Id. 277 :vartype id: str 278 :ivar name: Resource name. 279 :vartype name: str 280 :ivar type: Resource type. 281 :vartype type: str 282 :param location: Required. Resource location. 283 :type location: str 284 :param tags: A set of tags. Resource tags. 285 :type tags: dict[str, str] 286 """ 287 288 _validation = { 289 'id': {'readonly': True}, 290 'name': {'readonly': True}, 291 'type': {'readonly': True}, 292 'location': {'required': True}, 293 } 294 295 _attribute_map = { 296 'id': {'key': 'id', 'type': 'str'}, 297 'name': {'key': 'name', 'type': 'str'}, 298 'type': {'key': 'type', 'type': 'str'}, 299 'location': {'key': 'location', 'type': 'str'}, 300 'tags': {'key': 'tags', 'type': '{str}'}, 301 } 302 303 def __init__( 304 self, 305 *, 306 location: str, 307 tags: Optional[Dict[str, str]] = None, 308 **kwargs 309 ): 310 super(Resource, self).__init__(**kwargs) 311 self.id = None 312 self.name = None 313 self.type = None 314 self.location = location 315 self.tags = tags 316 317 318class AvailabilitySet(Resource): 319 """Specifies information about the availability set that the virtual machine should be assigned to. Virtual machines specified in the same availability set are allocated to different nodes to maximize availability. For more information about availability sets, see `Manage the availability of virtual machines <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. :code:`<br>`:code:`<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>`_ :code:`<br>`:code:`<br>` Currently, a VM can only be added to availability set at creation time. An existing VM cannot be added to an availability set. 320 321 Variables are only populated by the server, and will be ignored when sending a request. 322 323 All required parameters must be populated in order to send to Azure. 324 325 :ivar id: Resource Id. 326 :vartype id: str 327 :ivar name: Resource name. 328 :vartype name: str 329 :ivar type: Resource type. 330 :vartype type: str 331 :param location: Required. Resource location. 332 :type location: str 333 :param tags: A set of tags. Resource tags. 334 :type tags: dict[str, str] 335 :param sku: Sku of the availability set, only name is required to be set. See 336 AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with 337 managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 338 'Classic'. 339 :type sku: ~azure.mgmt.compute.v2018_10_01.models.Sku 340 :param platform_update_domain_count: Update Domain count. 341 :type platform_update_domain_count: int 342 :param platform_fault_domain_count: Fault Domain count. 343 :type platform_fault_domain_count: int 344 :param virtual_machines: A list of references to all virtual machines in the availability set. 345 :type virtual_machines: list[~azure.mgmt.compute.v2018_10_01.models.SubResource] 346 :param proximity_placement_group: Specifies information about the proximity placement group 347 that the availability set should be assigned to. :code:`<br>`:code:`<br>`Minimum api-version: 348 2018-04-01. 349 :type proximity_placement_group: ~azure.mgmt.compute.v2018_10_01.models.SubResource 350 :ivar statuses: The resource status information. 351 :vartype statuses: list[~azure.mgmt.compute.v2018_10_01.models.InstanceViewStatus] 352 """ 353 354 _validation = { 355 'id': {'readonly': True}, 356 'name': {'readonly': True}, 357 'type': {'readonly': True}, 358 'location': {'required': True}, 359 'statuses': {'readonly': True}, 360 } 361 362 _attribute_map = { 363 'id': {'key': 'id', 'type': 'str'}, 364 'name': {'key': 'name', 'type': 'str'}, 365 'type': {'key': 'type', 'type': 'str'}, 366 'location': {'key': 'location', 'type': 'str'}, 367 'tags': {'key': 'tags', 'type': '{str}'}, 368 'sku': {'key': 'sku', 'type': 'Sku'}, 369 'platform_update_domain_count': {'key': 'properties.platformUpdateDomainCount', 'type': 'int'}, 370 'platform_fault_domain_count': {'key': 'properties.platformFaultDomainCount', 'type': 'int'}, 371 'virtual_machines': {'key': 'properties.virtualMachines', 'type': '[SubResource]'}, 372 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, 373 'statuses': {'key': 'properties.statuses', 'type': '[InstanceViewStatus]'}, 374 } 375 376 def __init__( 377 self, 378 *, 379 location: str, 380 tags: Optional[Dict[str, str]] = None, 381 sku: Optional["Sku"] = None, 382 platform_update_domain_count: Optional[int] = None, 383 platform_fault_domain_count: Optional[int] = None, 384 virtual_machines: Optional[List["SubResource"]] = None, 385 proximity_placement_group: Optional["SubResource"] = None, 386 **kwargs 387 ): 388 super(AvailabilitySet, self).__init__(location=location, tags=tags, **kwargs) 389 self.sku = sku 390 self.platform_update_domain_count = platform_update_domain_count 391 self.platform_fault_domain_count = platform_fault_domain_count 392 self.virtual_machines = virtual_machines 393 self.proximity_placement_group = proximity_placement_group 394 self.statuses = None 395 396 397class AvailabilitySetListResult(msrest.serialization.Model): 398 """The List Availability Set operation response. 399 400 All required parameters must be populated in order to send to Azure. 401 402 :param value: Required. The list of availability sets. 403 :type value: list[~azure.mgmt.compute.v2018_10_01.models.AvailabilitySet] 404 :param next_link: The URI to fetch the next page of AvailabilitySets. Call ListNext() with this 405 URI to fetch the next page of AvailabilitySets. 406 :type next_link: str 407 """ 408 409 _validation = { 410 'value': {'required': True}, 411 } 412 413 _attribute_map = { 414 'value': {'key': 'value', 'type': '[AvailabilitySet]'}, 415 'next_link': {'key': 'nextLink', 'type': 'str'}, 416 } 417 418 def __init__( 419 self, 420 *, 421 value: List["AvailabilitySet"], 422 next_link: Optional[str] = None, 423 **kwargs 424 ): 425 super(AvailabilitySetListResult, self).__init__(**kwargs) 426 self.value = value 427 self.next_link = next_link 428 429 430class UpdateResource(msrest.serialization.Model): 431 """The Update Resource model definition. 432 433 :param tags: A set of tags. Resource tags. 434 :type tags: dict[str, str] 435 """ 436 437 _attribute_map = { 438 'tags': {'key': 'tags', 'type': '{str}'}, 439 } 440 441 def __init__( 442 self, 443 *, 444 tags: Optional[Dict[str, str]] = None, 445 **kwargs 446 ): 447 super(UpdateResource, self).__init__(**kwargs) 448 self.tags = tags 449 450 451class AvailabilitySetUpdate(UpdateResource): 452 """Specifies information about the availability set that the virtual machine should be assigned to. Only tags may be updated. 453 454 Variables are only populated by the server, and will be ignored when sending a request. 455 456 :param tags: A set of tags. Resource tags. 457 :type tags: dict[str, str] 458 :param sku: Sku of the availability set. 459 :type sku: ~azure.mgmt.compute.v2018_10_01.models.Sku 460 :param platform_update_domain_count: Update Domain count. 461 :type platform_update_domain_count: int 462 :param platform_fault_domain_count: Fault Domain count. 463 :type platform_fault_domain_count: int 464 :param virtual_machines: A list of references to all virtual machines in the availability set. 465 :type virtual_machines: list[~azure.mgmt.compute.v2018_10_01.models.SubResource] 466 :param proximity_placement_group: Specifies information about the proximity placement group 467 that the availability set should be assigned to. :code:`<br>`:code:`<br>`Minimum api-version: 468 2018-04-01. 469 :type proximity_placement_group: ~azure.mgmt.compute.v2018_10_01.models.SubResource 470 :ivar statuses: The resource status information. 471 :vartype statuses: list[~azure.mgmt.compute.v2018_10_01.models.InstanceViewStatus] 472 """ 473 474 _validation = { 475 'statuses': {'readonly': True}, 476 } 477 478 _attribute_map = { 479 'tags': {'key': 'tags', 'type': '{str}'}, 480 'sku': {'key': 'sku', 'type': 'Sku'}, 481 'platform_update_domain_count': {'key': 'properties.platformUpdateDomainCount', 'type': 'int'}, 482 'platform_fault_domain_count': {'key': 'properties.platformFaultDomainCount', 'type': 'int'}, 483 'virtual_machines': {'key': 'properties.virtualMachines', 'type': '[SubResource]'}, 484 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, 485 'statuses': {'key': 'properties.statuses', 'type': '[InstanceViewStatus]'}, 486 } 487 488 def __init__( 489 self, 490 *, 491 tags: Optional[Dict[str, str]] = None, 492 sku: Optional["Sku"] = None, 493 platform_update_domain_count: Optional[int] = None, 494 platform_fault_domain_count: Optional[int] = None, 495 virtual_machines: Optional[List["SubResource"]] = None, 496 proximity_placement_group: Optional["SubResource"] = None, 497 **kwargs 498 ): 499 super(AvailabilitySetUpdate, self).__init__(tags=tags, **kwargs) 500 self.sku = sku 501 self.platform_update_domain_count = platform_update_domain_count 502 self.platform_fault_domain_count = platform_fault_domain_count 503 self.virtual_machines = virtual_machines 504 self.proximity_placement_group = proximity_placement_group 505 self.statuses = None 506 507 508class BootDiagnostics(msrest.serialization.Model): 509 """Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. :code:`<br>`:code:`<br>` You can easily view the output of your console log. :code:`<br>`:code:`<br>` Azure also enables you to see a screenshot of the VM from the hypervisor. 510 511 :param enabled: Whether boot diagnostics should be enabled on the Virtual Machine. 512 :type enabled: bool 513 :param storage_uri: Uri of the storage account to use for placing the console output and 514 screenshot. 515 :type storage_uri: str 516 """ 517 518 _attribute_map = { 519 'enabled': {'key': 'enabled', 'type': 'bool'}, 520 'storage_uri': {'key': 'storageUri', 'type': 'str'}, 521 } 522 523 def __init__( 524 self, 525 *, 526 enabled: Optional[bool] = None, 527 storage_uri: Optional[str] = None, 528 **kwargs 529 ): 530 super(BootDiagnostics, self).__init__(**kwargs) 531 self.enabled = enabled 532 self.storage_uri = storage_uri 533 534 535class BootDiagnosticsInstanceView(msrest.serialization.Model): 536 """The instance view of a virtual machine boot diagnostics. 537 538 Variables are only populated by the server, and will be ignored when sending a request. 539 540 :ivar console_screenshot_blob_uri: The console screenshot blob URI. 541 :vartype console_screenshot_blob_uri: str 542 :ivar serial_console_log_blob_uri: The Linux serial console log blob Uri. 543 :vartype serial_console_log_blob_uri: str 544 :ivar status: The boot diagnostics status information for the VM. :code:`<br>`:code:`<br>` 545 NOTE: It will be set only if there are errors encountered in enabling boot diagnostics. 546 :vartype status: ~azure.mgmt.compute.v2018_10_01.models.InstanceViewStatus 547 """ 548 549 _validation = { 550 'console_screenshot_blob_uri': {'readonly': True}, 551 'serial_console_log_blob_uri': {'readonly': True}, 552 'status': {'readonly': True}, 553 } 554 555 _attribute_map = { 556 'console_screenshot_blob_uri': {'key': 'consoleScreenshotBlobUri', 'type': 'str'}, 557 'serial_console_log_blob_uri': {'key': 'serialConsoleLogBlobUri', 'type': 'str'}, 558 'status': {'key': 'status', 'type': 'InstanceViewStatus'}, 559 } 560 561 def __init__( 562 self, 563 **kwargs 564 ): 565 super(BootDiagnosticsInstanceView, self).__init__(**kwargs) 566 self.console_screenshot_blob_uri = None 567 self.serial_console_log_blob_uri = None 568 self.status = None 569 570 571class ComputeOperationListResult(msrest.serialization.Model): 572 """The List Compute Operation operation response. 573 574 Variables are only populated by the server, and will be ignored when sending a request. 575 576 :ivar value: The list of compute operations. 577 :vartype value: list[~azure.mgmt.compute.v2018_10_01.models.ComputeOperationValue] 578 """ 579 580 _validation = { 581 'value': {'readonly': True}, 582 } 583 584 _attribute_map = { 585 'value': {'key': 'value', 'type': '[ComputeOperationValue]'}, 586 } 587 588 def __init__( 589 self, 590 **kwargs 591 ): 592 super(ComputeOperationListResult, self).__init__(**kwargs) 593 self.value = None 594 595 596class ComputeOperationValue(msrest.serialization.Model): 597 """Describes the properties of a Compute Operation value. 598 599 Variables are only populated by the server, and will be ignored when sending a request. 600 601 :ivar origin: The origin of the compute operation. 602 :vartype origin: str 603 :ivar name: The name of the compute operation. 604 :vartype name: str 605 :ivar operation: The display name of the compute operation. 606 :vartype operation: str 607 :ivar resource: The display name of the resource the operation applies to. 608 :vartype resource: str 609 :ivar description: The description of the operation. 610 :vartype description: str 611 :ivar provider: The resource provider for the operation. 612 :vartype provider: str 613 """ 614 615 _validation = { 616 'origin': {'readonly': True}, 617 'name': {'readonly': True}, 618 'operation': {'readonly': True}, 619 'resource': {'readonly': True}, 620 'description': {'readonly': True}, 621 'provider': {'readonly': True}, 622 } 623 624 _attribute_map = { 625 'origin': {'key': 'origin', 'type': 'str'}, 626 'name': {'key': 'name', 'type': 'str'}, 627 'operation': {'key': 'display.operation', 'type': 'str'}, 628 'resource': {'key': 'display.resource', 'type': 'str'}, 629 'description': {'key': 'display.description', 'type': 'str'}, 630 'provider': {'key': 'display.provider', 'type': 'str'}, 631 } 632 633 def __init__( 634 self, 635 **kwargs 636 ): 637 super(ComputeOperationValue, self).__init__(**kwargs) 638 self.origin = None 639 self.name = None 640 self.operation = None 641 self.resource = None 642 self.description = None 643 self.provider = None 644 645 646class DataDisk(msrest.serialization.Model): 647 """Describes a data disk. 648 649 All required parameters must be populated in order to send to Azure. 650 651 :param lun: Required. Specifies the logical unit number of the data disk. This value is used to 652 identify data disks within the VM and therefore must be unique for each data disk attached to a 653 VM. 654 :type lun: int 655 :param name: The disk name. 656 :type name: str 657 :param vhd: The virtual hard disk. 658 :type vhd: ~azure.mgmt.compute.v2018_10_01.models.VirtualHardDisk 659 :param image: The source user image virtual hard disk. The virtual hard disk will be copied 660 before being attached to the virtual machine. If SourceImage is provided, the destination 661 virtual hard drive must not exist. 662 :type image: ~azure.mgmt.compute.v2018_10_01.models.VirtualHardDisk 663 :param caching: Specifies the caching requirements. :code:`<br>`:code:`<br>` Possible values 664 are: :code:`<br>`:code:`<br>` **None** :code:`<br>`:code:`<br>` **ReadOnly** 665 :code:`<br>`:code:`<br>` **ReadWrite** :code:`<br>`:code:`<br>` Default: **None for Standard 666 storage. ReadOnly for Premium storage**. Possible values include: "None", "ReadOnly", 667 "ReadWrite". 668 :type caching: str or ~azure.mgmt.compute.v2018_10_01.models.CachingTypes 669 :param write_accelerator_enabled: Specifies whether writeAccelerator should be enabled or 670 disabled on the disk. 671 :type write_accelerator_enabled: bool 672 :param create_option: Required. Specifies how the virtual machine should be 673 created.:code:`<br>`:code:`<br>` Possible values are::code:`<br>`:code:`<br>` **Attach** \u2013 674 This value is used when you are using a specialized disk to create the virtual 675 machine.:code:`<br>`:code:`<br>` **FromImage** \u2013 This value is used when you are using an 676 image to create the virtual machine. If you are using a platform image, you also use the 677 imageReference element described above. If you are using a marketplace image, you also use the 678 plan element previously described. Possible values include: "FromImage", "Empty", "Attach". 679 :type create_option: str or ~azure.mgmt.compute.v2018_10_01.models.DiskCreateOptionTypes 680 :param disk_size_gb: Specifies the size of an empty data disk in gigabytes. This element can be 681 used to overwrite the size of the disk in a virtual machine image. :code:`<br>`:code:`<br>` 682 This value cannot be larger than 1023 GB. 683 :type disk_size_gb: int 684 :param managed_disk: The managed disk parameters. 685 :type managed_disk: ~azure.mgmt.compute.v2018_10_01.models.ManagedDiskParameters 686 """ 687 688 _validation = { 689 'lun': {'required': True}, 690 'create_option': {'required': True}, 691 } 692 693 _attribute_map = { 694 'lun': {'key': 'lun', 'type': 'int'}, 695 'name': {'key': 'name', 'type': 'str'}, 696 'vhd': {'key': 'vhd', 'type': 'VirtualHardDisk'}, 697 'image': {'key': 'image', 'type': 'VirtualHardDisk'}, 698 'caching': {'key': 'caching', 'type': 'str'}, 699 'write_accelerator_enabled': {'key': 'writeAcceleratorEnabled', 'type': 'bool'}, 700 'create_option': {'key': 'createOption', 'type': 'str'}, 701 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, 702 'managed_disk': {'key': 'managedDisk', 'type': 'ManagedDiskParameters'}, 703 } 704 705 def __init__( 706 self, 707 *, 708 lun: int, 709 create_option: Union[str, "DiskCreateOptionTypes"], 710 name: Optional[str] = None, 711 vhd: Optional["VirtualHardDisk"] = None, 712 image: Optional["VirtualHardDisk"] = None, 713 caching: Optional[Union[str, "CachingTypes"]] = None, 714 write_accelerator_enabled: Optional[bool] = None, 715 disk_size_gb: Optional[int] = None, 716 managed_disk: Optional["ManagedDiskParameters"] = None, 717 **kwargs 718 ): 719 super(DataDisk, self).__init__(**kwargs) 720 self.lun = lun 721 self.name = name 722 self.vhd = vhd 723 self.image = image 724 self.caching = caching 725 self.write_accelerator_enabled = write_accelerator_enabled 726 self.create_option = create_option 727 self.disk_size_gb = disk_size_gb 728 self.managed_disk = managed_disk 729 730 731class DataDiskImage(msrest.serialization.Model): 732 """Contains the data disk images information. 733 734 Variables are only populated by the server, and will be ignored when sending a request. 735 736 :ivar lun: Specifies the logical unit number of the data disk. This value is used to identify 737 data disks within the VM and therefore must be unique for each data disk attached to a VM. 738 :vartype lun: int 739 """ 740 741 _validation = { 742 'lun': {'readonly': True}, 743 } 744 745 _attribute_map = { 746 'lun': {'key': 'lun', 'type': 'int'}, 747 } 748 749 def __init__( 750 self, 751 **kwargs 752 ): 753 super(DataDiskImage, self).__init__(**kwargs) 754 self.lun = None 755 756 757class DiagnosticsProfile(msrest.serialization.Model): 758 """Specifies the boot diagnostic settings state. :code:`<br>`:code:`<br>`Minimum api-version: 2015-06-15. 759 760 :param boot_diagnostics: Boot Diagnostics is a debugging feature which allows you to view 761 Console Output and Screenshot to diagnose VM status. :code:`<br>`:code:`<br>` You can easily 762 view the output of your console log. :code:`<br>`:code:`<br>` Azure also enables you to see a 763 screenshot of the VM from the hypervisor. 764 :type boot_diagnostics: ~azure.mgmt.compute.v2018_10_01.models.BootDiagnostics 765 """ 766 767 _attribute_map = { 768 'boot_diagnostics': {'key': 'bootDiagnostics', 'type': 'BootDiagnostics'}, 769 } 770 771 def __init__( 772 self, 773 *, 774 boot_diagnostics: Optional["BootDiagnostics"] = None, 775 **kwargs 776 ): 777 super(DiagnosticsProfile, self).__init__(**kwargs) 778 self.boot_diagnostics = boot_diagnostics 779 780 781class DiffDiskSettings(msrest.serialization.Model): 782 """Describes the parameters of ephemeral disk settings that can be specified for operating system disk. :code:`<br>`:code:`<br>` NOTE: The ephemeral disk settings can only be specified for managed disk. 783 784 :param option: Specifies the ephemeral disk settings for operating system disk. Possible values 785 include: "Local". 786 :type option: str or ~azure.mgmt.compute.v2018_10_01.models.DiffDiskOptions 787 """ 788 789 _attribute_map = { 790 'option': {'key': 'option', 'type': 'str'}, 791 } 792 793 def __init__( 794 self, 795 *, 796 option: Optional[Union[str, "DiffDiskOptions"]] = None, 797 **kwargs 798 ): 799 super(DiffDiskSettings, self).__init__(**kwargs) 800 self.option = option 801 802 803class DiskEncryptionSettings(msrest.serialization.Model): 804 """Describes a Encryption Settings for a Disk. 805 806 :param disk_encryption_key: Specifies the location of the disk encryption key, which is a Key 807 Vault Secret. 808 :type disk_encryption_key: ~azure.mgmt.compute.v2018_10_01.models.KeyVaultSecretReference 809 :param key_encryption_key: Specifies the location of the key encryption key in Key Vault. 810 :type key_encryption_key: ~azure.mgmt.compute.v2018_10_01.models.KeyVaultKeyReference 811 :param enabled: Specifies whether disk encryption should be enabled on the virtual machine. 812 :type enabled: bool 813 """ 814 815 _attribute_map = { 816 'disk_encryption_key': {'key': 'diskEncryptionKey', 'type': 'KeyVaultSecretReference'}, 817 'key_encryption_key': {'key': 'keyEncryptionKey', 'type': 'KeyVaultKeyReference'}, 818 'enabled': {'key': 'enabled', 'type': 'bool'}, 819 } 820 821 def __init__( 822 self, 823 *, 824 disk_encryption_key: Optional["KeyVaultSecretReference"] = None, 825 key_encryption_key: Optional["KeyVaultKeyReference"] = None, 826 enabled: Optional[bool] = None, 827 **kwargs 828 ): 829 super(DiskEncryptionSettings, self).__init__(**kwargs) 830 self.disk_encryption_key = disk_encryption_key 831 self.key_encryption_key = key_encryption_key 832 self.enabled = enabled 833 834 835class DiskInstanceView(msrest.serialization.Model): 836 """The instance view of the disk. 837 838 :param name: The disk name. 839 :type name: str 840 :param encryption_settings: Specifies the encryption settings for the OS Disk. 841 :code:`<br>`:code:`<br>` Minimum api-version: 2015-06-15. 842 :type encryption_settings: list[~azure.mgmt.compute.v2018_10_01.models.DiskEncryptionSettings] 843 :param statuses: The resource status information. 844 :type statuses: list[~azure.mgmt.compute.v2018_10_01.models.InstanceViewStatus] 845 """ 846 847 _attribute_map = { 848 'name': {'key': 'name', 'type': 'str'}, 849 'encryption_settings': {'key': 'encryptionSettings', 'type': '[DiskEncryptionSettings]'}, 850 'statuses': {'key': 'statuses', 'type': '[InstanceViewStatus]'}, 851 } 852 853 def __init__( 854 self, 855 *, 856 name: Optional[str] = None, 857 encryption_settings: Optional[List["DiskEncryptionSettings"]] = None, 858 statuses: Optional[List["InstanceViewStatus"]] = None, 859 **kwargs 860 ): 861 super(DiskInstanceView, self).__init__(**kwargs) 862 self.name = name 863 self.encryption_settings = encryption_settings 864 self.statuses = statuses 865 866 867class HardwareProfile(msrest.serialization.Model): 868 """Specifies the hardware settings for the virtual machine. 869 870 :param vm_size: Specifies the size of the virtual machine. For more information about virtual 871 machine sizes, see `Sizes for virtual machines 872 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-sizes?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 873 :code:`<br>`:code:`<br>` The available VM sizes depend on region and availability set. For a 874 list of available sizes use these APIs: :code:`<br>`:code:`<br>` `List all available virtual 875 machine sizes in an availability set 876 <https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes>`_ 877 :code:`<br>`:code:`<br>` `List all available virtual machine sizes in a region 878 <https://docs.microsoft.com/rest/api/compute/virtualmachinesizes/list>`_ 879 :code:`<br>`:code:`<br>` `List all available virtual machine sizes for resizing 880 <https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes>`_. Possible 881 values include: "Basic_A0", "Basic_A1", "Basic_A2", "Basic_A3", "Basic_A4", "Standard_A0", 882 "Standard_A1", "Standard_A2", "Standard_A3", "Standard_A4", "Standard_A5", "Standard_A6", 883 "Standard_A7", "Standard_A8", "Standard_A9", "Standard_A10", "Standard_A11", "Standard_A1_v2", 884 "Standard_A2_v2", "Standard_A4_v2", "Standard_A8_v2", "Standard_A2m_v2", "Standard_A4m_v2", 885 "Standard_A8m_v2", "Standard_B1s", "Standard_B1ms", "Standard_B2s", "Standard_B2ms", 886 "Standard_B4ms", "Standard_B8ms", "Standard_D1", "Standard_D2", "Standard_D3", "Standard_D4", 887 "Standard_D11", "Standard_D12", "Standard_D13", "Standard_D14", "Standard_D1_v2", 888 "Standard_D2_v2", "Standard_D3_v2", "Standard_D4_v2", "Standard_D5_v2", "Standard_D2_v3", 889 "Standard_D4_v3", "Standard_D8_v3", "Standard_D16_v3", "Standard_D32_v3", "Standard_D64_v3", 890 "Standard_D2s_v3", "Standard_D4s_v3", "Standard_D8s_v3", "Standard_D16s_v3", 891 "Standard_D32s_v3", "Standard_D64s_v3", "Standard_D11_v2", "Standard_D12_v2", 892 "Standard_D13_v2", "Standard_D14_v2", "Standard_D15_v2", "Standard_DS1", "Standard_DS2", 893 "Standard_DS3", "Standard_DS4", "Standard_DS11", "Standard_DS12", "Standard_DS13", 894 "Standard_DS14", "Standard_DS1_v2", "Standard_DS2_v2", "Standard_DS3_v2", "Standard_DS4_v2", 895 "Standard_DS5_v2", "Standard_DS11_v2", "Standard_DS12_v2", "Standard_DS13_v2", 896 "Standard_DS14_v2", "Standard_DS15_v2", "Standard_DS13-4_v2", "Standard_DS13-2_v2", 897 "Standard_DS14-8_v2", "Standard_DS14-4_v2", "Standard_E2_v3", "Standard_E4_v3", 898 "Standard_E8_v3", "Standard_E16_v3", "Standard_E32_v3", "Standard_E64_v3", "Standard_E2s_v3", 899 "Standard_E4s_v3", "Standard_E8s_v3", "Standard_E16s_v3", "Standard_E32s_v3", 900 "Standard_E64s_v3", "Standard_E32-16_v3", "Standard_E32-8s_v3", "Standard_E64-32s_v3", 901 "Standard_E64-16s_v3", "Standard_F1", "Standard_F2", "Standard_F4", "Standard_F8", 902 "Standard_F16", "Standard_F1s", "Standard_F2s", "Standard_F4s", "Standard_F8s", 903 "Standard_F16s", "Standard_F2s_v2", "Standard_F4s_v2", "Standard_F8s_v2", "Standard_F16s_v2", 904 "Standard_F32s_v2", "Standard_F64s_v2", "Standard_F72s_v2", "Standard_G1", "Standard_G2", 905 "Standard_G3", "Standard_G4", "Standard_G5", "Standard_GS1", "Standard_GS2", "Standard_GS3", 906 "Standard_GS4", "Standard_GS5", "Standard_GS4-8", "Standard_GS4-4", "Standard_GS5-16", 907 "Standard_GS5-8", "Standard_H8", "Standard_H16", "Standard_H8m", "Standard_H16m", 908 "Standard_H16r", "Standard_H16mr", "Standard_L4s", "Standard_L8s", "Standard_L16s", 909 "Standard_L32s", "Standard_M64s", "Standard_M64ms", "Standard_M128s", "Standard_M128ms", 910 "Standard_M64-32ms", "Standard_M64-16ms", "Standard_M128-64ms", "Standard_M128-32ms", 911 "Standard_NC6", "Standard_NC12", "Standard_NC24", "Standard_NC24r", "Standard_NC6s_v2", 912 "Standard_NC12s_v2", "Standard_NC24s_v2", "Standard_NC24rs_v2", "Standard_NC6s_v3", 913 "Standard_NC12s_v3", "Standard_NC24s_v3", "Standard_NC24rs_v3", "Standard_ND6s", 914 "Standard_ND12s", "Standard_ND24s", "Standard_ND24rs", "Standard_NV6", "Standard_NV12", 915 "Standard_NV24". 916 :type vm_size: str or ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineSizeTypes 917 """ 918 919 _attribute_map = { 920 'vm_size': {'key': 'vmSize', 'type': 'str'}, 921 } 922 923 def __init__( 924 self, 925 *, 926 vm_size: Optional[Union[str, "VirtualMachineSizeTypes"]] = None, 927 **kwargs 928 ): 929 super(HardwareProfile, self).__init__(**kwargs) 930 self.vm_size = vm_size 931 932 933class Image(Resource): 934 """The source user image virtual hard disk. The virtual hard disk will be copied before being attached to the virtual machine. If SourceImage is provided, the destination virtual hard drive must not exist. 935 936 Variables are only populated by the server, and will be ignored when sending a request. 937 938 All required parameters must be populated in order to send to Azure. 939 940 :ivar id: Resource Id. 941 :vartype id: str 942 :ivar name: Resource name. 943 :vartype name: str 944 :ivar type: Resource type. 945 :vartype type: str 946 :param location: Required. Resource location. 947 :type location: str 948 :param tags: A set of tags. Resource tags. 949 :type tags: dict[str, str] 950 :param source_virtual_machine: The source virtual machine from which Image is created. 951 :type source_virtual_machine: ~azure.mgmt.compute.v2018_10_01.models.SubResource 952 :param storage_profile: Specifies the storage settings for the virtual machine disks. 953 :type storage_profile: ~azure.mgmt.compute.v2018_10_01.models.ImageStorageProfile 954 :ivar provisioning_state: The provisioning state. 955 :vartype provisioning_state: str 956 """ 957 958 _validation = { 959 'id': {'readonly': True}, 960 'name': {'readonly': True}, 961 'type': {'readonly': True}, 962 'location': {'required': True}, 963 'provisioning_state': {'readonly': True}, 964 } 965 966 _attribute_map = { 967 'id': {'key': 'id', 'type': 'str'}, 968 'name': {'key': 'name', 'type': 'str'}, 969 'type': {'key': 'type', 'type': 'str'}, 970 'location': {'key': 'location', 'type': 'str'}, 971 'tags': {'key': 'tags', 'type': '{str}'}, 972 'source_virtual_machine': {'key': 'properties.sourceVirtualMachine', 'type': 'SubResource'}, 973 'storage_profile': {'key': 'properties.storageProfile', 'type': 'ImageStorageProfile'}, 974 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 975 } 976 977 def __init__( 978 self, 979 *, 980 location: str, 981 tags: Optional[Dict[str, str]] = None, 982 source_virtual_machine: Optional["SubResource"] = None, 983 storage_profile: Optional["ImageStorageProfile"] = None, 984 **kwargs 985 ): 986 super(Image, self).__init__(location=location, tags=tags, **kwargs) 987 self.source_virtual_machine = source_virtual_machine 988 self.storage_profile = storage_profile 989 self.provisioning_state = None 990 991 992class ImageDataDisk(msrest.serialization.Model): 993 """Describes a data disk. 994 995 All required parameters must be populated in order to send to Azure. 996 997 :param lun: Required. Specifies the logical unit number of the data disk. This value is used to 998 identify data disks within the VM and therefore must be unique for each data disk attached to a 999 VM. 1000 :type lun: int 1001 :param snapshot: The snapshot. 1002 :type snapshot: ~azure.mgmt.compute.v2018_10_01.models.SubResource 1003 :param managed_disk: The managedDisk. 1004 :type managed_disk: ~azure.mgmt.compute.v2018_10_01.models.SubResource 1005 :param blob_uri: The Virtual Hard Disk. 1006 :type blob_uri: str 1007 :param caching: Specifies the caching requirements. :code:`<br>`:code:`<br>` Possible values 1008 are: :code:`<br>`:code:`<br>` **None** :code:`<br>`:code:`<br>` **ReadOnly** 1009 :code:`<br>`:code:`<br>` **ReadWrite** :code:`<br>`:code:`<br>` Default: **None for Standard 1010 storage. ReadOnly for Premium storage**. Possible values include: "None", "ReadOnly", 1011 "ReadWrite". 1012 :type caching: str or ~azure.mgmt.compute.v2018_10_01.models.CachingTypes 1013 :param disk_size_gb: Specifies the size of empty data disks in gigabytes. This element can be 1014 used to overwrite the name of the disk in a virtual machine image. :code:`<br>`:code:`<br>` 1015 This value cannot be larger than 1023 GB. 1016 :type disk_size_gb: int 1017 :param storage_account_type: Specifies the storage account type for the managed disk. NOTE: 1018 UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. Possible values 1019 include: "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS". 1020 :type storage_account_type: str or ~azure.mgmt.compute.v2018_10_01.models.StorageAccountTypes 1021 """ 1022 1023 _validation = { 1024 'lun': {'required': True}, 1025 } 1026 1027 _attribute_map = { 1028 'lun': {'key': 'lun', 'type': 'int'}, 1029 'snapshot': {'key': 'snapshot', 'type': 'SubResource'}, 1030 'managed_disk': {'key': 'managedDisk', 'type': 'SubResource'}, 1031 'blob_uri': {'key': 'blobUri', 'type': 'str'}, 1032 'caching': {'key': 'caching', 'type': 'str'}, 1033 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, 1034 'storage_account_type': {'key': 'storageAccountType', 'type': 'str'}, 1035 } 1036 1037 def __init__( 1038 self, 1039 *, 1040 lun: int, 1041 snapshot: Optional["SubResource"] = None, 1042 managed_disk: Optional["SubResource"] = None, 1043 blob_uri: Optional[str] = None, 1044 caching: Optional[Union[str, "CachingTypes"]] = None, 1045 disk_size_gb: Optional[int] = None, 1046 storage_account_type: Optional[Union[str, "StorageAccountTypes"]] = None, 1047 **kwargs 1048 ): 1049 super(ImageDataDisk, self).__init__(**kwargs) 1050 self.lun = lun 1051 self.snapshot = snapshot 1052 self.managed_disk = managed_disk 1053 self.blob_uri = blob_uri 1054 self.caching = caching 1055 self.disk_size_gb = disk_size_gb 1056 self.storage_account_type = storage_account_type 1057 1058 1059class ImageListResult(msrest.serialization.Model): 1060 """The List Image operation response. 1061 1062 All required parameters must be populated in order to send to Azure. 1063 1064 :param value: Required. The list of Images. 1065 :type value: list[~azure.mgmt.compute.v2018_10_01.models.Image] 1066 :param next_link: The uri to fetch the next page of Images. Call ListNext() with this to fetch 1067 the next page of Images. 1068 :type next_link: str 1069 """ 1070 1071 _validation = { 1072 'value': {'required': True}, 1073 } 1074 1075 _attribute_map = { 1076 'value': {'key': 'value', 'type': '[Image]'}, 1077 'next_link': {'key': 'nextLink', 'type': 'str'}, 1078 } 1079 1080 def __init__( 1081 self, 1082 *, 1083 value: List["Image"], 1084 next_link: Optional[str] = None, 1085 **kwargs 1086 ): 1087 super(ImageListResult, self).__init__(**kwargs) 1088 self.value = value 1089 self.next_link = next_link 1090 1091 1092class ImageOSDisk(msrest.serialization.Model): 1093 """Describes an Operating System disk. 1094 1095 All required parameters must be populated in order to send to Azure. 1096 1097 :param os_type: Required. This property allows you to specify the type of the OS that is 1098 included in the disk if creating a VM from a custom image. :code:`<br>`:code:`<br>` Possible 1099 values are: :code:`<br>`:code:`<br>` **Windows** :code:`<br>`:code:`<br>` **Linux**. Possible 1100 values include: "Windows", "Linux". 1101 :type os_type: str or ~azure.mgmt.compute.v2018_10_01.models.OperatingSystemTypes 1102 :param os_state: Required. The OS State. Possible values include: "Generalized", "Specialized". 1103 :type os_state: str or ~azure.mgmt.compute.v2018_10_01.models.OperatingSystemStateTypes 1104 :param snapshot: The snapshot. 1105 :type snapshot: ~azure.mgmt.compute.v2018_10_01.models.SubResource 1106 :param managed_disk: The managedDisk. 1107 :type managed_disk: ~azure.mgmt.compute.v2018_10_01.models.SubResource 1108 :param blob_uri: The Virtual Hard Disk. 1109 :type blob_uri: str 1110 :param caching: Specifies the caching requirements. :code:`<br>`:code:`<br>` Possible values 1111 are: :code:`<br>`:code:`<br>` **None** :code:`<br>`:code:`<br>` **ReadOnly** 1112 :code:`<br>`:code:`<br>` **ReadWrite** :code:`<br>`:code:`<br>` Default: **None for Standard 1113 storage. ReadOnly for Premium storage**. Possible values include: "None", "ReadOnly", 1114 "ReadWrite". 1115 :type caching: str or ~azure.mgmt.compute.v2018_10_01.models.CachingTypes 1116 :param disk_size_gb: Specifies the size of empty data disks in gigabytes. This element can be 1117 used to overwrite the name of the disk in a virtual machine image. :code:`<br>`:code:`<br>` 1118 This value cannot be larger than 1023 GB. 1119 :type disk_size_gb: int 1120 :param storage_account_type: Specifies the storage account type for the managed disk. 1121 UltraSSD_LRS cannot be used with OS Disk. Possible values include: "Standard_LRS", 1122 "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS". 1123 :type storage_account_type: str or ~azure.mgmt.compute.v2018_10_01.models.StorageAccountTypes 1124 """ 1125 1126 _validation = { 1127 'os_type': {'required': True}, 1128 'os_state': {'required': True}, 1129 } 1130 1131 _attribute_map = { 1132 'os_type': {'key': 'osType', 'type': 'str'}, 1133 'os_state': {'key': 'osState', 'type': 'str'}, 1134 'snapshot': {'key': 'snapshot', 'type': 'SubResource'}, 1135 'managed_disk': {'key': 'managedDisk', 'type': 'SubResource'}, 1136 'blob_uri': {'key': 'blobUri', 'type': 'str'}, 1137 'caching': {'key': 'caching', 'type': 'str'}, 1138 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, 1139 'storage_account_type': {'key': 'storageAccountType', 'type': 'str'}, 1140 } 1141 1142 def __init__( 1143 self, 1144 *, 1145 os_type: Union[str, "OperatingSystemTypes"], 1146 os_state: Union[str, "OperatingSystemStateTypes"], 1147 snapshot: Optional["SubResource"] = None, 1148 managed_disk: Optional["SubResource"] = None, 1149 blob_uri: Optional[str] = None, 1150 caching: Optional[Union[str, "CachingTypes"]] = None, 1151 disk_size_gb: Optional[int] = None, 1152 storage_account_type: Optional[Union[str, "StorageAccountTypes"]] = None, 1153 **kwargs 1154 ): 1155 super(ImageOSDisk, self).__init__(**kwargs) 1156 self.os_type = os_type 1157 self.os_state = os_state 1158 self.snapshot = snapshot 1159 self.managed_disk = managed_disk 1160 self.blob_uri = blob_uri 1161 self.caching = caching 1162 self.disk_size_gb = disk_size_gb 1163 self.storage_account_type = storage_account_type 1164 1165 1166class SubResource(msrest.serialization.Model): 1167 """SubResource. 1168 1169 :param id: Resource Id. 1170 :type id: str 1171 """ 1172 1173 _attribute_map = { 1174 'id': {'key': 'id', 'type': 'str'}, 1175 } 1176 1177 def __init__( 1178 self, 1179 *, 1180 id: Optional[str] = None, 1181 **kwargs 1182 ): 1183 super(SubResource, self).__init__(**kwargs) 1184 self.id = id 1185 1186 1187class ImageReference(SubResource): 1188 """Specifies information about the image to use. You can specify information about platform images, marketplace images, or virtual machine images. This element is required when you want to use a platform image, marketplace image, or virtual machine image, but is not used in other creation operations. NOTE: Image reference publisher and offer can only be set when you create the scale set. 1189 1190 :param id: Resource Id. 1191 :type id: str 1192 :param publisher: The image publisher. 1193 :type publisher: str 1194 :param offer: Specifies the offer of the platform image or marketplace image used to create the 1195 virtual machine. 1196 :type offer: str 1197 :param sku: The image SKU. 1198 :type sku: str 1199 :param version: Specifies the version of the platform image or marketplace image used to create 1200 the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and 1201 Build are decimal numbers. Specify 'latest' to use the latest version of an image available at 1202 deploy time. Even if you use 'latest', the VM image will not automatically update after deploy 1203 time even if a new version becomes available. 1204 :type version: str 1205 """ 1206 1207 _attribute_map = { 1208 'id': {'key': 'id', 'type': 'str'}, 1209 'publisher': {'key': 'publisher', 'type': 'str'}, 1210 'offer': {'key': 'offer', 'type': 'str'}, 1211 'sku': {'key': 'sku', 'type': 'str'}, 1212 'version': {'key': 'version', 'type': 'str'}, 1213 } 1214 1215 def __init__( 1216 self, 1217 *, 1218 id: Optional[str] = None, 1219 publisher: Optional[str] = None, 1220 offer: Optional[str] = None, 1221 sku: Optional[str] = None, 1222 version: Optional[str] = None, 1223 **kwargs 1224 ): 1225 super(ImageReference, self).__init__(id=id, **kwargs) 1226 self.publisher = publisher 1227 self.offer = offer 1228 self.sku = sku 1229 self.version = version 1230 1231 1232class ImageStorageProfile(msrest.serialization.Model): 1233 """Describes a storage profile. 1234 1235 :param os_disk: Specifies information about the operating system disk used by the virtual 1236 machine. :code:`<br>`:code:`<br>` For more information about disks, see `About disks and VHDs 1237 for Azure virtual machines 1238 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 1239 :type os_disk: ~azure.mgmt.compute.v2018_10_01.models.ImageOSDisk 1240 :param data_disks: Specifies the parameters that are used to add a data disk to a virtual 1241 machine. :code:`<br>`:code:`<br>` For more information about disks, see `About disks and VHDs 1242 for Azure virtual machines 1243 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 1244 :type data_disks: list[~azure.mgmt.compute.v2018_10_01.models.ImageDataDisk] 1245 :param zone_resilient: Specifies whether an image is zone resilient or not. Default is false. 1246 Zone resilient images can be created only in regions that provide Zone Redundant Storage (ZRS). 1247 :type zone_resilient: bool 1248 """ 1249 1250 _attribute_map = { 1251 'os_disk': {'key': 'osDisk', 'type': 'ImageOSDisk'}, 1252 'data_disks': {'key': 'dataDisks', 'type': '[ImageDataDisk]'}, 1253 'zone_resilient': {'key': 'zoneResilient', 'type': 'bool'}, 1254 } 1255 1256 def __init__( 1257 self, 1258 *, 1259 os_disk: Optional["ImageOSDisk"] = None, 1260 data_disks: Optional[List["ImageDataDisk"]] = None, 1261 zone_resilient: Optional[bool] = None, 1262 **kwargs 1263 ): 1264 super(ImageStorageProfile, self).__init__(**kwargs) 1265 self.os_disk = os_disk 1266 self.data_disks = data_disks 1267 self.zone_resilient = zone_resilient 1268 1269 1270class ImageUpdate(UpdateResource): 1271 """The source user image virtual hard disk. Only tags may be updated. 1272 1273 Variables are only populated by the server, and will be ignored when sending a request. 1274 1275 :param tags: A set of tags. Resource tags. 1276 :type tags: dict[str, str] 1277 :param source_virtual_machine: The source virtual machine from which Image is created. 1278 :type source_virtual_machine: ~azure.mgmt.compute.v2018_10_01.models.SubResource 1279 :param storage_profile: Specifies the storage settings for the virtual machine disks. 1280 :type storage_profile: ~azure.mgmt.compute.v2018_10_01.models.ImageStorageProfile 1281 :ivar provisioning_state: The provisioning state. 1282 :vartype provisioning_state: str 1283 """ 1284 1285 _validation = { 1286 'provisioning_state': {'readonly': True}, 1287 } 1288 1289 _attribute_map = { 1290 'tags': {'key': 'tags', 'type': '{str}'}, 1291 'source_virtual_machine': {'key': 'properties.sourceVirtualMachine', 'type': 'SubResource'}, 1292 'storage_profile': {'key': 'properties.storageProfile', 'type': 'ImageStorageProfile'}, 1293 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 1294 } 1295 1296 def __init__( 1297 self, 1298 *, 1299 tags: Optional[Dict[str, str]] = None, 1300 source_virtual_machine: Optional["SubResource"] = None, 1301 storage_profile: Optional["ImageStorageProfile"] = None, 1302 **kwargs 1303 ): 1304 super(ImageUpdate, self).__init__(tags=tags, **kwargs) 1305 self.source_virtual_machine = source_virtual_machine 1306 self.storage_profile = storage_profile 1307 self.provisioning_state = None 1308 1309 1310class InnerError(msrest.serialization.Model): 1311 """Inner error details. 1312 1313 :param exceptiontype: The exception type. 1314 :type exceptiontype: str 1315 :param errordetail: The internal error message or exception dump. 1316 :type errordetail: str 1317 """ 1318 1319 _attribute_map = { 1320 'exceptiontype': {'key': 'exceptiontype', 'type': 'str'}, 1321 'errordetail': {'key': 'errordetail', 'type': 'str'}, 1322 } 1323 1324 def __init__( 1325 self, 1326 *, 1327 exceptiontype: Optional[str] = None, 1328 errordetail: Optional[str] = None, 1329 **kwargs 1330 ): 1331 super(InnerError, self).__init__(**kwargs) 1332 self.exceptiontype = exceptiontype 1333 self.errordetail = errordetail 1334 1335 1336class InstanceViewStatus(msrest.serialization.Model): 1337 """Instance view status. 1338 1339 :param code: The status code. 1340 :type code: str 1341 :param level: The level code. Possible values include: "Info", "Warning", "Error". 1342 :type level: str or ~azure.mgmt.compute.v2018_10_01.models.StatusLevelTypes 1343 :param display_status: The short localizable label for the status. 1344 :type display_status: str 1345 :param message: The detailed status message, including for alerts and error messages. 1346 :type message: str 1347 :param time: The time of the status. 1348 :type time: ~datetime.datetime 1349 """ 1350 1351 _attribute_map = { 1352 'code': {'key': 'code', 'type': 'str'}, 1353 'level': {'key': 'level', 'type': 'str'}, 1354 'display_status': {'key': 'displayStatus', 'type': 'str'}, 1355 'message': {'key': 'message', 'type': 'str'}, 1356 'time': {'key': 'time', 'type': 'iso-8601'}, 1357 } 1358 1359 def __init__( 1360 self, 1361 *, 1362 code: Optional[str] = None, 1363 level: Optional[Union[str, "StatusLevelTypes"]] = None, 1364 display_status: Optional[str] = None, 1365 message: Optional[str] = None, 1366 time: Optional[datetime.datetime] = None, 1367 **kwargs 1368 ): 1369 super(InstanceViewStatus, self).__init__(**kwargs) 1370 self.code = code 1371 self.level = level 1372 self.display_status = display_status 1373 self.message = message 1374 self.time = time 1375 1376 1377class KeyVaultKeyReference(msrest.serialization.Model): 1378 """Describes a reference to Key Vault Key. 1379 1380 All required parameters must be populated in order to send to Azure. 1381 1382 :param key_url: Required. The URL referencing a key encryption key in Key Vault. 1383 :type key_url: str 1384 :param source_vault: Required. The relative URL of the Key Vault containing the key. 1385 :type source_vault: ~azure.mgmt.compute.v2018_10_01.models.SubResource 1386 """ 1387 1388 _validation = { 1389 'key_url': {'required': True}, 1390 'source_vault': {'required': True}, 1391 } 1392 1393 _attribute_map = { 1394 'key_url': {'key': 'keyUrl', 'type': 'str'}, 1395 'source_vault': {'key': 'sourceVault', 'type': 'SubResource'}, 1396 } 1397 1398 def __init__( 1399 self, 1400 *, 1401 key_url: str, 1402 source_vault: "SubResource", 1403 **kwargs 1404 ): 1405 super(KeyVaultKeyReference, self).__init__(**kwargs) 1406 self.key_url = key_url 1407 self.source_vault = source_vault 1408 1409 1410class KeyVaultSecretReference(msrest.serialization.Model): 1411 """Describes a reference to Key Vault Secret. 1412 1413 All required parameters must be populated in order to send to Azure. 1414 1415 :param secret_url: Required. The URL referencing a secret in a Key Vault. 1416 :type secret_url: str 1417 :param source_vault: Required. The relative URL of the Key Vault containing the secret. 1418 :type source_vault: ~azure.mgmt.compute.v2018_10_01.models.SubResource 1419 """ 1420 1421 _validation = { 1422 'secret_url': {'required': True}, 1423 'source_vault': {'required': True}, 1424 } 1425 1426 _attribute_map = { 1427 'secret_url': {'key': 'secretUrl', 'type': 'str'}, 1428 'source_vault': {'key': 'sourceVault', 'type': 'SubResource'}, 1429 } 1430 1431 def __init__( 1432 self, 1433 *, 1434 secret_url: str, 1435 source_vault: "SubResource", 1436 **kwargs 1437 ): 1438 super(KeyVaultSecretReference, self).__init__(**kwargs) 1439 self.secret_url = secret_url 1440 self.source_vault = source_vault 1441 1442 1443class LinuxConfiguration(msrest.serialization.Model): 1444 """Specifies the Linux operating system settings on the virtual machine. :code:`<br>`:code:`<br>`For a list of supported Linux distributions, see `Linux on Azure-Endorsed Distributions <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_ :code:`<br>`:code:`<br>` For running non-endorsed distributions, see `Information for Non-Endorsed Distributions <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_. 1445 1446 :param disable_password_authentication: Specifies whether password authentication should be 1447 disabled. 1448 :type disable_password_authentication: bool 1449 :param ssh: Specifies the ssh key configuration for a Linux OS. 1450 :type ssh: ~azure.mgmt.compute.v2018_10_01.models.SshConfiguration 1451 :param provision_vm_agent: Indicates whether virtual machine agent should be provisioned on the 1452 virtual machine. :code:`<br>`:code:`<br>` When this property is not specified in the request 1453 body, default behavior is to set it to true. This will ensure that VM Agent is installed on 1454 the VM so that extensions can be added to the VM later. 1455 :type provision_vm_agent: bool 1456 """ 1457 1458 _attribute_map = { 1459 'disable_password_authentication': {'key': 'disablePasswordAuthentication', 'type': 'bool'}, 1460 'ssh': {'key': 'ssh', 'type': 'SshConfiguration'}, 1461 'provision_vm_agent': {'key': 'provisionVMAgent', 'type': 'bool'}, 1462 } 1463 1464 def __init__( 1465 self, 1466 *, 1467 disable_password_authentication: Optional[bool] = None, 1468 ssh: Optional["SshConfiguration"] = None, 1469 provision_vm_agent: Optional[bool] = None, 1470 **kwargs 1471 ): 1472 super(LinuxConfiguration, self).__init__(**kwargs) 1473 self.disable_password_authentication = disable_password_authentication 1474 self.ssh = ssh 1475 self.provision_vm_agent = provision_vm_agent 1476 1477 1478class ListUsagesResult(msrest.serialization.Model): 1479 """The List Usages operation response. 1480 1481 All required parameters must be populated in order to send to Azure. 1482 1483 :param value: Required. The list of compute resource usages. 1484 :type value: list[~azure.mgmt.compute.v2018_10_01.models.Usage] 1485 :param next_link: The URI to fetch the next page of compute resource usage information. Call 1486 ListNext() with this to fetch the next page of compute resource usage information. 1487 :type next_link: str 1488 """ 1489 1490 _validation = { 1491 'value': {'required': True}, 1492 } 1493 1494 _attribute_map = { 1495 'value': {'key': 'value', 'type': '[Usage]'}, 1496 'next_link': {'key': 'nextLink', 'type': 'str'}, 1497 } 1498 1499 def __init__( 1500 self, 1501 *, 1502 value: List["Usage"], 1503 next_link: Optional[str] = None, 1504 **kwargs 1505 ): 1506 super(ListUsagesResult, self).__init__(**kwargs) 1507 self.value = value 1508 self.next_link = next_link 1509 1510 1511class LogAnalyticsInputBase(msrest.serialization.Model): 1512 """Api input base class for LogAnalytics Api. 1513 1514 All required parameters must be populated in order to send to Azure. 1515 1516 :param blob_container_sas_uri: Required. SAS Uri of the logging blob container to which 1517 LogAnalytics Api writes output logs to. 1518 :type blob_container_sas_uri: str 1519 :param from_time: Required. From time of the query. 1520 :type from_time: ~datetime.datetime 1521 :param to_time: Required. To time of the query. 1522 :type to_time: ~datetime.datetime 1523 :param group_by_throttle_policy: Group query result by Throttle Policy applied. 1524 :type group_by_throttle_policy: bool 1525 :param group_by_operation_name: Group query result by Operation Name. 1526 :type group_by_operation_name: bool 1527 :param group_by_resource_name: Group query result by Resource Name. 1528 :type group_by_resource_name: bool 1529 """ 1530 1531 _validation = { 1532 'blob_container_sas_uri': {'required': True}, 1533 'from_time': {'required': True}, 1534 'to_time': {'required': True}, 1535 } 1536 1537 _attribute_map = { 1538 'blob_container_sas_uri': {'key': 'blobContainerSasUri', 'type': 'str'}, 1539 'from_time': {'key': 'fromTime', 'type': 'iso-8601'}, 1540 'to_time': {'key': 'toTime', 'type': 'iso-8601'}, 1541 'group_by_throttle_policy': {'key': 'groupByThrottlePolicy', 'type': 'bool'}, 1542 'group_by_operation_name': {'key': 'groupByOperationName', 'type': 'bool'}, 1543 'group_by_resource_name': {'key': 'groupByResourceName', 'type': 'bool'}, 1544 } 1545 1546 def __init__( 1547 self, 1548 *, 1549 blob_container_sas_uri: str, 1550 from_time: datetime.datetime, 1551 to_time: datetime.datetime, 1552 group_by_throttle_policy: Optional[bool] = None, 1553 group_by_operation_name: Optional[bool] = None, 1554 group_by_resource_name: Optional[bool] = None, 1555 **kwargs 1556 ): 1557 super(LogAnalyticsInputBase, self).__init__(**kwargs) 1558 self.blob_container_sas_uri = blob_container_sas_uri 1559 self.from_time = from_time 1560 self.to_time = to_time 1561 self.group_by_throttle_policy = group_by_throttle_policy 1562 self.group_by_operation_name = group_by_operation_name 1563 self.group_by_resource_name = group_by_resource_name 1564 1565 1566class LogAnalyticsOperationResult(msrest.serialization.Model): 1567 """LogAnalytics operation status response. 1568 1569 Variables are only populated by the server, and will be ignored when sending a request. 1570 1571 :ivar properties: LogAnalyticsOutput. 1572 :vartype properties: ~azure.mgmt.compute.v2018_10_01.models.LogAnalyticsOutput 1573 """ 1574 1575 _validation = { 1576 'properties': {'readonly': True}, 1577 } 1578 1579 _attribute_map = { 1580 'properties': {'key': 'properties', 'type': 'LogAnalyticsOutput'}, 1581 } 1582 1583 def __init__( 1584 self, 1585 **kwargs 1586 ): 1587 super(LogAnalyticsOperationResult, self).__init__(**kwargs) 1588 self.properties = None 1589 1590 1591class LogAnalyticsOutput(msrest.serialization.Model): 1592 """LogAnalytics output properties. 1593 1594 Variables are only populated by the server, and will be ignored when sending a request. 1595 1596 :ivar output: Output file Uri path to blob container. 1597 :vartype output: str 1598 """ 1599 1600 _validation = { 1601 'output': {'readonly': True}, 1602 } 1603 1604 _attribute_map = { 1605 'output': {'key': 'output', 'type': 'str'}, 1606 } 1607 1608 def __init__( 1609 self, 1610 **kwargs 1611 ): 1612 super(LogAnalyticsOutput, self).__init__(**kwargs) 1613 self.output = None 1614 1615 1616class MaintenanceRedeployStatus(msrest.serialization.Model): 1617 """Maintenance Operation Status. 1618 1619 :param is_customer_initiated_maintenance_allowed: True, if customer is allowed to perform 1620 Maintenance. 1621 :type is_customer_initiated_maintenance_allowed: bool 1622 :param pre_maintenance_window_start_time: Start Time for the Pre Maintenance Window. 1623 :type pre_maintenance_window_start_time: ~datetime.datetime 1624 :param pre_maintenance_window_end_time: End Time for the Pre Maintenance Window. 1625 :type pre_maintenance_window_end_time: ~datetime.datetime 1626 :param maintenance_window_start_time: Start Time for the Maintenance Window. 1627 :type maintenance_window_start_time: ~datetime.datetime 1628 :param maintenance_window_end_time: End Time for the Maintenance Window. 1629 :type maintenance_window_end_time: ~datetime.datetime 1630 :param last_operation_result_code: The Last Maintenance Operation Result Code. Possible values 1631 include: "None", "RetryLater", "MaintenanceAborted", "MaintenanceCompleted". 1632 :type last_operation_result_code: str or 1633 ~azure.mgmt.compute.v2018_10_01.models.MaintenanceOperationResultCodeTypes 1634 :param last_operation_message: Message returned for the last Maintenance Operation. 1635 :type last_operation_message: str 1636 """ 1637 1638 _attribute_map = { 1639 'is_customer_initiated_maintenance_allowed': {'key': 'isCustomerInitiatedMaintenanceAllowed', 'type': 'bool'}, 1640 'pre_maintenance_window_start_time': {'key': 'preMaintenanceWindowStartTime', 'type': 'iso-8601'}, 1641 'pre_maintenance_window_end_time': {'key': 'preMaintenanceWindowEndTime', 'type': 'iso-8601'}, 1642 'maintenance_window_start_time': {'key': 'maintenanceWindowStartTime', 'type': 'iso-8601'}, 1643 'maintenance_window_end_time': {'key': 'maintenanceWindowEndTime', 'type': 'iso-8601'}, 1644 'last_operation_result_code': {'key': 'lastOperationResultCode', 'type': 'str'}, 1645 'last_operation_message': {'key': 'lastOperationMessage', 'type': 'str'}, 1646 } 1647 1648 def __init__( 1649 self, 1650 *, 1651 is_customer_initiated_maintenance_allowed: Optional[bool] = None, 1652 pre_maintenance_window_start_time: Optional[datetime.datetime] = None, 1653 pre_maintenance_window_end_time: Optional[datetime.datetime] = None, 1654 maintenance_window_start_time: Optional[datetime.datetime] = None, 1655 maintenance_window_end_time: Optional[datetime.datetime] = None, 1656 last_operation_result_code: Optional[Union[str, "MaintenanceOperationResultCodeTypes"]] = None, 1657 last_operation_message: Optional[str] = None, 1658 **kwargs 1659 ): 1660 super(MaintenanceRedeployStatus, self).__init__(**kwargs) 1661 self.is_customer_initiated_maintenance_allowed = is_customer_initiated_maintenance_allowed 1662 self.pre_maintenance_window_start_time = pre_maintenance_window_start_time 1663 self.pre_maintenance_window_end_time = pre_maintenance_window_end_time 1664 self.maintenance_window_start_time = maintenance_window_start_time 1665 self.maintenance_window_end_time = maintenance_window_end_time 1666 self.last_operation_result_code = last_operation_result_code 1667 self.last_operation_message = last_operation_message 1668 1669 1670class ManagedDiskParameters(SubResource): 1671 """The parameters of a managed disk. 1672 1673 :param id: Resource Id. 1674 :type id: str 1675 :param storage_account_type: Specifies the storage account type for the managed disk. NOTE: 1676 UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. Possible values 1677 include: "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS". 1678 :type storage_account_type: str or ~azure.mgmt.compute.v2018_10_01.models.StorageAccountTypes 1679 """ 1680 1681 _attribute_map = { 1682 'id': {'key': 'id', 'type': 'str'}, 1683 'storage_account_type': {'key': 'storageAccountType', 'type': 'str'}, 1684 } 1685 1686 def __init__( 1687 self, 1688 *, 1689 id: Optional[str] = None, 1690 storage_account_type: Optional[Union[str, "StorageAccountTypes"]] = None, 1691 **kwargs 1692 ): 1693 super(ManagedDiskParameters, self).__init__(id=id, **kwargs) 1694 self.storage_account_type = storage_account_type 1695 1696 1697class NetworkInterfaceReference(SubResource): 1698 """Describes a network interface reference. 1699 1700 :param id: Resource Id. 1701 :type id: str 1702 :param primary: Specifies the primary network interface in case the virtual machine has more 1703 than 1 network interface. 1704 :type primary: bool 1705 """ 1706 1707 _attribute_map = { 1708 'id': {'key': 'id', 'type': 'str'}, 1709 'primary': {'key': 'properties.primary', 'type': 'bool'}, 1710 } 1711 1712 def __init__( 1713 self, 1714 *, 1715 id: Optional[str] = None, 1716 primary: Optional[bool] = None, 1717 **kwargs 1718 ): 1719 super(NetworkInterfaceReference, self).__init__(id=id, **kwargs) 1720 self.primary = primary 1721 1722 1723class NetworkProfile(msrest.serialization.Model): 1724 """Specifies the network interfaces of the virtual machine. 1725 1726 :param network_interfaces: Specifies the list of resource Ids for the network interfaces 1727 associated with the virtual machine. 1728 :type network_interfaces: 1729 list[~azure.mgmt.compute.v2018_10_01.models.NetworkInterfaceReference] 1730 """ 1731 1732 _attribute_map = { 1733 'network_interfaces': {'key': 'networkInterfaces', 'type': '[NetworkInterfaceReference]'}, 1734 } 1735 1736 def __init__( 1737 self, 1738 *, 1739 network_interfaces: Optional[List["NetworkInterfaceReference"]] = None, 1740 **kwargs 1741 ): 1742 super(NetworkProfile, self).__init__(**kwargs) 1743 self.network_interfaces = network_interfaces 1744 1745 1746class OSDisk(msrest.serialization.Model): 1747 """Specifies information about the operating system disk used by the virtual machine. :code:`<br>`:code:`<br>` For more information about disks, see `About disks and VHDs for Azure virtual machines <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 1748 1749 All required parameters must be populated in order to send to Azure. 1750 1751 :param os_type: This property allows you to specify the type of the OS that is included in the 1752 disk if creating a VM from user-image or a specialized VHD. :code:`<br>`:code:`<br>` Possible 1753 values are: :code:`<br>`:code:`<br>` **Windows** :code:`<br>`:code:`<br>` **Linux**. Possible 1754 values include: "Windows", "Linux". 1755 :type os_type: str or ~azure.mgmt.compute.v2018_10_01.models.OperatingSystemTypes 1756 :param encryption_settings: Specifies the encryption settings for the OS Disk. 1757 :code:`<br>`:code:`<br>` Minimum api-version: 2015-06-15. 1758 :type encryption_settings: ~azure.mgmt.compute.v2018_10_01.models.DiskEncryptionSettings 1759 :param name: The disk name. 1760 :type name: str 1761 :param vhd: The virtual hard disk. 1762 :type vhd: ~azure.mgmt.compute.v2018_10_01.models.VirtualHardDisk 1763 :param image: The source user image virtual hard disk. The virtual hard disk will be copied 1764 before being attached to the virtual machine. If SourceImage is provided, the destination 1765 virtual hard drive must not exist. 1766 :type image: ~azure.mgmt.compute.v2018_10_01.models.VirtualHardDisk 1767 :param caching: Specifies the caching requirements. :code:`<br>`:code:`<br>` Possible values 1768 are: :code:`<br>`:code:`<br>` **None** :code:`<br>`:code:`<br>` **ReadOnly** 1769 :code:`<br>`:code:`<br>` **ReadWrite** :code:`<br>`:code:`<br>` Default: **None for Standard 1770 storage. ReadOnly for Premium storage**. Possible values include: "None", "ReadOnly", 1771 "ReadWrite". 1772 :type caching: str or ~azure.mgmt.compute.v2018_10_01.models.CachingTypes 1773 :param write_accelerator_enabled: Specifies whether writeAccelerator should be enabled or 1774 disabled on the disk. 1775 :type write_accelerator_enabled: bool 1776 :param diff_disk_settings: Specifies the ephemeral Disk Settings for the operating system disk 1777 used by the virtual machine. 1778 :type diff_disk_settings: ~azure.mgmt.compute.v2018_10_01.models.DiffDiskSettings 1779 :param create_option: Required. Specifies how the virtual machine should be 1780 created.:code:`<br>`:code:`<br>` Possible values are::code:`<br>`:code:`<br>` **Attach** \u2013 1781 This value is used when you are using a specialized disk to create the virtual 1782 machine.:code:`<br>`:code:`<br>` **FromImage** \u2013 This value is used when you are using an 1783 image to create the virtual machine. If you are using a platform image, you also use the 1784 imageReference element described above. If you are using a marketplace image, you also use the 1785 plan element previously described. Possible values include: "FromImage", "Empty", "Attach". 1786 :type create_option: str or ~azure.mgmt.compute.v2018_10_01.models.DiskCreateOptionTypes 1787 :param disk_size_gb: Specifies the size of an empty data disk in gigabytes. This element can be 1788 used to overwrite the size of the disk in a virtual machine image. :code:`<br>`:code:`<br>` 1789 This value cannot be larger than 1023 GB. 1790 :type disk_size_gb: int 1791 :param managed_disk: The managed disk parameters. 1792 :type managed_disk: ~azure.mgmt.compute.v2018_10_01.models.ManagedDiskParameters 1793 """ 1794 1795 _validation = { 1796 'create_option': {'required': True}, 1797 } 1798 1799 _attribute_map = { 1800 'os_type': {'key': 'osType', 'type': 'str'}, 1801 'encryption_settings': {'key': 'encryptionSettings', 'type': 'DiskEncryptionSettings'}, 1802 'name': {'key': 'name', 'type': 'str'}, 1803 'vhd': {'key': 'vhd', 'type': 'VirtualHardDisk'}, 1804 'image': {'key': 'image', 'type': 'VirtualHardDisk'}, 1805 'caching': {'key': 'caching', 'type': 'str'}, 1806 'write_accelerator_enabled': {'key': 'writeAcceleratorEnabled', 'type': 'bool'}, 1807 'diff_disk_settings': {'key': 'diffDiskSettings', 'type': 'DiffDiskSettings'}, 1808 'create_option': {'key': 'createOption', 'type': 'str'}, 1809 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, 1810 'managed_disk': {'key': 'managedDisk', 'type': 'ManagedDiskParameters'}, 1811 } 1812 1813 def __init__( 1814 self, 1815 *, 1816 create_option: Union[str, "DiskCreateOptionTypes"], 1817 os_type: Optional[Union[str, "OperatingSystemTypes"]] = None, 1818 encryption_settings: Optional["DiskEncryptionSettings"] = None, 1819 name: Optional[str] = None, 1820 vhd: Optional["VirtualHardDisk"] = None, 1821 image: Optional["VirtualHardDisk"] = None, 1822 caching: Optional[Union[str, "CachingTypes"]] = None, 1823 write_accelerator_enabled: Optional[bool] = None, 1824 diff_disk_settings: Optional["DiffDiskSettings"] = None, 1825 disk_size_gb: Optional[int] = None, 1826 managed_disk: Optional["ManagedDiskParameters"] = None, 1827 **kwargs 1828 ): 1829 super(OSDisk, self).__init__(**kwargs) 1830 self.os_type = os_type 1831 self.encryption_settings = encryption_settings 1832 self.name = name 1833 self.vhd = vhd 1834 self.image = image 1835 self.caching = caching 1836 self.write_accelerator_enabled = write_accelerator_enabled 1837 self.diff_disk_settings = diff_disk_settings 1838 self.create_option = create_option 1839 self.disk_size_gb = disk_size_gb 1840 self.managed_disk = managed_disk 1841 1842 1843class OSDiskImage(msrest.serialization.Model): 1844 """Contains the os disk image information. 1845 1846 All required parameters must be populated in order to send to Azure. 1847 1848 :param operating_system: Required. The operating system of the osDiskImage. Possible values 1849 include: "Windows", "Linux". 1850 :type operating_system: str or ~azure.mgmt.compute.v2018_10_01.models.OperatingSystemTypes 1851 """ 1852 1853 _validation = { 1854 'operating_system': {'required': True}, 1855 } 1856 1857 _attribute_map = { 1858 'operating_system': {'key': 'operatingSystem', 'type': 'str'}, 1859 } 1860 1861 def __init__( 1862 self, 1863 *, 1864 operating_system: Union[str, "OperatingSystemTypes"], 1865 **kwargs 1866 ): 1867 super(OSDiskImage, self).__init__(**kwargs) 1868 self.operating_system = operating_system 1869 1870 1871class OSProfile(msrest.serialization.Model): 1872 """Specifies the operating system settings for the virtual machine. 1873 1874 :param computer_name: Specifies the host OS name of the virtual machine. 1875 :code:`<br>`:code:`<br>` This name cannot be updated after the VM is created. 1876 :code:`<br>`:code:`<br>` **Max-length (Windows):** 15 characters :code:`<br>`:code:`<br>` 1877 **Max-length (Linux):** 64 characters. :code:`<br>`:code:`<br>` For naming conventions and 1878 restrictions see `Azure infrastructure services implementation guidelines 1879 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-infrastructure-subscription-accounts-guidelines?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#1-naming-conventions>`_. 1880 :type computer_name: str 1881 :param admin_username: Specifies the name of the administrator account. 1882 :code:`<br>`:code:`<br>` **Windows-only restriction:** Cannot end in "." 1883 :code:`<br>`:code:`<br>` **Disallowed values:** "administrator", "admin", "user", "user1", 1884 "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", 1885 "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", 1886 "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". 1887 :code:`<br>`:code:`<br>` **Minimum-length (Linux):** 1 character :code:`<br>`:code:`<br>` 1888 **Max-length (Linux):** 64 characters :code:`<br>`:code:`<br>` **Max-length (Windows):** 20 1889 characters :code:`<br>`:code:`<br>`:code:`<li>` For root access to the Linux VM, see `Using 1890 root privileges on Linux virtual machines in Azure 1891 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_\ 1892 :code:`<br>`:code:`<li>` For a list of built-in system users on Linux that should not be used 1893 in this field, see `Selecting User Names for Linux on Azure 1894 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_. 1895 :type admin_username: str 1896 :param admin_password: Specifies the password of the administrator account. 1897 :code:`<br>`:code:`<br>` **Minimum-length (Windows):** 8 characters :code:`<br>`:code:`<br>` 1898 **Minimum-length (Linux):** 6 characters :code:`<br>`:code:`<br>` **Max-length (Windows):** 123 1899 characters :code:`<br>`:code:`<br>` **Max-length (Linux):** 72 characters 1900 :code:`<br>`:code:`<br>` **Complexity requirements:** 3 out of 4 conditions below need to be 1901 fulfilled :code:`<br>` Has lower characters :code:`<br>`Has upper characters :code:`<br>` Has a 1902 digit :code:`<br>` Has a special character (Regex match [\W_]) :code:`<br>`:code:`<br>` 1903 **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", 1904 "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" :code:`<br>`:code:`<br>` For 1905 resetting the password, see `How to reset the Remote Desktop service or its login password in a 1906 Windows VM 1907 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-reset-rdp?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_ 1908 :code:`<br>`:code:`<br>` For resetting root password, see `Manage users, SSH, and check or 1909 repair disks on Azure Linux VMs using the VMAccess Extension 1910 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-vmaccess-extension?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#reset-root-password>`_. 1911 :type admin_password: str 1912 :param custom_data: Specifies a base-64 encoded string of custom data. The base-64 encoded 1913 string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum 1914 length of the binary array is 65535 bytes. :code:`<br>`:code:`<br>` For using cloud-init for 1915 your VM, see `Using cloud-init to customize a Linux VM during creation 1916 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_. 1917 :type custom_data: str 1918 :param windows_configuration: Specifies Windows operating system settings on the virtual 1919 machine. 1920 :type windows_configuration: ~azure.mgmt.compute.v2018_10_01.models.WindowsConfiguration 1921 :param linux_configuration: Specifies the Linux operating system settings on the virtual 1922 machine. :code:`<br>`:code:`<br>`For a list of supported Linux distributions, see `Linux on 1923 Azure-Endorsed Distributions 1924 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_ 1925 :code:`<br>`:code:`<br>` For running non-endorsed distributions, see `Information for 1926 Non-Endorsed Distributions 1927 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_. 1928 :type linux_configuration: ~azure.mgmt.compute.v2018_10_01.models.LinuxConfiguration 1929 :param secrets: Specifies set of certificates that should be installed onto the virtual 1930 machine. 1931 :type secrets: list[~azure.mgmt.compute.v2018_10_01.models.VaultSecretGroup] 1932 :param allow_extension_operations: Specifies whether extension operations should be allowed on 1933 the virtual machine. :code:`<br>`:code:`<br>`This may only be set to False when no extensions 1934 are present on the virtual machine. 1935 :type allow_extension_operations: bool 1936 """ 1937 1938 _attribute_map = { 1939 'computer_name': {'key': 'computerName', 'type': 'str'}, 1940 'admin_username': {'key': 'adminUsername', 'type': 'str'}, 1941 'admin_password': {'key': 'adminPassword', 'type': 'str'}, 1942 'custom_data': {'key': 'customData', 'type': 'str'}, 1943 'windows_configuration': {'key': 'windowsConfiguration', 'type': 'WindowsConfiguration'}, 1944 'linux_configuration': {'key': 'linuxConfiguration', 'type': 'LinuxConfiguration'}, 1945 'secrets': {'key': 'secrets', 'type': '[VaultSecretGroup]'}, 1946 'allow_extension_operations': {'key': 'allowExtensionOperations', 'type': 'bool'}, 1947 } 1948 1949 def __init__( 1950 self, 1951 *, 1952 computer_name: Optional[str] = None, 1953 admin_username: Optional[str] = None, 1954 admin_password: Optional[str] = None, 1955 custom_data: Optional[str] = None, 1956 windows_configuration: Optional["WindowsConfiguration"] = None, 1957 linux_configuration: Optional["LinuxConfiguration"] = None, 1958 secrets: Optional[List["VaultSecretGroup"]] = None, 1959 allow_extension_operations: Optional[bool] = None, 1960 **kwargs 1961 ): 1962 super(OSProfile, self).__init__(**kwargs) 1963 self.computer_name = computer_name 1964 self.admin_username = admin_username 1965 self.admin_password = admin_password 1966 self.custom_data = custom_data 1967 self.windows_configuration = windows_configuration 1968 self.linux_configuration = linux_configuration 1969 self.secrets = secrets 1970 self.allow_extension_operations = allow_extension_operations 1971 1972 1973class Plan(msrest.serialization.Model): 1974 """Specifies information about the marketplace image used to create the virtual machine. This element is only used for marketplace images. Before you can use a marketplace image from an API, you must enable the image for programmatic use. In the Azure portal, find the marketplace image that you want to use and then click **Want to deploy programmatically, Get Started ->**. Enter any required information and then click **Save**. 1975 1976 :param name: The plan ID. 1977 :type name: str 1978 :param publisher: The publisher ID. 1979 :type publisher: str 1980 :param product: Specifies the product of the image from the marketplace. This is the same value 1981 as Offer under the imageReference element. 1982 :type product: str 1983 :param promotion_code: The promotion code. 1984 :type promotion_code: str 1985 """ 1986 1987 _attribute_map = { 1988 'name': {'key': 'name', 'type': 'str'}, 1989 'publisher': {'key': 'publisher', 'type': 'str'}, 1990 'product': {'key': 'product', 'type': 'str'}, 1991 'promotion_code': {'key': 'promotionCode', 'type': 'str'}, 1992 } 1993 1994 def __init__( 1995 self, 1996 *, 1997 name: Optional[str] = None, 1998 publisher: Optional[str] = None, 1999 product: Optional[str] = None, 2000 promotion_code: Optional[str] = None, 2001 **kwargs 2002 ): 2003 super(Plan, self).__init__(**kwargs) 2004 self.name = name 2005 self.publisher = publisher 2006 self.product = product 2007 self.promotion_code = promotion_code 2008 2009 2010class ProximityPlacementGroup(Resource): 2011 """Specifies information about the proximity placement group. 2012 2013 Variables are only populated by the server, and will be ignored when sending a request. 2014 2015 All required parameters must be populated in order to send to Azure. 2016 2017 :ivar id: Resource Id. 2018 :vartype id: str 2019 :ivar name: Resource name. 2020 :vartype name: str 2021 :ivar type: Resource type. 2022 :vartype type: str 2023 :param location: Required. Resource location. 2024 :type location: str 2025 :param tags: A set of tags. Resource tags. 2026 :type tags: dict[str, str] 2027 :param proximity_placement_group_type: Specifies the type of the proximity placement group. 2028 :code:`<br>`:code:`<br>` Possible values are: :code:`<br>`:code:`<br>` **Standard** : Co-locate 2029 resources within an Azure region or Availability Zone. :code:`<br>`:code:`<br>` **Ultra** : For 2030 future use. Possible values include: "Standard", "Ultra". 2031 :type proximity_placement_group_type: str or 2032 ~azure.mgmt.compute.v2018_10_01.models.ProximityPlacementGroupType 2033 :ivar virtual_machines: A list of references to all virtual machines in the proximity placement 2034 group. 2035 :vartype virtual_machines: list[~azure.mgmt.compute.v2018_10_01.models.SubResource] 2036 :ivar virtual_machine_scale_sets: A list of references to all virtual machine scale sets in the 2037 proximity placement group. 2038 :vartype virtual_machine_scale_sets: list[~azure.mgmt.compute.v2018_10_01.models.SubResource] 2039 :ivar availability_sets: A list of references to all availability sets in the proximity 2040 placement group. 2041 :vartype availability_sets: list[~azure.mgmt.compute.v2018_10_01.models.SubResource] 2042 """ 2043 2044 _validation = { 2045 'id': {'readonly': True}, 2046 'name': {'readonly': True}, 2047 'type': {'readonly': True}, 2048 'location': {'required': True}, 2049 'virtual_machines': {'readonly': True}, 2050 'virtual_machine_scale_sets': {'readonly': True}, 2051 'availability_sets': {'readonly': True}, 2052 } 2053 2054 _attribute_map = { 2055 'id': {'key': 'id', 'type': 'str'}, 2056 'name': {'key': 'name', 'type': 'str'}, 2057 'type': {'key': 'type', 'type': 'str'}, 2058 'location': {'key': 'location', 'type': 'str'}, 2059 'tags': {'key': 'tags', 'type': '{str}'}, 2060 'proximity_placement_group_type': {'key': 'properties.proximityPlacementGroupType', 'type': 'str'}, 2061 'virtual_machines': {'key': 'properties.virtualMachines', 'type': '[SubResource]'}, 2062 'virtual_machine_scale_sets': {'key': 'properties.virtualMachineScaleSets', 'type': '[SubResource]'}, 2063 'availability_sets': {'key': 'properties.availabilitySets', 'type': '[SubResource]'}, 2064 } 2065 2066 def __init__( 2067 self, 2068 *, 2069 location: str, 2070 tags: Optional[Dict[str, str]] = None, 2071 proximity_placement_group_type: Optional[Union[str, "ProximityPlacementGroupType"]] = None, 2072 **kwargs 2073 ): 2074 super(ProximityPlacementGroup, self).__init__(location=location, tags=tags, **kwargs) 2075 self.proximity_placement_group_type = proximity_placement_group_type 2076 self.virtual_machines = None 2077 self.virtual_machine_scale_sets = None 2078 self.availability_sets = None 2079 2080 2081class ProximityPlacementGroupListResult(msrest.serialization.Model): 2082 """The List Proximity Placement Group operation response. 2083 2084 All required parameters must be populated in order to send to Azure. 2085 2086 :param value: Required. The list of proximity placement groups. 2087 :type value: list[~azure.mgmt.compute.v2018_10_01.models.ProximityPlacementGroup] 2088 :param next_link: The URI to fetch the next page of proximity placement groups. 2089 :type next_link: str 2090 """ 2091 2092 _validation = { 2093 'value': {'required': True}, 2094 } 2095 2096 _attribute_map = { 2097 'value': {'key': 'value', 'type': '[ProximityPlacementGroup]'}, 2098 'next_link': {'key': 'nextLink', 'type': 'str'}, 2099 } 2100 2101 def __init__( 2102 self, 2103 *, 2104 value: List["ProximityPlacementGroup"], 2105 next_link: Optional[str] = None, 2106 **kwargs 2107 ): 2108 super(ProximityPlacementGroupListResult, self).__init__(**kwargs) 2109 self.value = value 2110 self.next_link = next_link 2111 2112 2113class ProximityPlacementGroupUpdate(UpdateResource): 2114 """Specifies information about the proximity placement group. 2115 2116 :param tags: A set of tags. Resource tags. 2117 :type tags: dict[str, str] 2118 """ 2119 2120 _attribute_map = { 2121 'tags': {'key': 'tags', 'type': '{str}'}, 2122 } 2123 2124 def __init__( 2125 self, 2126 *, 2127 tags: Optional[Dict[str, str]] = None, 2128 **kwargs 2129 ): 2130 super(ProximityPlacementGroupUpdate, self).__init__(tags=tags, **kwargs) 2131 2132 2133class PurchasePlan(msrest.serialization.Model): 2134 """Used for establishing the purchase context of any 3rd Party artifact through MarketPlace. 2135 2136 All required parameters must be populated in order to send to Azure. 2137 2138 :param publisher: Required. The publisher ID. 2139 :type publisher: str 2140 :param name: Required. The plan ID. 2141 :type name: str 2142 :param product: Required. Specifies the product of the image from the marketplace. This is the 2143 same value as Offer under the imageReference element. 2144 :type product: str 2145 """ 2146 2147 _validation = { 2148 'publisher': {'required': True}, 2149 'name': {'required': True}, 2150 'product': {'required': True}, 2151 } 2152 2153 _attribute_map = { 2154 'publisher': {'key': 'publisher', 'type': 'str'}, 2155 'name': {'key': 'name', 'type': 'str'}, 2156 'product': {'key': 'product', 'type': 'str'}, 2157 } 2158 2159 def __init__( 2160 self, 2161 *, 2162 publisher: str, 2163 name: str, 2164 product: str, 2165 **kwargs 2166 ): 2167 super(PurchasePlan, self).__init__(**kwargs) 2168 self.publisher = publisher 2169 self.name = name 2170 self.product = product 2171 2172 2173class RecoveryWalkResponse(msrest.serialization.Model): 2174 """Response after calling a manual recovery walk. 2175 2176 Variables are only populated by the server, and will be ignored when sending a request. 2177 2178 :ivar walk_performed: Whether the recovery walk was performed. 2179 :vartype walk_performed: bool 2180 :ivar next_platform_update_domain: The next update domain that needs to be walked. Null means 2181 walk spanning all update domains has been completed. 2182 :vartype next_platform_update_domain: int 2183 """ 2184 2185 _validation = { 2186 'walk_performed': {'readonly': True}, 2187 'next_platform_update_domain': {'readonly': True}, 2188 } 2189 2190 _attribute_map = { 2191 'walk_performed': {'key': 'walkPerformed', 'type': 'bool'}, 2192 'next_platform_update_domain': {'key': 'nextPlatformUpdateDomain', 'type': 'int'}, 2193 } 2194 2195 def __init__( 2196 self, 2197 **kwargs 2198 ): 2199 super(RecoveryWalkResponse, self).__init__(**kwargs) 2200 self.walk_performed = None 2201 self.next_platform_update_domain = None 2202 2203 2204class RequestRateByIntervalInput(LogAnalyticsInputBase): 2205 """Api request input for LogAnalytics getRequestRateByInterval Api. 2206 2207 All required parameters must be populated in order to send to Azure. 2208 2209 :param blob_container_sas_uri: Required. SAS Uri of the logging blob container to which 2210 LogAnalytics Api writes output logs to. 2211 :type blob_container_sas_uri: str 2212 :param from_time: Required. From time of the query. 2213 :type from_time: ~datetime.datetime 2214 :param to_time: Required. To time of the query. 2215 :type to_time: ~datetime.datetime 2216 :param group_by_throttle_policy: Group query result by Throttle Policy applied. 2217 :type group_by_throttle_policy: bool 2218 :param group_by_operation_name: Group query result by Operation Name. 2219 :type group_by_operation_name: bool 2220 :param group_by_resource_name: Group query result by Resource Name. 2221 :type group_by_resource_name: bool 2222 :param interval_length: Required. Interval value in minutes used to create LogAnalytics call 2223 rate logs. Possible values include: "ThreeMins", "FiveMins", "ThirtyMins", "SixtyMins". 2224 :type interval_length: str or ~azure.mgmt.compute.v2018_10_01.models.IntervalInMins 2225 """ 2226 2227 _validation = { 2228 'blob_container_sas_uri': {'required': True}, 2229 'from_time': {'required': True}, 2230 'to_time': {'required': True}, 2231 'interval_length': {'required': True}, 2232 } 2233 2234 _attribute_map = { 2235 'blob_container_sas_uri': {'key': 'blobContainerSasUri', 'type': 'str'}, 2236 'from_time': {'key': 'fromTime', 'type': 'iso-8601'}, 2237 'to_time': {'key': 'toTime', 'type': 'iso-8601'}, 2238 'group_by_throttle_policy': {'key': 'groupByThrottlePolicy', 'type': 'bool'}, 2239 'group_by_operation_name': {'key': 'groupByOperationName', 'type': 'bool'}, 2240 'group_by_resource_name': {'key': 'groupByResourceName', 'type': 'bool'}, 2241 'interval_length': {'key': 'intervalLength', 'type': 'str'}, 2242 } 2243 2244 def __init__( 2245 self, 2246 *, 2247 blob_container_sas_uri: str, 2248 from_time: datetime.datetime, 2249 to_time: datetime.datetime, 2250 interval_length: Union[str, "IntervalInMins"], 2251 group_by_throttle_policy: Optional[bool] = None, 2252 group_by_operation_name: Optional[bool] = None, 2253 group_by_resource_name: Optional[bool] = None, 2254 **kwargs 2255 ): 2256 super(RequestRateByIntervalInput, self).__init__(blob_container_sas_uri=blob_container_sas_uri, from_time=from_time, to_time=to_time, group_by_throttle_policy=group_by_throttle_policy, group_by_operation_name=group_by_operation_name, group_by_resource_name=group_by_resource_name, **kwargs) 2257 self.interval_length = interval_length 2258 2259 2260class RollbackStatusInfo(msrest.serialization.Model): 2261 """Information about rollback on failed VM instances after a OS Upgrade operation. 2262 2263 Variables are only populated by the server, and will be ignored when sending a request. 2264 2265 :ivar successfully_rolledback_instance_count: The number of instances which have been 2266 successfully rolled back. 2267 :vartype successfully_rolledback_instance_count: int 2268 :ivar failed_rolledback_instance_count: The number of instances which failed to rollback. 2269 :vartype failed_rolledback_instance_count: int 2270 :ivar rollback_error: Error details if OS rollback failed. 2271 :vartype rollback_error: ~azure.mgmt.compute.v2018_10_01.models.ApiError 2272 """ 2273 2274 _validation = { 2275 'successfully_rolledback_instance_count': {'readonly': True}, 2276 'failed_rolledback_instance_count': {'readonly': True}, 2277 'rollback_error': {'readonly': True}, 2278 } 2279 2280 _attribute_map = { 2281 'successfully_rolledback_instance_count': {'key': 'successfullyRolledbackInstanceCount', 'type': 'int'}, 2282 'failed_rolledback_instance_count': {'key': 'failedRolledbackInstanceCount', 'type': 'int'}, 2283 'rollback_error': {'key': 'rollbackError', 'type': 'ApiError'}, 2284 } 2285 2286 def __init__( 2287 self, 2288 **kwargs 2289 ): 2290 super(RollbackStatusInfo, self).__init__(**kwargs) 2291 self.successfully_rolledback_instance_count = None 2292 self.failed_rolledback_instance_count = None 2293 self.rollback_error = None 2294 2295 2296class RollingUpgradePolicy(msrest.serialization.Model): 2297 """The configuration parameters used while performing a rolling upgrade. 2298 2299 :param max_batch_instance_percent: The maximum percent of total virtual machine instances that 2300 will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, 2301 unhealthy instances in previous or future batches can cause the percentage of instances in a 2302 batch to decrease to ensure higher reliability. The default value for this parameter is 20%. 2303 :type max_batch_instance_percent: int 2304 :param max_unhealthy_instance_percent: The maximum percentage of the total virtual machine 2305 instances in the scale set that can be simultaneously unhealthy, either as a result of being 2306 upgraded, or by being found in an unhealthy state by the virtual machine health checks before 2307 the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The 2308 default value for this parameter is 20%. 2309 :type max_unhealthy_instance_percent: int 2310 :param max_unhealthy_upgraded_instance_percent: The maximum percentage of upgraded virtual 2311 machine instances that can be found to be in an unhealthy state. This check will happen after 2312 each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The 2313 default value for this parameter is 20%. 2314 :type max_unhealthy_upgraded_instance_percent: int 2315 :param pause_time_between_batches: The wait time between completing the update for all virtual 2316 machines in one batch and starting the next batch. The time duration should be specified in ISO 2317 8601 format. The default value is 0 seconds (PT0S). 2318 :type pause_time_between_batches: str 2319 """ 2320 2321 _validation = { 2322 'max_batch_instance_percent': {'maximum': 100, 'minimum': 5}, 2323 'max_unhealthy_instance_percent': {'maximum': 100, 'minimum': 5}, 2324 'max_unhealthy_upgraded_instance_percent': {'maximum': 100, 'minimum': 0}, 2325 } 2326 2327 _attribute_map = { 2328 'max_batch_instance_percent': {'key': 'maxBatchInstancePercent', 'type': 'int'}, 2329 'max_unhealthy_instance_percent': {'key': 'maxUnhealthyInstancePercent', 'type': 'int'}, 2330 'max_unhealthy_upgraded_instance_percent': {'key': 'maxUnhealthyUpgradedInstancePercent', 'type': 'int'}, 2331 'pause_time_between_batches': {'key': 'pauseTimeBetweenBatches', 'type': 'str'}, 2332 } 2333 2334 def __init__( 2335 self, 2336 *, 2337 max_batch_instance_percent: Optional[int] = None, 2338 max_unhealthy_instance_percent: Optional[int] = None, 2339 max_unhealthy_upgraded_instance_percent: Optional[int] = None, 2340 pause_time_between_batches: Optional[str] = None, 2341 **kwargs 2342 ): 2343 super(RollingUpgradePolicy, self).__init__(**kwargs) 2344 self.max_batch_instance_percent = max_batch_instance_percent 2345 self.max_unhealthy_instance_percent = max_unhealthy_instance_percent 2346 self.max_unhealthy_upgraded_instance_percent = max_unhealthy_upgraded_instance_percent 2347 self.pause_time_between_batches = pause_time_between_batches 2348 2349 2350class RollingUpgradeProgressInfo(msrest.serialization.Model): 2351 """Information about the number of virtual machine instances in each upgrade state. 2352 2353 Variables are only populated by the server, and will be ignored when sending a request. 2354 2355 :ivar successful_instance_count: The number of instances that have been successfully upgraded. 2356 :vartype successful_instance_count: int 2357 :ivar failed_instance_count: The number of instances that have failed to be upgraded 2358 successfully. 2359 :vartype failed_instance_count: int 2360 :ivar in_progress_instance_count: The number of instances that are currently being upgraded. 2361 :vartype in_progress_instance_count: int 2362 :ivar pending_instance_count: The number of instances that have not yet begun to be upgraded. 2363 :vartype pending_instance_count: int 2364 """ 2365 2366 _validation = { 2367 'successful_instance_count': {'readonly': True}, 2368 'failed_instance_count': {'readonly': True}, 2369 'in_progress_instance_count': {'readonly': True}, 2370 'pending_instance_count': {'readonly': True}, 2371 } 2372 2373 _attribute_map = { 2374 'successful_instance_count': {'key': 'successfulInstanceCount', 'type': 'int'}, 2375 'failed_instance_count': {'key': 'failedInstanceCount', 'type': 'int'}, 2376 'in_progress_instance_count': {'key': 'inProgressInstanceCount', 'type': 'int'}, 2377 'pending_instance_count': {'key': 'pendingInstanceCount', 'type': 'int'}, 2378 } 2379 2380 def __init__( 2381 self, 2382 **kwargs 2383 ): 2384 super(RollingUpgradeProgressInfo, self).__init__(**kwargs) 2385 self.successful_instance_count = None 2386 self.failed_instance_count = None 2387 self.in_progress_instance_count = None 2388 self.pending_instance_count = None 2389 2390 2391class RollingUpgradeRunningStatus(msrest.serialization.Model): 2392 """Information about the current running state of the overall upgrade. 2393 2394 Variables are only populated by the server, and will be ignored when sending a request. 2395 2396 :ivar code: Code indicating the current status of the upgrade. Possible values include: 2397 "RollingForward", "Cancelled", "Completed", "Faulted". 2398 :vartype code: str or ~azure.mgmt.compute.v2018_10_01.models.RollingUpgradeStatusCode 2399 :ivar start_time: Start time of the upgrade. 2400 :vartype start_time: ~datetime.datetime 2401 :ivar last_action: The last action performed on the rolling upgrade. Possible values include: 2402 "Start", "Cancel". 2403 :vartype last_action: str or ~azure.mgmt.compute.v2018_10_01.models.RollingUpgradeActionType 2404 :ivar last_action_time: Last action time of the upgrade. 2405 :vartype last_action_time: ~datetime.datetime 2406 """ 2407 2408 _validation = { 2409 'code': {'readonly': True}, 2410 'start_time': {'readonly': True}, 2411 'last_action': {'readonly': True}, 2412 'last_action_time': {'readonly': True}, 2413 } 2414 2415 _attribute_map = { 2416 'code': {'key': 'code', 'type': 'str'}, 2417 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, 2418 'last_action': {'key': 'lastAction', 'type': 'str'}, 2419 'last_action_time': {'key': 'lastActionTime', 'type': 'iso-8601'}, 2420 } 2421 2422 def __init__( 2423 self, 2424 **kwargs 2425 ): 2426 super(RollingUpgradeRunningStatus, self).__init__(**kwargs) 2427 self.code = None 2428 self.start_time = None 2429 self.last_action = None 2430 self.last_action_time = None 2431 2432 2433class RollingUpgradeStatusInfo(Resource): 2434 """The status of the latest virtual machine scale set rolling upgrade. 2435 2436 Variables are only populated by the server, and will be ignored when sending a request. 2437 2438 All required parameters must be populated in order to send to Azure. 2439 2440 :ivar id: Resource Id. 2441 :vartype id: str 2442 :ivar name: Resource name. 2443 :vartype name: str 2444 :ivar type: Resource type. 2445 :vartype type: str 2446 :param location: Required. Resource location. 2447 :type location: str 2448 :param tags: A set of tags. Resource tags. 2449 :type tags: dict[str, str] 2450 :ivar policy: The rolling upgrade policies applied for this upgrade. 2451 :vartype policy: ~azure.mgmt.compute.v2018_10_01.models.RollingUpgradePolicy 2452 :ivar running_status: Information about the current running state of the overall upgrade. 2453 :vartype running_status: ~azure.mgmt.compute.v2018_10_01.models.RollingUpgradeRunningStatus 2454 :ivar progress: Information about the number of virtual machine instances in each upgrade 2455 state. 2456 :vartype progress: ~azure.mgmt.compute.v2018_10_01.models.RollingUpgradeProgressInfo 2457 :ivar error: Error details for this upgrade, if there are any. 2458 :vartype error: ~azure.mgmt.compute.v2018_10_01.models.ApiError 2459 """ 2460 2461 _validation = { 2462 'id': {'readonly': True}, 2463 'name': {'readonly': True}, 2464 'type': {'readonly': True}, 2465 'location': {'required': True}, 2466 'policy': {'readonly': True}, 2467 'running_status': {'readonly': True}, 2468 'progress': {'readonly': True}, 2469 'error': {'readonly': True}, 2470 } 2471 2472 _attribute_map = { 2473 'id': {'key': 'id', 'type': 'str'}, 2474 'name': {'key': 'name', 'type': 'str'}, 2475 'type': {'key': 'type', 'type': 'str'}, 2476 'location': {'key': 'location', 'type': 'str'}, 2477 'tags': {'key': 'tags', 'type': '{str}'}, 2478 'policy': {'key': 'properties.policy', 'type': 'RollingUpgradePolicy'}, 2479 'running_status': {'key': 'properties.runningStatus', 'type': 'RollingUpgradeRunningStatus'}, 2480 'progress': {'key': 'properties.progress', 'type': 'RollingUpgradeProgressInfo'}, 2481 'error': {'key': 'properties.error', 'type': 'ApiError'}, 2482 } 2483 2484 def __init__( 2485 self, 2486 *, 2487 location: str, 2488 tags: Optional[Dict[str, str]] = None, 2489 **kwargs 2490 ): 2491 super(RollingUpgradeStatusInfo, self).__init__(location=location, tags=tags, **kwargs) 2492 self.policy = None 2493 self.running_status = None 2494 self.progress = None 2495 self.error = None 2496 2497 2498class RunCommandDocumentBase(msrest.serialization.Model): 2499 """Describes the properties of a Run Command metadata. 2500 2501 All required parameters must be populated in order to send to Azure. 2502 2503 :param schema: Required. The VM run command schema. 2504 :type schema: str 2505 :param id: Required. The VM run command id. 2506 :type id: str 2507 :param os_type: Required. The Operating System type. Possible values include: "Windows", 2508 "Linux". 2509 :type os_type: str or ~azure.mgmt.compute.v2018_10_01.models.OperatingSystemTypes 2510 :param label: Required. The VM run command label. 2511 :type label: str 2512 :param description: Required. The VM run command description. 2513 :type description: str 2514 """ 2515 2516 _validation = { 2517 'schema': {'required': True}, 2518 'id': {'required': True}, 2519 'os_type': {'required': True}, 2520 'label': {'required': True}, 2521 'description': {'required': True}, 2522 } 2523 2524 _attribute_map = { 2525 'schema': {'key': '$schema', 'type': 'str'}, 2526 'id': {'key': 'id', 'type': 'str'}, 2527 'os_type': {'key': 'osType', 'type': 'str'}, 2528 'label': {'key': 'label', 'type': 'str'}, 2529 'description': {'key': 'description', 'type': 'str'}, 2530 } 2531 2532 def __init__( 2533 self, 2534 *, 2535 schema: str, 2536 id: str, 2537 os_type: Union[str, "OperatingSystemTypes"], 2538 label: str, 2539 description: str, 2540 **kwargs 2541 ): 2542 super(RunCommandDocumentBase, self).__init__(**kwargs) 2543 self.schema = schema 2544 self.id = id 2545 self.os_type = os_type 2546 self.label = label 2547 self.description = description 2548 2549 2550class RunCommandDocument(RunCommandDocumentBase): 2551 """Describes the properties of a Run Command. 2552 2553 All required parameters must be populated in order to send to Azure. 2554 2555 :param schema: Required. The VM run command schema. 2556 :type schema: str 2557 :param id: Required. The VM run command id. 2558 :type id: str 2559 :param os_type: Required. The Operating System type. Possible values include: "Windows", 2560 "Linux". 2561 :type os_type: str or ~azure.mgmt.compute.v2018_10_01.models.OperatingSystemTypes 2562 :param label: Required. The VM run command label. 2563 :type label: str 2564 :param description: Required. The VM run command description. 2565 :type description: str 2566 :param script: Required. The script to be executed. 2567 :type script: list[str] 2568 :param parameters: The parameters used by the script. 2569 :type parameters: list[~azure.mgmt.compute.v2018_10_01.models.RunCommandParameterDefinition] 2570 """ 2571 2572 _validation = { 2573 'schema': {'required': True}, 2574 'id': {'required': True}, 2575 'os_type': {'required': True}, 2576 'label': {'required': True}, 2577 'description': {'required': True}, 2578 'script': {'required': True}, 2579 } 2580 2581 _attribute_map = { 2582 'schema': {'key': '$schema', 'type': 'str'}, 2583 'id': {'key': 'id', 'type': 'str'}, 2584 'os_type': {'key': 'osType', 'type': 'str'}, 2585 'label': {'key': 'label', 'type': 'str'}, 2586 'description': {'key': 'description', 'type': 'str'}, 2587 'script': {'key': 'script', 'type': '[str]'}, 2588 'parameters': {'key': 'parameters', 'type': '[RunCommandParameterDefinition]'}, 2589 } 2590 2591 def __init__( 2592 self, 2593 *, 2594 schema: str, 2595 id: str, 2596 os_type: Union[str, "OperatingSystemTypes"], 2597 label: str, 2598 description: str, 2599 script: List[str], 2600 parameters: Optional[List["RunCommandParameterDefinition"]] = None, 2601 **kwargs 2602 ): 2603 super(RunCommandDocument, self).__init__(schema=schema, id=id, os_type=os_type, label=label, description=description, **kwargs) 2604 self.script = script 2605 self.parameters = parameters 2606 2607 2608class RunCommandInput(msrest.serialization.Model): 2609 """Capture Virtual Machine parameters. 2610 2611 All required parameters must be populated in order to send to Azure. 2612 2613 :param command_id: Required. The run command id. 2614 :type command_id: str 2615 :param script: Optional. The script to be executed. When this value is given, the given script 2616 will override the default script of the command. 2617 :type script: list[str] 2618 :param parameters: The run command parameters. 2619 :type parameters: list[~azure.mgmt.compute.v2018_10_01.models.RunCommandInputParameter] 2620 """ 2621 2622 _validation = { 2623 'command_id': {'required': True}, 2624 } 2625 2626 _attribute_map = { 2627 'command_id': {'key': 'commandId', 'type': 'str'}, 2628 'script': {'key': 'script', 'type': '[str]'}, 2629 'parameters': {'key': 'parameters', 'type': '[RunCommandInputParameter]'}, 2630 } 2631 2632 def __init__( 2633 self, 2634 *, 2635 command_id: str, 2636 script: Optional[List[str]] = None, 2637 parameters: Optional[List["RunCommandInputParameter"]] = None, 2638 **kwargs 2639 ): 2640 super(RunCommandInput, self).__init__(**kwargs) 2641 self.command_id = command_id 2642 self.script = script 2643 self.parameters = parameters 2644 2645 2646class RunCommandInputParameter(msrest.serialization.Model): 2647 """Describes the properties of a run command parameter. 2648 2649 All required parameters must be populated in order to send to Azure. 2650 2651 :param name: Required. The run command parameter name. 2652 :type name: str 2653 :param value: Required. The run command parameter value. 2654 :type value: str 2655 """ 2656 2657 _validation = { 2658 'name': {'required': True}, 2659 'value': {'required': True}, 2660 } 2661 2662 _attribute_map = { 2663 'name': {'key': 'name', 'type': 'str'}, 2664 'value': {'key': 'value', 'type': 'str'}, 2665 } 2666 2667 def __init__( 2668 self, 2669 *, 2670 name: str, 2671 value: str, 2672 **kwargs 2673 ): 2674 super(RunCommandInputParameter, self).__init__(**kwargs) 2675 self.name = name 2676 self.value = value 2677 2678 2679class RunCommandListResult(msrest.serialization.Model): 2680 """The List Virtual Machine operation response. 2681 2682 All required parameters must be populated in order to send to Azure. 2683 2684 :param value: Required. The list of virtual machine run commands. 2685 :type value: list[~azure.mgmt.compute.v2018_10_01.models.RunCommandDocumentBase] 2686 :param next_link: The uri to fetch the next page of run commands. Call ListNext() with this to 2687 fetch the next page of run commands. 2688 :type next_link: str 2689 """ 2690 2691 _validation = { 2692 'value': {'required': True}, 2693 } 2694 2695 _attribute_map = { 2696 'value': {'key': 'value', 'type': '[RunCommandDocumentBase]'}, 2697 'next_link': {'key': 'nextLink', 'type': 'str'}, 2698 } 2699 2700 def __init__( 2701 self, 2702 *, 2703 value: List["RunCommandDocumentBase"], 2704 next_link: Optional[str] = None, 2705 **kwargs 2706 ): 2707 super(RunCommandListResult, self).__init__(**kwargs) 2708 self.value = value 2709 self.next_link = next_link 2710 2711 2712class RunCommandParameterDefinition(msrest.serialization.Model): 2713 """Describes the properties of a run command parameter. 2714 2715 All required parameters must be populated in order to send to Azure. 2716 2717 :param name: Required. The run command parameter name. 2718 :type name: str 2719 :param type: Required. The run command parameter type. 2720 :type type: str 2721 :param default_value: The run command parameter default value. 2722 :type default_value: str 2723 :param required: The run command parameter required. 2724 :type required: bool 2725 """ 2726 2727 _validation = { 2728 'name': {'required': True}, 2729 'type': {'required': True}, 2730 } 2731 2732 _attribute_map = { 2733 'name': {'key': 'name', 'type': 'str'}, 2734 'type': {'key': 'type', 'type': 'str'}, 2735 'default_value': {'key': 'defaultValue', 'type': 'str'}, 2736 'required': {'key': 'required', 'type': 'bool'}, 2737 } 2738 2739 def __init__( 2740 self, 2741 *, 2742 name: str, 2743 type: str, 2744 default_value: Optional[str] = None, 2745 required: Optional[bool] = False, 2746 **kwargs 2747 ): 2748 super(RunCommandParameterDefinition, self).__init__(**kwargs) 2749 self.name = name 2750 self.type = type 2751 self.default_value = default_value 2752 self.required = required 2753 2754 2755class RunCommandResult(msrest.serialization.Model): 2756 """RunCommandResult. 2757 2758 :param value: Run command operation response. 2759 :type value: list[~azure.mgmt.compute.v2018_10_01.models.InstanceViewStatus] 2760 """ 2761 2762 _attribute_map = { 2763 'value': {'key': 'value', 'type': '[InstanceViewStatus]'}, 2764 } 2765 2766 def __init__( 2767 self, 2768 *, 2769 value: Optional[List["InstanceViewStatus"]] = None, 2770 **kwargs 2771 ): 2772 super(RunCommandResult, self).__init__(**kwargs) 2773 self.value = value 2774 2775 2776class Sku(msrest.serialization.Model): 2777 """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 the VMs in the scale set before you modify the SKU name. 2778 2779 :param name: The sku name. 2780 :type name: str 2781 :param tier: Specifies the tier of virtual machines in a scale set.:code:`<br />`:code:`<br />` 2782 Possible Values::code:`<br />`:code:`<br />` **Standard**\ :code:`<br />`:code:`<br />` 2783 **Basic**. 2784 :type tier: str 2785 :param capacity: Specifies the number of virtual machines in the scale set. 2786 :type capacity: long 2787 """ 2788 2789 _attribute_map = { 2790 'name': {'key': 'name', 'type': 'str'}, 2791 'tier': {'key': 'tier', 'type': 'str'}, 2792 'capacity': {'key': 'capacity', 'type': 'long'}, 2793 } 2794 2795 def __init__( 2796 self, 2797 *, 2798 name: Optional[str] = None, 2799 tier: Optional[str] = None, 2800 capacity: Optional[int] = None, 2801 **kwargs 2802 ): 2803 super(Sku, self).__init__(**kwargs) 2804 self.name = name 2805 self.tier = tier 2806 self.capacity = capacity 2807 2808 2809class SshConfiguration(msrest.serialization.Model): 2810 """SSH configuration for Linux based VMs running on Azure. 2811 2812 :param public_keys: The list of SSH public keys used to authenticate with linux based VMs. 2813 :type public_keys: list[~azure.mgmt.compute.v2018_10_01.models.SshPublicKey] 2814 """ 2815 2816 _attribute_map = { 2817 'public_keys': {'key': 'publicKeys', 'type': '[SshPublicKey]'}, 2818 } 2819 2820 def __init__( 2821 self, 2822 *, 2823 public_keys: Optional[List["SshPublicKey"]] = None, 2824 **kwargs 2825 ): 2826 super(SshConfiguration, self).__init__(**kwargs) 2827 self.public_keys = public_keys 2828 2829 2830class SshPublicKey(msrest.serialization.Model): 2831 """Contains information about SSH certificate public key and the path on the Linux VM where the public key is placed. 2832 2833 :param path: Specifies the full path on the created VM where ssh public key is stored. If the 2834 file already exists, the specified key is appended to the file. Example: 2835 /home/user/.ssh/authorized_keys. 2836 :type path: str 2837 :param key_data: SSH public key certificate used to authenticate with the VM through ssh. The 2838 key needs to be at least 2048-bit and in ssh-rsa format. :code:`<br>`:code:`<br>` For creating 2839 ssh keys, see `Create SSH keys on Linux and Mac for Linux VMs in Azure 2840 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-mac-create-ssh-keys?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_. 2841 :type key_data: str 2842 """ 2843 2844 _attribute_map = { 2845 'path': {'key': 'path', 'type': 'str'}, 2846 'key_data': {'key': 'keyData', 'type': 'str'}, 2847 } 2848 2849 def __init__( 2850 self, 2851 *, 2852 path: Optional[str] = None, 2853 key_data: Optional[str] = None, 2854 **kwargs 2855 ): 2856 super(SshPublicKey, self).__init__(**kwargs) 2857 self.path = path 2858 self.key_data = key_data 2859 2860 2861class StorageProfile(msrest.serialization.Model): 2862 """Specifies the storage settings for the virtual machine disks. 2863 2864 :param image_reference: Specifies information about the image to use. You can specify 2865 information about platform images, marketplace images, or virtual machine images. This element 2866 is required when you want to use a platform image, marketplace image, or virtual machine image, 2867 but is not used in other creation operations. 2868 :type image_reference: ~azure.mgmt.compute.v2018_10_01.models.ImageReference 2869 :param os_disk: Specifies information about the operating system disk used by the virtual 2870 machine. :code:`<br>`:code:`<br>` For more information about disks, see `About disks and VHDs 2871 for Azure virtual machines 2872 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 2873 :type os_disk: ~azure.mgmt.compute.v2018_10_01.models.OSDisk 2874 :param data_disks: Specifies the parameters that are used to add a data disk to a virtual 2875 machine. :code:`<br>`:code:`<br>` For more information about disks, see `About disks and VHDs 2876 for Azure virtual machines 2877 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 2878 :type data_disks: list[~azure.mgmt.compute.v2018_10_01.models.DataDisk] 2879 """ 2880 2881 _attribute_map = { 2882 'image_reference': {'key': 'imageReference', 'type': 'ImageReference'}, 2883 'os_disk': {'key': 'osDisk', 'type': 'OSDisk'}, 2884 'data_disks': {'key': 'dataDisks', 'type': '[DataDisk]'}, 2885 } 2886 2887 def __init__( 2888 self, 2889 *, 2890 image_reference: Optional["ImageReference"] = None, 2891 os_disk: Optional["OSDisk"] = None, 2892 data_disks: Optional[List["DataDisk"]] = None, 2893 **kwargs 2894 ): 2895 super(StorageProfile, self).__init__(**kwargs) 2896 self.image_reference = image_reference 2897 self.os_disk = os_disk 2898 self.data_disks = data_disks 2899 2900 2901class SubResourceReadOnly(msrest.serialization.Model): 2902 """SubResourceReadOnly. 2903 2904 Variables are only populated by the server, and will be ignored when sending a request. 2905 2906 :ivar id: Resource Id. 2907 :vartype id: str 2908 """ 2909 2910 _validation = { 2911 'id': {'readonly': True}, 2912 } 2913 2914 _attribute_map = { 2915 'id': {'key': 'id', 'type': 'str'}, 2916 } 2917 2918 def __init__( 2919 self, 2920 **kwargs 2921 ): 2922 super(SubResourceReadOnly, self).__init__(**kwargs) 2923 self.id = None 2924 2925 2926class ThrottledRequestsInput(LogAnalyticsInputBase): 2927 """Api request input for LogAnalytics getThrottledRequests Api. 2928 2929 All required parameters must be populated in order to send to Azure. 2930 2931 :param blob_container_sas_uri: Required. SAS Uri of the logging blob container to which 2932 LogAnalytics Api writes output logs to. 2933 :type blob_container_sas_uri: str 2934 :param from_time: Required. From time of the query. 2935 :type from_time: ~datetime.datetime 2936 :param to_time: Required. To time of the query. 2937 :type to_time: ~datetime.datetime 2938 :param group_by_throttle_policy: Group query result by Throttle Policy applied. 2939 :type group_by_throttle_policy: bool 2940 :param group_by_operation_name: Group query result by Operation Name. 2941 :type group_by_operation_name: bool 2942 :param group_by_resource_name: Group query result by Resource Name. 2943 :type group_by_resource_name: bool 2944 """ 2945 2946 _validation = { 2947 'blob_container_sas_uri': {'required': True}, 2948 'from_time': {'required': True}, 2949 'to_time': {'required': True}, 2950 } 2951 2952 _attribute_map = { 2953 'blob_container_sas_uri': {'key': 'blobContainerSasUri', 'type': 'str'}, 2954 'from_time': {'key': 'fromTime', 'type': 'iso-8601'}, 2955 'to_time': {'key': 'toTime', 'type': 'iso-8601'}, 2956 'group_by_throttle_policy': {'key': 'groupByThrottlePolicy', 'type': 'bool'}, 2957 'group_by_operation_name': {'key': 'groupByOperationName', 'type': 'bool'}, 2958 'group_by_resource_name': {'key': 'groupByResourceName', 'type': 'bool'}, 2959 } 2960 2961 def __init__( 2962 self, 2963 *, 2964 blob_container_sas_uri: str, 2965 from_time: datetime.datetime, 2966 to_time: datetime.datetime, 2967 group_by_throttle_policy: Optional[bool] = None, 2968 group_by_operation_name: Optional[bool] = None, 2969 group_by_resource_name: Optional[bool] = None, 2970 **kwargs 2971 ): 2972 super(ThrottledRequestsInput, self).__init__(blob_container_sas_uri=blob_container_sas_uri, from_time=from_time, to_time=to_time, group_by_throttle_policy=group_by_throttle_policy, group_by_operation_name=group_by_operation_name, group_by_resource_name=group_by_resource_name, **kwargs) 2973 2974 2975class UpgradeOperationHistoricalStatusInfo(msrest.serialization.Model): 2976 """Virtual Machine Scale Set OS Upgrade History operation response. 2977 2978 Variables are only populated by the server, and will be ignored when sending a request. 2979 2980 :ivar properties: Information about the properties of the upgrade operation. 2981 :vartype properties: 2982 ~azure.mgmt.compute.v2018_10_01.models.UpgradeOperationHistoricalStatusInfoProperties 2983 :ivar type: Resource type. 2984 :vartype type: str 2985 :ivar location: Resource location. 2986 :vartype location: str 2987 """ 2988 2989 _validation = { 2990 'properties': {'readonly': True}, 2991 'type': {'readonly': True}, 2992 'location': {'readonly': True}, 2993 } 2994 2995 _attribute_map = { 2996 'properties': {'key': 'properties', 'type': 'UpgradeOperationHistoricalStatusInfoProperties'}, 2997 'type': {'key': 'type', 'type': 'str'}, 2998 'location': {'key': 'location', 'type': 'str'}, 2999 } 3000 3001 def __init__( 3002 self, 3003 **kwargs 3004 ): 3005 super(UpgradeOperationHistoricalStatusInfo, self).__init__(**kwargs) 3006 self.properties = None 3007 self.type = None 3008 self.location = None 3009 3010 3011class UpgradeOperationHistoricalStatusInfoProperties(msrest.serialization.Model): 3012 """Describes each OS upgrade on the Virtual Machine Scale Set. 3013 3014 Variables are only populated by the server, and will be ignored when sending a request. 3015 3016 :ivar running_status: Information about the overall status of the upgrade operation. 3017 :vartype running_status: ~azure.mgmt.compute.v2018_10_01.models.UpgradeOperationHistoryStatus 3018 :ivar progress: Counts of the VMs in each state. 3019 :vartype progress: ~azure.mgmt.compute.v2018_10_01.models.RollingUpgradeProgressInfo 3020 :ivar error: Error Details for this upgrade if there are any. 3021 :vartype error: ~azure.mgmt.compute.v2018_10_01.models.ApiError 3022 :ivar started_by: Invoker of the Upgrade Operation. Possible values include: "Unknown", "User", 3023 "Platform". 3024 :vartype started_by: str or ~azure.mgmt.compute.v2018_10_01.models.UpgradeOperationInvoker 3025 :ivar target_image_reference: Image Reference details. 3026 :vartype target_image_reference: ~azure.mgmt.compute.v2018_10_01.models.ImageReference 3027 :ivar rollback_info: Information about OS rollback if performed. 3028 :vartype rollback_info: ~azure.mgmt.compute.v2018_10_01.models.RollbackStatusInfo 3029 """ 3030 3031 _validation = { 3032 'running_status': {'readonly': True}, 3033 'progress': {'readonly': True}, 3034 'error': {'readonly': True}, 3035 'started_by': {'readonly': True}, 3036 'target_image_reference': {'readonly': True}, 3037 'rollback_info': {'readonly': True}, 3038 } 3039 3040 _attribute_map = { 3041 'running_status': {'key': 'runningStatus', 'type': 'UpgradeOperationHistoryStatus'}, 3042 'progress': {'key': 'progress', 'type': 'RollingUpgradeProgressInfo'}, 3043 'error': {'key': 'error', 'type': 'ApiError'}, 3044 'started_by': {'key': 'startedBy', 'type': 'str'}, 3045 'target_image_reference': {'key': 'targetImageReference', 'type': 'ImageReference'}, 3046 'rollback_info': {'key': 'rollbackInfo', 'type': 'RollbackStatusInfo'}, 3047 } 3048 3049 def __init__( 3050 self, 3051 **kwargs 3052 ): 3053 super(UpgradeOperationHistoricalStatusInfoProperties, self).__init__(**kwargs) 3054 self.running_status = None 3055 self.progress = None 3056 self.error = None 3057 self.started_by = None 3058 self.target_image_reference = None 3059 self.rollback_info = None 3060 3061 3062class UpgradeOperationHistoryStatus(msrest.serialization.Model): 3063 """Information about the current running state of the overall upgrade. 3064 3065 Variables are only populated by the server, and will be ignored when sending a request. 3066 3067 :ivar code: Code indicating the current status of the upgrade. Possible values include: 3068 "RollingForward", "Cancelled", "Completed", "Faulted". 3069 :vartype code: str or ~azure.mgmt.compute.v2018_10_01.models.UpgradeState 3070 :ivar start_time: Start time of the upgrade. 3071 :vartype start_time: ~datetime.datetime 3072 :ivar end_time: End time of the upgrade. 3073 :vartype end_time: ~datetime.datetime 3074 """ 3075 3076 _validation = { 3077 'code': {'readonly': True}, 3078 'start_time': {'readonly': True}, 3079 'end_time': {'readonly': True}, 3080 } 3081 3082 _attribute_map = { 3083 'code': {'key': 'code', 'type': 'str'}, 3084 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, 3085 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, 3086 } 3087 3088 def __init__( 3089 self, 3090 **kwargs 3091 ): 3092 super(UpgradeOperationHistoryStatus, self).__init__(**kwargs) 3093 self.code = None 3094 self.start_time = None 3095 self.end_time = None 3096 3097 3098class UpgradePolicy(msrest.serialization.Model): 3099 """Describes an upgrade policy - automatic, manual, or rolling. 3100 3101 :param mode: Specifies the mode of an upgrade to virtual machines in the scale set.:code:`<br 3102 />`:code:`<br />` Possible values are::code:`<br />`:code:`<br />` **Manual** - You control 3103 the application of updates to virtual machines in the scale set. You do this by using the 3104 manualUpgrade action.:code:`<br />`:code:`<br />` **Automatic** - All virtual machines in the 3105 scale set are automatically updated at the same time. Possible values include: "Automatic", 3106 "Manual", "Rolling". 3107 :type mode: str or ~azure.mgmt.compute.v2018_10_01.models.UpgradeMode 3108 :param rolling_upgrade_policy: The configuration parameters used while performing a rolling 3109 upgrade. 3110 :type rolling_upgrade_policy: ~azure.mgmt.compute.v2018_10_01.models.RollingUpgradePolicy 3111 :param automatic_os_upgrade_policy: Configuration parameters used for performing automatic OS 3112 Upgrade. 3113 :type automatic_os_upgrade_policy: 3114 ~azure.mgmt.compute.v2018_10_01.models.AutomaticOSUpgradePolicy 3115 """ 3116 3117 _attribute_map = { 3118 'mode': {'key': 'mode', 'type': 'str'}, 3119 'rolling_upgrade_policy': {'key': 'rollingUpgradePolicy', 'type': 'RollingUpgradePolicy'}, 3120 'automatic_os_upgrade_policy': {'key': 'automaticOSUpgradePolicy', 'type': 'AutomaticOSUpgradePolicy'}, 3121 } 3122 3123 def __init__( 3124 self, 3125 *, 3126 mode: Optional[Union[str, "UpgradeMode"]] = None, 3127 rolling_upgrade_policy: Optional["RollingUpgradePolicy"] = None, 3128 automatic_os_upgrade_policy: Optional["AutomaticOSUpgradePolicy"] = None, 3129 **kwargs 3130 ): 3131 super(UpgradePolicy, self).__init__(**kwargs) 3132 self.mode = mode 3133 self.rolling_upgrade_policy = rolling_upgrade_policy 3134 self.automatic_os_upgrade_policy = automatic_os_upgrade_policy 3135 3136 3137class Usage(msrest.serialization.Model): 3138 """Describes Compute Resource Usage. 3139 3140 Variables are only populated by the server, and will be ignored when sending a request. 3141 3142 All required parameters must be populated in order to send to Azure. 3143 3144 :ivar unit: An enum describing the unit of usage measurement. Has constant value: "Count". 3145 :vartype unit: str 3146 :param current_value: Required. The current usage of the resource. 3147 :type current_value: int 3148 :param limit: Required. The maximum permitted usage of the resource. 3149 :type limit: long 3150 :param name: Required. The name of the type of usage. 3151 :type name: ~azure.mgmt.compute.v2018_10_01.models.UsageName 3152 """ 3153 3154 _validation = { 3155 'unit': {'required': True, 'constant': True}, 3156 'current_value': {'required': True}, 3157 'limit': {'required': True}, 3158 'name': {'required': True}, 3159 } 3160 3161 _attribute_map = { 3162 'unit': {'key': 'unit', 'type': 'str'}, 3163 'current_value': {'key': 'currentValue', 'type': 'int'}, 3164 'limit': {'key': 'limit', 'type': 'long'}, 3165 'name': {'key': 'name', 'type': 'UsageName'}, 3166 } 3167 3168 unit = "Count" 3169 3170 def __init__( 3171 self, 3172 *, 3173 current_value: int, 3174 limit: int, 3175 name: "UsageName", 3176 **kwargs 3177 ): 3178 super(Usage, self).__init__(**kwargs) 3179 self.current_value = current_value 3180 self.limit = limit 3181 self.name = name 3182 3183 3184class UsageName(msrest.serialization.Model): 3185 """The Usage Names. 3186 3187 :param value: The name of the resource. 3188 :type value: str 3189 :param localized_value: The localized name of the resource. 3190 :type localized_value: str 3191 """ 3192 3193 _attribute_map = { 3194 'value': {'key': 'value', 'type': 'str'}, 3195 'localized_value': {'key': 'localizedValue', 'type': 'str'}, 3196 } 3197 3198 def __init__( 3199 self, 3200 *, 3201 value: Optional[str] = None, 3202 localized_value: Optional[str] = None, 3203 **kwargs 3204 ): 3205 super(UsageName, self).__init__(**kwargs) 3206 self.value = value 3207 self.localized_value = localized_value 3208 3209 3210class UserAssignedIdentitiesValue(msrest.serialization.Model): 3211 """UserAssignedIdentitiesValue. 3212 3213 Variables are only populated by the server, and will be ignored when sending a request. 3214 3215 :ivar principal_id: The principal id of user assigned identity. 3216 :vartype principal_id: str 3217 :ivar client_id: The client id of user assigned identity. 3218 :vartype client_id: str 3219 """ 3220 3221 _validation = { 3222 'principal_id': {'readonly': True}, 3223 'client_id': {'readonly': True}, 3224 } 3225 3226 _attribute_map = { 3227 'principal_id': {'key': 'principalId', 'type': 'str'}, 3228 'client_id': {'key': 'clientId', 'type': 'str'}, 3229 } 3230 3231 def __init__( 3232 self, 3233 **kwargs 3234 ): 3235 super(UserAssignedIdentitiesValue, self).__init__(**kwargs) 3236 self.principal_id = None 3237 self.client_id = None 3238 3239 3240class VaultCertificate(msrest.serialization.Model): 3241 """Describes a single certificate reference in a Key Vault, and where the certificate should reside on the VM. 3242 3243 :param certificate_url: This is the URL of a certificate that has been uploaded to Key Vault as 3244 a secret. For adding a secret to the Key Vault, see `Add a key or secret to the key vault 3245 <https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add>`_. In this case, your 3246 certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded 3247 in UTF-8: :code:`<br>`:code:`<br>` {:code:`<br>` 3248 "data":":code:`<Base64-encoded-certificate>`",:code:`<br>` "dataType":"pfx",:code:`<br>` 3249 "password":":code:`<pfx-file-password>`":code:`<br>`}. 3250 :type certificate_url: str 3251 :param certificate_store: For Windows VMs, specifies the certificate store on the Virtual 3252 Machine to which the certificate should be added. The specified certificate store is implicitly 3253 in the LocalMachine account. :code:`<br>`:code:`<br>`For Linux VMs, the certificate file is 3254 placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt 3255 for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of 3256 these files are .pem formatted. 3257 :type certificate_store: str 3258 """ 3259 3260 _attribute_map = { 3261 'certificate_url': {'key': 'certificateUrl', 'type': 'str'}, 3262 'certificate_store': {'key': 'certificateStore', 'type': 'str'}, 3263 } 3264 3265 def __init__( 3266 self, 3267 *, 3268 certificate_url: Optional[str] = None, 3269 certificate_store: Optional[str] = None, 3270 **kwargs 3271 ): 3272 super(VaultCertificate, self).__init__(**kwargs) 3273 self.certificate_url = certificate_url 3274 self.certificate_store = certificate_store 3275 3276 3277class VaultSecretGroup(msrest.serialization.Model): 3278 """Describes a set of certificates which are all in the same Key Vault. 3279 3280 :param source_vault: The relative URL of the Key Vault containing all of the certificates in 3281 VaultCertificates. 3282 :type source_vault: ~azure.mgmt.compute.v2018_10_01.models.SubResource 3283 :param vault_certificates: The list of key vault references in SourceVault which contain 3284 certificates. 3285 :type vault_certificates: list[~azure.mgmt.compute.v2018_10_01.models.VaultCertificate] 3286 """ 3287 3288 _attribute_map = { 3289 'source_vault': {'key': 'sourceVault', 'type': 'SubResource'}, 3290 'vault_certificates': {'key': 'vaultCertificates', 'type': '[VaultCertificate]'}, 3291 } 3292 3293 def __init__( 3294 self, 3295 *, 3296 source_vault: Optional["SubResource"] = None, 3297 vault_certificates: Optional[List["VaultCertificate"]] = None, 3298 **kwargs 3299 ): 3300 super(VaultSecretGroup, self).__init__(**kwargs) 3301 self.source_vault = source_vault 3302 self.vault_certificates = vault_certificates 3303 3304 3305class VirtualHardDisk(msrest.serialization.Model): 3306 """Describes the uri of a disk. 3307 3308 :param uri: Specifies the virtual hard disk's uri. 3309 :type uri: str 3310 """ 3311 3312 _attribute_map = { 3313 'uri': {'key': 'uri', 'type': 'str'}, 3314 } 3315 3316 def __init__( 3317 self, 3318 *, 3319 uri: Optional[str] = None, 3320 **kwargs 3321 ): 3322 super(VirtualHardDisk, self).__init__(**kwargs) 3323 self.uri = uri 3324 3325 3326class VirtualMachine(Resource): 3327 """Describes a Virtual Machine. 3328 3329 Variables are only populated by the server, and will be ignored when sending a request. 3330 3331 All required parameters must be populated in order to send to Azure. 3332 3333 :ivar id: Resource Id. 3334 :vartype id: str 3335 :ivar name: Resource name. 3336 :vartype name: str 3337 :ivar type: Resource type. 3338 :vartype type: str 3339 :param location: Required. Resource location. 3340 :type location: str 3341 :param tags: A set of tags. Resource tags. 3342 :type tags: dict[str, str] 3343 :param plan: Specifies information about the marketplace image used to create the virtual 3344 machine. This element is only used for marketplace images. Before you can use a marketplace 3345 image from an API, you must enable the image for programmatic use. In the Azure portal, find 3346 the marketplace image that you want to use and then click **Want to deploy programmatically, 3347 Get Started ->**. Enter any required information and then click **Save**. 3348 :type plan: ~azure.mgmt.compute.v2018_10_01.models.Plan 3349 :ivar resources: The virtual machine child extension resources. 3350 :vartype resources: list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineExtension] 3351 :param identity: The identity of the virtual machine, if configured. 3352 :type identity: ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineIdentity 3353 :param zones: The virtual machine zones. 3354 :type zones: list[str] 3355 :param hardware_profile: Specifies the hardware settings for the virtual machine. 3356 :type hardware_profile: ~azure.mgmt.compute.v2018_10_01.models.HardwareProfile 3357 :param storage_profile: Specifies the storage settings for the virtual machine disks. 3358 :type storage_profile: ~azure.mgmt.compute.v2018_10_01.models.StorageProfile 3359 :param additional_capabilities: Specifies additional capabilities enabled or disabled on the 3360 virtual machine. 3361 :type additional_capabilities: ~azure.mgmt.compute.v2018_10_01.models.AdditionalCapabilities 3362 :param os_profile: Specifies the operating system settings for the virtual machine. 3363 :type os_profile: ~azure.mgmt.compute.v2018_10_01.models.OSProfile 3364 :param network_profile: Specifies the network interfaces of the virtual machine. 3365 :type network_profile: ~azure.mgmt.compute.v2018_10_01.models.NetworkProfile 3366 :param diagnostics_profile: Specifies the boot diagnostic settings state. 3367 :code:`<br>`:code:`<br>`Minimum api-version: 2015-06-15. 3368 :type diagnostics_profile: ~azure.mgmt.compute.v2018_10_01.models.DiagnosticsProfile 3369 :param availability_set: Specifies information about the availability set that the virtual 3370 machine should be assigned to. Virtual machines specified in the same availability set are 3371 allocated to different nodes to maximize availability. For more information about availability 3372 sets, see `Manage the availability of virtual machines 3373 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 3374 :code:`<br>`:code:`<br>` For more information on Azure planned maintenance, see `Planned 3375 maintenance for virtual machines in Azure 3376 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_ 3377 :code:`<br>`:code:`<br>` Currently, a VM can only be added to availability set at creation 3378 time. An existing VM cannot be added to an availability set. 3379 :type availability_set: ~azure.mgmt.compute.v2018_10_01.models.SubResource 3380 :param proximity_placement_group: Specifies information about the proximity placement group 3381 that the virtual machine should be assigned to. :code:`<br>`:code:`<br>`Minimum api-version: 3382 2018-04-01. 3383 :type proximity_placement_group: ~azure.mgmt.compute.v2018_10_01.models.SubResource 3384 :ivar provisioning_state: The provisioning state, which only appears in the response. 3385 :vartype provisioning_state: str 3386 :ivar instance_view: The virtual machine instance view. 3387 :vartype instance_view: ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineInstanceView 3388 :param license_type: Specifies that the image or disk that is being used was licensed 3389 on-premises. This element is only used for images that contain the Windows Server operating 3390 system. :code:`<br>`:code:`<br>` Possible values are: :code:`<br>`:code:`<br>` Windows_Client 3391 :code:`<br>`:code:`<br>` Windows_Server :code:`<br>`:code:`<br>` If this element is included in 3392 a request for an update, the value must match the initial value. This value cannot be updated. 3393 :code:`<br>`:code:`<br>` For more information, see `Azure Hybrid Use Benefit for Windows Server 3394 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_ 3395 :code:`<br>`:code:`<br>` Minimum api-version: 2015-06-15. 3396 :type license_type: str 3397 :ivar vm_id: Specifies the VM unique ID which is a 128-bits identifier that is encoded and 3398 stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands. 3399 :vartype vm_id: str 3400 """ 3401 3402 _validation = { 3403 'id': {'readonly': True}, 3404 'name': {'readonly': True}, 3405 'type': {'readonly': True}, 3406 'location': {'required': True}, 3407 'resources': {'readonly': True}, 3408 'provisioning_state': {'readonly': True}, 3409 'instance_view': {'readonly': True}, 3410 'vm_id': {'readonly': True}, 3411 } 3412 3413 _attribute_map = { 3414 'id': {'key': 'id', 'type': 'str'}, 3415 'name': {'key': 'name', 'type': 'str'}, 3416 'type': {'key': 'type', 'type': 'str'}, 3417 'location': {'key': 'location', 'type': 'str'}, 3418 'tags': {'key': 'tags', 'type': '{str}'}, 3419 'plan': {'key': 'plan', 'type': 'Plan'}, 3420 'resources': {'key': 'resources', 'type': '[VirtualMachineExtension]'}, 3421 'identity': {'key': 'identity', 'type': 'VirtualMachineIdentity'}, 3422 'zones': {'key': 'zones', 'type': '[str]'}, 3423 'hardware_profile': {'key': 'properties.hardwareProfile', 'type': 'HardwareProfile'}, 3424 'storage_profile': {'key': 'properties.storageProfile', 'type': 'StorageProfile'}, 3425 'additional_capabilities': {'key': 'properties.additionalCapabilities', 'type': 'AdditionalCapabilities'}, 3426 'os_profile': {'key': 'properties.osProfile', 'type': 'OSProfile'}, 3427 'network_profile': {'key': 'properties.networkProfile', 'type': 'NetworkProfile'}, 3428 'diagnostics_profile': {'key': 'properties.diagnosticsProfile', 'type': 'DiagnosticsProfile'}, 3429 'availability_set': {'key': 'properties.availabilitySet', 'type': 'SubResource'}, 3430 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, 3431 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 3432 'instance_view': {'key': 'properties.instanceView', 'type': 'VirtualMachineInstanceView'}, 3433 'license_type': {'key': 'properties.licenseType', 'type': 'str'}, 3434 'vm_id': {'key': 'properties.vmId', 'type': 'str'}, 3435 } 3436 3437 def __init__( 3438 self, 3439 *, 3440 location: str, 3441 tags: Optional[Dict[str, str]] = None, 3442 plan: Optional["Plan"] = None, 3443 identity: Optional["VirtualMachineIdentity"] = None, 3444 zones: Optional[List[str]] = None, 3445 hardware_profile: Optional["HardwareProfile"] = None, 3446 storage_profile: Optional["StorageProfile"] = None, 3447 additional_capabilities: Optional["AdditionalCapabilities"] = None, 3448 os_profile: Optional["OSProfile"] = None, 3449 network_profile: Optional["NetworkProfile"] = None, 3450 diagnostics_profile: Optional["DiagnosticsProfile"] = None, 3451 availability_set: Optional["SubResource"] = None, 3452 proximity_placement_group: Optional["SubResource"] = None, 3453 license_type: Optional[str] = None, 3454 **kwargs 3455 ): 3456 super(VirtualMachine, self).__init__(location=location, tags=tags, **kwargs) 3457 self.plan = plan 3458 self.resources = None 3459 self.identity = identity 3460 self.zones = zones 3461 self.hardware_profile = hardware_profile 3462 self.storage_profile = storage_profile 3463 self.additional_capabilities = additional_capabilities 3464 self.os_profile = os_profile 3465 self.network_profile = network_profile 3466 self.diagnostics_profile = diagnostics_profile 3467 self.availability_set = availability_set 3468 self.proximity_placement_group = proximity_placement_group 3469 self.provisioning_state = None 3470 self.instance_view = None 3471 self.license_type = license_type 3472 self.vm_id = None 3473 3474 3475class VirtualMachineAgentInstanceView(msrest.serialization.Model): 3476 """The instance view of the VM Agent running on the virtual machine. 3477 3478 :param vm_agent_version: The VM Agent full version. 3479 :type vm_agent_version: str 3480 :param extension_handlers: The virtual machine extension handler instance view. 3481 :type extension_handlers: 3482 list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineExtensionHandlerInstanceView] 3483 :param statuses: The resource status information. 3484 :type statuses: list[~azure.mgmt.compute.v2018_10_01.models.InstanceViewStatus] 3485 """ 3486 3487 _attribute_map = { 3488 'vm_agent_version': {'key': 'vmAgentVersion', 'type': 'str'}, 3489 'extension_handlers': {'key': 'extensionHandlers', 'type': '[VirtualMachineExtensionHandlerInstanceView]'}, 3490 'statuses': {'key': 'statuses', 'type': '[InstanceViewStatus]'}, 3491 } 3492 3493 def __init__( 3494 self, 3495 *, 3496 vm_agent_version: Optional[str] = None, 3497 extension_handlers: Optional[List["VirtualMachineExtensionHandlerInstanceView"]] = None, 3498 statuses: Optional[List["InstanceViewStatus"]] = None, 3499 **kwargs 3500 ): 3501 super(VirtualMachineAgentInstanceView, self).__init__(**kwargs) 3502 self.vm_agent_version = vm_agent_version 3503 self.extension_handlers = extension_handlers 3504 self.statuses = statuses 3505 3506 3507class VirtualMachineCaptureParameters(msrest.serialization.Model): 3508 """Capture Virtual Machine parameters. 3509 3510 All required parameters must be populated in order to send to Azure. 3511 3512 :param vhd_prefix: Required. The captured virtual hard disk's name prefix. 3513 :type vhd_prefix: str 3514 :param destination_container_name: Required. The destination container name. 3515 :type destination_container_name: str 3516 :param overwrite_vhds: Required. Specifies whether to overwrite the destination virtual hard 3517 disk, in case of conflict. 3518 :type overwrite_vhds: bool 3519 """ 3520 3521 _validation = { 3522 'vhd_prefix': {'required': True}, 3523 'destination_container_name': {'required': True}, 3524 'overwrite_vhds': {'required': True}, 3525 } 3526 3527 _attribute_map = { 3528 'vhd_prefix': {'key': 'vhdPrefix', 'type': 'str'}, 3529 'destination_container_name': {'key': 'destinationContainerName', 'type': 'str'}, 3530 'overwrite_vhds': {'key': 'overwriteVhds', 'type': 'bool'}, 3531 } 3532 3533 def __init__( 3534 self, 3535 *, 3536 vhd_prefix: str, 3537 destination_container_name: str, 3538 overwrite_vhds: bool, 3539 **kwargs 3540 ): 3541 super(VirtualMachineCaptureParameters, self).__init__(**kwargs) 3542 self.vhd_prefix = vhd_prefix 3543 self.destination_container_name = destination_container_name 3544 self.overwrite_vhds = overwrite_vhds 3545 3546 3547class VirtualMachineCaptureResult(SubResource): 3548 """Output of virtual machine capture operation. 3549 3550 Variables are only populated by the server, and will be ignored when sending a request. 3551 3552 :param id: Resource Id. 3553 :type id: str 3554 :ivar schema: the schema of the captured virtual machine. 3555 :vartype schema: str 3556 :ivar content_version: the version of the content. 3557 :vartype content_version: str 3558 :ivar parameters: parameters of the captured virtual machine. 3559 :vartype parameters: any 3560 :ivar resources: a list of resource items of the captured virtual machine. 3561 :vartype resources: list[any] 3562 """ 3563 3564 _validation = { 3565 'schema': {'readonly': True}, 3566 'content_version': {'readonly': True}, 3567 'parameters': {'readonly': True}, 3568 'resources': {'readonly': True}, 3569 } 3570 3571 _attribute_map = { 3572 'id': {'key': 'id', 'type': 'str'}, 3573 'schema': {'key': '$schema', 'type': 'str'}, 3574 'content_version': {'key': 'contentVersion', 'type': 'str'}, 3575 'parameters': {'key': 'parameters', 'type': 'object'}, 3576 'resources': {'key': 'resources', 'type': '[object]'}, 3577 } 3578 3579 def __init__( 3580 self, 3581 *, 3582 id: Optional[str] = None, 3583 **kwargs 3584 ): 3585 super(VirtualMachineCaptureResult, self).__init__(id=id, **kwargs) 3586 self.schema = None 3587 self.content_version = None 3588 self.parameters = None 3589 self.resources = None 3590 3591 3592class VirtualMachineExtension(Resource): 3593 """Describes a Virtual Machine Extension. 3594 3595 Variables are only populated by the server, and will be ignored when sending a request. 3596 3597 All required parameters must be populated in order to send to Azure. 3598 3599 :ivar id: Resource Id. 3600 :vartype id: str 3601 :ivar name: Resource name. 3602 :vartype name: str 3603 :ivar type: Resource type. 3604 :vartype type: str 3605 :param location: Required. Resource location. 3606 :type location: str 3607 :param tags: A set of tags. Resource tags. 3608 :type tags: dict[str, str] 3609 :param force_update_tag: How the extension handler should be forced to update even if the 3610 extension configuration has not changed. 3611 :type force_update_tag: str 3612 :param publisher: The name of the extension handler publisher. 3613 :type publisher: str 3614 :param type_properties_type: Specifies the type of the extension; an example is 3615 "CustomScriptExtension". 3616 :type type_properties_type: str 3617 :param type_handler_version: Specifies the version of the script handler. 3618 :type type_handler_version: str 3619 :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor 3620 version if one is available at deployment time. Once deployed, however, the extension will not 3621 upgrade minor versions unless redeployed, even with this property set to true. 3622 :type auto_upgrade_minor_version: bool 3623 :param settings: Json formatted public settings for the extension. 3624 :type settings: any 3625 :param protected_settings: The extension can contain either protectedSettings or 3626 protectedSettingsFromKeyVault or no protected settings at all. 3627 :type protected_settings: any 3628 :ivar provisioning_state: The provisioning state, which only appears in the response. 3629 :vartype provisioning_state: str 3630 :param instance_view: The virtual machine extension instance view. 3631 :type instance_view: ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineExtensionInstanceView 3632 """ 3633 3634 _validation = { 3635 'id': {'readonly': True}, 3636 'name': {'readonly': True}, 3637 'type': {'readonly': True}, 3638 'location': {'required': True}, 3639 'provisioning_state': {'readonly': True}, 3640 } 3641 3642 _attribute_map = { 3643 'id': {'key': 'id', 'type': 'str'}, 3644 'name': {'key': 'name', 'type': 'str'}, 3645 'type': {'key': 'type', 'type': 'str'}, 3646 'location': {'key': 'location', 'type': 'str'}, 3647 'tags': {'key': 'tags', 'type': '{str}'}, 3648 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, 3649 'publisher': {'key': 'properties.publisher', 'type': 'str'}, 3650 'type_properties_type': {'key': 'properties.type', 'type': 'str'}, 3651 'type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, 3652 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, 3653 'settings': {'key': 'properties.settings', 'type': 'object'}, 3654 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, 3655 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 3656 'instance_view': {'key': 'properties.instanceView', 'type': 'VirtualMachineExtensionInstanceView'}, 3657 } 3658 3659 def __init__( 3660 self, 3661 *, 3662 location: str, 3663 tags: Optional[Dict[str, str]] = None, 3664 force_update_tag: Optional[str] = None, 3665 publisher: Optional[str] = None, 3666 type_properties_type: Optional[str] = None, 3667 type_handler_version: Optional[str] = None, 3668 auto_upgrade_minor_version: Optional[bool] = None, 3669 settings: Optional[Any] = None, 3670 protected_settings: Optional[Any] = None, 3671 instance_view: Optional["VirtualMachineExtensionInstanceView"] = None, 3672 **kwargs 3673 ): 3674 super(VirtualMachineExtension, self).__init__(location=location, tags=tags, **kwargs) 3675 self.force_update_tag = force_update_tag 3676 self.publisher = publisher 3677 self.type_properties_type = type_properties_type 3678 self.type_handler_version = type_handler_version 3679 self.auto_upgrade_minor_version = auto_upgrade_minor_version 3680 self.settings = settings 3681 self.protected_settings = protected_settings 3682 self.provisioning_state = None 3683 self.instance_view = instance_view 3684 3685 3686class VirtualMachineExtensionHandlerInstanceView(msrest.serialization.Model): 3687 """The instance view of a virtual machine extension handler. 3688 3689 :param type: Specifies the type of the extension; an example is "CustomScriptExtension". 3690 :type type: str 3691 :param type_handler_version: Specifies the version of the script handler. 3692 :type type_handler_version: str 3693 :param status: The extension handler status. 3694 :type status: ~azure.mgmt.compute.v2018_10_01.models.InstanceViewStatus 3695 """ 3696 3697 _attribute_map = { 3698 'type': {'key': 'type', 'type': 'str'}, 3699 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, 3700 'status': {'key': 'status', 'type': 'InstanceViewStatus'}, 3701 } 3702 3703 def __init__( 3704 self, 3705 *, 3706 type: Optional[str] = None, 3707 type_handler_version: Optional[str] = None, 3708 status: Optional["InstanceViewStatus"] = None, 3709 **kwargs 3710 ): 3711 super(VirtualMachineExtensionHandlerInstanceView, self).__init__(**kwargs) 3712 self.type = type 3713 self.type_handler_version = type_handler_version 3714 self.status = status 3715 3716 3717class VirtualMachineExtensionImage(Resource): 3718 """Describes a Virtual Machine Extension Image. 3719 3720 Variables are only populated by the server, and will be ignored when sending a request. 3721 3722 All required parameters must be populated in order to send to Azure. 3723 3724 :ivar id: Resource Id. 3725 :vartype id: str 3726 :ivar name: Resource name. 3727 :vartype name: str 3728 :ivar type: Resource type. 3729 :vartype type: str 3730 :param location: Required. Resource location. 3731 :type location: str 3732 :param tags: A set of tags. Resource tags. 3733 :type tags: dict[str, str] 3734 :param operating_system: The operating system this extension supports. 3735 :type operating_system: str 3736 :param compute_role: The type of role (IaaS or PaaS) this extension supports. 3737 :type compute_role: str 3738 :param handler_schema: The schema defined by publisher, where extension consumers should 3739 provide settings in a matching schema. 3740 :type handler_schema: str 3741 :param vm_scale_set_enabled: Whether the extension can be used on xRP VMScaleSets. By default 3742 existing extensions are usable on scalesets, but there might be cases where a publisher wants 3743 to explicitly indicate the extension is only enabled for CRP VMs but not VMSS. 3744 :type vm_scale_set_enabled: bool 3745 :param supports_multiple_extensions: Whether the handler can support multiple extensions. 3746 :type supports_multiple_extensions: bool 3747 """ 3748 3749 _validation = { 3750 'id': {'readonly': True}, 3751 'name': {'readonly': True}, 3752 'type': {'readonly': True}, 3753 'location': {'required': True}, 3754 } 3755 3756 _attribute_map = { 3757 'id': {'key': 'id', 'type': 'str'}, 3758 'name': {'key': 'name', 'type': 'str'}, 3759 'type': {'key': 'type', 'type': 'str'}, 3760 'location': {'key': 'location', 'type': 'str'}, 3761 'tags': {'key': 'tags', 'type': '{str}'}, 3762 'operating_system': {'key': 'properties.operatingSystem', 'type': 'str'}, 3763 'compute_role': {'key': 'properties.computeRole', 'type': 'str'}, 3764 'handler_schema': {'key': 'properties.handlerSchema', 'type': 'str'}, 3765 'vm_scale_set_enabled': {'key': 'properties.vmScaleSetEnabled', 'type': 'bool'}, 3766 'supports_multiple_extensions': {'key': 'properties.supportsMultipleExtensions', 'type': 'bool'}, 3767 } 3768 3769 def __init__( 3770 self, 3771 *, 3772 location: str, 3773 tags: Optional[Dict[str, str]] = None, 3774 operating_system: Optional[str] = None, 3775 compute_role: Optional[str] = None, 3776 handler_schema: Optional[str] = None, 3777 vm_scale_set_enabled: Optional[bool] = None, 3778 supports_multiple_extensions: Optional[bool] = None, 3779 **kwargs 3780 ): 3781 super(VirtualMachineExtensionImage, self).__init__(location=location, tags=tags, **kwargs) 3782 self.operating_system = operating_system 3783 self.compute_role = compute_role 3784 self.handler_schema = handler_schema 3785 self.vm_scale_set_enabled = vm_scale_set_enabled 3786 self.supports_multiple_extensions = supports_multiple_extensions 3787 3788 3789class VirtualMachineExtensionInstanceView(msrest.serialization.Model): 3790 """The instance view of a virtual machine extension. 3791 3792 :param name: The virtual machine extension name. 3793 :type name: str 3794 :param type: Specifies the type of the extension; an example is "CustomScriptExtension". 3795 :type type: str 3796 :param type_handler_version: Specifies the version of the script handler. 3797 :type type_handler_version: str 3798 :param substatuses: The resource status information. 3799 :type substatuses: list[~azure.mgmt.compute.v2018_10_01.models.InstanceViewStatus] 3800 :param statuses: The resource status information. 3801 :type statuses: list[~azure.mgmt.compute.v2018_10_01.models.InstanceViewStatus] 3802 """ 3803 3804 _attribute_map = { 3805 'name': {'key': 'name', 'type': 'str'}, 3806 'type': {'key': 'type', 'type': 'str'}, 3807 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, 3808 'substatuses': {'key': 'substatuses', 'type': '[InstanceViewStatus]'}, 3809 'statuses': {'key': 'statuses', 'type': '[InstanceViewStatus]'}, 3810 } 3811 3812 def __init__( 3813 self, 3814 *, 3815 name: Optional[str] = None, 3816 type: Optional[str] = None, 3817 type_handler_version: Optional[str] = None, 3818 substatuses: Optional[List["InstanceViewStatus"]] = None, 3819 statuses: Optional[List["InstanceViewStatus"]] = None, 3820 **kwargs 3821 ): 3822 super(VirtualMachineExtensionInstanceView, self).__init__(**kwargs) 3823 self.name = name 3824 self.type = type 3825 self.type_handler_version = type_handler_version 3826 self.substatuses = substatuses 3827 self.statuses = statuses 3828 3829 3830class VirtualMachineExtensionsListResult(msrest.serialization.Model): 3831 """The List Extension operation response. 3832 3833 :param value: The list of extensions. 3834 :type value: list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineExtension] 3835 """ 3836 3837 _attribute_map = { 3838 'value': {'key': 'value', 'type': '[VirtualMachineExtension]'}, 3839 } 3840 3841 def __init__( 3842 self, 3843 *, 3844 value: Optional[List["VirtualMachineExtension"]] = None, 3845 **kwargs 3846 ): 3847 super(VirtualMachineExtensionsListResult, self).__init__(**kwargs) 3848 self.value = value 3849 3850 3851class VirtualMachineExtensionUpdate(UpdateResource): 3852 """Describes a Virtual Machine Extension. 3853 3854 :param tags: A set of tags. Resource tags. 3855 :type tags: dict[str, str] 3856 :param force_update_tag: How the extension handler should be forced to update even if the 3857 extension configuration has not changed. 3858 :type force_update_tag: str 3859 :param publisher: The name of the extension handler publisher. 3860 :type publisher: str 3861 :param type: Specifies the type of the extension; an example is "CustomScriptExtension". 3862 :type type: str 3863 :param type_handler_version: Specifies the version of the script handler. 3864 :type type_handler_version: str 3865 :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor 3866 version if one is available at deployment time. Once deployed, however, the extension will not 3867 upgrade minor versions unless redeployed, even with this property set to true. 3868 :type auto_upgrade_minor_version: bool 3869 :param settings: Json formatted public settings for the extension. 3870 :type settings: any 3871 :param protected_settings: The extension can contain either protectedSettings or 3872 protectedSettingsFromKeyVault or no protected settings at all. 3873 :type protected_settings: any 3874 """ 3875 3876 _attribute_map = { 3877 'tags': {'key': 'tags', 'type': '{str}'}, 3878 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, 3879 'publisher': {'key': 'properties.publisher', 'type': 'str'}, 3880 'type': {'key': 'properties.type', 'type': 'str'}, 3881 'type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, 3882 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, 3883 'settings': {'key': 'properties.settings', 'type': 'object'}, 3884 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, 3885 } 3886 3887 def __init__( 3888 self, 3889 *, 3890 tags: Optional[Dict[str, str]] = None, 3891 force_update_tag: Optional[str] = None, 3892 publisher: Optional[str] = None, 3893 type: Optional[str] = None, 3894 type_handler_version: Optional[str] = None, 3895 auto_upgrade_minor_version: Optional[bool] = None, 3896 settings: Optional[Any] = None, 3897 protected_settings: Optional[Any] = None, 3898 **kwargs 3899 ): 3900 super(VirtualMachineExtensionUpdate, self).__init__(tags=tags, **kwargs) 3901 self.force_update_tag = force_update_tag 3902 self.publisher = publisher 3903 self.type = type 3904 self.type_handler_version = type_handler_version 3905 self.auto_upgrade_minor_version = auto_upgrade_minor_version 3906 self.settings = settings 3907 self.protected_settings = protected_settings 3908 3909 3910class VirtualMachineHealthStatus(msrest.serialization.Model): 3911 """The health status of the VM. 3912 3913 Variables are only populated by the server, and will be ignored when sending a request. 3914 3915 :ivar status: The health status information for the VM. 3916 :vartype status: ~azure.mgmt.compute.v2018_10_01.models.InstanceViewStatus 3917 """ 3918 3919 _validation = { 3920 'status': {'readonly': True}, 3921 } 3922 3923 _attribute_map = { 3924 'status': {'key': 'status', 'type': 'InstanceViewStatus'}, 3925 } 3926 3927 def __init__( 3928 self, 3929 **kwargs 3930 ): 3931 super(VirtualMachineHealthStatus, self).__init__(**kwargs) 3932 self.status = None 3933 3934 3935class VirtualMachineIdentity(msrest.serialization.Model): 3936 """Identity for the virtual machine. 3937 3938 Variables are only populated by the server, and will be ignored when sending a request. 3939 3940 :ivar principal_id: The principal id of virtual machine identity. This property will only be 3941 provided for a system assigned identity. 3942 :vartype principal_id: str 3943 :ivar tenant_id: The tenant id associated with the virtual machine. This property will only be 3944 provided for a system assigned identity. 3945 :vartype tenant_id: str 3946 :param type: The type of identity used for the virtual machine. The type 'SystemAssigned, 3947 UserAssigned' includes both an implicitly created identity and a set of user assigned 3948 identities. The type 'None' will remove any identities from the virtual machine. Possible 3949 values include: "SystemAssigned", "UserAssigned", "SystemAssigned, UserAssigned", "None". 3950 :type type: str or ~azure.mgmt.compute.v2018_10_01.models.ResourceIdentityType 3951 :param user_assigned_identities: The list of user identities associated with the Virtual 3952 Machine. The user identity dictionary key references will be ARM resource ids in the form: 3953 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. 3954 :type user_assigned_identities: dict[str, 3955 ~azure.mgmt.compute.v2018_10_01.models.UserAssignedIdentitiesValue] 3956 """ 3957 3958 _validation = { 3959 'principal_id': {'readonly': True}, 3960 'tenant_id': {'readonly': True}, 3961 } 3962 3963 _attribute_map = { 3964 'principal_id': {'key': 'principalId', 'type': 'str'}, 3965 'tenant_id': {'key': 'tenantId', 'type': 'str'}, 3966 'type': {'key': 'type', 'type': 'str'}, 3967 'user_assigned_identities': {'key': 'userAssignedIdentities', 'type': '{UserAssignedIdentitiesValue}'}, 3968 } 3969 3970 def __init__( 3971 self, 3972 *, 3973 type: Optional[Union[str, "ResourceIdentityType"]] = None, 3974 user_assigned_identities: Optional[Dict[str, "UserAssignedIdentitiesValue"]] = None, 3975 **kwargs 3976 ): 3977 super(VirtualMachineIdentity, self).__init__(**kwargs) 3978 self.principal_id = None 3979 self.tenant_id = None 3980 self.type = type 3981 self.user_assigned_identities = user_assigned_identities 3982 3983 3984class VirtualMachineImageResource(SubResource): 3985 """Virtual machine image resource information. 3986 3987 All required parameters must be populated in order to send to Azure. 3988 3989 :param id: Resource Id. 3990 :type id: str 3991 :param name: Required. The name of the resource. 3992 :type name: str 3993 :param location: Required. The supported Azure location of the resource. 3994 :type location: str 3995 :param tags: A set of tags. Specifies the tags that are assigned to the virtual machine. For 3996 more information about using tags, see `Using tags to organize your Azure resources 3997 <https://docs.microsoft.com/azure/azure-resource-manager/resource-group-using-tags.md>`_. 3998 :type tags: dict[str, str] 3999 """ 4000 4001 _validation = { 4002 'name': {'required': True}, 4003 'location': {'required': True}, 4004 } 4005 4006 _attribute_map = { 4007 'id': {'key': 'id', 'type': 'str'}, 4008 'name': {'key': 'name', 'type': 'str'}, 4009 'location': {'key': 'location', 'type': 'str'}, 4010 'tags': {'key': 'tags', 'type': '{str}'}, 4011 } 4012 4013 def __init__( 4014 self, 4015 *, 4016 name: str, 4017 location: str, 4018 id: Optional[str] = None, 4019 tags: Optional[Dict[str, str]] = None, 4020 **kwargs 4021 ): 4022 super(VirtualMachineImageResource, self).__init__(id=id, **kwargs) 4023 self.name = name 4024 self.location = location 4025 self.tags = tags 4026 4027 4028class VirtualMachineImage(VirtualMachineImageResource): 4029 """Describes a Virtual Machine Image. 4030 4031 All required parameters must be populated in order to send to Azure. 4032 4033 :param id: Resource Id. 4034 :type id: str 4035 :param name: Required. The name of the resource. 4036 :type name: str 4037 :param location: Required. The supported Azure location of the resource. 4038 :type location: str 4039 :param tags: A set of tags. Specifies the tags that are assigned to the virtual machine. For 4040 more information about using tags, see `Using tags to organize your Azure resources 4041 <https://docs.microsoft.com/azure/azure-resource-manager/resource-group-using-tags.md>`_. 4042 :type tags: dict[str, str] 4043 :param plan: Used for establishing the purchase context of any 3rd Party artifact through 4044 MarketPlace. 4045 :type plan: ~azure.mgmt.compute.v2018_10_01.models.PurchasePlan 4046 :param os_disk_image: Contains the os disk image information. 4047 :type os_disk_image: ~azure.mgmt.compute.v2018_10_01.models.OSDiskImage 4048 :param data_disk_images: 4049 :type data_disk_images: list[~azure.mgmt.compute.v2018_10_01.models.DataDiskImage] 4050 :param automatic_os_upgrade_properties: Describes automatic OS upgrade properties on the image. 4051 :type automatic_os_upgrade_properties: 4052 ~azure.mgmt.compute.v2018_10_01.models.AutomaticOSUpgradeProperties 4053 """ 4054 4055 _validation = { 4056 'name': {'required': True}, 4057 'location': {'required': True}, 4058 } 4059 4060 _attribute_map = { 4061 'id': {'key': 'id', 'type': 'str'}, 4062 'name': {'key': 'name', 'type': 'str'}, 4063 'location': {'key': 'location', 'type': 'str'}, 4064 'tags': {'key': 'tags', 'type': '{str}'}, 4065 'plan': {'key': 'properties.plan', 'type': 'PurchasePlan'}, 4066 'os_disk_image': {'key': 'properties.osDiskImage', 'type': 'OSDiskImage'}, 4067 'data_disk_images': {'key': 'properties.dataDiskImages', 'type': '[DataDiskImage]'}, 4068 'automatic_os_upgrade_properties': {'key': 'properties.automaticOSUpgradeProperties', 'type': 'AutomaticOSUpgradeProperties'}, 4069 } 4070 4071 def __init__( 4072 self, 4073 *, 4074 name: str, 4075 location: str, 4076 id: Optional[str] = None, 4077 tags: Optional[Dict[str, str]] = None, 4078 plan: Optional["PurchasePlan"] = None, 4079 os_disk_image: Optional["OSDiskImage"] = None, 4080 data_disk_images: Optional[List["DataDiskImage"]] = None, 4081 automatic_os_upgrade_properties: Optional["AutomaticOSUpgradeProperties"] = None, 4082 **kwargs 4083 ): 4084 super(VirtualMachineImage, self).__init__(id=id, name=name, location=location, tags=tags, **kwargs) 4085 self.plan = plan 4086 self.os_disk_image = os_disk_image 4087 self.data_disk_images = data_disk_images 4088 self.automatic_os_upgrade_properties = automatic_os_upgrade_properties 4089 4090 4091class VirtualMachineInstanceView(msrest.serialization.Model): 4092 """The instance view of a virtual machine. 4093 4094 :param platform_update_domain: Specifies the update domain of the virtual machine. 4095 :type platform_update_domain: int 4096 :param platform_fault_domain: Specifies the fault domain of the virtual machine. 4097 :type platform_fault_domain: int 4098 :param computer_name: The computer name assigned to the virtual machine. 4099 :type computer_name: str 4100 :param os_name: The Operating System running on the virtual machine. 4101 :type os_name: str 4102 :param os_version: The version of Operating System running on the virtual machine. 4103 :type os_version: str 4104 :param rdp_thumb_print: The Remote desktop certificate thumbprint. 4105 :type rdp_thumb_print: str 4106 :param vm_agent: The VM Agent running on the virtual machine. 4107 :type vm_agent: ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineAgentInstanceView 4108 :param maintenance_redeploy_status: The Maintenance Operation status on the virtual machine. 4109 :type maintenance_redeploy_status: 4110 ~azure.mgmt.compute.v2018_10_01.models.MaintenanceRedeployStatus 4111 :param disks: The virtual machine disk information. 4112 :type disks: list[~azure.mgmt.compute.v2018_10_01.models.DiskInstanceView] 4113 :param extensions: The extensions information. 4114 :type extensions: 4115 list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineExtensionInstanceView] 4116 :param boot_diagnostics: Boot Diagnostics is a debugging feature which allows you to view 4117 Console Output and Screenshot to diagnose VM status. :code:`<br>`:code:`<br>` You can easily 4118 view the output of your console log. :code:`<br>`:code:`<br>` Azure also enables you to see a 4119 screenshot of the VM from the hypervisor. 4120 :type boot_diagnostics: ~azure.mgmt.compute.v2018_10_01.models.BootDiagnosticsInstanceView 4121 :param statuses: The resource status information. 4122 :type statuses: list[~azure.mgmt.compute.v2018_10_01.models.InstanceViewStatus] 4123 """ 4124 4125 _attribute_map = { 4126 'platform_update_domain': {'key': 'platformUpdateDomain', 'type': 'int'}, 4127 'platform_fault_domain': {'key': 'platformFaultDomain', 'type': 'int'}, 4128 'computer_name': {'key': 'computerName', 'type': 'str'}, 4129 'os_name': {'key': 'osName', 'type': 'str'}, 4130 'os_version': {'key': 'osVersion', 'type': 'str'}, 4131 'rdp_thumb_print': {'key': 'rdpThumbPrint', 'type': 'str'}, 4132 'vm_agent': {'key': 'vmAgent', 'type': 'VirtualMachineAgentInstanceView'}, 4133 'maintenance_redeploy_status': {'key': 'maintenanceRedeployStatus', 'type': 'MaintenanceRedeployStatus'}, 4134 'disks': {'key': 'disks', 'type': '[DiskInstanceView]'}, 4135 'extensions': {'key': 'extensions', 'type': '[VirtualMachineExtensionInstanceView]'}, 4136 'boot_diagnostics': {'key': 'bootDiagnostics', 'type': 'BootDiagnosticsInstanceView'}, 4137 'statuses': {'key': 'statuses', 'type': '[InstanceViewStatus]'}, 4138 } 4139 4140 def __init__( 4141 self, 4142 *, 4143 platform_update_domain: Optional[int] = None, 4144 platform_fault_domain: Optional[int] = None, 4145 computer_name: Optional[str] = None, 4146 os_name: Optional[str] = None, 4147 os_version: Optional[str] = None, 4148 rdp_thumb_print: Optional[str] = None, 4149 vm_agent: Optional["VirtualMachineAgentInstanceView"] = None, 4150 maintenance_redeploy_status: Optional["MaintenanceRedeployStatus"] = None, 4151 disks: Optional[List["DiskInstanceView"]] = None, 4152 extensions: Optional[List["VirtualMachineExtensionInstanceView"]] = None, 4153 boot_diagnostics: Optional["BootDiagnosticsInstanceView"] = None, 4154 statuses: Optional[List["InstanceViewStatus"]] = None, 4155 **kwargs 4156 ): 4157 super(VirtualMachineInstanceView, self).__init__(**kwargs) 4158 self.platform_update_domain = platform_update_domain 4159 self.platform_fault_domain = platform_fault_domain 4160 self.computer_name = computer_name 4161 self.os_name = os_name 4162 self.os_version = os_version 4163 self.rdp_thumb_print = rdp_thumb_print 4164 self.vm_agent = vm_agent 4165 self.maintenance_redeploy_status = maintenance_redeploy_status 4166 self.disks = disks 4167 self.extensions = extensions 4168 self.boot_diagnostics = boot_diagnostics 4169 self.statuses = statuses 4170 4171 4172class VirtualMachineListResult(msrest.serialization.Model): 4173 """The List Virtual Machine operation response. 4174 4175 All required parameters must be populated in order to send to Azure. 4176 4177 :param value: Required. The list of virtual machines. 4178 :type value: list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachine] 4179 :param next_link: The URI to fetch the next page of VMs. Call ListNext() with this URI to fetch 4180 the next page of Virtual Machines. 4181 :type next_link: str 4182 """ 4183 4184 _validation = { 4185 'value': {'required': True}, 4186 } 4187 4188 _attribute_map = { 4189 'value': {'key': 'value', 'type': '[VirtualMachine]'}, 4190 'next_link': {'key': 'nextLink', 'type': 'str'}, 4191 } 4192 4193 def __init__( 4194 self, 4195 *, 4196 value: List["VirtualMachine"], 4197 next_link: Optional[str] = None, 4198 **kwargs 4199 ): 4200 super(VirtualMachineListResult, self).__init__(**kwargs) 4201 self.value = value 4202 self.next_link = next_link 4203 4204 4205class VirtualMachineReimageParameters(msrest.serialization.Model): 4206 """Parameters for Reimaging Virtual Machine. NOTE: Virtual Machine OS disk will always be reimaged. 4207 4208 :param temp_disk: Specifies whether to reimage temp disk. Default value: false. Note: This temp 4209 disk reimage parameter is only supported for VM/VMSS with Ephemeral OS disk. 4210 :type temp_disk: bool 4211 """ 4212 4213 _attribute_map = { 4214 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, 4215 } 4216 4217 def __init__( 4218 self, 4219 *, 4220 temp_disk: Optional[bool] = None, 4221 **kwargs 4222 ): 4223 super(VirtualMachineReimageParameters, self).__init__(**kwargs) 4224 self.temp_disk = temp_disk 4225 4226 4227class VirtualMachineScaleSet(Resource): 4228 """Describes a Virtual Machine Scale Set. 4229 4230 Variables are only populated by the server, and will be ignored when sending a request. 4231 4232 All required parameters must be populated in order to send to Azure. 4233 4234 :ivar id: Resource Id. 4235 :vartype id: str 4236 :ivar name: Resource name. 4237 :vartype name: str 4238 :ivar type: Resource type. 4239 :vartype type: str 4240 :param location: Required. Resource location. 4241 :type location: str 4242 :param tags: A set of tags. Resource tags. 4243 :type tags: dict[str, str] 4244 :param sku: The virtual machine scale set sku. 4245 :type sku: ~azure.mgmt.compute.v2018_10_01.models.Sku 4246 :param plan: Specifies information about the marketplace image used to create the virtual 4247 machine. This element is only used for marketplace images. Before you can use a marketplace 4248 image from an API, you must enable the image for programmatic use. In the Azure portal, find 4249 the marketplace image that you want to use and then click **Want to deploy programmatically, 4250 Get Started ->**. Enter any required information and then click **Save**. 4251 :type plan: ~azure.mgmt.compute.v2018_10_01.models.Plan 4252 :param identity: The identity of the virtual machine scale set, if configured. 4253 :type identity: ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetIdentity 4254 :param zones: The virtual machine scale set zones. NOTE: Availability zones can only be set 4255 when you create the scale set. 4256 :type zones: list[str] 4257 :param upgrade_policy: The upgrade policy. 4258 :type upgrade_policy: ~azure.mgmt.compute.v2018_10_01.models.UpgradePolicy 4259 :param automatic_repairs_policy: Policy for automatic repairs. 4260 :type automatic_repairs_policy: ~azure.mgmt.compute.v2018_10_01.models.AutomaticRepairsPolicy 4261 :param virtual_machine_profile: The virtual machine profile. 4262 :type virtual_machine_profile: 4263 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetVMProfile 4264 :ivar provisioning_state: The provisioning state, which only appears in the response. 4265 :vartype provisioning_state: str 4266 :param overprovision: Specifies whether the Virtual Machine Scale Set should be 4267 overprovisioned. 4268 :type overprovision: bool 4269 :param do_not_run_extensions_on_overprovisioned_v_ms: When Overprovision is enabled, extensions 4270 are launched only on the requested number of VMs which are finally kept. This property will 4271 hence ensure that the extensions do not run on the extra overprovisioned VMs. 4272 :type do_not_run_extensions_on_overprovisioned_v_ms: bool 4273 :ivar unique_id: Specifies the ID which uniquely identifies a Virtual Machine Scale Set. 4274 :vartype unique_id: str 4275 :param single_placement_group: When true this limits the scale set to a single placement group, 4276 of max size 100 virtual machines. 4277 :type single_placement_group: bool 4278 :param zone_balance: Whether to force strictly even Virtual Machine distribution cross x-zones 4279 in case there is zone outage. 4280 :type zone_balance: bool 4281 :param platform_fault_domain_count: Fault Domain count for each placement group. 4282 :type platform_fault_domain_count: int 4283 :param proximity_placement_group: Specifies information about the proximity placement group 4284 that the virtual machine scale set should be assigned to. :code:`<br>`:code:`<br>`Minimum 4285 api-version: 2018-04-01. 4286 :type proximity_placement_group: ~azure.mgmt.compute.v2018_10_01.models.SubResource 4287 """ 4288 4289 _validation = { 4290 'id': {'readonly': True}, 4291 'name': {'readonly': True}, 4292 'type': {'readonly': True}, 4293 'location': {'required': True}, 4294 'provisioning_state': {'readonly': True}, 4295 'unique_id': {'readonly': True}, 4296 } 4297 4298 _attribute_map = { 4299 'id': {'key': 'id', 'type': 'str'}, 4300 'name': {'key': 'name', 'type': 'str'}, 4301 'type': {'key': 'type', 'type': 'str'}, 4302 'location': {'key': 'location', 'type': 'str'}, 4303 'tags': {'key': 'tags', 'type': '{str}'}, 4304 'sku': {'key': 'sku', 'type': 'Sku'}, 4305 'plan': {'key': 'plan', 'type': 'Plan'}, 4306 'identity': {'key': 'identity', 'type': 'VirtualMachineScaleSetIdentity'}, 4307 'zones': {'key': 'zones', 'type': '[str]'}, 4308 'upgrade_policy': {'key': 'properties.upgradePolicy', 'type': 'UpgradePolicy'}, 4309 'automatic_repairs_policy': {'key': 'properties.automaticRepairsPolicy', 'type': 'AutomaticRepairsPolicy'}, 4310 'virtual_machine_profile': {'key': 'properties.virtualMachineProfile', 'type': 'VirtualMachineScaleSetVMProfile'}, 4311 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 4312 'overprovision': {'key': 'properties.overprovision', 'type': 'bool'}, 4313 'do_not_run_extensions_on_overprovisioned_v_ms': {'key': 'properties.doNotRunExtensionsOnOverprovisionedVMs', 'type': 'bool'}, 4314 'unique_id': {'key': 'properties.uniqueId', 'type': 'str'}, 4315 'single_placement_group': {'key': 'properties.singlePlacementGroup', 'type': 'bool'}, 4316 'zone_balance': {'key': 'properties.zoneBalance', 'type': 'bool'}, 4317 'platform_fault_domain_count': {'key': 'properties.platformFaultDomainCount', 'type': 'int'}, 4318 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, 4319 } 4320 4321 def __init__( 4322 self, 4323 *, 4324 location: str, 4325 tags: Optional[Dict[str, str]] = None, 4326 sku: Optional["Sku"] = None, 4327 plan: Optional["Plan"] = None, 4328 identity: Optional["VirtualMachineScaleSetIdentity"] = None, 4329 zones: Optional[List[str]] = None, 4330 upgrade_policy: Optional["UpgradePolicy"] = None, 4331 automatic_repairs_policy: Optional["AutomaticRepairsPolicy"] = None, 4332 virtual_machine_profile: Optional["VirtualMachineScaleSetVMProfile"] = None, 4333 overprovision: Optional[bool] = None, 4334 do_not_run_extensions_on_overprovisioned_v_ms: Optional[bool] = None, 4335 single_placement_group: Optional[bool] = None, 4336 zone_balance: Optional[bool] = None, 4337 platform_fault_domain_count: Optional[int] = None, 4338 proximity_placement_group: Optional["SubResource"] = None, 4339 **kwargs 4340 ): 4341 super(VirtualMachineScaleSet, self).__init__(location=location, tags=tags, **kwargs) 4342 self.sku = sku 4343 self.plan = plan 4344 self.identity = identity 4345 self.zones = zones 4346 self.upgrade_policy = upgrade_policy 4347 self.automatic_repairs_policy = automatic_repairs_policy 4348 self.virtual_machine_profile = virtual_machine_profile 4349 self.provisioning_state = None 4350 self.overprovision = overprovision 4351 self.do_not_run_extensions_on_overprovisioned_v_ms = do_not_run_extensions_on_overprovisioned_v_ms 4352 self.unique_id = None 4353 self.single_placement_group = single_placement_group 4354 self.zone_balance = zone_balance 4355 self.platform_fault_domain_count = platform_fault_domain_count 4356 self.proximity_placement_group = proximity_placement_group 4357 4358 4359class VirtualMachineScaleSetDataDisk(msrest.serialization.Model): 4360 """Describes a virtual machine scale set data disk. 4361 4362 All required parameters must be populated in order to send to Azure. 4363 4364 :param name: The disk name. 4365 :type name: str 4366 :param lun: Required. Specifies the logical unit number of the data disk. This value is used to 4367 identify data disks within the VM and therefore must be unique for each data disk attached to a 4368 VM. 4369 :type lun: int 4370 :param caching: Specifies the caching requirements. :code:`<br>`:code:`<br>` Possible values 4371 are: :code:`<br>`:code:`<br>` **None** :code:`<br>`:code:`<br>` **ReadOnly** 4372 :code:`<br>`:code:`<br>` **ReadWrite** :code:`<br>`:code:`<br>` Default: **None for Standard 4373 storage. ReadOnly for Premium storage**. Possible values include: "None", "ReadOnly", 4374 "ReadWrite". 4375 :type caching: str or ~azure.mgmt.compute.v2018_10_01.models.CachingTypes 4376 :param write_accelerator_enabled: Specifies whether writeAccelerator should be enabled or 4377 disabled on the disk. 4378 :type write_accelerator_enabled: bool 4379 :param create_option: Required. The create option. Possible values include: "FromImage", 4380 "Empty", "Attach". 4381 :type create_option: str or ~azure.mgmt.compute.v2018_10_01.models.DiskCreateOptionTypes 4382 :param disk_size_gb: Specifies the size of an empty data disk in gigabytes. This element can be 4383 used to overwrite the size of the disk in a virtual machine image. :code:`<br>`:code:`<br>` 4384 This value cannot be larger than 1023 GB. 4385 :type disk_size_gb: int 4386 :param managed_disk: The managed disk parameters. 4387 :type managed_disk: 4388 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetManagedDiskParameters 4389 """ 4390 4391 _validation = { 4392 'lun': {'required': True}, 4393 'create_option': {'required': True}, 4394 } 4395 4396 _attribute_map = { 4397 'name': {'key': 'name', 'type': 'str'}, 4398 'lun': {'key': 'lun', 'type': 'int'}, 4399 'caching': {'key': 'caching', 'type': 'str'}, 4400 'write_accelerator_enabled': {'key': 'writeAcceleratorEnabled', 'type': 'bool'}, 4401 'create_option': {'key': 'createOption', 'type': 'str'}, 4402 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, 4403 'managed_disk': {'key': 'managedDisk', 'type': 'VirtualMachineScaleSetManagedDiskParameters'}, 4404 } 4405 4406 def __init__( 4407 self, 4408 *, 4409 lun: int, 4410 create_option: Union[str, "DiskCreateOptionTypes"], 4411 name: Optional[str] = None, 4412 caching: Optional[Union[str, "CachingTypes"]] = None, 4413 write_accelerator_enabled: Optional[bool] = None, 4414 disk_size_gb: Optional[int] = None, 4415 managed_disk: Optional["VirtualMachineScaleSetManagedDiskParameters"] = None, 4416 **kwargs 4417 ): 4418 super(VirtualMachineScaleSetDataDisk, self).__init__(**kwargs) 4419 self.name = name 4420 self.lun = lun 4421 self.caching = caching 4422 self.write_accelerator_enabled = write_accelerator_enabled 4423 self.create_option = create_option 4424 self.disk_size_gb = disk_size_gb 4425 self.managed_disk = managed_disk 4426 4427 4428class VirtualMachineScaleSetExtension(SubResourceReadOnly): 4429 """Describes a Virtual Machine Scale Set Extension. 4430 4431 Variables are only populated by the server, and will be ignored when sending a request. 4432 4433 :ivar id: Resource Id. 4434 :vartype id: str 4435 :param name: The name of the extension. 4436 :type name: str 4437 :param force_update_tag: If a value is provided and is different from the previous value, the 4438 extension handler will be forced to update even if the extension configuration has not changed. 4439 :type force_update_tag: str 4440 :param publisher: The name of the extension handler publisher. 4441 :type publisher: str 4442 :param type: Specifies the type of the extension; an example is "CustomScriptExtension". 4443 :type type: str 4444 :param type_handler_version: Specifies the version of the script handler. 4445 :type type_handler_version: str 4446 :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor 4447 version if one is available at deployment time. Once deployed, however, the extension will not 4448 upgrade minor versions unless redeployed, even with this property set to true. 4449 :type auto_upgrade_minor_version: bool 4450 :param settings: Json formatted public settings for the extension. 4451 :type settings: any 4452 :param protected_settings: The extension can contain either protectedSettings or 4453 protectedSettingsFromKeyVault or no protected settings at all. 4454 :type protected_settings: any 4455 :ivar provisioning_state: The provisioning state, which only appears in the response. 4456 :vartype provisioning_state: str 4457 :param provision_after_extensions: Collection of extension names after which this extension 4458 needs to be provisioned. 4459 :type provision_after_extensions: list[str] 4460 """ 4461 4462 _validation = { 4463 'id': {'readonly': True}, 4464 'provisioning_state': {'readonly': True}, 4465 } 4466 4467 _attribute_map = { 4468 'id': {'key': 'id', 'type': 'str'}, 4469 'name': {'key': 'name', 'type': 'str'}, 4470 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, 4471 'publisher': {'key': 'properties.publisher', 'type': 'str'}, 4472 'type': {'key': 'properties.type', 'type': 'str'}, 4473 'type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, 4474 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, 4475 'settings': {'key': 'properties.settings', 'type': 'object'}, 4476 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, 4477 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 4478 'provision_after_extensions': {'key': 'properties.provisionAfterExtensions', 'type': '[str]'}, 4479 } 4480 4481 def __init__( 4482 self, 4483 *, 4484 name: Optional[str] = None, 4485 force_update_tag: Optional[str] = None, 4486 publisher: Optional[str] = None, 4487 type: Optional[str] = None, 4488 type_handler_version: Optional[str] = None, 4489 auto_upgrade_minor_version: Optional[bool] = None, 4490 settings: Optional[Any] = None, 4491 protected_settings: Optional[Any] = None, 4492 provision_after_extensions: Optional[List[str]] = None, 4493 **kwargs 4494 ): 4495 super(VirtualMachineScaleSetExtension, self).__init__(**kwargs) 4496 self.name = name 4497 self.force_update_tag = force_update_tag 4498 self.publisher = publisher 4499 self.type = type 4500 self.type_handler_version = type_handler_version 4501 self.auto_upgrade_minor_version = auto_upgrade_minor_version 4502 self.settings = settings 4503 self.protected_settings = protected_settings 4504 self.provisioning_state = None 4505 self.provision_after_extensions = provision_after_extensions 4506 4507 4508class VirtualMachineScaleSetExtensionListResult(msrest.serialization.Model): 4509 """The List VM scale set extension operation response. 4510 4511 All required parameters must be populated in order to send to Azure. 4512 4513 :param value: Required. The list of VM scale set extensions. 4514 :type value: list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetExtension] 4515 :param next_link: The uri to fetch the next page of VM scale set extensions. Call ListNext() 4516 with this to fetch the next page of VM scale set extensions. 4517 :type next_link: str 4518 """ 4519 4520 _validation = { 4521 'value': {'required': True}, 4522 } 4523 4524 _attribute_map = { 4525 'value': {'key': 'value', 'type': '[VirtualMachineScaleSetExtension]'}, 4526 'next_link': {'key': 'nextLink', 'type': 'str'}, 4527 } 4528 4529 def __init__( 4530 self, 4531 *, 4532 value: List["VirtualMachineScaleSetExtension"], 4533 next_link: Optional[str] = None, 4534 **kwargs 4535 ): 4536 super(VirtualMachineScaleSetExtensionListResult, self).__init__(**kwargs) 4537 self.value = value 4538 self.next_link = next_link 4539 4540 4541class VirtualMachineScaleSetExtensionProfile(msrest.serialization.Model): 4542 """Describes a virtual machine scale set extension profile. 4543 4544 :param extensions: The virtual machine scale set child extension resources. 4545 :type extensions: list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetExtension] 4546 """ 4547 4548 _attribute_map = { 4549 'extensions': {'key': 'extensions', 'type': '[VirtualMachineScaleSetExtension]'}, 4550 } 4551 4552 def __init__( 4553 self, 4554 *, 4555 extensions: Optional[List["VirtualMachineScaleSetExtension"]] = None, 4556 **kwargs 4557 ): 4558 super(VirtualMachineScaleSetExtensionProfile, self).__init__(**kwargs) 4559 self.extensions = extensions 4560 4561 4562class VirtualMachineScaleSetIdentity(msrest.serialization.Model): 4563 """Identity for the virtual machine scale set. 4564 4565 Variables are only populated by the server, and will be ignored when sending a request. 4566 4567 :ivar principal_id: The principal id of virtual machine scale set identity. This property will 4568 only be provided for a system assigned identity. 4569 :vartype principal_id: str 4570 :ivar tenant_id: The tenant id associated with the virtual machine scale set. This property 4571 will only be provided for a system assigned identity. 4572 :vartype tenant_id: str 4573 :param type: The type of identity used for the virtual machine scale set. The type 4574 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user 4575 assigned identities. The type 'None' will remove any identities from the virtual machine scale 4576 set. Possible values include: "SystemAssigned", "UserAssigned", "SystemAssigned, UserAssigned", 4577 "None". 4578 :type type: str or ~azure.mgmt.compute.v2018_10_01.models.ResourceIdentityType 4579 :param user_assigned_identities: The list of user identities associated with the virtual 4580 machine scale set. The user identity dictionary key references will be ARM resource ids in the 4581 form: 4582 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. 4583 :type user_assigned_identities: dict[str, 4584 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue] 4585 """ 4586 4587 _validation = { 4588 'principal_id': {'readonly': True}, 4589 'tenant_id': {'readonly': True}, 4590 } 4591 4592 _attribute_map = { 4593 'principal_id': {'key': 'principalId', 'type': 'str'}, 4594 'tenant_id': {'key': 'tenantId', 'type': 'str'}, 4595 'type': {'key': 'type', 'type': 'str'}, 4596 'user_assigned_identities': {'key': 'userAssignedIdentities', 'type': '{VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue}'}, 4597 } 4598 4599 def __init__( 4600 self, 4601 *, 4602 type: Optional[Union[str, "ResourceIdentityType"]] = None, 4603 user_assigned_identities: Optional[Dict[str, "VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue"]] = None, 4604 **kwargs 4605 ): 4606 super(VirtualMachineScaleSetIdentity, self).__init__(**kwargs) 4607 self.principal_id = None 4608 self.tenant_id = None 4609 self.type = type 4610 self.user_assigned_identities = user_assigned_identities 4611 4612 4613class VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue(msrest.serialization.Model): 4614 """VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue. 4615 4616 Variables are only populated by the server, and will be ignored when sending a request. 4617 4618 :ivar principal_id: The principal id of user assigned identity. 4619 :vartype principal_id: str 4620 :ivar client_id: The client id of user assigned identity. 4621 :vartype client_id: str 4622 """ 4623 4624 _validation = { 4625 'principal_id': {'readonly': True}, 4626 'client_id': {'readonly': True}, 4627 } 4628 4629 _attribute_map = { 4630 'principal_id': {'key': 'principalId', 'type': 'str'}, 4631 'client_id': {'key': 'clientId', 'type': 'str'}, 4632 } 4633 4634 def __init__( 4635 self, 4636 **kwargs 4637 ): 4638 super(VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue, self).__init__(**kwargs) 4639 self.principal_id = None 4640 self.client_id = None 4641 4642 4643class VirtualMachineScaleSetInstanceView(msrest.serialization.Model): 4644 """The instance view of a virtual machine scale set. 4645 4646 Variables are only populated by the server, and will be ignored when sending a request. 4647 4648 :ivar virtual_machine: The instance view status summary for the virtual machine scale set. 4649 :vartype virtual_machine: 4650 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetInstanceViewStatusesSummary 4651 :ivar extensions: The extensions information. 4652 :vartype extensions: 4653 list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetVMExtensionsSummary] 4654 :param statuses: The resource status information. 4655 :type statuses: list[~azure.mgmt.compute.v2018_10_01.models.InstanceViewStatus] 4656 """ 4657 4658 _validation = { 4659 'virtual_machine': {'readonly': True}, 4660 'extensions': {'readonly': True}, 4661 } 4662 4663 _attribute_map = { 4664 'virtual_machine': {'key': 'virtualMachine', 'type': 'VirtualMachineScaleSetInstanceViewStatusesSummary'}, 4665 'extensions': {'key': 'extensions', 'type': '[VirtualMachineScaleSetVMExtensionsSummary]'}, 4666 'statuses': {'key': 'statuses', 'type': '[InstanceViewStatus]'}, 4667 } 4668 4669 def __init__( 4670 self, 4671 *, 4672 statuses: Optional[List["InstanceViewStatus"]] = None, 4673 **kwargs 4674 ): 4675 super(VirtualMachineScaleSetInstanceView, self).__init__(**kwargs) 4676 self.virtual_machine = None 4677 self.extensions = None 4678 self.statuses = statuses 4679 4680 4681class VirtualMachineScaleSetInstanceViewStatusesSummary(msrest.serialization.Model): 4682 """Instance view statuses summary for virtual machines of a virtual machine scale set. 4683 4684 Variables are only populated by the server, and will be ignored when sending a request. 4685 4686 :ivar statuses_summary: The extensions information. 4687 :vartype statuses_summary: 4688 list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineStatusCodeCount] 4689 """ 4690 4691 _validation = { 4692 'statuses_summary': {'readonly': True}, 4693 } 4694 4695 _attribute_map = { 4696 'statuses_summary': {'key': 'statusesSummary', 'type': '[VirtualMachineStatusCodeCount]'}, 4697 } 4698 4699 def __init__( 4700 self, 4701 **kwargs 4702 ): 4703 super(VirtualMachineScaleSetInstanceViewStatusesSummary, self).__init__(**kwargs) 4704 self.statuses_summary = None 4705 4706 4707class VirtualMachineScaleSetIPConfiguration(SubResource): 4708 """Describes a virtual machine scale set network profile's IP configuration. 4709 4710 All required parameters must be populated in order to send to Azure. 4711 4712 :param id: Resource Id. 4713 :type id: str 4714 :param name: Required. The IP configuration name. 4715 :type name: str 4716 :param subnet: Specifies the identifier of the subnet. 4717 :type subnet: ~azure.mgmt.compute.v2018_10_01.models.ApiEntityReference 4718 :param primary: Specifies the primary network interface in case the virtual machine has more 4719 than 1 network interface. 4720 :type primary: bool 4721 :param public_ip_address_configuration: The publicIPAddressConfiguration. 4722 :type public_ip_address_configuration: 4723 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetPublicIPAddressConfiguration 4724 :param private_ip_address_version: Available from Api-Version 2017-03-30 onwards, it represents 4725 whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible 4726 values are: 'IPv4' and 'IPv6'. Possible values include: "IPv4", "IPv6". 4727 :type private_ip_address_version: str or ~azure.mgmt.compute.v2018_10_01.models.IPVersion 4728 :param application_gateway_backend_address_pools: Specifies an array of references to backend 4729 address pools of application gateways. A scale set can reference backend address pools of 4730 multiple application gateways. Multiple scale sets cannot use the same application gateway. 4731 :type application_gateway_backend_address_pools: 4732 list[~azure.mgmt.compute.v2018_10_01.models.SubResource] 4733 :param application_security_groups: Specifies an array of references to application security 4734 group. 4735 :type application_security_groups: list[~azure.mgmt.compute.v2018_10_01.models.SubResource] 4736 :param load_balancer_backend_address_pools: Specifies an array of references to backend address 4737 pools of load balancers. A scale set can reference backend address pools of one public and one 4738 internal load balancer. Multiple scale sets cannot use the same load balancer. 4739 :type load_balancer_backend_address_pools: 4740 list[~azure.mgmt.compute.v2018_10_01.models.SubResource] 4741 :param load_balancer_inbound_nat_pools: Specifies an array of references to inbound Nat pools 4742 of the load balancers. A scale set can reference inbound nat pools of one public and one 4743 internal load balancer. Multiple scale sets cannot use the same load balancer. 4744 :type load_balancer_inbound_nat_pools: list[~azure.mgmt.compute.v2018_10_01.models.SubResource] 4745 """ 4746 4747 _validation = { 4748 'name': {'required': True}, 4749 } 4750 4751 _attribute_map = { 4752 'id': {'key': 'id', 'type': 'str'}, 4753 'name': {'key': 'name', 'type': 'str'}, 4754 'subnet': {'key': 'properties.subnet', 'type': 'ApiEntityReference'}, 4755 'primary': {'key': 'properties.primary', 'type': 'bool'}, 4756 'public_ip_address_configuration': {'key': 'properties.publicIPAddressConfiguration', 'type': 'VirtualMachineScaleSetPublicIPAddressConfiguration'}, 4757 'private_ip_address_version': {'key': 'properties.privateIPAddressVersion', 'type': 'str'}, 4758 'application_gateway_backend_address_pools': {'key': 'properties.applicationGatewayBackendAddressPools', 'type': '[SubResource]'}, 4759 'application_security_groups': {'key': 'properties.applicationSecurityGroups', 'type': '[SubResource]'}, 4760 'load_balancer_backend_address_pools': {'key': 'properties.loadBalancerBackendAddressPools', 'type': '[SubResource]'}, 4761 'load_balancer_inbound_nat_pools': {'key': 'properties.loadBalancerInboundNatPools', 'type': '[SubResource]'}, 4762 } 4763 4764 def __init__( 4765 self, 4766 *, 4767 name: str, 4768 id: Optional[str] = None, 4769 subnet: Optional["ApiEntityReference"] = None, 4770 primary: Optional[bool] = None, 4771 public_ip_address_configuration: Optional["VirtualMachineScaleSetPublicIPAddressConfiguration"] = None, 4772 private_ip_address_version: Optional[Union[str, "IPVersion"]] = None, 4773 application_gateway_backend_address_pools: Optional[List["SubResource"]] = None, 4774 application_security_groups: Optional[List["SubResource"]] = None, 4775 load_balancer_backend_address_pools: Optional[List["SubResource"]] = None, 4776 load_balancer_inbound_nat_pools: Optional[List["SubResource"]] = None, 4777 **kwargs 4778 ): 4779 super(VirtualMachineScaleSetIPConfiguration, self).__init__(id=id, **kwargs) 4780 self.name = name 4781 self.subnet = subnet 4782 self.primary = primary 4783 self.public_ip_address_configuration = public_ip_address_configuration 4784 self.private_ip_address_version = private_ip_address_version 4785 self.application_gateway_backend_address_pools = application_gateway_backend_address_pools 4786 self.application_security_groups = application_security_groups 4787 self.load_balancer_backend_address_pools = load_balancer_backend_address_pools 4788 self.load_balancer_inbound_nat_pools = load_balancer_inbound_nat_pools 4789 4790 4791class VirtualMachineScaleSetIpTag(msrest.serialization.Model): 4792 """Contains the IP tag associated with the public IP address. 4793 4794 :param ip_tag_type: IP tag type. Example: FirstPartyUsage. 4795 :type ip_tag_type: str 4796 :param tag: IP tag associated with the public IP. Example: SQL, Storage etc. 4797 :type tag: str 4798 """ 4799 4800 _attribute_map = { 4801 'ip_tag_type': {'key': 'ipTagType', 'type': 'str'}, 4802 'tag': {'key': 'tag', 'type': 'str'}, 4803 } 4804 4805 def __init__( 4806 self, 4807 *, 4808 ip_tag_type: Optional[str] = None, 4809 tag: Optional[str] = None, 4810 **kwargs 4811 ): 4812 super(VirtualMachineScaleSetIpTag, self).__init__(**kwargs) 4813 self.ip_tag_type = ip_tag_type 4814 self.tag = tag 4815 4816 4817class VirtualMachineScaleSetListOSUpgradeHistory(msrest.serialization.Model): 4818 """List of Virtual Machine Scale Set OS Upgrade History operation response. 4819 4820 All required parameters must be populated in order to send to Azure. 4821 4822 :param value: Required. The list of OS upgrades performed on the virtual machine scale set. 4823 :type value: list[~azure.mgmt.compute.v2018_10_01.models.UpgradeOperationHistoricalStatusInfo] 4824 :param next_link: The uri to fetch the next page of OS Upgrade History. Call ListNext() with 4825 this to fetch the next page of history of upgrades. 4826 :type next_link: str 4827 """ 4828 4829 _validation = { 4830 'value': {'required': True}, 4831 } 4832 4833 _attribute_map = { 4834 'value': {'key': 'value', 'type': '[UpgradeOperationHistoricalStatusInfo]'}, 4835 'next_link': {'key': 'nextLink', 'type': 'str'}, 4836 } 4837 4838 def __init__( 4839 self, 4840 *, 4841 value: List["UpgradeOperationHistoricalStatusInfo"], 4842 next_link: Optional[str] = None, 4843 **kwargs 4844 ): 4845 super(VirtualMachineScaleSetListOSUpgradeHistory, self).__init__(**kwargs) 4846 self.value = value 4847 self.next_link = next_link 4848 4849 4850class VirtualMachineScaleSetListResult(msrest.serialization.Model): 4851 """The List Virtual Machine operation response. 4852 4853 All required parameters must be populated in order to send to Azure. 4854 4855 :param value: Required. The list of virtual machine scale sets. 4856 :type value: list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSet] 4857 :param next_link: The uri to fetch the next page of Virtual Machine Scale Sets. Call ListNext() 4858 with this to fetch the next page of VMSS. 4859 :type next_link: str 4860 """ 4861 4862 _validation = { 4863 'value': {'required': True}, 4864 } 4865 4866 _attribute_map = { 4867 'value': {'key': 'value', 'type': '[VirtualMachineScaleSet]'}, 4868 'next_link': {'key': 'nextLink', 'type': 'str'}, 4869 } 4870 4871 def __init__( 4872 self, 4873 *, 4874 value: List["VirtualMachineScaleSet"], 4875 next_link: Optional[str] = None, 4876 **kwargs 4877 ): 4878 super(VirtualMachineScaleSetListResult, self).__init__(**kwargs) 4879 self.value = value 4880 self.next_link = next_link 4881 4882 4883class VirtualMachineScaleSetListSkusResult(msrest.serialization.Model): 4884 """The Virtual Machine Scale Set List Skus operation response. 4885 4886 All required parameters must be populated in order to send to Azure. 4887 4888 :param value: Required. The list of skus available for the virtual machine scale set. 4889 :type value: list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetSku] 4890 :param next_link: The uri to fetch the next page of Virtual Machine Scale Set Skus. Call 4891 ListNext() with this to fetch the next page of VMSS Skus. 4892 :type next_link: str 4893 """ 4894 4895 _validation = { 4896 'value': {'required': True}, 4897 } 4898 4899 _attribute_map = { 4900 'value': {'key': 'value', 'type': '[VirtualMachineScaleSetSku]'}, 4901 'next_link': {'key': 'nextLink', 'type': 'str'}, 4902 } 4903 4904 def __init__( 4905 self, 4906 *, 4907 value: List["VirtualMachineScaleSetSku"], 4908 next_link: Optional[str] = None, 4909 **kwargs 4910 ): 4911 super(VirtualMachineScaleSetListSkusResult, self).__init__(**kwargs) 4912 self.value = value 4913 self.next_link = next_link 4914 4915 4916class VirtualMachineScaleSetListWithLinkResult(msrest.serialization.Model): 4917 """The List Virtual Machine operation response. 4918 4919 All required parameters must be populated in order to send to Azure. 4920 4921 :param value: Required. The list of virtual machine scale sets. 4922 :type value: list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSet] 4923 :param next_link: The uri to fetch the next page of Virtual Machine Scale Sets. Call ListNext() 4924 with this to fetch the next page of Virtual Machine Scale Sets. 4925 :type next_link: str 4926 """ 4927 4928 _validation = { 4929 'value': {'required': True}, 4930 } 4931 4932 _attribute_map = { 4933 'value': {'key': 'value', 'type': '[VirtualMachineScaleSet]'}, 4934 'next_link': {'key': 'nextLink', 'type': 'str'}, 4935 } 4936 4937 def __init__( 4938 self, 4939 *, 4940 value: List["VirtualMachineScaleSet"], 4941 next_link: Optional[str] = None, 4942 **kwargs 4943 ): 4944 super(VirtualMachineScaleSetListWithLinkResult, self).__init__(**kwargs) 4945 self.value = value 4946 self.next_link = next_link 4947 4948 4949class VirtualMachineScaleSetManagedDiskParameters(msrest.serialization.Model): 4950 """Describes the parameters of a ScaleSet managed disk. 4951 4952 :param storage_account_type: Specifies the storage account type for the managed disk. Managed 4953 OS disk storage account type can only be set when you create the scale set. NOTE: UltraSSD_LRS 4954 can only be used with data disks, it cannot be used with OS Disk. Possible values include: 4955 "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS". 4956 :type storage_account_type: str or ~azure.mgmt.compute.v2018_10_01.models.StorageAccountTypes 4957 """ 4958 4959 _attribute_map = { 4960 'storage_account_type': {'key': 'storageAccountType', 'type': 'str'}, 4961 } 4962 4963 def __init__( 4964 self, 4965 *, 4966 storage_account_type: Optional[Union[str, "StorageAccountTypes"]] = None, 4967 **kwargs 4968 ): 4969 super(VirtualMachineScaleSetManagedDiskParameters, self).__init__(**kwargs) 4970 self.storage_account_type = storage_account_type 4971 4972 4973class VirtualMachineScaleSetNetworkConfiguration(SubResource): 4974 """Describes a virtual machine scale set network profile's network configurations. 4975 4976 All required parameters must be populated in order to send to Azure. 4977 4978 :param id: Resource Id. 4979 :type id: str 4980 :param name: Required. The network configuration name. 4981 :type name: str 4982 :param primary: Specifies the primary network interface in case the virtual machine has more 4983 than 1 network interface. 4984 :type primary: bool 4985 :param enable_accelerated_networking: Specifies whether the network interface is accelerated 4986 networking-enabled. 4987 :type enable_accelerated_networking: bool 4988 :param network_security_group: The network security group. 4989 :type network_security_group: ~azure.mgmt.compute.v2018_10_01.models.SubResource 4990 :param dns_settings: The dns settings to be applied on the network interfaces. 4991 :type dns_settings: 4992 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetNetworkConfigurationDnsSettings 4993 :param ip_configurations: Specifies the IP configurations of the network interface. 4994 :type ip_configurations: 4995 list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetIPConfiguration] 4996 :param enable_ip_forwarding: Whether IP forwarding enabled on this NIC. 4997 :type enable_ip_forwarding: bool 4998 """ 4999 5000 _validation = { 5001 'name': {'required': True}, 5002 } 5003 5004 _attribute_map = { 5005 'id': {'key': 'id', 'type': 'str'}, 5006 'name': {'key': 'name', 'type': 'str'}, 5007 'primary': {'key': 'properties.primary', 'type': 'bool'}, 5008 'enable_accelerated_networking': {'key': 'properties.enableAcceleratedNetworking', 'type': 'bool'}, 5009 'network_security_group': {'key': 'properties.networkSecurityGroup', 'type': 'SubResource'}, 5010 'dns_settings': {'key': 'properties.dnsSettings', 'type': 'VirtualMachineScaleSetNetworkConfigurationDnsSettings'}, 5011 'ip_configurations': {'key': 'properties.ipConfigurations', 'type': '[VirtualMachineScaleSetIPConfiguration]'}, 5012 'enable_ip_forwarding': {'key': 'properties.enableIPForwarding', 'type': 'bool'}, 5013 } 5014 5015 def __init__( 5016 self, 5017 *, 5018 name: str, 5019 id: Optional[str] = None, 5020 primary: Optional[bool] = None, 5021 enable_accelerated_networking: Optional[bool] = None, 5022 network_security_group: Optional["SubResource"] = None, 5023 dns_settings: Optional["VirtualMachineScaleSetNetworkConfigurationDnsSettings"] = None, 5024 ip_configurations: Optional[List["VirtualMachineScaleSetIPConfiguration"]] = None, 5025 enable_ip_forwarding: Optional[bool] = None, 5026 **kwargs 5027 ): 5028 super(VirtualMachineScaleSetNetworkConfiguration, self).__init__(id=id, **kwargs) 5029 self.name = name 5030 self.primary = primary 5031 self.enable_accelerated_networking = enable_accelerated_networking 5032 self.network_security_group = network_security_group 5033 self.dns_settings = dns_settings 5034 self.ip_configurations = ip_configurations 5035 self.enable_ip_forwarding = enable_ip_forwarding 5036 5037 5038class VirtualMachineScaleSetNetworkConfigurationDnsSettings(msrest.serialization.Model): 5039 """Describes a virtual machines scale sets network configuration's DNS settings. 5040 5041 :param dns_servers: List of DNS servers IP addresses. 5042 :type dns_servers: list[str] 5043 """ 5044 5045 _attribute_map = { 5046 'dns_servers': {'key': 'dnsServers', 'type': '[str]'}, 5047 } 5048 5049 def __init__( 5050 self, 5051 *, 5052 dns_servers: Optional[List[str]] = None, 5053 **kwargs 5054 ): 5055 super(VirtualMachineScaleSetNetworkConfigurationDnsSettings, self).__init__(**kwargs) 5056 self.dns_servers = dns_servers 5057 5058 5059class VirtualMachineScaleSetNetworkProfile(msrest.serialization.Model): 5060 """Describes a virtual machine scale set network profile. 5061 5062 :param health_probe: A reference to a load balancer probe used to determine the health of an 5063 instance in the virtual machine scale set. The reference will be in the form: 5064 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'. 5065 :type health_probe: ~azure.mgmt.compute.v2018_10_01.models.ApiEntityReference 5066 :param network_interface_configurations: The list of network configurations. 5067 :type network_interface_configurations: 5068 list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetNetworkConfiguration] 5069 """ 5070 5071 _attribute_map = { 5072 'health_probe': {'key': 'healthProbe', 'type': 'ApiEntityReference'}, 5073 'network_interface_configurations': {'key': 'networkInterfaceConfigurations', 'type': '[VirtualMachineScaleSetNetworkConfiguration]'}, 5074 } 5075 5076 def __init__( 5077 self, 5078 *, 5079 health_probe: Optional["ApiEntityReference"] = None, 5080 network_interface_configurations: Optional[List["VirtualMachineScaleSetNetworkConfiguration"]] = None, 5081 **kwargs 5082 ): 5083 super(VirtualMachineScaleSetNetworkProfile, self).__init__(**kwargs) 5084 self.health_probe = health_probe 5085 self.network_interface_configurations = network_interface_configurations 5086 5087 5088class VirtualMachineScaleSetOSDisk(msrest.serialization.Model): 5089 """Describes a virtual machine scale set operating system disk. 5090 5091 All required parameters must be populated in order to send to Azure. 5092 5093 :param name: The disk name. 5094 :type name: str 5095 :param caching: Specifies the caching requirements. :code:`<br>`:code:`<br>` Possible values 5096 are: :code:`<br>`:code:`<br>` **None** :code:`<br>`:code:`<br>` **ReadOnly** 5097 :code:`<br>`:code:`<br>` **ReadWrite** :code:`<br>`:code:`<br>` Default: **None for Standard 5098 storage. ReadOnly for Premium storage**. Possible values include: "None", "ReadOnly", 5099 "ReadWrite". 5100 :type caching: str or ~azure.mgmt.compute.v2018_10_01.models.CachingTypes 5101 :param write_accelerator_enabled: Specifies whether writeAccelerator should be enabled or 5102 disabled on the disk. 5103 :type write_accelerator_enabled: bool 5104 :param create_option: Required. Specifies how the virtual machines in the scale set should be 5105 created.:code:`<br>`:code:`<br>` The only allowed value is: **FromImage** \u2013 This value is 5106 used when you are using an image to create the virtual machine. If you are using a platform 5107 image, you also use the imageReference element described above. If you are using a marketplace 5108 image, you also use the plan element previously described. Possible values include: 5109 "FromImage", "Empty", "Attach". 5110 :type create_option: str or ~azure.mgmt.compute.v2018_10_01.models.DiskCreateOptionTypes 5111 :param diff_disk_settings: Specifies the ephemeral disk Settings for the operating system disk 5112 used by the virtual machine scale set. 5113 :type diff_disk_settings: ~azure.mgmt.compute.v2018_10_01.models.DiffDiskSettings 5114 :param disk_size_gb: Specifies the size of the operating system disk in gigabytes. This element 5115 can be used to overwrite the size of the disk in a virtual machine image. 5116 :code:`<br>`:code:`<br>` This value cannot be larger than 1023 GB. 5117 :type disk_size_gb: int 5118 :param os_type: This property allows you to specify the type of the OS that is included in the 5119 disk if creating a VM from user-image or a specialized VHD. :code:`<br>`:code:`<br>` Possible 5120 values are: :code:`<br>`:code:`<br>` **Windows** :code:`<br>`:code:`<br>` **Linux**. Possible 5121 values include: "Windows", "Linux". 5122 :type os_type: str or ~azure.mgmt.compute.v2018_10_01.models.OperatingSystemTypes 5123 :param image: Specifies information about the unmanaged user image to base the scale set on. 5124 :type image: ~azure.mgmt.compute.v2018_10_01.models.VirtualHardDisk 5125 :param vhd_containers: Specifies the container urls that are used to store operating system 5126 disks for the scale set. 5127 :type vhd_containers: list[str] 5128 :param managed_disk: The managed disk parameters. 5129 :type managed_disk: 5130 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetManagedDiskParameters 5131 """ 5132 5133 _validation = { 5134 'create_option': {'required': True}, 5135 } 5136 5137 _attribute_map = { 5138 'name': {'key': 'name', 'type': 'str'}, 5139 'caching': {'key': 'caching', 'type': 'str'}, 5140 'write_accelerator_enabled': {'key': 'writeAcceleratorEnabled', 'type': 'bool'}, 5141 'create_option': {'key': 'createOption', 'type': 'str'}, 5142 'diff_disk_settings': {'key': 'diffDiskSettings', 'type': 'DiffDiskSettings'}, 5143 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, 5144 'os_type': {'key': 'osType', 'type': 'str'}, 5145 'image': {'key': 'image', 'type': 'VirtualHardDisk'}, 5146 'vhd_containers': {'key': 'vhdContainers', 'type': '[str]'}, 5147 'managed_disk': {'key': 'managedDisk', 'type': 'VirtualMachineScaleSetManagedDiskParameters'}, 5148 } 5149 5150 def __init__( 5151 self, 5152 *, 5153 create_option: Union[str, "DiskCreateOptionTypes"], 5154 name: Optional[str] = None, 5155 caching: Optional[Union[str, "CachingTypes"]] = None, 5156 write_accelerator_enabled: Optional[bool] = None, 5157 diff_disk_settings: Optional["DiffDiskSettings"] = None, 5158 disk_size_gb: Optional[int] = None, 5159 os_type: Optional[Union[str, "OperatingSystemTypes"]] = None, 5160 image: Optional["VirtualHardDisk"] = None, 5161 vhd_containers: Optional[List[str]] = None, 5162 managed_disk: Optional["VirtualMachineScaleSetManagedDiskParameters"] = None, 5163 **kwargs 5164 ): 5165 super(VirtualMachineScaleSetOSDisk, self).__init__(**kwargs) 5166 self.name = name 5167 self.caching = caching 5168 self.write_accelerator_enabled = write_accelerator_enabled 5169 self.create_option = create_option 5170 self.diff_disk_settings = diff_disk_settings 5171 self.disk_size_gb = disk_size_gb 5172 self.os_type = os_type 5173 self.image = image 5174 self.vhd_containers = vhd_containers 5175 self.managed_disk = managed_disk 5176 5177 5178class VirtualMachineScaleSetOSProfile(msrest.serialization.Model): 5179 """Describes a virtual machine scale set OS profile. 5180 5181 :param computer_name_prefix: Specifies the computer name prefix for all of the virtual machines 5182 in the scale set. Computer name prefixes must be 1 to 15 characters long. 5183 :type computer_name_prefix: str 5184 :param admin_username: Specifies the name of the administrator account. 5185 :code:`<br>`:code:`<br>` **Windows-only restriction:** Cannot end in "." 5186 :code:`<br>`:code:`<br>` **Disallowed values:** "administrator", "admin", "user", "user1", 5187 "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", 5188 "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", 5189 "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". 5190 :code:`<br>`:code:`<br>` **Minimum-length (Linux):** 1 character :code:`<br>`:code:`<br>` 5191 **Max-length (Linux):** 64 characters :code:`<br>`:code:`<br>` **Max-length (Windows):** 20 5192 characters :code:`<br>`:code:`<br>`:code:`<li>` For root access to the Linux VM, see `Using 5193 root privileges on Linux virtual machines in Azure 5194 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_\ 5195 :code:`<br>`:code:`<li>` For a list of built-in system users on Linux that should not be used 5196 in this field, see `Selecting User Names for Linux on Azure 5197 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_. 5198 :type admin_username: str 5199 :param admin_password: Specifies the password of the administrator account. 5200 :code:`<br>`:code:`<br>` **Minimum-length (Windows):** 8 characters :code:`<br>`:code:`<br>` 5201 **Minimum-length (Linux):** 6 characters :code:`<br>`:code:`<br>` **Max-length (Windows):** 123 5202 characters :code:`<br>`:code:`<br>` **Max-length (Linux):** 72 characters 5203 :code:`<br>`:code:`<br>` **Complexity requirements:** 3 out of 4 conditions below need to be 5204 fulfilled :code:`<br>` Has lower characters :code:`<br>`Has upper characters :code:`<br>` Has a 5205 digit :code:`<br>` Has a special character (Regex match [\W_]) :code:`<br>`:code:`<br>` 5206 **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", 5207 "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" :code:`<br>`:code:`<br>` For 5208 resetting the password, see `How to reset the Remote Desktop service or its login password in a 5209 Windows VM 5210 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-reset-rdp?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_ 5211 :code:`<br>`:code:`<br>` For resetting root password, see `Manage users, SSH, and check or 5212 repair disks on Azure Linux VMs using the VMAccess Extension 5213 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-vmaccess-extension?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#reset-root-password>`_. 5214 :type admin_password: str 5215 :param custom_data: Specifies a base-64 encoded string of custom data. The base-64 encoded 5216 string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum 5217 length of the binary array is 65535 bytes. :code:`<br>`:code:`<br>` For using cloud-init for 5218 your VM, see `Using cloud-init to customize a Linux VM during creation 5219 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_. 5220 :type custom_data: str 5221 :param windows_configuration: Specifies Windows operating system settings on the virtual 5222 machine. 5223 :type windows_configuration: ~azure.mgmt.compute.v2018_10_01.models.WindowsConfiguration 5224 :param linux_configuration: Specifies the Linux operating system settings on the virtual 5225 machine. :code:`<br>`:code:`<br>`For a list of supported Linux distributions, see `Linux on 5226 Azure-Endorsed Distributions 5227 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_ 5228 :code:`<br>`:code:`<br>` For running non-endorsed distributions, see `Information for 5229 Non-Endorsed Distributions 5230 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_. 5231 :type linux_configuration: ~azure.mgmt.compute.v2018_10_01.models.LinuxConfiguration 5232 :param secrets: Specifies set of certificates that should be installed onto the virtual 5233 machines in the scale set. 5234 :type secrets: list[~azure.mgmt.compute.v2018_10_01.models.VaultSecretGroup] 5235 """ 5236 5237 _attribute_map = { 5238 'computer_name_prefix': {'key': 'computerNamePrefix', 'type': 'str'}, 5239 'admin_username': {'key': 'adminUsername', 'type': 'str'}, 5240 'admin_password': {'key': 'adminPassword', 'type': 'str'}, 5241 'custom_data': {'key': 'customData', 'type': 'str'}, 5242 'windows_configuration': {'key': 'windowsConfiguration', 'type': 'WindowsConfiguration'}, 5243 'linux_configuration': {'key': 'linuxConfiguration', 'type': 'LinuxConfiguration'}, 5244 'secrets': {'key': 'secrets', 'type': '[VaultSecretGroup]'}, 5245 } 5246 5247 def __init__( 5248 self, 5249 *, 5250 computer_name_prefix: Optional[str] = None, 5251 admin_username: Optional[str] = None, 5252 admin_password: Optional[str] = None, 5253 custom_data: Optional[str] = None, 5254 windows_configuration: Optional["WindowsConfiguration"] = None, 5255 linux_configuration: Optional["LinuxConfiguration"] = None, 5256 secrets: Optional[List["VaultSecretGroup"]] = None, 5257 **kwargs 5258 ): 5259 super(VirtualMachineScaleSetOSProfile, self).__init__(**kwargs) 5260 self.computer_name_prefix = computer_name_prefix 5261 self.admin_username = admin_username 5262 self.admin_password = admin_password 5263 self.custom_data = custom_data 5264 self.windows_configuration = windows_configuration 5265 self.linux_configuration = linux_configuration 5266 self.secrets = secrets 5267 5268 5269class VirtualMachineScaleSetPublicIPAddressConfiguration(msrest.serialization.Model): 5270 """Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration. 5271 5272 All required parameters must be populated in order to send to Azure. 5273 5274 :param name: Required. The publicIP address configuration name. 5275 :type name: str 5276 :param idle_timeout_in_minutes: The idle timeout of the public IP address. 5277 :type idle_timeout_in_minutes: int 5278 :param dns_settings: The dns settings to be applied on the publicIP addresses . 5279 :type dns_settings: 5280 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings 5281 :param ip_tags: The list of IP tags associated with the public IP address. 5282 :type ip_tags: list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetIpTag] 5283 :param public_ip_prefix: The PublicIPPrefix from which to allocate publicIP addresses. 5284 :type public_ip_prefix: ~azure.mgmt.compute.v2018_10_01.models.SubResource 5285 """ 5286 5287 _validation = { 5288 'name': {'required': True}, 5289 } 5290 5291 _attribute_map = { 5292 'name': {'key': 'name', 'type': 'str'}, 5293 'idle_timeout_in_minutes': {'key': 'properties.idleTimeoutInMinutes', 'type': 'int'}, 5294 'dns_settings': {'key': 'properties.dnsSettings', 'type': 'VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings'}, 5295 'ip_tags': {'key': 'properties.ipTags', 'type': '[VirtualMachineScaleSetIpTag]'}, 5296 'public_ip_prefix': {'key': 'properties.publicIPPrefix', 'type': 'SubResource'}, 5297 } 5298 5299 def __init__( 5300 self, 5301 *, 5302 name: str, 5303 idle_timeout_in_minutes: Optional[int] = None, 5304 dns_settings: Optional["VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings"] = None, 5305 ip_tags: Optional[List["VirtualMachineScaleSetIpTag"]] = None, 5306 public_ip_prefix: Optional["SubResource"] = None, 5307 **kwargs 5308 ): 5309 super(VirtualMachineScaleSetPublicIPAddressConfiguration, self).__init__(**kwargs) 5310 self.name = name 5311 self.idle_timeout_in_minutes = idle_timeout_in_minutes 5312 self.dns_settings = dns_settings 5313 self.ip_tags = ip_tags 5314 self.public_ip_prefix = public_ip_prefix 5315 5316 5317class VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings(msrest.serialization.Model): 5318 """Describes a virtual machines scale sets network configuration's DNS settings. 5319 5320 All required parameters must be populated in order to send to Azure. 5321 5322 :param domain_name_label: Required. The Domain name label.The concatenation of the domain name 5323 label and vm index will be the domain name labels of the PublicIPAddress resources that will be 5324 created. 5325 :type domain_name_label: str 5326 """ 5327 5328 _validation = { 5329 'domain_name_label': {'required': True}, 5330 } 5331 5332 _attribute_map = { 5333 'domain_name_label': {'key': 'domainNameLabel', 'type': 'str'}, 5334 } 5335 5336 def __init__( 5337 self, 5338 *, 5339 domain_name_label: str, 5340 **kwargs 5341 ): 5342 super(VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings, self).__init__(**kwargs) 5343 self.domain_name_label = domain_name_label 5344 5345 5346class VirtualMachineScaleSetVMReimageParameters(VirtualMachineReimageParameters): 5347 """Describes a Virtual Machine Scale Set VM Reimage Parameters. 5348 5349 :param temp_disk: Specifies whether to reimage temp disk. Default value: false. Note: This temp 5350 disk reimage parameter is only supported for VM/VMSS with Ephemeral OS disk. 5351 :type temp_disk: bool 5352 """ 5353 5354 _attribute_map = { 5355 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, 5356 } 5357 5358 def __init__( 5359 self, 5360 *, 5361 temp_disk: Optional[bool] = None, 5362 **kwargs 5363 ): 5364 super(VirtualMachineScaleSetVMReimageParameters, self).__init__(temp_disk=temp_disk, **kwargs) 5365 5366 5367class VirtualMachineScaleSetReimageParameters(VirtualMachineScaleSetVMReimageParameters): 5368 """Describes a Virtual Machine Scale Set VM Reimage Parameters. 5369 5370 :param temp_disk: Specifies whether to reimage temp disk. Default value: false. Note: This temp 5371 disk reimage parameter is only supported for VM/VMSS with Ephemeral OS disk. 5372 :type temp_disk: bool 5373 :param instance_ids: The virtual machine scale set instance ids. Omitting the virtual machine 5374 scale set instance ids will result in the operation being performed on all virtual machines in 5375 the virtual machine scale set. 5376 :type instance_ids: list[str] 5377 """ 5378 5379 _attribute_map = { 5380 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, 5381 'instance_ids': {'key': 'instanceIds', 'type': '[str]'}, 5382 } 5383 5384 def __init__( 5385 self, 5386 *, 5387 temp_disk: Optional[bool] = None, 5388 instance_ids: Optional[List[str]] = None, 5389 **kwargs 5390 ): 5391 super(VirtualMachineScaleSetReimageParameters, self).__init__(temp_disk=temp_disk, **kwargs) 5392 self.instance_ids = instance_ids 5393 5394 5395class VirtualMachineScaleSetSku(msrest.serialization.Model): 5396 """Describes an available virtual machine scale set sku. 5397 5398 Variables are only populated by the server, and will be ignored when sending a request. 5399 5400 :ivar resource_type: The type of resource the sku applies to. 5401 :vartype resource_type: str 5402 :ivar sku: The Sku. 5403 :vartype sku: ~azure.mgmt.compute.v2018_10_01.models.Sku 5404 :ivar capacity: Specifies the number of virtual machines in the scale set. 5405 :vartype capacity: ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetSkuCapacity 5406 """ 5407 5408 _validation = { 5409 'resource_type': {'readonly': True}, 5410 'sku': {'readonly': True}, 5411 'capacity': {'readonly': True}, 5412 } 5413 5414 _attribute_map = { 5415 'resource_type': {'key': 'resourceType', 'type': 'str'}, 5416 'sku': {'key': 'sku', 'type': 'Sku'}, 5417 'capacity': {'key': 'capacity', 'type': 'VirtualMachineScaleSetSkuCapacity'}, 5418 } 5419 5420 def __init__( 5421 self, 5422 **kwargs 5423 ): 5424 super(VirtualMachineScaleSetSku, self).__init__(**kwargs) 5425 self.resource_type = None 5426 self.sku = None 5427 self.capacity = None 5428 5429 5430class VirtualMachineScaleSetSkuCapacity(msrest.serialization.Model): 5431 """Describes scaling information of a sku. 5432 5433 Variables are only populated by the server, and will be ignored when sending a request. 5434 5435 :ivar minimum: The minimum capacity. 5436 :vartype minimum: long 5437 :ivar maximum: The maximum capacity that can be set. 5438 :vartype maximum: long 5439 :ivar default_capacity: The default capacity. 5440 :vartype default_capacity: long 5441 :ivar scale_type: The scale type applicable to the sku. Possible values include: "Automatic", 5442 "None". 5443 :vartype scale_type: str or 5444 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetSkuScaleType 5445 """ 5446 5447 _validation = { 5448 'minimum': {'readonly': True}, 5449 'maximum': {'readonly': True}, 5450 'default_capacity': {'readonly': True}, 5451 'scale_type': {'readonly': True}, 5452 } 5453 5454 _attribute_map = { 5455 'minimum': {'key': 'minimum', 'type': 'long'}, 5456 'maximum': {'key': 'maximum', 'type': 'long'}, 5457 'default_capacity': {'key': 'defaultCapacity', 'type': 'long'}, 5458 'scale_type': {'key': 'scaleType', 'type': 'str'}, 5459 } 5460 5461 def __init__( 5462 self, 5463 **kwargs 5464 ): 5465 super(VirtualMachineScaleSetSkuCapacity, self).__init__(**kwargs) 5466 self.minimum = None 5467 self.maximum = None 5468 self.default_capacity = None 5469 self.scale_type = None 5470 5471 5472class VirtualMachineScaleSetStorageProfile(msrest.serialization.Model): 5473 """Describes a virtual machine scale set storage profile. 5474 5475 :param image_reference: Specifies information about the image to use. You can specify 5476 information about platform images, marketplace images, or virtual machine images. This element 5477 is required when you want to use a platform image, marketplace image, or virtual machine image, 5478 but is not used in other creation operations. 5479 :type image_reference: ~azure.mgmt.compute.v2018_10_01.models.ImageReference 5480 :param os_disk: Specifies information about the operating system disk used by the virtual 5481 machines in the scale set. :code:`<br>`:code:`<br>` For more information about disks, see 5482 `About disks and VHDs for Azure virtual machines 5483 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 5484 :type os_disk: ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetOSDisk 5485 :param data_disks: Specifies the parameters that are used to add data disks to the virtual 5486 machines in the scale set. :code:`<br>`:code:`<br>` For more information about disks, see 5487 `About disks and VHDs for Azure virtual machines 5488 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 5489 :type data_disks: list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetDataDisk] 5490 """ 5491 5492 _attribute_map = { 5493 'image_reference': {'key': 'imageReference', 'type': 'ImageReference'}, 5494 'os_disk': {'key': 'osDisk', 'type': 'VirtualMachineScaleSetOSDisk'}, 5495 'data_disks': {'key': 'dataDisks', 'type': '[VirtualMachineScaleSetDataDisk]'}, 5496 } 5497 5498 def __init__( 5499 self, 5500 *, 5501 image_reference: Optional["ImageReference"] = None, 5502 os_disk: Optional["VirtualMachineScaleSetOSDisk"] = None, 5503 data_disks: Optional[List["VirtualMachineScaleSetDataDisk"]] = None, 5504 **kwargs 5505 ): 5506 super(VirtualMachineScaleSetStorageProfile, self).__init__(**kwargs) 5507 self.image_reference = image_reference 5508 self.os_disk = os_disk 5509 self.data_disks = data_disks 5510 5511 5512class VirtualMachineScaleSetUpdate(UpdateResource): 5513 """Describes a Virtual Machine Scale Set. 5514 5515 :param tags: A set of tags. Resource tags. 5516 :type tags: dict[str, str] 5517 :param sku: The virtual machine scale set sku. 5518 :type sku: ~azure.mgmt.compute.v2018_10_01.models.Sku 5519 :param plan: The purchase plan when deploying a virtual machine scale set from VM Marketplace 5520 images. 5521 :type plan: ~azure.mgmt.compute.v2018_10_01.models.Plan 5522 :param identity: The identity of the virtual machine scale set, if configured. 5523 :type identity: ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetIdentity 5524 :param upgrade_policy: The upgrade policy. 5525 :type upgrade_policy: ~azure.mgmt.compute.v2018_10_01.models.UpgradePolicy 5526 :param automatic_repairs_policy: Policy for automatic repairs. 5527 :type automatic_repairs_policy: ~azure.mgmt.compute.v2018_10_01.models.AutomaticRepairsPolicy 5528 :param virtual_machine_profile: The virtual machine profile. 5529 :type virtual_machine_profile: 5530 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetUpdateVMProfile 5531 :param overprovision: Specifies whether the Virtual Machine Scale Set should be 5532 overprovisioned. 5533 :type overprovision: bool 5534 :param do_not_run_extensions_on_overprovisioned_v_ms: When Overprovision is enabled, extensions 5535 are launched only on the requested number of VMs which are finally kept. This property will 5536 hence ensure that the extensions do not run on the extra overprovisioned VMs. 5537 :type do_not_run_extensions_on_overprovisioned_v_ms: bool 5538 :param single_placement_group: When true this limits the scale set to a single placement group, 5539 of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to 5540 false. However, if singlePlacementGroup is false, it may not be modified to true. 5541 :type single_placement_group: bool 5542 :param proximity_placement_group: Specifies information about the proximity placement group 5543 that the virtual machine scale set should be assigned to. :code:`<br>`:code:`<br>`Minimum 5544 api-version: 2018-04-01. 5545 :type proximity_placement_group: ~azure.mgmt.compute.v2018_10_01.models.SubResource 5546 """ 5547 5548 _attribute_map = { 5549 'tags': {'key': 'tags', 'type': '{str}'}, 5550 'sku': {'key': 'sku', 'type': 'Sku'}, 5551 'plan': {'key': 'plan', 'type': 'Plan'}, 5552 'identity': {'key': 'identity', 'type': 'VirtualMachineScaleSetIdentity'}, 5553 'upgrade_policy': {'key': 'properties.upgradePolicy', 'type': 'UpgradePolicy'}, 5554 'automatic_repairs_policy': {'key': 'properties.automaticRepairsPolicy', 'type': 'AutomaticRepairsPolicy'}, 5555 'virtual_machine_profile': {'key': 'properties.virtualMachineProfile', 'type': 'VirtualMachineScaleSetUpdateVMProfile'}, 5556 'overprovision': {'key': 'properties.overprovision', 'type': 'bool'}, 5557 'do_not_run_extensions_on_overprovisioned_v_ms': {'key': 'properties.doNotRunExtensionsOnOverprovisionedVMs', 'type': 'bool'}, 5558 'single_placement_group': {'key': 'properties.singlePlacementGroup', 'type': 'bool'}, 5559 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, 5560 } 5561 5562 def __init__( 5563 self, 5564 *, 5565 tags: Optional[Dict[str, str]] = None, 5566 sku: Optional["Sku"] = None, 5567 plan: Optional["Plan"] = None, 5568 identity: Optional["VirtualMachineScaleSetIdentity"] = None, 5569 upgrade_policy: Optional["UpgradePolicy"] = None, 5570 automatic_repairs_policy: Optional["AutomaticRepairsPolicy"] = None, 5571 virtual_machine_profile: Optional["VirtualMachineScaleSetUpdateVMProfile"] = None, 5572 overprovision: Optional[bool] = None, 5573 do_not_run_extensions_on_overprovisioned_v_ms: Optional[bool] = None, 5574 single_placement_group: Optional[bool] = None, 5575 proximity_placement_group: Optional["SubResource"] = None, 5576 **kwargs 5577 ): 5578 super(VirtualMachineScaleSetUpdate, self).__init__(tags=tags, **kwargs) 5579 self.sku = sku 5580 self.plan = plan 5581 self.identity = identity 5582 self.upgrade_policy = upgrade_policy 5583 self.automatic_repairs_policy = automatic_repairs_policy 5584 self.virtual_machine_profile = virtual_machine_profile 5585 self.overprovision = overprovision 5586 self.do_not_run_extensions_on_overprovisioned_v_ms = do_not_run_extensions_on_overprovisioned_v_ms 5587 self.single_placement_group = single_placement_group 5588 self.proximity_placement_group = proximity_placement_group 5589 5590 5591class VirtualMachineScaleSetUpdateIPConfiguration(SubResource): 5592 """Describes a virtual machine scale set network profile's IP configuration. 5593 5594 :param id: Resource Id. 5595 :type id: str 5596 :param name: The IP configuration name. 5597 :type name: str 5598 :param subnet: The subnet. 5599 :type subnet: ~azure.mgmt.compute.v2018_10_01.models.ApiEntityReference 5600 :param primary: Specifies the primary IP Configuration in case the network interface has more 5601 than one IP Configuration. 5602 :type primary: bool 5603 :param public_ip_address_configuration: The publicIPAddressConfiguration. 5604 :type public_ip_address_configuration: 5605 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetUpdatePublicIPAddressConfiguration 5606 :param private_ip_address_version: Available from Api-Version 2017-03-30 onwards, it represents 5607 whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible 5608 values are: 'IPv4' and 'IPv6'. Possible values include: "IPv4", "IPv6". 5609 :type private_ip_address_version: str or ~azure.mgmt.compute.v2018_10_01.models.IPVersion 5610 :param application_gateway_backend_address_pools: The application gateway backend address 5611 pools. 5612 :type application_gateway_backend_address_pools: 5613 list[~azure.mgmt.compute.v2018_10_01.models.SubResource] 5614 :param application_security_groups: Specifies an array of references to application security 5615 group. 5616 :type application_security_groups: list[~azure.mgmt.compute.v2018_10_01.models.SubResource] 5617 :param load_balancer_backend_address_pools: The load balancer backend address pools. 5618 :type load_balancer_backend_address_pools: 5619 list[~azure.mgmt.compute.v2018_10_01.models.SubResource] 5620 :param load_balancer_inbound_nat_pools: The load balancer inbound nat pools. 5621 :type load_balancer_inbound_nat_pools: list[~azure.mgmt.compute.v2018_10_01.models.SubResource] 5622 """ 5623 5624 _attribute_map = { 5625 'id': {'key': 'id', 'type': 'str'}, 5626 'name': {'key': 'name', 'type': 'str'}, 5627 'subnet': {'key': 'properties.subnet', 'type': 'ApiEntityReference'}, 5628 'primary': {'key': 'properties.primary', 'type': 'bool'}, 5629 'public_ip_address_configuration': {'key': 'properties.publicIPAddressConfiguration', 'type': 'VirtualMachineScaleSetUpdatePublicIPAddressConfiguration'}, 5630 'private_ip_address_version': {'key': 'properties.privateIPAddressVersion', 'type': 'str'}, 5631 'application_gateway_backend_address_pools': {'key': 'properties.applicationGatewayBackendAddressPools', 'type': '[SubResource]'}, 5632 'application_security_groups': {'key': 'properties.applicationSecurityGroups', 'type': '[SubResource]'}, 5633 'load_balancer_backend_address_pools': {'key': 'properties.loadBalancerBackendAddressPools', 'type': '[SubResource]'}, 5634 'load_balancer_inbound_nat_pools': {'key': 'properties.loadBalancerInboundNatPools', 'type': '[SubResource]'}, 5635 } 5636 5637 def __init__( 5638 self, 5639 *, 5640 id: Optional[str] = None, 5641 name: Optional[str] = None, 5642 subnet: Optional["ApiEntityReference"] = None, 5643 primary: Optional[bool] = None, 5644 public_ip_address_configuration: Optional["VirtualMachineScaleSetUpdatePublicIPAddressConfiguration"] = None, 5645 private_ip_address_version: Optional[Union[str, "IPVersion"]] = None, 5646 application_gateway_backend_address_pools: Optional[List["SubResource"]] = None, 5647 application_security_groups: Optional[List["SubResource"]] = None, 5648 load_balancer_backend_address_pools: Optional[List["SubResource"]] = None, 5649 load_balancer_inbound_nat_pools: Optional[List["SubResource"]] = None, 5650 **kwargs 5651 ): 5652 super(VirtualMachineScaleSetUpdateIPConfiguration, self).__init__(id=id, **kwargs) 5653 self.name = name 5654 self.subnet = subnet 5655 self.primary = primary 5656 self.public_ip_address_configuration = public_ip_address_configuration 5657 self.private_ip_address_version = private_ip_address_version 5658 self.application_gateway_backend_address_pools = application_gateway_backend_address_pools 5659 self.application_security_groups = application_security_groups 5660 self.load_balancer_backend_address_pools = load_balancer_backend_address_pools 5661 self.load_balancer_inbound_nat_pools = load_balancer_inbound_nat_pools 5662 5663 5664class VirtualMachineScaleSetUpdateNetworkConfiguration(SubResource): 5665 """Describes a virtual machine scale set network profile's network configurations. 5666 5667 :param id: Resource Id. 5668 :type id: str 5669 :param name: The network configuration name. 5670 :type name: str 5671 :param primary: Whether this is a primary NIC on a virtual machine. 5672 :type primary: bool 5673 :param enable_accelerated_networking: Specifies whether the network interface is accelerated 5674 networking-enabled. 5675 :type enable_accelerated_networking: bool 5676 :param network_security_group: The network security group. 5677 :type network_security_group: ~azure.mgmt.compute.v2018_10_01.models.SubResource 5678 :param dns_settings: The dns settings to be applied on the network interfaces. 5679 :type dns_settings: 5680 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetNetworkConfigurationDnsSettings 5681 :param ip_configurations: The virtual machine scale set IP Configuration. 5682 :type ip_configurations: 5683 list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetUpdateIPConfiguration] 5684 :param enable_ip_forwarding: Whether IP forwarding enabled on this NIC. 5685 :type enable_ip_forwarding: bool 5686 """ 5687 5688 _attribute_map = { 5689 'id': {'key': 'id', 'type': 'str'}, 5690 'name': {'key': 'name', 'type': 'str'}, 5691 'primary': {'key': 'properties.primary', 'type': 'bool'}, 5692 'enable_accelerated_networking': {'key': 'properties.enableAcceleratedNetworking', 'type': 'bool'}, 5693 'network_security_group': {'key': 'properties.networkSecurityGroup', 'type': 'SubResource'}, 5694 'dns_settings': {'key': 'properties.dnsSettings', 'type': 'VirtualMachineScaleSetNetworkConfigurationDnsSettings'}, 5695 'ip_configurations': {'key': 'properties.ipConfigurations', 'type': '[VirtualMachineScaleSetUpdateIPConfiguration]'}, 5696 'enable_ip_forwarding': {'key': 'properties.enableIPForwarding', 'type': 'bool'}, 5697 } 5698 5699 def __init__( 5700 self, 5701 *, 5702 id: Optional[str] = None, 5703 name: Optional[str] = None, 5704 primary: Optional[bool] = None, 5705 enable_accelerated_networking: Optional[bool] = None, 5706 network_security_group: Optional["SubResource"] = None, 5707 dns_settings: Optional["VirtualMachineScaleSetNetworkConfigurationDnsSettings"] = None, 5708 ip_configurations: Optional[List["VirtualMachineScaleSetUpdateIPConfiguration"]] = None, 5709 enable_ip_forwarding: Optional[bool] = None, 5710 **kwargs 5711 ): 5712 super(VirtualMachineScaleSetUpdateNetworkConfiguration, self).__init__(id=id, **kwargs) 5713 self.name = name 5714 self.primary = primary 5715 self.enable_accelerated_networking = enable_accelerated_networking 5716 self.network_security_group = network_security_group 5717 self.dns_settings = dns_settings 5718 self.ip_configurations = ip_configurations 5719 self.enable_ip_forwarding = enable_ip_forwarding 5720 5721 5722class VirtualMachineScaleSetUpdateNetworkProfile(msrest.serialization.Model): 5723 """Describes a virtual machine scale set network profile. 5724 5725 :param network_interface_configurations: The list of network configurations. 5726 :type network_interface_configurations: 5727 list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetUpdateNetworkConfiguration] 5728 """ 5729 5730 _attribute_map = { 5731 'network_interface_configurations': {'key': 'networkInterfaceConfigurations', 'type': '[VirtualMachineScaleSetUpdateNetworkConfiguration]'}, 5732 } 5733 5734 def __init__( 5735 self, 5736 *, 5737 network_interface_configurations: Optional[List["VirtualMachineScaleSetUpdateNetworkConfiguration"]] = None, 5738 **kwargs 5739 ): 5740 super(VirtualMachineScaleSetUpdateNetworkProfile, self).__init__(**kwargs) 5741 self.network_interface_configurations = network_interface_configurations 5742 5743 5744class VirtualMachineScaleSetUpdateOSDisk(msrest.serialization.Model): 5745 """Describes virtual machine scale set operating system disk Update Object. This should be used for Updating VMSS OS Disk. 5746 5747 :param caching: The caching type. Possible values include: "None", "ReadOnly", "ReadWrite". 5748 :type caching: str or ~azure.mgmt.compute.v2018_10_01.models.CachingTypes 5749 :param write_accelerator_enabled: Specifies whether writeAccelerator should be enabled or 5750 disabled on the disk. 5751 :type write_accelerator_enabled: bool 5752 :param disk_size_gb: Specifies the size of the operating system disk in gigabytes. This element 5753 can be used to overwrite the size of the disk in a virtual machine image. 5754 :code:`<br>`:code:`<br>` This value cannot be larger than 1023 GB. 5755 :type disk_size_gb: int 5756 :param image: The Source User Image VirtualHardDisk. This VirtualHardDisk will be copied before 5757 using it to attach to the Virtual Machine. If SourceImage is provided, the destination 5758 VirtualHardDisk should not exist. 5759 :type image: ~azure.mgmt.compute.v2018_10_01.models.VirtualHardDisk 5760 :param vhd_containers: The list of virtual hard disk container uris. 5761 :type vhd_containers: list[str] 5762 :param managed_disk: The managed disk parameters. 5763 :type managed_disk: 5764 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetManagedDiskParameters 5765 """ 5766 5767 _attribute_map = { 5768 'caching': {'key': 'caching', 'type': 'str'}, 5769 'write_accelerator_enabled': {'key': 'writeAcceleratorEnabled', 'type': 'bool'}, 5770 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, 5771 'image': {'key': 'image', 'type': 'VirtualHardDisk'}, 5772 'vhd_containers': {'key': 'vhdContainers', 'type': '[str]'}, 5773 'managed_disk': {'key': 'managedDisk', 'type': 'VirtualMachineScaleSetManagedDiskParameters'}, 5774 } 5775 5776 def __init__( 5777 self, 5778 *, 5779 caching: Optional[Union[str, "CachingTypes"]] = None, 5780 write_accelerator_enabled: Optional[bool] = None, 5781 disk_size_gb: Optional[int] = None, 5782 image: Optional["VirtualHardDisk"] = None, 5783 vhd_containers: Optional[List[str]] = None, 5784 managed_disk: Optional["VirtualMachineScaleSetManagedDiskParameters"] = None, 5785 **kwargs 5786 ): 5787 super(VirtualMachineScaleSetUpdateOSDisk, self).__init__(**kwargs) 5788 self.caching = caching 5789 self.write_accelerator_enabled = write_accelerator_enabled 5790 self.disk_size_gb = disk_size_gb 5791 self.image = image 5792 self.vhd_containers = vhd_containers 5793 self.managed_disk = managed_disk 5794 5795 5796class VirtualMachineScaleSetUpdateOSProfile(msrest.serialization.Model): 5797 """Describes a virtual machine scale set OS profile. 5798 5799 :param custom_data: A base-64 encoded string of custom data. 5800 :type custom_data: str 5801 :param windows_configuration: The Windows Configuration of the OS profile. 5802 :type windows_configuration: ~azure.mgmt.compute.v2018_10_01.models.WindowsConfiguration 5803 :param linux_configuration: The Linux Configuration of the OS profile. 5804 :type linux_configuration: ~azure.mgmt.compute.v2018_10_01.models.LinuxConfiguration 5805 :param secrets: The List of certificates for addition to the VM. 5806 :type secrets: list[~azure.mgmt.compute.v2018_10_01.models.VaultSecretGroup] 5807 """ 5808 5809 _attribute_map = { 5810 'custom_data': {'key': 'customData', 'type': 'str'}, 5811 'windows_configuration': {'key': 'windowsConfiguration', 'type': 'WindowsConfiguration'}, 5812 'linux_configuration': {'key': 'linuxConfiguration', 'type': 'LinuxConfiguration'}, 5813 'secrets': {'key': 'secrets', 'type': '[VaultSecretGroup]'}, 5814 } 5815 5816 def __init__( 5817 self, 5818 *, 5819 custom_data: Optional[str] = None, 5820 windows_configuration: Optional["WindowsConfiguration"] = None, 5821 linux_configuration: Optional["LinuxConfiguration"] = None, 5822 secrets: Optional[List["VaultSecretGroup"]] = None, 5823 **kwargs 5824 ): 5825 super(VirtualMachineScaleSetUpdateOSProfile, self).__init__(**kwargs) 5826 self.custom_data = custom_data 5827 self.windows_configuration = windows_configuration 5828 self.linux_configuration = linux_configuration 5829 self.secrets = secrets 5830 5831 5832class VirtualMachineScaleSetUpdatePublicIPAddressConfiguration(msrest.serialization.Model): 5833 """Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration. 5834 5835 :param name: The publicIP address configuration name. 5836 :type name: str 5837 :param idle_timeout_in_minutes: The idle timeout of the public IP address. 5838 :type idle_timeout_in_minutes: int 5839 :param dns_settings: The dns settings to be applied on the publicIP addresses . 5840 :type dns_settings: 5841 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings 5842 """ 5843 5844 _attribute_map = { 5845 'name': {'key': 'name', 'type': 'str'}, 5846 'idle_timeout_in_minutes': {'key': 'properties.idleTimeoutInMinutes', 'type': 'int'}, 5847 'dns_settings': {'key': 'properties.dnsSettings', 'type': 'VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings'}, 5848 } 5849 5850 def __init__( 5851 self, 5852 *, 5853 name: Optional[str] = None, 5854 idle_timeout_in_minutes: Optional[int] = None, 5855 dns_settings: Optional["VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings"] = None, 5856 **kwargs 5857 ): 5858 super(VirtualMachineScaleSetUpdatePublicIPAddressConfiguration, self).__init__(**kwargs) 5859 self.name = name 5860 self.idle_timeout_in_minutes = idle_timeout_in_minutes 5861 self.dns_settings = dns_settings 5862 5863 5864class VirtualMachineScaleSetUpdateStorageProfile(msrest.serialization.Model): 5865 """Describes a virtual machine scale set storage profile. 5866 5867 :param image_reference: The image reference. 5868 :type image_reference: ~azure.mgmt.compute.v2018_10_01.models.ImageReference 5869 :param os_disk: The OS disk. 5870 :type os_disk: ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetUpdateOSDisk 5871 :param data_disks: The data disks. 5872 :type data_disks: list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetDataDisk] 5873 """ 5874 5875 _attribute_map = { 5876 'image_reference': {'key': 'imageReference', 'type': 'ImageReference'}, 5877 'os_disk': {'key': 'osDisk', 'type': 'VirtualMachineScaleSetUpdateOSDisk'}, 5878 'data_disks': {'key': 'dataDisks', 'type': '[VirtualMachineScaleSetDataDisk]'}, 5879 } 5880 5881 def __init__( 5882 self, 5883 *, 5884 image_reference: Optional["ImageReference"] = None, 5885 os_disk: Optional["VirtualMachineScaleSetUpdateOSDisk"] = None, 5886 data_disks: Optional[List["VirtualMachineScaleSetDataDisk"]] = None, 5887 **kwargs 5888 ): 5889 super(VirtualMachineScaleSetUpdateStorageProfile, self).__init__(**kwargs) 5890 self.image_reference = image_reference 5891 self.os_disk = os_disk 5892 self.data_disks = data_disks 5893 5894 5895class VirtualMachineScaleSetUpdateVMProfile(msrest.serialization.Model): 5896 """Describes a virtual machine scale set virtual machine profile. 5897 5898 :param os_profile: The virtual machine scale set OS profile. 5899 :type os_profile: ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetUpdateOSProfile 5900 :param storage_profile: The virtual machine scale set storage profile. 5901 :type storage_profile: 5902 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetUpdateStorageProfile 5903 :param network_profile: The virtual machine scale set network profile. 5904 :type network_profile: 5905 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetUpdateNetworkProfile 5906 :param diagnostics_profile: The virtual machine scale set diagnostics profile. 5907 :type diagnostics_profile: ~azure.mgmt.compute.v2018_10_01.models.DiagnosticsProfile 5908 :param extension_profile: The virtual machine scale set extension profile. 5909 :type extension_profile: 5910 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetExtensionProfile 5911 :param license_type: The license type, which is for bring your own license scenario. 5912 :type license_type: str 5913 """ 5914 5915 _attribute_map = { 5916 'os_profile': {'key': 'osProfile', 'type': 'VirtualMachineScaleSetUpdateOSProfile'}, 5917 'storage_profile': {'key': 'storageProfile', 'type': 'VirtualMachineScaleSetUpdateStorageProfile'}, 5918 'network_profile': {'key': 'networkProfile', 'type': 'VirtualMachineScaleSetUpdateNetworkProfile'}, 5919 'diagnostics_profile': {'key': 'diagnosticsProfile', 'type': 'DiagnosticsProfile'}, 5920 'extension_profile': {'key': 'extensionProfile', 'type': 'VirtualMachineScaleSetExtensionProfile'}, 5921 'license_type': {'key': 'licenseType', 'type': 'str'}, 5922 } 5923 5924 def __init__( 5925 self, 5926 *, 5927 os_profile: Optional["VirtualMachineScaleSetUpdateOSProfile"] = None, 5928 storage_profile: Optional["VirtualMachineScaleSetUpdateStorageProfile"] = None, 5929 network_profile: Optional["VirtualMachineScaleSetUpdateNetworkProfile"] = None, 5930 diagnostics_profile: Optional["DiagnosticsProfile"] = None, 5931 extension_profile: Optional["VirtualMachineScaleSetExtensionProfile"] = None, 5932 license_type: Optional[str] = None, 5933 **kwargs 5934 ): 5935 super(VirtualMachineScaleSetUpdateVMProfile, self).__init__(**kwargs) 5936 self.os_profile = os_profile 5937 self.storage_profile = storage_profile 5938 self.network_profile = network_profile 5939 self.diagnostics_profile = diagnostics_profile 5940 self.extension_profile = extension_profile 5941 self.license_type = license_type 5942 5943 5944class VirtualMachineScaleSetVM(Resource): 5945 """Describes a virtual machine scale set virtual machine. 5946 5947 Variables are only populated by the server, and will be ignored when sending a request. 5948 5949 All required parameters must be populated in order to send to Azure. 5950 5951 :ivar id: Resource Id. 5952 :vartype id: str 5953 :ivar name: Resource name. 5954 :vartype name: str 5955 :ivar type: Resource type. 5956 :vartype type: str 5957 :param location: Required. Resource location. 5958 :type location: str 5959 :param tags: A set of tags. Resource tags. 5960 :type tags: dict[str, str] 5961 :ivar instance_id: The virtual machine instance ID. 5962 :vartype instance_id: str 5963 :ivar sku: The virtual machine SKU. 5964 :vartype sku: ~azure.mgmt.compute.v2018_10_01.models.Sku 5965 :param plan: Specifies information about the marketplace image used to create the virtual 5966 machine. This element is only used for marketplace images. Before you can use a marketplace 5967 image from an API, you must enable the image for programmatic use. In the Azure portal, find 5968 the marketplace image that you want to use and then click **Want to deploy programmatically, 5969 Get Started ->**. Enter any required information and then click **Save**. 5970 :type plan: ~azure.mgmt.compute.v2018_10_01.models.Plan 5971 :ivar resources: The virtual machine child extension resources. 5972 :vartype resources: list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineExtension] 5973 :ivar zones: The virtual machine zones. 5974 :vartype zones: list[str] 5975 :ivar latest_model_applied: Specifies whether the latest model has been applied to the virtual 5976 machine. 5977 :vartype latest_model_applied: bool 5978 :ivar vm_id: Azure VM unique ID. 5979 :vartype vm_id: str 5980 :ivar instance_view: The virtual machine instance view. 5981 :vartype instance_view: 5982 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetVMInstanceView 5983 :param hardware_profile: Specifies the hardware settings for the virtual machine. 5984 :type hardware_profile: ~azure.mgmt.compute.v2018_10_01.models.HardwareProfile 5985 :param storage_profile: Specifies the storage settings for the virtual machine disks. 5986 :type storage_profile: ~azure.mgmt.compute.v2018_10_01.models.StorageProfile 5987 :param additional_capabilities: Specifies additional capabilities enabled or disabled on the 5988 virtual machine in the scale set. For instance: whether the virtual machine has the capability 5989 to support attaching managed data disks with UltraSSD_LRS storage account type. 5990 :type additional_capabilities: ~azure.mgmt.compute.v2018_10_01.models.AdditionalCapabilities 5991 :param os_profile: Specifies the operating system settings for the virtual machine. 5992 :type os_profile: ~azure.mgmt.compute.v2018_10_01.models.OSProfile 5993 :param network_profile: Specifies the network interfaces of the virtual machine. 5994 :type network_profile: ~azure.mgmt.compute.v2018_10_01.models.NetworkProfile 5995 :param diagnostics_profile: Specifies the boot diagnostic settings state. 5996 :code:`<br>`:code:`<br>`Minimum api-version: 2015-06-15. 5997 :type diagnostics_profile: ~azure.mgmt.compute.v2018_10_01.models.DiagnosticsProfile 5998 :param availability_set: Specifies information about the availability set that the virtual 5999 machine should be assigned to. Virtual machines specified in the same availability set are 6000 allocated to different nodes to maximize availability. For more information about availability 6001 sets, see `Manage the availability of virtual machines 6002 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 6003 :code:`<br>`:code:`<br>` For more information on Azure planned maintenance, see `Planned 6004 maintenance for virtual machines in Azure 6005 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_ 6006 :code:`<br>`:code:`<br>` Currently, a VM can only be added to availability set at creation 6007 time. An existing VM cannot be added to an availability set. 6008 :type availability_set: ~azure.mgmt.compute.v2018_10_01.models.SubResource 6009 :ivar provisioning_state: The provisioning state, which only appears in the response. 6010 :vartype provisioning_state: str 6011 :param license_type: Specifies that the image or disk that is being used was licensed 6012 on-premises. This element is only used for images that contain the Windows Server operating 6013 system. :code:`<br>`:code:`<br>` Possible values are: :code:`<br>`:code:`<br>` Windows_Client 6014 :code:`<br>`:code:`<br>` Windows_Server :code:`<br>`:code:`<br>` If this element is included in 6015 a request for an update, the value must match the initial value. This value cannot be updated. 6016 :code:`<br>`:code:`<br>` For more information, see `Azure Hybrid Use Benefit for Windows Server 6017 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_ 6018 :code:`<br>`:code:`<br>` Minimum api-version: 2015-06-15. 6019 :type license_type: str 6020 """ 6021 6022 _validation = { 6023 'id': {'readonly': True}, 6024 'name': {'readonly': True}, 6025 'type': {'readonly': True}, 6026 'location': {'required': True}, 6027 'instance_id': {'readonly': True}, 6028 'sku': {'readonly': True}, 6029 'resources': {'readonly': True}, 6030 'zones': {'readonly': True}, 6031 'latest_model_applied': {'readonly': True}, 6032 'vm_id': {'readonly': True}, 6033 'instance_view': {'readonly': True}, 6034 'provisioning_state': {'readonly': True}, 6035 } 6036 6037 _attribute_map = { 6038 'id': {'key': 'id', 'type': 'str'}, 6039 'name': {'key': 'name', 'type': 'str'}, 6040 'type': {'key': 'type', 'type': 'str'}, 6041 'location': {'key': 'location', 'type': 'str'}, 6042 'tags': {'key': 'tags', 'type': '{str}'}, 6043 'instance_id': {'key': 'instanceId', 'type': 'str'}, 6044 'sku': {'key': 'sku', 'type': 'Sku'}, 6045 'plan': {'key': 'plan', 'type': 'Plan'}, 6046 'resources': {'key': 'resources', 'type': '[VirtualMachineExtension]'}, 6047 'zones': {'key': 'zones', 'type': '[str]'}, 6048 'latest_model_applied': {'key': 'properties.latestModelApplied', 'type': 'bool'}, 6049 'vm_id': {'key': 'properties.vmId', 'type': 'str'}, 6050 'instance_view': {'key': 'properties.instanceView', 'type': 'VirtualMachineScaleSetVMInstanceView'}, 6051 'hardware_profile': {'key': 'properties.hardwareProfile', 'type': 'HardwareProfile'}, 6052 'storage_profile': {'key': 'properties.storageProfile', 'type': 'StorageProfile'}, 6053 'additional_capabilities': {'key': 'properties.additionalCapabilities', 'type': 'AdditionalCapabilities'}, 6054 'os_profile': {'key': 'properties.osProfile', 'type': 'OSProfile'}, 6055 'network_profile': {'key': 'properties.networkProfile', 'type': 'NetworkProfile'}, 6056 'diagnostics_profile': {'key': 'properties.diagnosticsProfile', 'type': 'DiagnosticsProfile'}, 6057 'availability_set': {'key': 'properties.availabilitySet', 'type': 'SubResource'}, 6058 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 6059 'license_type': {'key': 'properties.licenseType', 'type': 'str'}, 6060 } 6061 6062 def __init__( 6063 self, 6064 *, 6065 location: str, 6066 tags: Optional[Dict[str, str]] = None, 6067 plan: Optional["Plan"] = None, 6068 hardware_profile: Optional["HardwareProfile"] = None, 6069 storage_profile: Optional["StorageProfile"] = None, 6070 additional_capabilities: Optional["AdditionalCapabilities"] = None, 6071 os_profile: Optional["OSProfile"] = None, 6072 network_profile: Optional["NetworkProfile"] = None, 6073 diagnostics_profile: Optional["DiagnosticsProfile"] = None, 6074 availability_set: Optional["SubResource"] = None, 6075 license_type: Optional[str] = None, 6076 **kwargs 6077 ): 6078 super(VirtualMachineScaleSetVM, self).__init__(location=location, tags=tags, **kwargs) 6079 self.instance_id = None 6080 self.sku = None 6081 self.plan = plan 6082 self.resources = None 6083 self.zones = None 6084 self.latest_model_applied = None 6085 self.vm_id = None 6086 self.instance_view = None 6087 self.hardware_profile = hardware_profile 6088 self.storage_profile = storage_profile 6089 self.additional_capabilities = additional_capabilities 6090 self.os_profile = os_profile 6091 self.network_profile = network_profile 6092 self.diagnostics_profile = diagnostics_profile 6093 self.availability_set = availability_set 6094 self.provisioning_state = None 6095 self.license_type = license_type 6096 6097 6098class VirtualMachineScaleSetVMExtensionsSummary(msrest.serialization.Model): 6099 """Extensions summary for virtual machines of a virtual machine scale set. 6100 6101 Variables are only populated by the server, and will be ignored when sending a request. 6102 6103 :ivar name: The extension name. 6104 :vartype name: str 6105 :ivar statuses_summary: The extensions information. 6106 :vartype statuses_summary: 6107 list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineStatusCodeCount] 6108 """ 6109 6110 _validation = { 6111 'name': {'readonly': True}, 6112 'statuses_summary': {'readonly': True}, 6113 } 6114 6115 _attribute_map = { 6116 'name': {'key': 'name', 'type': 'str'}, 6117 'statuses_summary': {'key': 'statusesSummary', 'type': '[VirtualMachineStatusCodeCount]'}, 6118 } 6119 6120 def __init__( 6121 self, 6122 **kwargs 6123 ): 6124 super(VirtualMachineScaleSetVMExtensionsSummary, self).__init__(**kwargs) 6125 self.name = None 6126 self.statuses_summary = None 6127 6128 6129class VirtualMachineScaleSetVMInstanceIDs(msrest.serialization.Model): 6130 """Specifies a list of virtual machine instance IDs from the VM scale set. 6131 6132 :param instance_ids: The virtual machine scale set instance ids. Omitting the virtual machine 6133 scale set instance ids will result in the operation being performed on all virtual machines in 6134 the virtual machine scale set. 6135 :type instance_ids: list[str] 6136 """ 6137 6138 _attribute_map = { 6139 'instance_ids': {'key': 'instanceIds', 'type': '[str]'}, 6140 } 6141 6142 def __init__( 6143 self, 6144 *, 6145 instance_ids: Optional[List[str]] = None, 6146 **kwargs 6147 ): 6148 super(VirtualMachineScaleSetVMInstanceIDs, self).__init__(**kwargs) 6149 self.instance_ids = instance_ids 6150 6151 6152class VirtualMachineScaleSetVMInstanceRequiredIDs(msrest.serialization.Model): 6153 """Specifies a list of virtual machine instance IDs from the VM scale set. 6154 6155 All required parameters must be populated in order to send to Azure. 6156 6157 :param instance_ids: Required. The virtual machine scale set instance ids. 6158 :type instance_ids: list[str] 6159 """ 6160 6161 _validation = { 6162 'instance_ids': {'required': True}, 6163 } 6164 6165 _attribute_map = { 6166 'instance_ids': {'key': 'instanceIds', 'type': '[str]'}, 6167 } 6168 6169 def __init__( 6170 self, 6171 *, 6172 instance_ids: List[str], 6173 **kwargs 6174 ): 6175 super(VirtualMachineScaleSetVMInstanceRequiredIDs, self).__init__(**kwargs) 6176 self.instance_ids = instance_ids 6177 6178 6179class VirtualMachineScaleSetVMInstanceView(msrest.serialization.Model): 6180 """The instance view of a virtual machine scale set VM. 6181 6182 Variables are only populated by the server, and will be ignored when sending a request. 6183 6184 :param platform_update_domain: The Update Domain count. 6185 :type platform_update_domain: int 6186 :param platform_fault_domain: The Fault Domain count. 6187 :type platform_fault_domain: int 6188 :param rdp_thumb_print: The Remote desktop certificate thumbprint. 6189 :type rdp_thumb_print: str 6190 :param vm_agent: The VM Agent running on the virtual machine. 6191 :type vm_agent: ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineAgentInstanceView 6192 :param maintenance_redeploy_status: The Maintenance Operation status on the virtual machine. 6193 :type maintenance_redeploy_status: 6194 ~azure.mgmt.compute.v2018_10_01.models.MaintenanceRedeployStatus 6195 :param disks: The disks information. 6196 :type disks: list[~azure.mgmt.compute.v2018_10_01.models.DiskInstanceView] 6197 :param extensions: The extensions information. 6198 :type extensions: 6199 list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineExtensionInstanceView] 6200 :ivar vm_health: The health status for the VM. 6201 :vartype vm_health: ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineHealthStatus 6202 :param boot_diagnostics: Boot Diagnostics is a debugging feature which allows you to view 6203 Console Output and Screenshot to diagnose VM status. :code:`<br>`:code:`<br>` You can easily 6204 view the output of your console log. :code:`<br>`:code:`<br>` Azure also enables you to see a 6205 screenshot of the VM from the hypervisor. 6206 :type boot_diagnostics: ~azure.mgmt.compute.v2018_10_01.models.BootDiagnosticsInstanceView 6207 :param statuses: The resource status information. 6208 :type statuses: list[~azure.mgmt.compute.v2018_10_01.models.InstanceViewStatus] 6209 :param placement_group_id: The placement group in which the VM is running. If the VM is 6210 deallocated it will not have a placementGroupId. 6211 :type placement_group_id: str 6212 """ 6213 6214 _validation = { 6215 'vm_health': {'readonly': True}, 6216 } 6217 6218 _attribute_map = { 6219 'platform_update_domain': {'key': 'platformUpdateDomain', 'type': 'int'}, 6220 'platform_fault_domain': {'key': 'platformFaultDomain', 'type': 'int'}, 6221 'rdp_thumb_print': {'key': 'rdpThumbPrint', 'type': 'str'}, 6222 'vm_agent': {'key': 'vmAgent', 'type': 'VirtualMachineAgentInstanceView'}, 6223 'maintenance_redeploy_status': {'key': 'maintenanceRedeployStatus', 'type': 'MaintenanceRedeployStatus'}, 6224 'disks': {'key': 'disks', 'type': '[DiskInstanceView]'}, 6225 'extensions': {'key': 'extensions', 'type': '[VirtualMachineExtensionInstanceView]'}, 6226 'vm_health': {'key': 'vmHealth', 'type': 'VirtualMachineHealthStatus'}, 6227 'boot_diagnostics': {'key': 'bootDiagnostics', 'type': 'BootDiagnosticsInstanceView'}, 6228 'statuses': {'key': 'statuses', 'type': '[InstanceViewStatus]'}, 6229 'placement_group_id': {'key': 'placementGroupId', 'type': 'str'}, 6230 } 6231 6232 def __init__( 6233 self, 6234 *, 6235 platform_update_domain: Optional[int] = None, 6236 platform_fault_domain: Optional[int] = None, 6237 rdp_thumb_print: Optional[str] = None, 6238 vm_agent: Optional["VirtualMachineAgentInstanceView"] = None, 6239 maintenance_redeploy_status: Optional["MaintenanceRedeployStatus"] = None, 6240 disks: Optional[List["DiskInstanceView"]] = None, 6241 extensions: Optional[List["VirtualMachineExtensionInstanceView"]] = None, 6242 boot_diagnostics: Optional["BootDiagnosticsInstanceView"] = None, 6243 statuses: Optional[List["InstanceViewStatus"]] = None, 6244 placement_group_id: Optional[str] = None, 6245 **kwargs 6246 ): 6247 super(VirtualMachineScaleSetVMInstanceView, self).__init__(**kwargs) 6248 self.platform_update_domain = platform_update_domain 6249 self.platform_fault_domain = platform_fault_domain 6250 self.rdp_thumb_print = rdp_thumb_print 6251 self.vm_agent = vm_agent 6252 self.maintenance_redeploy_status = maintenance_redeploy_status 6253 self.disks = disks 6254 self.extensions = extensions 6255 self.vm_health = None 6256 self.boot_diagnostics = boot_diagnostics 6257 self.statuses = statuses 6258 self.placement_group_id = placement_group_id 6259 6260 6261class VirtualMachineScaleSetVMListResult(msrest.serialization.Model): 6262 """The List Virtual Machine Scale Set VMs operation response. 6263 6264 All required parameters must be populated in order to send to Azure. 6265 6266 :param value: Required. The list of virtual machine scale sets VMs. 6267 :type value: list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetVM] 6268 :param next_link: The uri to fetch the next page of Virtual Machine Scale Set VMs. Call 6269 ListNext() with this to fetch the next page of VMSS VMs. 6270 :type next_link: str 6271 """ 6272 6273 _validation = { 6274 'value': {'required': True}, 6275 } 6276 6277 _attribute_map = { 6278 'value': {'key': 'value', 'type': '[VirtualMachineScaleSetVM]'}, 6279 'next_link': {'key': 'nextLink', 'type': 'str'}, 6280 } 6281 6282 def __init__( 6283 self, 6284 *, 6285 value: List["VirtualMachineScaleSetVM"], 6286 next_link: Optional[str] = None, 6287 **kwargs 6288 ): 6289 super(VirtualMachineScaleSetVMListResult, self).__init__(**kwargs) 6290 self.value = value 6291 self.next_link = next_link 6292 6293 6294class VirtualMachineScaleSetVMProfile(msrest.serialization.Model): 6295 """Describes a virtual machine scale set virtual machine profile. 6296 6297 :param os_profile: Specifies the operating system settings for the virtual machines in the 6298 scale set. 6299 :type os_profile: ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetOSProfile 6300 :param storage_profile: Specifies the storage settings for the virtual machine disks. 6301 :type storage_profile: 6302 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetStorageProfile 6303 :param additional_capabilities: Specifies additional capabilities enabled or disabled on the 6304 virtual machine in the scale set. For instance: whether the virtual machine has the capability 6305 to support attaching managed data disks with UltraSSD_LRS storage account type. 6306 :type additional_capabilities: ~azure.mgmt.compute.v2018_10_01.models.AdditionalCapabilities 6307 :param network_profile: Specifies properties of the network interfaces of the virtual machines 6308 in the scale set. 6309 :type network_profile: 6310 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetNetworkProfile 6311 :param diagnostics_profile: Specifies the boot diagnostic settings state. 6312 :code:`<br>`:code:`<br>`Minimum api-version: 2015-06-15. 6313 :type diagnostics_profile: ~azure.mgmt.compute.v2018_10_01.models.DiagnosticsProfile 6314 :param extension_profile: Specifies a collection of settings for extensions installed on 6315 virtual machines in the scale set. 6316 :type extension_profile: 6317 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineScaleSetExtensionProfile 6318 :param license_type: Specifies that the image or disk that is being used was licensed 6319 on-premises. This element is only used for images that contain the Windows Server operating 6320 system. :code:`<br>`:code:`<br>` Possible values are: :code:`<br>`:code:`<br>` Windows_Client 6321 :code:`<br>`:code:`<br>` Windows_Server :code:`<br>`:code:`<br>` If this element is included in 6322 a request for an update, the value must match the initial value. This value cannot be updated. 6323 :code:`<br>`:code:`<br>` For more information, see `Azure Hybrid Use Benefit for Windows Server 6324 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_ 6325 :code:`<br>`:code:`<br>` Minimum api-version: 2015-06-15. 6326 :type license_type: str 6327 :param priority: Specifies the priority for the virtual machines in the scale set. 6328 :code:`<br>`:code:`<br>`Minimum api-version: 2017-10-30-preview. Possible values include: 6329 "Regular", "Low". 6330 :type priority: str or ~azure.mgmt.compute.v2018_10_01.models.VirtualMachinePriorityTypes 6331 :param eviction_policy: Specifies the eviction policy for virtual machines in a low priority 6332 scale set. :code:`<br>`:code:`<br>`Minimum api-version: 2017-10-30-preview. Possible values 6333 include: "Deallocate", "Delete". 6334 :type eviction_policy: str or 6335 ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineEvictionPolicyTypes 6336 """ 6337 6338 _attribute_map = { 6339 'os_profile': {'key': 'osProfile', 'type': 'VirtualMachineScaleSetOSProfile'}, 6340 'storage_profile': {'key': 'storageProfile', 'type': 'VirtualMachineScaleSetStorageProfile'}, 6341 'additional_capabilities': {'key': 'additionalCapabilities', 'type': 'AdditionalCapabilities'}, 6342 'network_profile': {'key': 'networkProfile', 'type': 'VirtualMachineScaleSetNetworkProfile'}, 6343 'diagnostics_profile': {'key': 'diagnosticsProfile', 'type': 'DiagnosticsProfile'}, 6344 'extension_profile': {'key': 'extensionProfile', 'type': 'VirtualMachineScaleSetExtensionProfile'}, 6345 'license_type': {'key': 'licenseType', 'type': 'str'}, 6346 'priority': {'key': 'priority', 'type': 'str'}, 6347 'eviction_policy': {'key': 'evictionPolicy', 'type': 'str'}, 6348 } 6349 6350 def __init__( 6351 self, 6352 *, 6353 os_profile: Optional["VirtualMachineScaleSetOSProfile"] = None, 6354 storage_profile: Optional["VirtualMachineScaleSetStorageProfile"] = None, 6355 additional_capabilities: Optional["AdditionalCapabilities"] = None, 6356 network_profile: Optional["VirtualMachineScaleSetNetworkProfile"] = None, 6357 diagnostics_profile: Optional["DiagnosticsProfile"] = None, 6358 extension_profile: Optional["VirtualMachineScaleSetExtensionProfile"] = None, 6359 license_type: Optional[str] = None, 6360 priority: Optional[Union[str, "VirtualMachinePriorityTypes"]] = None, 6361 eviction_policy: Optional[Union[str, "VirtualMachineEvictionPolicyTypes"]] = None, 6362 **kwargs 6363 ): 6364 super(VirtualMachineScaleSetVMProfile, self).__init__(**kwargs) 6365 self.os_profile = os_profile 6366 self.storage_profile = storage_profile 6367 self.additional_capabilities = additional_capabilities 6368 self.network_profile = network_profile 6369 self.diagnostics_profile = diagnostics_profile 6370 self.extension_profile = extension_profile 6371 self.license_type = license_type 6372 self.priority = priority 6373 self.eviction_policy = eviction_policy 6374 6375 6376class VirtualMachineSize(msrest.serialization.Model): 6377 """Describes the properties of a VM size. 6378 6379 :param name: The name of the virtual machine size. 6380 :type name: str 6381 :param number_of_cores: The number of cores supported by the virtual machine size. 6382 :type number_of_cores: int 6383 :param os_disk_size_in_mb: The OS disk size, in MB, allowed by the virtual machine size. 6384 :type os_disk_size_in_mb: int 6385 :param resource_disk_size_in_mb: The resource disk size, in MB, allowed by the virtual machine 6386 size. 6387 :type resource_disk_size_in_mb: int 6388 :param memory_in_mb: The amount of memory, in MB, supported by the virtual machine size. 6389 :type memory_in_mb: int 6390 :param max_data_disk_count: The maximum number of data disks that can be attached to the 6391 virtual machine size. 6392 :type max_data_disk_count: int 6393 """ 6394 6395 _attribute_map = { 6396 'name': {'key': 'name', 'type': 'str'}, 6397 'number_of_cores': {'key': 'numberOfCores', 'type': 'int'}, 6398 'os_disk_size_in_mb': {'key': 'osDiskSizeInMB', 'type': 'int'}, 6399 'resource_disk_size_in_mb': {'key': 'resourceDiskSizeInMB', 'type': 'int'}, 6400 'memory_in_mb': {'key': 'memoryInMB', 'type': 'int'}, 6401 'max_data_disk_count': {'key': 'maxDataDiskCount', 'type': 'int'}, 6402 } 6403 6404 def __init__( 6405 self, 6406 *, 6407 name: Optional[str] = None, 6408 number_of_cores: Optional[int] = None, 6409 os_disk_size_in_mb: Optional[int] = None, 6410 resource_disk_size_in_mb: Optional[int] = None, 6411 memory_in_mb: Optional[int] = None, 6412 max_data_disk_count: Optional[int] = None, 6413 **kwargs 6414 ): 6415 super(VirtualMachineSize, self).__init__(**kwargs) 6416 self.name = name 6417 self.number_of_cores = number_of_cores 6418 self.os_disk_size_in_mb = os_disk_size_in_mb 6419 self.resource_disk_size_in_mb = resource_disk_size_in_mb 6420 self.memory_in_mb = memory_in_mb 6421 self.max_data_disk_count = max_data_disk_count 6422 6423 6424class VirtualMachineSizeListResult(msrest.serialization.Model): 6425 """The List Virtual Machine operation response. 6426 6427 :param value: The list of virtual machine sizes. 6428 :type value: list[~azure.mgmt.compute.v2018_10_01.models.VirtualMachineSize] 6429 """ 6430 6431 _attribute_map = { 6432 'value': {'key': 'value', 'type': '[VirtualMachineSize]'}, 6433 } 6434 6435 def __init__( 6436 self, 6437 *, 6438 value: Optional[List["VirtualMachineSize"]] = None, 6439 **kwargs 6440 ): 6441 super(VirtualMachineSizeListResult, self).__init__(**kwargs) 6442 self.value = value 6443 6444 6445class VirtualMachineStatusCodeCount(msrest.serialization.Model): 6446 """The status code and count of the virtual machine scale set instance view status summary. 6447 6448 Variables are only populated by the server, and will be ignored when sending a request. 6449 6450 :ivar code: The instance view status code. 6451 :vartype code: str 6452 :ivar count: The number of instances having a particular status code. 6453 :vartype count: int 6454 """ 6455 6456 _validation = { 6457 'code': {'readonly': True}, 6458 'count': {'readonly': True}, 6459 } 6460 6461 _attribute_map = { 6462 'code': {'key': 'code', 'type': 'str'}, 6463 'count': {'key': 'count', 'type': 'int'}, 6464 } 6465 6466 def __init__( 6467 self, 6468 **kwargs 6469 ): 6470 super(VirtualMachineStatusCodeCount, self).__init__(**kwargs) 6471 self.code = None 6472 self.count = None 6473 6474 6475class VirtualMachineUpdate(UpdateResource): 6476 """Describes a Virtual Machine Update. 6477 6478 Variables are only populated by the server, and will be ignored when sending a request. 6479 6480 :param tags: A set of tags. Resource tags. 6481 :type tags: dict[str, str] 6482 :param plan: Specifies information about the marketplace image used to create the virtual 6483 machine. This element is only used for marketplace images. Before you can use a marketplace 6484 image from an API, you must enable the image for programmatic use. In the Azure portal, find 6485 the marketplace image that you want to use and then click **Want to deploy programmatically, 6486 Get Started ->**. Enter any required information and then click **Save**. 6487 :type plan: ~azure.mgmt.compute.v2018_10_01.models.Plan 6488 :param identity: The identity of the virtual machine, if configured. 6489 :type identity: ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineIdentity 6490 :param zones: The virtual machine zones. 6491 :type zones: list[str] 6492 :param hardware_profile: Specifies the hardware settings for the virtual machine. 6493 :type hardware_profile: ~azure.mgmt.compute.v2018_10_01.models.HardwareProfile 6494 :param storage_profile: Specifies the storage settings for the virtual machine disks. 6495 :type storage_profile: ~azure.mgmt.compute.v2018_10_01.models.StorageProfile 6496 :param additional_capabilities: Specifies additional capabilities enabled or disabled on the 6497 virtual machine. 6498 :type additional_capabilities: ~azure.mgmt.compute.v2018_10_01.models.AdditionalCapabilities 6499 :param os_profile: Specifies the operating system settings for the virtual machine. 6500 :type os_profile: ~azure.mgmt.compute.v2018_10_01.models.OSProfile 6501 :param network_profile: Specifies the network interfaces of the virtual machine. 6502 :type network_profile: ~azure.mgmt.compute.v2018_10_01.models.NetworkProfile 6503 :param diagnostics_profile: Specifies the boot diagnostic settings state. 6504 :code:`<br>`:code:`<br>`Minimum api-version: 2015-06-15. 6505 :type diagnostics_profile: ~azure.mgmt.compute.v2018_10_01.models.DiagnosticsProfile 6506 :param availability_set: Specifies information about the availability set that the virtual 6507 machine should be assigned to. Virtual machines specified in the same availability set are 6508 allocated to different nodes to maximize availability. For more information about availability 6509 sets, see `Manage the availability of virtual machines 6510 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 6511 :code:`<br>`:code:`<br>` For more information on Azure planned maintenance, see `Planned 6512 maintenance for virtual machines in Azure 6513 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_ 6514 :code:`<br>`:code:`<br>` Currently, a VM can only be added to availability set at creation 6515 time. An existing VM cannot be added to an availability set. 6516 :type availability_set: ~azure.mgmt.compute.v2018_10_01.models.SubResource 6517 :param proximity_placement_group: Specifies information about the proximity placement group 6518 that the virtual machine should be assigned to. :code:`<br>`:code:`<br>`Minimum api-version: 6519 2018-04-01. 6520 :type proximity_placement_group: ~azure.mgmt.compute.v2018_10_01.models.SubResource 6521 :ivar provisioning_state: The provisioning state, which only appears in the response. 6522 :vartype provisioning_state: str 6523 :ivar instance_view: The virtual machine instance view. 6524 :vartype instance_view: ~azure.mgmt.compute.v2018_10_01.models.VirtualMachineInstanceView 6525 :param license_type: Specifies that the image or disk that is being used was licensed 6526 on-premises. This element is only used for images that contain the Windows Server operating 6527 system. :code:`<br>`:code:`<br>` Possible values are: :code:`<br>`:code:`<br>` Windows_Client 6528 :code:`<br>`:code:`<br>` Windows_Server :code:`<br>`:code:`<br>` If this element is included in 6529 a request for an update, the value must match the initial value. This value cannot be updated. 6530 :code:`<br>`:code:`<br>` For more information, see `Azure Hybrid Use Benefit for Windows Server 6531 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-hybrid-use-benefit-licensing?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_ 6532 :code:`<br>`:code:`<br>` Minimum api-version: 2015-06-15. 6533 :type license_type: str 6534 :ivar vm_id: Specifies the VM unique ID which is a 128-bits identifier that is encoded and 6535 stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands. 6536 :vartype vm_id: str 6537 """ 6538 6539 _validation = { 6540 'provisioning_state': {'readonly': True}, 6541 'instance_view': {'readonly': True}, 6542 'vm_id': {'readonly': True}, 6543 } 6544 6545 _attribute_map = { 6546 'tags': {'key': 'tags', 'type': '{str}'}, 6547 'plan': {'key': 'plan', 'type': 'Plan'}, 6548 'identity': {'key': 'identity', 'type': 'VirtualMachineIdentity'}, 6549 'zones': {'key': 'zones', 'type': '[str]'}, 6550 'hardware_profile': {'key': 'properties.hardwareProfile', 'type': 'HardwareProfile'}, 6551 'storage_profile': {'key': 'properties.storageProfile', 'type': 'StorageProfile'}, 6552 'additional_capabilities': {'key': 'properties.additionalCapabilities', 'type': 'AdditionalCapabilities'}, 6553 'os_profile': {'key': 'properties.osProfile', 'type': 'OSProfile'}, 6554 'network_profile': {'key': 'properties.networkProfile', 'type': 'NetworkProfile'}, 6555 'diagnostics_profile': {'key': 'properties.diagnosticsProfile', 'type': 'DiagnosticsProfile'}, 6556 'availability_set': {'key': 'properties.availabilitySet', 'type': 'SubResource'}, 6557 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, 6558 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 6559 'instance_view': {'key': 'properties.instanceView', 'type': 'VirtualMachineInstanceView'}, 6560 'license_type': {'key': 'properties.licenseType', 'type': 'str'}, 6561 'vm_id': {'key': 'properties.vmId', 'type': 'str'}, 6562 } 6563 6564 def __init__( 6565 self, 6566 *, 6567 tags: Optional[Dict[str, str]] = None, 6568 plan: Optional["Plan"] = None, 6569 identity: Optional["VirtualMachineIdentity"] = None, 6570 zones: Optional[List[str]] = None, 6571 hardware_profile: Optional["HardwareProfile"] = None, 6572 storage_profile: Optional["StorageProfile"] = None, 6573 additional_capabilities: Optional["AdditionalCapabilities"] = None, 6574 os_profile: Optional["OSProfile"] = None, 6575 network_profile: Optional["NetworkProfile"] = None, 6576 diagnostics_profile: Optional["DiagnosticsProfile"] = None, 6577 availability_set: Optional["SubResource"] = None, 6578 proximity_placement_group: Optional["SubResource"] = None, 6579 license_type: Optional[str] = None, 6580 **kwargs 6581 ): 6582 super(VirtualMachineUpdate, self).__init__(tags=tags, **kwargs) 6583 self.plan = plan 6584 self.identity = identity 6585 self.zones = zones 6586 self.hardware_profile = hardware_profile 6587 self.storage_profile = storage_profile 6588 self.additional_capabilities = additional_capabilities 6589 self.os_profile = os_profile 6590 self.network_profile = network_profile 6591 self.diagnostics_profile = diagnostics_profile 6592 self.availability_set = availability_set 6593 self.proximity_placement_group = proximity_placement_group 6594 self.provisioning_state = None 6595 self.instance_view = None 6596 self.license_type = license_type 6597 self.vm_id = None 6598 6599 6600class WindowsConfiguration(msrest.serialization.Model): 6601 """Specifies Windows operating system settings on the virtual machine. 6602 6603 :param provision_vm_agent: Indicates whether virtual machine agent should be provisioned on the 6604 virtual machine. :code:`<br>`:code:`<br>` When this property is not specified in the request 6605 body, default behavior is to set it to true. This will ensure that VM Agent is installed on 6606 the VM so that extensions can be added to the VM later. 6607 :type provision_vm_agent: bool 6608 :param enable_automatic_updates: Indicates whether virtual machine is enabled for automatic 6609 Windows updates. Default value is true. :code:`<br>`:code:`<br>` For virtual machine scale 6610 sets, this property can be updated and updates will take effect on OS reprovisioning. 6611 :type enable_automatic_updates: bool 6612 :param time_zone: Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". 6613 :type time_zone: str 6614 :param additional_unattend_content: Specifies additional base-64 encoded XML formatted 6615 information that can be included in the Unattend.xml file, which is used by Windows Setup. 6616 :type additional_unattend_content: 6617 list[~azure.mgmt.compute.v2018_10_01.models.AdditionalUnattendContent] 6618 :param win_rm: Specifies the Windows Remote Management listeners. This enables remote Windows 6619 PowerShell. 6620 :type win_rm: ~azure.mgmt.compute.v2018_10_01.models.WinRMConfiguration 6621 """ 6622 6623 _attribute_map = { 6624 'provision_vm_agent': {'key': 'provisionVMAgent', 'type': 'bool'}, 6625 'enable_automatic_updates': {'key': 'enableAutomaticUpdates', 'type': 'bool'}, 6626 'time_zone': {'key': 'timeZone', 'type': 'str'}, 6627 'additional_unattend_content': {'key': 'additionalUnattendContent', 'type': '[AdditionalUnattendContent]'}, 6628 'win_rm': {'key': 'winRM', 'type': 'WinRMConfiguration'}, 6629 } 6630 6631 def __init__( 6632 self, 6633 *, 6634 provision_vm_agent: Optional[bool] = None, 6635 enable_automatic_updates: Optional[bool] = None, 6636 time_zone: Optional[str] = None, 6637 additional_unattend_content: Optional[List["AdditionalUnattendContent"]] = None, 6638 win_rm: Optional["WinRMConfiguration"] = None, 6639 **kwargs 6640 ): 6641 super(WindowsConfiguration, self).__init__(**kwargs) 6642 self.provision_vm_agent = provision_vm_agent 6643 self.enable_automatic_updates = enable_automatic_updates 6644 self.time_zone = time_zone 6645 self.additional_unattend_content = additional_unattend_content 6646 self.win_rm = win_rm 6647 6648 6649class WinRMConfiguration(msrest.serialization.Model): 6650 """Describes Windows Remote Management configuration of the VM. 6651 6652 :param listeners: The list of Windows Remote Management listeners. 6653 :type listeners: list[~azure.mgmt.compute.v2018_10_01.models.WinRMListener] 6654 """ 6655 6656 _attribute_map = { 6657 'listeners': {'key': 'listeners', 'type': '[WinRMListener]'}, 6658 } 6659 6660 def __init__( 6661 self, 6662 *, 6663 listeners: Optional[List["WinRMListener"]] = None, 6664 **kwargs 6665 ): 6666 super(WinRMConfiguration, self).__init__(**kwargs) 6667 self.listeners = listeners 6668 6669 6670class WinRMListener(msrest.serialization.Model): 6671 """Describes Protocol and thumbprint of Windows Remote Management listener. 6672 6673 :param protocol: Specifies the protocol of listener. :code:`<br>`:code:`<br>` Possible values 6674 are: :code:`<br>`\ **http** :code:`<br>`:code:`<br>` **https**. Possible values include: 6675 "Http", "Https". 6676 :type protocol: str or ~azure.mgmt.compute.v2018_10_01.models.ProtocolTypes 6677 :param certificate_url: This is the URL of a certificate that has been uploaded to Key Vault as 6678 a secret. For adding a secret to the Key Vault, see `Add a key or secret to the key vault 6679 <https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add>`_. In this case, your 6680 certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded 6681 in UTF-8: :code:`<br>`:code:`<br>` {:code:`<br>` 6682 "data":":code:`<Base64-encoded-certificate>`",:code:`<br>` "dataType":"pfx",:code:`<br>` 6683 "password":":code:`<pfx-file-password>`":code:`<br>`}. 6684 :type certificate_url: str 6685 """ 6686 6687 _attribute_map = { 6688 'protocol': {'key': 'protocol', 'type': 'str'}, 6689 'certificate_url': {'key': 'certificateUrl', 'type': 'str'}, 6690 } 6691 6692 def __init__( 6693 self, 6694 *, 6695 protocol: Optional[Union[str, "ProtocolTypes"]] = None, 6696 certificate_url: Optional[str] = None, 6697 **kwargs 6698 ): 6699 super(WinRMListener, self).__init__(**kwargs) 6700 self.protocol = protocol 6701 self.certificate_url = certificate_url 6702