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 AccessUri(msrest.serialization.Model): 18 """A disk access SAS uri. 19 20 Variables are only populated by the server, and will be ignored when sending a request. 21 22 :ivar access_sas: A SAS uri for accessing a disk. 23 :vartype access_sas: str 24 """ 25 26 _validation = { 27 'access_sas': {'readonly': True}, 28 } 29 30 _attribute_map = { 31 'access_sas': {'key': 'accessSAS', 'type': 'str'}, 32 } 33 34 def __init__( 35 self, 36 **kwargs 37 ): 38 super(AccessUri, self).__init__(**kwargs) 39 self.access_sas = None 40 41 42class AdditionalCapabilities(msrest.serialization.Model): 43 """Enables or disables a capability on the virtual machine or virtual machine scale set. 44 45 :param ultra_ssd_enabled: The flag that enables or disables a capability to have one or more 46 managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with 47 storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale 48 set only if this property is enabled. 49 :type ultra_ssd_enabled: bool 50 """ 51 52 _attribute_map = { 53 'ultra_ssd_enabled': {'key': 'ultraSSDEnabled', 'type': 'bool'}, 54 } 55 56 def __init__( 57 self, 58 *, 59 ultra_ssd_enabled: Optional[bool] = None, 60 **kwargs 61 ): 62 super(AdditionalCapabilities, self).__init__(**kwargs) 63 self.ultra_ssd_enabled = ultra_ssd_enabled 64 65 66class AdditionalUnattendContent(msrest.serialization.Model): 67 """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. 68 69 :param pass_name: The pass name. Currently, the only allowable value is OobeSystem. The only 70 acceptable values to pass in are None and "OobeSystem". The default value is None. 71 :type pass_name: str 72 :param component_name: The component name. Currently, the only allowable value is 73 Microsoft-Windows-Shell-Setup. The only acceptable values to pass in are None and 74 "Microsoft-Windows-Shell-Setup". The default value is None. 75 :type component_name: str 76 :param setting_name: Specifies the name of the setting to which the content applies. Possible 77 values are: FirstLogonCommands and AutoLogon. Possible values include: "AutoLogon", 78 "FirstLogonCommands". 79 :type setting_name: str or ~azure.mgmt.compute.v2020_12_01.models.SettingNames 80 :param content: Specifies the XML formatted content that is added to the unattend.xml file for 81 the specified path and component. The XML must be less than 4KB and must include the root 82 element for the setting or feature that is being inserted. 83 :type content: str 84 """ 85 86 _attribute_map = { 87 'pass_name': {'key': 'passName', 'type': 'str'}, 88 'component_name': {'key': 'componentName', 'type': 'str'}, 89 'setting_name': {'key': 'settingName', 'type': 'str'}, 90 'content': {'key': 'content', 'type': 'str'}, 91 } 92 93 def __init__( 94 self, 95 *, 96 pass_name: Optional[str] = None, 97 component_name: Optional[str] = None, 98 setting_name: Optional[Union[str, "SettingNames"]] = None, 99 content: Optional[str] = None, 100 **kwargs 101 ): 102 super(AdditionalUnattendContent, self).__init__(**kwargs) 103 self.pass_name = pass_name 104 self.component_name = component_name 105 self.setting_name = setting_name 106 self.content = content 107 108 109class ApiEntityReference(msrest.serialization.Model): 110 """The API entity reference. 111 112 :param id: The ARM resource id in the form of 113 /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/... 114 :type id: str 115 """ 116 117 _attribute_map = { 118 'id': {'key': 'id', 'type': 'str'}, 119 } 120 121 def __init__( 122 self, 123 *, 124 id: Optional[str] = None, 125 **kwargs 126 ): 127 super(ApiEntityReference, self).__init__(**kwargs) 128 self.id = id 129 130 131class ApiError(msrest.serialization.Model): 132 """Api error. 133 134 :param details: The Api error details. 135 :type details: list[~azure.mgmt.compute.v2020_12_01.models.ApiErrorBase] 136 :param innererror: The Api inner error. 137 :type innererror: ~azure.mgmt.compute.v2020_12_01.models.InnerError 138 :param code: The error code. 139 :type code: str 140 :param target: The target of the particular error. 141 :type target: str 142 :param message: The error message. 143 :type message: str 144 """ 145 146 _attribute_map = { 147 'details': {'key': 'details', 'type': '[ApiErrorBase]'}, 148 'innererror': {'key': 'innererror', 'type': 'InnerError'}, 149 'code': {'key': 'code', 'type': 'str'}, 150 'target': {'key': 'target', 'type': 'str'}, 151 'message': {'key': 'message', 'type': 'str'}, 152 } 153 154 def __init__( 155 self, 156 *, 157 details: Optional[List["ApiErrorBase"]] = None, 158 innererror: Optional["InnerError"] = None, 159 code: Optional[str] = None, 160 target: Optional[str] = None, 161 message: Optional[str] = None, 162 **kwargs 163 ): 164 super(ApiError, self).__init__(**kwargs) 165 self.details = details 166 self.innererror = innererror 167 self.code = code 168 self.target = target 169 self.message = message 170 171 172class ApiErrorBase(msrest.serialization.Model): 173 """Api error base. 174 175 :param code: The error code. 176 :type code: str 177 :param target: The target of the particular error. 178 :type target: str 179 :param message: The error message. 180 :type message: str 181 """ 182 183 _attribute_map = { 184 'code': {'key': 'code', 'type': 'str'}, 185 'target': {'key': 'target', 'type': 'str'}, 186 'message': {'key': 'message', 'type': 'str'}, 187 } 188 189 def __init__( 190 self, 191 *, 192 code: Optional[str] = None, 193 target: Optional[str] = None, 194 message: Optional[str] = None, 195 **kwargs 196 ): 197 super(ApiErrorBase, self).__init__(**kwargs) 198 self.code = code 199 self.target = target 200 self.message = message 201 202 203class AutomaticOSUpgradePolicy(msrest.serialization.Model): 204 """The configuration parameters used for performing automatic OS upgrade. 205 206 :param enable_automatic_os_upgrade: Indicates whether OS upgrades should automatically be 207 applied to scale set instances in a rolling fashion when a newer version of the OS image 208 becomes available. Default value is false. :code:`<br>`:code:`<br>` If this is set to true for 209 Windows based scale sets, `enableAutomaticUpdates 210 <https://docs.microsoft.com/dotnet/api/microsoft.azure.management.compute.models.windowsconfiguration.enableautomaticupdates?view=azure-dotnet>`_ 211 is automatically set to false and cannot be set to true. 212 :type enable_automatic_os_upgrade: bool 213 :param disable_automatic_rollback: Whether OS image rollback feature should be disabled. 214 Default value is false. 215 :type disable_automatic_rollback: bool 216 """ 217 218 _attribute_map = { 219 'enable_automatic_os_upgrade': {'key': 'enableAutomaticOSUpgrade', 'type': 'bool'}, 220 'disable_automatic_rollback': {'key': 'disableAutomaticRollback', 'type': 'bool'}, 221 } 222 223 def __init__( 224 self, 225 *, 226 enable_automatic_os_upgrade: Optional[bool] = None, 227 disable_automatic_rollback: Optional[bool] = None, 228 **kwargs 229 ): 230 super(AutomaticOSUpgradePolicy, self).__init__(**kwargs) 231 self.enable_automatic_os_upgrade = enable_automatic_os_upgrade 232 self.disable_automatic_rollback = disable_automatic_rollback 233 234 235class AutomaticOSUpgradeProperties(msrest.serialization.Model): 236 """Describes automatic OS upgrade properties on the image. 237 238 All required parameters must be populated in order to send to Azure. 239 240 :param automatic_os_upgrade_supported: Required. Specifies whether automatic OS upgrade is 241 supported on the image. 242 :type automatic_os_upgrade_supported: bool 243 """ 244 245 _validation = { 246 'automatic_os_upgrade_supported': {'required': True}, 247 } 248 249 _attribute_map = { 250 'automatic_os_upgrade_supported': {'key': 'automaticOSUpgradeSupported', 'type': 'bool'}, 251 } 252 253 def __init__( 254 self, 255 *, 256 automatic_os_upgrade_supported: bool, 257 **kwargs 258 ): 259 super(AutomaticOSUpgradeProperties, self).__init__(**kwargs) 260 self.automatic_os_upgrade_supported = automatic_os_upgrade_supported 261 262 263class AutomaticRepairsPolicy(msrest.serialization.Model): 264 """Specifies the configuration parameters for automatic repairs on the virtual machine scale set. 265 266 :param enabled: Specifies whether automatic repairs should be enabled on the virtual machine 267 scale set. The default value is false. 268 :type enabled: bool 269 :param grace_period: The amount of time for which automatic repairs are suspended due to a 270 state change on VM. The grace time starts after the state change has completed. This helps 271 avoid premature or accidental repairs. The time duration should be specified in ISO 8601 272 format. The minimum allowed grace period is 30 minutes (PT30M), which is also the default 273 value. The maximum allowed grace period is 90 minutes (PT90M). 274 :type grace_period: str 275 """ 276 277 _attribute_map = { 278 'enabled': {'key': 'enabled', 'type': 'bool'}, 279 'grace_period': {'key': 'gracePeriod', 'type': 'str'}, 280 } 281 282 def __init__( 283 self, 284 *, 285 enabled: Optional[bool] = None, 286 grace_period: Optional[str] = None, 287 **kwargs 288 ): 289 super(AutomaticRepairsPolicy, self).__init__(**kwargs) 290 self.enabled = enabled 291 self.grace_period = grace_period 292 293 294class Resource(msrest.serialization.Model): 295 """The Resource model definition. 296 297 Variables are only populated by the server, and will be ignored when sending a request. 298 299 All required parameters must be populated in order to send to Azure. 300 301 :ivar id: Resource Id. 302 :vartype id: str 303 :ivar name: Resource name. 304 :vartype name: str 305 :ivar type: Resource type. 306 :vartype type: str 307 :param location: Required. Resource location. 308 :type location: str 309 :param tags: A set of tags. Resource tags. 310 :type tags: dict[str, str] 311 """ 312 313 _validation = { 314 'id': {'readonly': True}, 315 'name': {'readonly': True}, 316 'type': {'readonly': True}, 317 'location': {'required': True}, 318 } 319 320 _attribute_map = { 321 'id': {'key': 'id', 'type': 'str'}, 322 'name': {'key': 'name', 'type': 'str'}, 323 'type': {'key': 'type', 'type': 'str'}, 324 'location': {'key': 'location', 'type': 'str'}, 325 'tags': {'key': 'tags', 'type': '{str}'}, 326 } 327 328 def __init__( 329 self, 330 *, 331 location: str, 332 tags: Optional[Dict[str, str]] = None, 333 **kwargs 334 ): 335 super(Resource, self).__init__(**kwargs) 336 self.id = None 337 self.name = None 338 self.type = None 339 self.location = location 340 self.tags = tags 341 342 343class AvailabilitySet(Resource): 344 """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. 345 346 Variables are only populated by the server, and will be ignored when sending a request. 347 348 All required parameters must be populated in order to send to Azure. 349 350 :ivar id: Resource Id. 351 :vartype id: str 352 :ivar name: Resource name. 353 :vartype name: str 354 :ivar type: Resource type. 355 :vartype type: str 356 :param location: Required. Resource location. 357 :type location: str 358 :param tags: A set of tags. Resource tags. 359 :type tags: dict[str, str] 360 :param sku: Sku of the availability set, only name is required to be set. See 361 AvailabilitySetSkuTypes for possible set of values. Use 'Aligned' for virtual machines with 362 managed disks and 'Classic' for virtual machines with unmanaged disks. Default value is 363 'Classic'. 364 :type sku: ~azure.mgmt.compute.v2020_12_01.models.Sku 365 :param platform_update_domain_count: Update Domain count. 366 :type platform_update_domain_count: int 367 :param platform_fault_domain_count: Fault Domain count. 368 :type platform_fault_domain_count: int 369 :param virtual_machines: A list of references to all virtual machines in the availability set. 370 :type virtual_machines: list[~azure.mgmt.compute.v2020_12_01.models.SubResource] 371 :param proximity_placement_group: Specifies information about the proximity placement group 372 that the availability set should be assigned to. :code:`<br>`:code:`<br>`Minimum api-version: 373 2018-04-01. 374 :type proximity_placement_group: ~azure.mgmt.compute.v2020_12_01.models.SubResource 375 :ivar statuses: The resource status information. 376 :vartype statuses: list[~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus] 377 """ 378 379 _validation = { 380 'id': {'readonly': True}, 381 'name': {'readonly': True}, 382 'type': {'readonly': True}, 383 'location': {'required': True}, 384 'statuses': {'readonly': True}, 385 } 386 387 _attribute_map = { 388 'id': {'key': 'id', 'type': 'str'}, 389 'name': {'key': 'name', 'type': 'str'}, 390 'type': {'key': 'type', 'type': 'str'}, 391 'location': {'key': 'location', 'type': 'str'}, 392 'tags': {'key': 'tags', 'type': '{str}'}, 393 'sku': {'key': 'sku', 'type': 'Sku'}, 394 'platform_update_domain_count': {'key': 'properties.platformUpdateDomainCount', 'type': 'int'}, 395 'platform_fault_domain_count': {'key': 'properties.platformFaultDomainCount', 'type': 'int'}, 396 'virtual_machines': {'key': 'properties.virtualMachines', 'type': '[SubResource]'}, 397 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, 398 'statuses': {'key': 'properties.statuses', 'type': '[InstanceViewStatus]'}, 399 } 400 401 def __init__( 402 self, 403 *, 404 location: str, 405 tags: Optional[Dict[str, str]] = None, 406 sku: Optional["Sku"] = None, 407 platform_update_domain_count: Optional[int] = None, 408 platform_fault_domain_count: Optional[int] = None, 409 virtual_machines: Optional[List["SubResource"]] = None, 410 proximity_placement_group: Optional["SubResource"] = None, 411 **kwargs 412 ): 413 super(AvailabilitySet, self).__init__(location=location, tags=tags, **kwargs) 414 self.sku = sku 415 self.platform_update_domain_count = platform_update_domain_count 416 self.platform_fault_domain_count = platform_fault_domain_count 417 self.virtual_machines = virtual_machines 418 self.proximity_placement_group = proximity_placement_group 419 self.statuses = None 420 421 422class AvailabilitySetListResult(msrest.serialization.Model): 423 """The List Availability Set operation response. 424 425 All required parameters must be populated in order to send to Azure. 426 427 :param value: Required. The list of availability sets. 428 :type value: list[~azure.mgmt.compute.v2020_12_01.models.AvailabilitySet] 429 :param next_link: The URI to fetch the next page of AvailabilitySets. Call ListNext() with this 430 URI to fetch the next page of AvailabilitySets. 431 :type next_link: str 432 """ 433 434 _validation = { 435 'value': {'required': True}, 436 } 437 438 _attribute_map = { 439 'value': {'key': 'value', 'type': '[AvailabilitySet]'}, 440 'next_link': {'key': 'nextLink', 'type': 'str'}, 441 } 442 443 def __init__( 444 self, 445 *, 446 value: List["AvailabilitySet"], 447 next_link: Optional[str] = None, 448 **kwargs 449 ): 450 super(AvailabilitySetListResult, self).__init__(**kwargs) 451 self.value = value 452 self.next_link = next_link 453 454 455class UpdateResource(msrest.serialization.Model): 456 """The Update Resource model definition. 457 458 :param tags: A set of tags. Resource tags. 459 :type tags: dict[str, str] 460 """ 461 462 _attribute_map = { 463 'tags': {'key': 'tags', 'type': '{str}'}, 464 } 465 466 def __init__( 467 self, 468 *, 469 tags: Optional[Dict[str, str]] = None, 470 **kwargs 471 ): 472 super(UpdateResource, self).__init__(**kwargs) 473 self.tags = tags 474 475 476class AvailabilitySetUpdate(UpdateResource): 477 """Specifies information about the availability set that the virtual machine should be assigned to. Only tags may be updated. 478 479 Variables are only populated by the server, and will be ignored when sending a request. 480 481 :param tags: A set of tags. Resource tags. 482 :type tags: dict[str, str] 483 :param sku: Sku of the availability set. 484 :type sku: ~azure.mgmt.compute.v2020_12_01.models.Sku 485 :param platform_update_domain_count: Update Domain count. 486 :type platform_update_domain_count: int 487 :param platform_fault_domain_count: Fault Domain count. 488 :type platform_fault_domain_count: int 489 :param virtual_machines: A list of references to all virtual machines in the availability set. 490 :type virtual_machines: list[~azure.mgmt.compute.v2020_12_01.models.SubResource] 491 :param proximity_placement_group: Specifies information about the proximity placement group 492 that the availability set should be assigned to. :code:`<br>`:code:`<br>`Minimum api-version: 493 2018-04-01. 494 :type proximity_placement_group: ~azure.mgmt.compute.v2020_12_01.models.SubResource 495 :ivar statuses: The resource status information. 496 :vartype statuses: list[~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus] 497 """ 498 499 _validation = { 500 'statuses': {'readonly': True}, 501 } 502 503 _attribute_map = { 504 'tags': {'key': 'tags', 'type': '{str}'}, 505 'sku': {'key': 'sku', 'type': 'Sku'}, 506 'platform_update_domain_count': {'key': 'properties.platformUpdateDomainCount', 'type': 'int'}, 507 'platform_fault_domain_count': {'key': 'properties.platformFaultDomainCount', 'type': 'int'}, 508 'virtual_machines': {'key': 'properties.virtualMachines', 'type': '[SubResource]'}, 509 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, 510 'statuses': {'key': 'properties.statuses', 'type': '[InstanceViewStatus]'}, 511 } 512 513 def __init__( 514 self, 515 *, 516 tags: Optional[Dict[str, str]] = None, 517 sku: Optional["Sku"] = None, 518 platform_update_domain_count: Optional[int] = None, 519 platform_fault_domain_count: Optional[int] = None, 520 virtual_machines: Optional[List["SubResource"]] = None, 521 proximity_placement_group: Optional["SubResource"] = None, 522 **kwargs 523 ): 524 super(AvailabilitySetUpdate, self).__init__(tags=tags, **kwargs) 525 self.sku = sku 526 self.platform_update_domain_count = platform_update_domain_count 527 self.platform_fault_domain_count = platform_fault_domain_count 528 self.virtual_machines = virtual_machines 529 self.proximity_placement_group = proximity_placement_group 530 self.statuses = None 531 532 533class AvailablePatchSummary(msrest.serialization.Model): 534 """Describes the properties of an virtual machine instance view for available patch summary. 535 536 Variables are only populated by the server, and will be ignored when sending a request. 537 538 :ivar status: The overall success or failure status of the operation. It remains "InProgress" 539 until the operation completes. At that point it will become "Unknown", "Failed", "Succeeded", 540 or "CompletedWithWarnings.". Possible values include: "Unknown", "InProgress", "Failed", 541 "Succeeded", "CompletedWithWarnings". 542 :vartype status: str or ~azure.mgmt.compute.v2020_12_01.models.PatchOperationStatus 543 :ivar assessment_activity_id: The activity ID of the operation that produced this result. It is 544 used to correlate across CRP and extension logs. 545 :vartype assessment_activity_id: str 546 :ivar reboot_pending: The overall reboot status of the VM. It will be true when partially 547 installed patches require a reboot to complete installation but the reboot has not yet 548 occurred. 549 :vartype reboot_pending: bool 550 :ivar critical_and_security_patch_count: The number of critical or security patches that have 551 been detected as available and not yet installed. 552 :vartype critical_and_security_patch_count: int 553 :ivar other_patch_count: The number of all available patches excluding critical and security. 554 :vartype other_patch_count: int 555 :ivar start_time: The UTC timestamp when the operation began. 556 :vartype start_time: ~datetime.datetime 557 :ivar last_modified_time: The UTC timestamp when the operation began. 558 :vartype last_modified_time: ~datetime.datetime 559 :ivar error: The errors that were encountered during execution of the operation. The details 560 array contains the list of them. 561 :vartype error: ~azure.mgmt.compute.v2020_12_01.models.ApiError 562 """ 563 564 _validation = { 565 'status': {'readonly': True}, 566 'assessment_activity_id': {'readonly': True}, 567 'reboot_pending': {'readonly': True}, 568 'critical_and_security_patch_count': {'readonly': True}, 569 'other_patch_count': {'readonly': True}, 570 'start_time': {'readonly': True}, 571 'last_modified_time': {'readonly': True}, 572 'error': {'readonly': True}, 573 } 574 575 _attribute_map = { 576 'status': {'key': 'status', 'type': 'str'}, 577 'assessment_activity_id': {'key': 'assessmentActivityId', 'type': 'str'}, 578 'reboot_pending': {'key': 'rebootPending', 'type': 'bool'}, 579 'critical_and_security_patch_count': {'key': 'criticalAndSecurityPatchCount', 'type': 'int'}, 580 'other_patch_count': {'key': 'otherPatchCount', 'type': 'int'}, 581 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, 582 'last_modified_time': {'key': 'lastModifiedTime', 'type': 'iso-8601'}, 583 'error': {'key': 'error', 'type': 'ApiError'}, 584 } 585 586 def __init__( 587 self, 588 **kwargs 589 ): 590 super(AvailablePatchSummary, self).__init__(**kwargs) 591 self.status = None 592 self.assessment_activity_id = None 593 self.reboot_pending = None 594 self.critical_and_security_patch_count = None 595 self.other_patch_count = None 596 self.start_time = None 597 self.last_modified_time = None 598 self.error = None 599 600 601class BillingProfile(msrest.serialization.Model): 602 """Specifies the billing related details of a Azure Spot VM or VMSS. :code:`<br>`:code:`<br>`Minimum api-version: 2019-03-01. 603 604 :param max_price: Specifies the maximum price you are willing to pay for a Azure Spot VM/VMSS. 605 This price is in US Dollars. :code:`<br>`:code:`<br>` This price will be compared with the 606 current Azure Spot price for the VM size. Also, the prices are compared at the time of 607 create/update of Azure Spot VM/VMSS and the operation will only succeed if the maxPrice is 608 greater than the current Azure Spot price. :code:`<br>`:code:`<br>` The maxPrice will also be 609 used for evicting a Azure Spot VM/VMSS if the current Azure Spot price goes beyond the maxPrice 610 after creation of VM/VMSS. :code:`<br>`:code:`<br>` Possible values are: 611 :code:`<br>`:code:`<br>` - Any decimal value greater than zero. Example: 0.01538 612 :code:`<br>`:code:`<br>` -1 – indicates default price to be up-to on-demand. 613 :code:`<br>`:code:`<br>` You can set the maxPrice to -1 to indicate that the Azure Spot VM/VMSS 614 should not be evicted for price reasons. Also, the default max price is -1 if it is not 615 provided by you. :code:`<br>`:code:`<br>`Minimum api-version: 2019-03-01. 616 :type max_price: float 617 """ 618 619 _attribute_map = { 620 'max_price': {'key': 'maxPrice', 'type': 'float'}, 621 } 622 623 def __init__( 624 self, 625 *, 626 max_price: Optional[float] = None, 627 **kwargs 628 ): 629 super(BillingProfile, self).__init__(**kwargs) 630 self.max_price = max_price 631 632 633class BootDiagnostics(msrest.serialization.Model): 634 """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. 635 636 :param enabled: Whether boot diagnostics should be enabled on the Virtual Machine. 637 :type enabled: bool 638 :param storage_uri: Uri of the storage account to use for placing the console output and 639 screenshot. :code:`<br>`:code:`<br>`If storageUri is not specified while enabling boot 640 diagnostics, managed storage will be used. 641 :type storage_uri: str 642 """ 643 644 _attribute_map = { 645 'enabled': {'key': 'enabled', 'type': 'bool'}, 646 'storage_uri': {'key': 'storageUri', 'type': 'str'}, 647 } 648 649 def __init__( 650 self, 651 *, 652 enabled: Optional[bool] = None, 653 storage_uri: Optional[str] = None, 654 **kwargs 655 ): 656 super(BootDiagnostics, self).__init__(**kwargs) 657 self.enabled = enabled 658 self.storage_uri = storage_uri 659 660 661class BootDiagnosticsInstanceView(msrest.serialization.Model): 662 """The instance view of a virtual machine boot diagnostics. 663 664 Variables are only populated by the server, and will be ignored when sending a request. 665 666 :ivar console_screenshot_blob_uri: The console screenshot blob URI. 667 :code:`<br>`:code:`<br>`NOTE: This will **not** be set if boot diagnostics is currently enabled 668 with managed storage. 669 :vartype console_screenshot_blob_uri: str 670 :ivar serial_console_log_blob_uri: The serial console log blob Uri. 671 :code:`<br>`:code:`<br>`NOTE: This will **not** be set if boot diagnostics is currently enabled 672 with managed storage. 673 :vartype serial_console_log_blob_uri: str 674 :ivar status: The boot diagnostics status information for the VM. :code:`<br>`:code:`<br>` 675 NOTE: It will be set only if there are errors encountered in enabling boot diagnostics. 676 :vartype status: ~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus 677 """ 678 679 _validation = { 680 'console_screenshot_blob_uri': {'readonly': True}, 681 'serial_console_log_blob_uri': {'readonly': True}, 682 'status': {'readonly': True}, 683 } 684 685 _attribute_map = { 686 'console_screenshot_blob_uri': {'key': 'consoleScreenshotBlobUri', 'type': 'str'}, 687 'serial_console_log_blob_uri': {'key': 'serialConsoleLogBlobUri', 'type': 'str'}, 688 'status': {'key': 'status', 'type': 'InstanceViewStatus'}, 689 } 690 691 def __init__( 692 self, 693 **kwargs 694 ): 695 super(BootDiagnosticsInstanceView, self).__init__(**kwargs) 696 self.console_screenshot_blob_uri = None 697 self.serial_console_log_blob_uri = None 698 self.status = None 699 700 701class ComputeOperationListResult(msrest.serialization.Model): 702 """The List Compute Operation operation response. 703 704 Variables are only populated by the server, and will be ignored when sending a request. 705 706 :ivar value: The list of compute operations. 707 :vartype value: list[~azure.mgmt.compute.v2020_12_01.models.ComputeOperationValue] 708 """ 709 710 _validation = { 711 'value': {'readonly': True}, 712 } 713 714 _attribute_map = { 715 'value': {'key': 'value', 'type': '[ComputeOperationValue]'}, 716 } 717 718 def __init__( 719 self, 720 **kwargs 721 ): 722 super(ComputeOperationListResult, self).__init__(**kwargs) 723 self.value = None 724 725 726class ComputeOperationValue(msrest.serialization.Model): 727 """Describes the properties of a Compute Operation value. 728 729 Variables are only populated by the server, and will be ignored when sending a request. 730 731 :ivar origin: The origin of the compute operation. 732 :vartype origin: str 733 :ivar name: The name of the compute operation. 734 :vartype name: str 735 :ivar operation: The display name of the compute operation. 736 :vartype operation: str 737 :ivar resource: The display name of the resource the operation applies to. 738 :vartype resource: str 739 :ivar description: The description of the operation. 740 :vartype description: str 741 :ivar provider: The resource provider for the operation. 742 :vartype provider: str 743 """ 744 745 _validation = { 746 'origin': {'readonly': True}, 747 'name': {'readonly': True}, 748 'operation': {'readonly': True}, 749 'resource': {'readonly': True}, 750 'description': {'readonly': True}, 751 'provider': {'readonly': True}, 752 } 753 754 _attribute_map = { 755 'origin': {'key': 'origin', 'type': 'str'}, 756 'name': {'key': 'name', 'type': 'str'}, 757 'operation': {'key': 'display.operation', 'type': 'str'}, 758 'resource': {'key': 'display.resource', 'type': 'str'}, 759 'description': {'key': 'display.description', 'type': 'str'}, 760 'provider': {'key': 'display.provider', 'type': 'str'}, 761 } 762 763 def __init__( 764 self, 765 **kwargs 766 ): 767 super(ComputeOperationValue, self).__init__(**kwargs) 768 self.origin = None 769 self.name = None 770 self.operation = None 771 self.resource = None 772 self.description = None 773 self.provider = None 774 775 776class CreationData(msrest.serialization.Model): 777 """Data used when creating a disk. 778 779 Variables are only populated by the server, and will be ignored when sending a request. 780 781 All required parameters must be populated in order to send to Azure. 782 783 :param create_option: Required. This enumerates the possible sources of a disk's creation. 784 Possible values include: "Empty", "Attach", "FromImage", "Import", "Copy", "Restore", "Upload". 785 :type create_option: str or ~azure.mgmt.compute.v2020_12_01.models.DiskCreateOption 786 :param storage_account_id: Required if createOption is Import. The Azure Resource Manager 787 identifier of the storage account containing the blob to import as a disk. 788 :type storage_account_id: str 789 :param image_reference: Disk source information. 790 :type image_reference: ~azure.mgmt.compute.v2020_12_01.models.ImageDiskReference 791 :param gallery_image_reference: Required if creating from a Gallery Image. The id of the 792 ImageDiskReference will be the ARM id of the shared galley image version from which to create a 793 disk. 794 :type gallery_image_reference: ~azure.mgmt.compute.v2020_12_01.models.ImageDiskReference 795 :param source_uri: If createOption is Import, this is the URI of a blob to be imported into a 796 managed disk. 797 :type source_uri: str 798 :param source_resource_id: If createOption is Copy, this is the ARM id of the source snapshot 799 or disk. 800 :type source_resource_id: str 801 :ivar source_unique_id: If this field is set, this is the unique id identifying the source of 802 this resource. 803 :vartype source_unique_id: str 804 :param upload_size_bytes: If createOption is Upload, this is the size of the contents of the 805 upload including the VHD footer. This value should be between 20972032 (20 MiB + 512 bytes for 806 the VHD footer) and 35183298347520 bytes (32 TiB + 512 bytes for the VHD footer). 807 :type upload_size_bytes: long 808 :param logical_sector_size: Logical sector size in bytes for Ultra disks. Supported values are 809 512 ad 4096. 4096 is the default. 810 :type logical_sector_size: int 811 """ 812 813 _validation = { 814 'create_option': {'required': True}, 815 'source_unique_id': {'readonly': True}, 816 } 817 818 _attribute_map = { 819 'create_option': {'key': 'createOption', 'type': 'str'}, 820 'storage_account_id': {'key': 'storageAccountId', 'type': 'str'}, 821 'image_reference': {'key': 'imageReference', 'type': 'ImageDiskReference'}, 822 'gallery_image_reference': {'key': 'galleryImageReference', 'type': 'ImageDiskReference'}, 823 'source_uri': {'key': 'sourceUri', 'type': 'str'}, 824 'source_resource_id': {'key': 'sourceResourceId', 'type': 'str'}, 825 'source_unique_id': {'key': 'sourceUniqueId', 'type': 'str'}, 826 'upload_size_bytes': {'key': 'uploadSizeBytes', 'type': 'long'}, 827 'logical_sector_size': {'key': 'logicalSectorSize', 'type': 'int'}, 828 } 829 830 def __init__( 831 self, 832 *, 833 create_option: Union[str, "DiskCreateOption"], 834 storage_account_id: Optional[str] = None, 835 image_reference: Optional["ImageDiskReference"] = None, 836 gallery_image_reference: Optional["ImageDiskReference"] = None, 837 source_uri: Optional[str] = None, 838 source_resource_id: Optional[str] = None, 839 upload_size_bytes: Optional[int] = None, 840 logical_sector_size: Optional[int] = None, 841 **kwargs 842 ): 843 super(CreationData, self).__init__(**kwargs) 844 self.create_option = create_option 845 self.storage_account_id = storage_account_id 846 self.image_reference = image_reference 847 self.gallery_image_reference = gallery_image_reference 848 self.source_uri = source_uri 849 self.source_resource_id = source_resource_id 850 self.source_unique_id = None 851 self.upload_size_bytes = upload_size_bytes 852 self.logical_sector_size = logical_sector_size 853 854 855class DataDisk(msrest.serialization.Model): 856 """Describes a data disk. 857 858 Variables are only populated by the server, and will be ignored when sending a request. 859 860 All required parameters must be populated in order to send to Azure. 861 862 :param lun: Required. Specifies the logical unit number of the data disk. This value is used to 863 identify data disks within the VM and therefore must be unique for each data disk attached to a 864 VM. 865 :type lun: int 866 :param name: The disk name. 867 :type name: str 868 :param vhd: The virtual hard disk. 869 :type vhd: ~azure.mgmt.compute.v2020_12_01.models.VirtualHardDisk 870 :param image: The source user image virtual hard disk. The virtual hard disk will be copied 871 before being attached to the virtual machine. If SourceImage is provided, the destination 872 virtual hard drive must not exist. 873 :type image: ~azure.mgmt.compute.v2020_12_01.models.VirtualHardDisk 874 :param caching: Specifies the caching requirements. :code:`<br>`:code:`<br>` Possible values 875 are: :code:`<br>`:code:`<br>` **None** :code:`<br>`:code:`<br>` **ReadOnly** 876 :code:`<br>`:code:`<br>` **ReadWrite** :code:`<br>`:code:`<br>` Default: **None for Standard 877 storage. ReadOnly for Premium storage**. Possible values include: "None", "ReadOnly", 878 "ReadWrite". 879 :type caching: str or ~azure.mgmt.compute.v2020_12_01.models.CachingTypes 880 :param write_accelerator_enabled: Specifies whether writeAccelerator should be enabled or 881 disabled on the disk. 882 :type write_accelerator_enabled: bool 883 :param create_option: Required. Specifies how the virtual machine should be 884 created.:code:`<br>`:code:`<br>` Possible values are::code:`<br>`:code:`<br>` **Attach** \u2013 885 This value is used when you are using a specialized disk to create the virtual 886 machine.:code:`<br>`:code:`<br>` **FromImage** \u2013 This value is used when you are using an 887 image to create the virtual machine. If you are using a platform image, you also use the 888 imageReference element described above. If you are using a marketplace image, you also use the 889 plan element previously described. Possible values include: "FromImage", "Empty", "Attach". 890 :type create_option: str or ~azure.mgmt.compute.v2020_12_01.models.DiskCreateOptionTypes 891 :param disk_size_gb: Specifies the size of an empty data disk in gigabytes. This element can be 892 used to overwrite the size of the disk in a virtual machine image. :code:`<br>`:code:`<br>` 893 This value cannot be larger than 1023 GB. 894 :type disk_size_gb: int 895 :param managed_disk: The managed disk parameters. 896 :type managed_disk: ~azure.mgmt.compute.v2020_12_01.models.ManagedDiskParameters 897 :param to_be_detached: Specifies whether the data disk is in process of detachment from the 898 VirtualMachine/VirtualMachineScaleset. 899 :type to_be_detached: bool 900 :ivar disk_iops_read_write: Specifies the Read-Write IOPS for the managed disk when 901 StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be 902 updated only via updates to the VirtualMachine Scale Set. 903 :vartype disk_iops_read_write: long 904 :ivar disk_m_bps_read_write: Specifies the bandwidth in MB per second for the managed disk when 905 StorageAccountType is UltraSSD_LRS. Returned only for VirtualMachine ScaleSet VM disks. Can be 906 updated only via updates to the VirtualMachine Scale Set. 907 :vartype disk_m_bps_read_write: long 908 :param detach_option: Specifies the detach behavior to be used while detaching a disk or which 909 is already in the process of detachment from the virtual machine. Supported values: 910 **ForceDetach**. :code:`<br>`:code:`<br>` detachOption: **ForceDetach** is applicable only for 911 managed data disks. If a previous detachment attempt of the data disk did not complete due to 912 an unexpected failure from the virtual machine and the disk is still not released then use 913 force-detach as a last resort option to detach the disk forcibly from the VM. All writes might 914 not have been flushed when using this detach behavior. :code:`<br>`:code:`<br>` This feature is 915 still in preview mode and is not supported for VirtualMachineScaleSet. To force-detach a data 916 disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'. Possible 917 values include: "ForceDetach". 918 :type detach_option: str or ~azure.mgmt.compute.v2020_12_01.models.DiskDetachOptionTypes 919 """ 920 921 _validation = { 922 'lun': {'required': True}, 923 'create_option': {'required': True}, 924 'disk_iops_read_write': {'readonly': True}, 925 'disk_m_bps_read_write': {'readonly': True}, 926 } 927 928 _attribute_map = { 929 'lun': {'key': 'lun', 'type': 'int'}, 930 'name': {'key': 'name', 'type': 'str'}, 931 'vhd': {'key': 'vhd', 'type': 'VirtualHardDisk'}, 932 'image': {'key': 'image', 'type': 'VirtualHardDisk'}, 933 'caching': {'key': 'caching', 'type': 'str'}, 934 'write_accelerator_enabled': {'key': 'writeAcceleratorEnabled', 'type': 'bool'}, 935 'create_option': {'key': 'createOption', 'type': 'str'}, 936 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, 937 'managed_disk': {'key': 'managedDisk', 'type': 'ManagedDiskParameters'}, 938 'to_be_detached': {'key': 'toBeDetached', 'type': 'bool'}, 939 'disk_iops_read_write': {'key': 'diskIOPSReadWrite', 'type': 'long'}, 940 'disk_m_bps_read_write': {'key': 'diskMBpsReadWrite', 'type': 'long'}, 941 'detach_option': {'key': 'detachOption', 'type': 'str'}, 942 } 943 944 def __init__( 945 self, 946 *, 947 lun: int, 948 create_option: Union[str, "DiskCreateOptionTypes"], 949 name: Optional[str] = None, 950 vhd: Optional["VirtualHardDisk"] = None, 951 image: Optional["VirtualHardDisk"] = None, 952 caching: Optional[Union[str, "CachingTypes"]] = None, 953 write_accelerator_enabled: Optional[bool] = None, 954 disk_size_gb: Optional[int] = None, 955 managed_disk: Optional["ManagedDiskParameters"] = None, 956 to_be_detached: Optional[bool] = None, 957 detach_option: Optional[Union[str, "DiskDetachOptionTypes"]] = None, 958 **kwargs 959 ): 960 super(DataDisk, self).__init__(**kwargs) 961 self.lun = lun 962 self.name = name 963 self.vhd = vhd 964 self.image = image 965 self.caching = caching 966 self.write_accelerator_enabled = write_accelerator_enabled 967 self.create_option = create_option 968 self.disk_size_gb = disk_size_gb 969 self.managed_disk = managed_disk 970 self.to_be_detached = to_be_detached 971 self.disk_iops_read_write = None 972 self.disk_m_bps_read_write = None 973 self.detach_option = detach_option 974 975 976class DataDiskImage(msrest.serialization.Model): 977 """Contains the data disk images information. 978 979 Variables are only populated by the server, and will be ignored when sending a request. 980 981 :ivar lun: Specifies the logical unit number of the data disk. This value is used to identify 982 data disks within the VM and therefore must be unique for each data disk attached to a VM. 983 :vartype lun: int 984 """ 985 986 _validation = { 987 'lun': {'readonly': True}, 988 } 989 990 _attribute_map = { 991 'lun': {'key': 'lun', 'type': 'int'}, 992 } 993 994 def __init__( 995 self, 996 **kwargs 997 ): 998 super(DataDiskImage, self).__init__(**kwargs) 999 self.lun = None 1000 1001 1002class DedicatedHost(Resource): 1003 """Specifies information about the Dedicated host. 1004 1005 Variables are only populated by the server, and will be ignored when sending a request. 1006 1007 All required parameters must be populated in order to send to Azure. 1008 1009 :ivar id: Resource Id. 1010 :vartype id: str 1011 :ivar name: Resource name. 1012 :vartype name: str 1013 :ivar type: Resource type. 1014 :vartype type: str 1015 :param location: Required. Resource location. 1016 :type location: str 1017 :param tags: A set of tags. Resource tags. 1018 :type tags: dict[str, str] 1019 :param sku: Required. SKU of the dedicated host for Hardware Generation and VM family. Only 1020 name is required to be set. List Microsoft.Compute SKUs for a list of possible values. 1021 :type sku: ~azure.mgmt.compute.v2020_12_01.models.Sku 1022 :param platform_fault_domain: Fault domain of the dedicated host within a dedicated host group. 1023 :type platform_fault_domain: int 1024 :param auto_replace_on_failure: Specifies whether the dedicated host should be replaced 1025 automatically in case of a failure. The value is defaulted to 'true' when not provided. 1026 :type auto_replace_on_failure: bool 1027 :ivar host_id: A unique id generated and assigned to the dedicated host by the platform. 1028 :code:`<br>`:code:`<br>` Does not change throughout the lifetime of the host. 1029 :vartype host_id: str 1030 :ivar virtual_machines: A list of references to all virtual machines in the Dedicated Host. 1031 :vartype virtual_machines: list[~azure.mgmt.compute.v2020_12_01.models.SubResourceReadOnly] 1032 :param license_type: Specifies the software license type that will be applied to the VMs 1033 deployed on the dedicated host. :code:`<br>`:code:`<br>` Possible values are: 1034 :code:`<br>`:code:`<br>` **None** :code:`<br>`:code:`<br>` **Windows_Server_Hybrid** 1035 :code:`<br>`:code:`<br>` **Windows_Server_Perpetual** :code:`<br>`:code:`<br>` Default: 1036 **None**. Possible values include: "None", "Windows_Server_Hybrid", "Windows_Server_Perpetual". 1037 :type license_type: str or ~azure.mgmt.compute.v2020_12_01.models.DedicatedHostLicenseTypes 1038 :ivar provisioning_time: The date when the host was first provisioned. 1039 :vartype provisioning_time: ~datetime.datetime 1040 :ivar provisioning_state: The provisioning state, which only appears in the response. 1041 :vartype provisioning_state: str 1042 :ivar instance_view: The dedicated host instance view. 1043 :vartype instance_view: ~azure.mgmt.compute.v2020_12_01.models.DedicatedHostInstanceView 1044 """ 1045 1046 _validation = { 1047 'id': {'readonly': True}, 1048 'name': {'readonly': True}, 1049 'type': {'readonly': True}, 1050 'location': {'required': True}, 1051 'sku': {'required': True}, 1052 'platform_fault_domain': {'minimum': 0}, 1053 'host_id': {'readonly': True}, 1054 'virtual_machines': {'readonly': True}, 1055 'provisioning_time': {'readonly': True}, 1056 'provisioning_state': {'readonly': True}, 1057 'instance_view': {'readonly': True}, 1058 } 1059 1060 _attribute_map = { 1061 'id': {'key': 'id', 'type': 'str'}, 1062 'name': {'key': 'name', 'type': 'str'}, 1063 'type': {'key': 'type', 'type': 'str'}, 1064 'location': {'key': 'location', 'type': 'str'}, 1065 'tags': {'key': 'tags', 'type': '{str}'}, 1066 'sku': {'key': 'sku', 'type': 'Sku'}, 1067 'platform_fault_domain': {'key': 'properties.platformFaultDomain', 'type': 'int'}, 1068 'auto_replace_on_failure': {'key': 'properties.autoReplaceOnFailure', 'type': 'bool'}, 1069 'host_id': {'key': 'properties.hostId', 'type': 'str'}, 1070 'virtual_machines': {'key': 'properties.virtualMachines', 'type': '[SubResourceReadOnly]'}, 1071 'license_type': {'key': 'properties.licenseType', 'type': 'str'}, 1072 'provisioning_time': {'key': 'properties.provisioningTime', 'type': 'iso-8601'}, 1073 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 1074 'instance_view': {'key': 'properties.instanceView', 'type': 'DedicatedHostInstanceView'}, 1075 } 1076 1077 def __init__( 1078 self, 1079 *, 1080 location: str, 1081 sku: "Sku", 1082 tags: Optional[Dict[str, str]] = None, 1083 platform_fault_domain: Optional[int] = None, 1084 auto_replace_on_failure: Optional[bool] = None, 1085 license_type: Optional[Union[str, "DedicatedHostLicenseTypes"]] = None, 1086 **kwargs 1087 ): 1088 super(DedicatedHost, self).__init__(location=location, tags=tags, **kwargs) 1089 self.sku = sku 1090 self.platform_fault_domain = platform_fault_domain 1091 self.auto_replace_on_failure = auto_replace_on_failure 1092 self.host_id = None 1093 self.virtual_machines = None 1094 self.license_type = license_type 1095 self.provisioning_time = None 1096 self.provisioning_state = None 1097 self.instance_view = None 1098 1099 1100class DedicatedHostAllocatableVM(msrest.serialization.Model): 1101 """Represents the dedicated host unutilized capacity in terms of a specific VM size. 1102 1103 :param vm_size: VM size in terms of which the unutilized capacity is represented. 1104 :type vm_size: str 1105 :param count: Maximum number of VMs of size vmSize that can fit in the dedicated host's 1106 remaining capacity. 1107 :type count: float 1108 """ 1109 1110 _attribute_map = { 1111 'vm_size': {'key': 'vmSize', 'type': 'str'}, 1112 'count': {'key': 'count', 'type': 'float'}, 1113 } 1114 1115 def __init__( 1116 self, 1117 *, 1118 vm_size: Optional[str] = None, 1119 count: Optional[float] = None, 1120 **kwargs 1121 ): 1122 super(DedicatedHostAllocatableVM, self).__init__(**kwargs) 1123 self.vm_size = vm_size 1124 self.count = count 1125 1126 1127class DedicatedHostAvailableCapacity(msrest.serialization.Model): 1128 """Dedicated host unutilized capacity. 1129 1130 :param allocatable_v_ms: The unutilized capacity of the dedicated host represented in terms of 1131 each VM size that is allowed to be deployed to the dedicated host. 1132 :type allocatable_v_ms: list[~azure.mgmt.compute.v2020_12_01.models.DedicatedHostAllocatableVM] 1133 """ 1134 1135 _attribute_map = { 1136 'allocatable_v_ms': {'key': 'allocatableVMs', 'type': '[DedicatedHostAllocatableVM]'}, 1137 } 1138 1139 def __init__( 1140 self, 1141 *, 1142 allocatable_v_ms: Optional[List["DedicatedHostAllocatableVM"]] = None, 1143 **kwargs 1144 ): 1145 super(DedicatedHostAvailableCapacity, self).__init__(**kwargs) 1146 self.allocatable_v_ms = allocatable_v_ms 1147 1148 1149class DedicatedHostGroup(Resource): 1150 """Specifies information about the dedicated host group that the dedicated hosts should be assigned to. :code:`<br>`:code:`<br>` Currently, a dedicated host can only be added to a dedicated host group at creation time. An existing dedicated host cannot be added to another dedicated host group. 1151 1152 Variables are only populated by the server, and will be ignored when sending a request. 1153 1154 All required parameters must be populated in order to send to Azure. 1155 1156 :ivar id: Resource Id. 1157 :vartype id: str 1158 :ivar name: Resource name. 1159 :vartype name: str 1160 :ivar type: Resource type. 1161 :vartype type: str 1162 :param location: Required. Resource location. 1163 :type location: str 1164 :param tags: A set of tags. Resource tags. 1165 :type tags: dict[str, str] 1166 :param zones: Availability Zone to use for this host group. Only single zone is supported. The 1167 zone can be assigned only during creation. If not provided, the group supports all zones in the 1168 region. If provided, enforces each host in the group to be in the same zone. 1169 :type zones: list[str] 1170 :param platform_fault_domain_count: Number of fault domains that the host group can span. 1171 :type platform_fault_domain_count: int 1172 :ivar hosts: A list of references to all dedicated hosts in the dedicated host group. 1173 :vartype hosts: list[~azure.mgmt.compute.v2020_12_01.models.SubResourceReadOnly] 1174 :ivar instance_view: The dedicated host group instance view, which has the list of instance 1175 view of the dedicated hosts under the dedicated host group. 1176 :vartype instance_view: ~azure.mgmt.compute.v2020_12_01.models.DedicatedHostGroupInstanceView 1177 :param support_automatic_placement: Specifies whether virtual machines or virtual machine scale 1178 sets can be placed automatically on the dedicated host group. Automatic placement means 1179 resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host 1180 group. The value is defaulted to 'false' when not provided. :code:`<br>`:code:`<br>`Minimum 1181 api-version: 2020-06-01. 1182 :type support_automatic_placement: bool 1183 """ 1184 1185 _validation = { 1186 'id': {'readonly': True}, 1187 'name': {'readonly': True}, 1188 'type': {'readonly': True}, 1189 'location': {'required': True}, 1190 'platform_fault_domain_count': {'minimum': 1}, 1191 'hosts': {'readonly': True}, 1192 'instance_view': {'readonly': True}, 1193 } 1194 1195 _attribute_map = { 1196 'id': {'key': 'id', 'type': 'str'}, 1197 'name': {'key': 'name', 'type': 'str'}, 1198 'type': {'key': 'type', 'type': 'str'}, 1199 'location': {'key': 'location', 'type': 'str'}, 1200 'tags': {'key': 'tags', 'type': '{str}'}, 1201 'zones': {'key': 'zones', 'type': '[str]'}, 1202 'platform_fault_domain_count': {'key': 'properties.platformFaultDomainCount', 'type': 'int'}, 1203 'hosts': {'key': 'properties.hosts', 'type': '[SubResourceReadOnly]'}, 1204 'instance_view': {'key': 'properties.instanceView', 'type': 'DedicatedHostGroupInstanceView'}, 1205 'support_automatic_placement': {'key': 'properties.supportAutomaticPlacement', 'type': 'bool'}, 1206 } 1207 1208 def __init__( 1209 self, 1210 *, 1211 location: str, 1212 tags: Optional[Dict[str, str]] = None, 1213 zones: Optional[List[str]] = None, 1214 platform_fault_domain_count: Optional[int] = None, 1215 support_automatic_placement: Optional[bool] = None, 1216 **kwargs 1217 ): 1218 super(DedicatedHostGroup, self).__init__(location=location, tags=tags, **kwargs) 1219 self.zones = zones 1220 self.platform_fault_domain_count = platform_fault_domain_count 1221 self.hosts = None 1222 self.instance_view = None 1223 self.support_automatic_placement = support_automatic_placement 1224 1225 1226class DedicatedHostGroupInstanceView(msrest.serialization.Model): 1227 """DedicatedHostGroupInstanceView. 1228 1229 :param hosts: List of instance view of the dedicated hosts under the dedicated host group. 1230 :type hosts: list[~azure.mgmt.compute.v2020_12_01.models.DedicatedHostInstanceViewWithName] 1231 """ 1232 1233 _attribute_map = { 1234 'hosts': {'key': 'hosts', 'type': '[DedicatedHostInstanceViewWithName]'}, 1235 } 1236 1237 def __init__( 1238 self, 1239 *, 1240 hosts: Optional[List["DedicatedHostInstanceViewWithName"]] = None, 1241 **kwargs 1242 ): 1243 super(DedicatedHostGroupInstanceView, self).__init__(**kwargs) 1244 self.hosts = hosts 1245 1246 1247class DedicatedHostGroupListResult(msrest.serialization.Model): 1248 """The List Dedicated Host Group with resource group response. 1249 1250 All required parameters must be populated in order to send to Azure. 1251 1252 :param value: Required. The list of dedicated host groups. 1253 :type value: list[~azure.mgmt.compute.v2020_12_01.models.DedicatedHostGroup] 1254 :param next_link: The URI to fetch the next page of Dedicated Host Groups. Call ListNext() with 1255 this URI to fetch the next page of Dedicated Host Groups. 1256 :type next_link: str 1257 """ 1258 1259 _validation = { 1260 'value': {'required': True}, 1261 } 1262 1263 _attribute_map = { 1264 'value': {'key': 'value', 'type': '[DedicatedHostGroup]'}, 1265 'next_link': {'key': 'nextLink', 'type': 'str'}, 1266 } 1267 1268 def __init__( 1269 self, 1270 *, 1271 value: List["DedicatedHostGroup"], 1272 next_link: Optional[str] = None, 1273 **kwargs 1274 ): 1275 super(DedicatedHostGroupListResult, self).__init__(**kwargs) 1276 self.value = value 1277 self.next_link = next_link 1278 1279 1280class DedicatedHostGroupUpdate(UpdateResource): 1281 """Specifies information about the dedicated host group that the dedicated host should be assigned to. Only tags may be updated. 1282 1283 Variables are only populated by the server, and will be ignored when sending a request. 1284 1285 :param tags: A set of tags. Resource tags. 1286 :type tags: dict[str, str] 1287 :param zones: Availability Zone to use for this host group. Only single zone is supported. The 1288 zone can be assigned only during creation. If not provided, the group supports all zones in the 1289 region. If provided, enforces each host in the group to be in the same zone. 1290 :type zones: list[str] 1291 :param platform_fault_domain_count: Number of fault domains that the host group can span. 1292 :type platform_fault_domain_count: int 1293 :ivar hosts: A list of references to all dedicated hosts in the dedicated host group. 1294 :vartype hosts: list[~azure.mgmt.compute.v2020_12_01.models.SubResourceReadOnly] 1295 :ivar instance_view: The dedicated host group instance view, which has the list of instance 1296 view of the dedicated hosts under the dedicated host group. 1297 :vartype instance_view: ~azure.mgmt.compute.v2020_12_01.models.DedicatedHostGroupInstanceView 1298 :param support_automatic_placement: Specifies whether virtual machines or virtual machine scale 1299 sets can be placed automatically on the dedicated host group. Automatic placement means 1300 resources are allocated on dedicated hosts, that are chosen by Azure, under the dedicated host 1301 group. The value is defaulted to 'false' when not provided. :code:`<br>`:code:`<br>`Minimum 1302 api-version: 2020-06-01. 1303 :type support_automatic_placement: bool 1304 """ 1305 1306 _validation = { 1307 'platform_fault_domain_count': {'minimum': 1}, 1308 'hosts': {'readonly': True}, 1309 'instance_view': {'readonly': True}, 1310 } 1311 1312 _attribute_map = { 1313 'tags': {'key': 'tags', 'type': '{str}'}, 1314 'zones': {'key': 'zones', 'type': '[str]'}, 1315 'platform_fault_domain_count': {'key': 'properties.platformFaultDomainCount', 'type': 'int'}, 1316 'hosts': {'key': 'properties.hosts', 'type': '[SubResourceReadOnly]'}, 1317 'instance_view': {'key': 'properties.instanceView', 'type': 'DedicatedHostGroupInstanceView'}, 1318 'support_automatic_placement': {'key': 'properties.supportAutomaticPlacement', 'type': 'bool'}, 1319 } 1320 1321 def __init__( 1322 self, 1323 *, 1324 tags: Optional[Dict[str, str]] = None, 1325 zones: Optional[List[str]] = None, 1326 platform_fault_domain_count: Optional[int] = None, 1327 support_automatic_placement: Optional[bool] = None, 1328 **kwargs 1329 ): 1330 super(DedicatedHostGroupUpdate, self).__init__(tags=tags, **kwargs) 1331 self.zones = zones 1332 self.platform_fault_domain_count = platform_fault_domain_count 1333 self.hosts = None 1334 self.instance_view = None 1335 self.support_automatic_placement = support_automatic_placement 1336 1337 1338class DedicatedHostInstanceView(msrest.serialization.Model): 1339 """The instance view of a dedicated host. 1340 1341 Variables are only populated by the server, and will be ignored when sending a request. 1342 1343 :ivar asset_id: Specifies the unique id of the dedicated physical machine on which the 1344 dedicated host resides. 1345 :vartype asset_id: str 1346 :param available_capacity: Unutilized capacity of the dedicated host. 1347 :type available_capacity: ~azure.mgmt.compute.v2020_12_01.models.DedicatedHostAvailableCapacity 1348 :param statuses: The resource status information. 1349 :type statuses: list[~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus] 1350 """ 1351 1352 _validation = { 1353 'asset_id': {'readonly': True}, 1354 } 1355 1356 _attribute_map = { 1357 'asset_id': {'key': 'assetId', 'type': 'str'}, 1358 'available_capacity': {'key': 'availableCapacity', 'type': 'DedicatedHostAvailableCapacity'}, 1359 'statuses': {'key': 'statuses', 'type': '[InstanceViewStatus]'}, 1360 } 1361 1362 def __init__( 1363 self, 1364 *, 1365 available_capacity: Optional["DedicatedHostAvailableCapacity"] = None, 1366 statuses: Optional[List["InstanceViewStatus"]] = None, 1367 **kwargs 1368 ): 1369 super(DedicatedHostInstanceView, self).__init__(**kwargs) 1370 self.asset_id = None 1371 self.available_capacity = available_capacity 1372 self.statuses = statuses 1373 1374 1375class DedicatedHostInstanceViewWithName(DedicatedHostInstanceView): 1376 """The instance view of a dedicated host that includes the name of the dedicated host. It is used for the response to the instance view of a dedicated host group. 1377 1378 Variables are only populated by the server, and will be ignored when sending a request. 1379 1380 :ivar asset_id: Specifies the unique id of the dedicated physical machine on which the 1381 dedicated host resides. 1382 :vartype asset_id: str 1383 :param available_capacity: Unutilized capacity of the dedicated host. 1384 :type available_capacity: ~azure.mgmt.compute.v2020_12_01.models.DedicatedHostAvailableCapacity 1385 :param statuses: The resource status information. 1386 :type statuses: list[~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus] 1387 :ivar name: The name of the dedicated host. 1388 :vartype name: str 1389 """ 1390 1391 _validation = { 1392 'asset_id': {'readonly': True}, 1393 'name': {'readonly': True}, 1394 } 1395 1396 _attribute_map = { 1397 'asset_id': {'key': 'assetId', 'type': 'str'}, 1398 'available_capacity': {'key': 'availableCapacity', 'type': 'DedicatedHostAvailableCapacity'}, 1399 'statuses': {'key': 'statuses', 'type': '[InstanceViewStatus]'}, 1400 'name': {'key': 'name', 'type': 'str'}, 1401 } 1402 1403 def __init__( 1404 self, 1405 *, 1406 available_capacity: Optional["DedicatedHostAvailableCapacity"] = None, 1407 statuses: Optional[List["InstanceViewStatus"]] = None, 1408 **kwargs 1409 ): 1410 super(DedicatedHostInstanceViewWithName, self).__init__(available_capacity=available_capacity, statuses=statuses, **kwargs) 1411 self.name = None 1412 1413 1414class DedicatedHostListResult(msrest.serialization.Model): 1415 """The list dedicated host operation response. 1416 1417 All required parameters must be populated in order to send to Azure. 1418 1419 :param value: Required. The list of dedicated hosts. 1420 :type value: list[~azure.mgmt.compute.v2020_12_01.models.DedicatedHost] 1421 :param next_link: The URI to fetch the next page of dedicated hosts. Call ListNext() with this 1422 URI to fetch the next page of dedicated hosts. 1423 :type next_link: str 1424 """ 1425 1426 _validation = { 1427 'value': {'required': True}, 1428 } 1429 1430 _attribute_map = { 1431 'value': {'key': 'value', 'type': '[DedicatedHost]'}, 1432 'next_link': {'key': 'nextLink', 'type': 'str'}, 1433 } 1434 1435 def __init__( 1436 self, 1437 *, 1438 value: List["DedicatedHost"], 1439 next_link: Optional[str] = None, 1440 **kwargs 1441 ): 1442 super(DedicatedHostListResult, self).__init__(**kwargs) 1443 self.value = value 1444 self.next_link = next_link 1445 1446 1447class DedicatedHostUpdate(UpdateResource): 1448 """Specifies information about the dedicated host. Only tags, autoReplaceOnFailure and licenseType may be updated. 1449 1450 Variables are only populated by the server, and will be ignored when sending a request. 1451 1452 :param tags: A set of tags. Resource tags. 1453 :type tags: dict[str, str] 1454 :param platform_fault_domain: Fault domain of the dedicated host within a dedicated host group. 1455 :type platform_fault_domain: int 1456 :param auto_replace_on_failure: Specifies whether the dedicated host should be replaced 1457 automatically in case of a failure. The value is defaulted to 'true' when not provided. 1458 :type auto_replace_on_failure: bool 1459 :ivar host_id: A unique id generated and assigned to the dedicated host by the platform. 1460 :code:`<br>`:code:`<br>` Does not change throughout the lifetime of the host. 1461 :vartype host_id: str 1462 :ivar virtual_machines: A list of references to all virtual machines in the Dedicated Host. 1463 :vartype virtual_machines: list[~azure.mgmt.compute.v2020_12_01.models.SubResourceReadOnly] 1464 :param license_type: Specifies the software license type that will be applied to the VMs 1465 deployed on the dedicated host. :code:`<br>`:code:`<br>` Possible values are: 1466 :code:`<br>`:code:`<br>` **None** :code:`<br>`:code:`<br>` **Windows_Server_Hybrid** 1467 :code:`<br>`:code:`<br>` **Windows_Server_Perpetual** :code:`<br>`:code:`<br>` Default: 1468 **None**. Possible values include: "None", "Windows_Server_Hybrid", "Windows_Server_Perpetual". 1469 :type license_type: str or ~azure.mgmt.compute.v2020_12_01.models.DedicatedHostLicenseTypes 1470 :ivar provisioning_time: The date when the host was first provisioned. 1471 :vartype provisioning_time: ~datetime.datetime 1472 :ivar provisioning_state: The provisioning state, which only appears in the response. 1473 :vartype provisioning_state: str 1474 :ivar instance_view: The dedicated host instance view. 1475 :vartype instance_view: ~azure.mgmt.compute.v2020_12_01.models.DedicatedHostInstanceView 1476 """ 1477 1478 _validation = { 1479 'platform_fault_domain': {'minimum': 0}, 1480 'host_id': {'readonly': True}, 1481 'virtual_machines': {'readonly': True}, 1482 'provisioning_time': {'readonly': True}, 1483 'provisioning_state': {'readonly': True}, 1484 'instance_view': {'readonly': True}, 1485 } 1486 1487 _attribute_map = { 1488 'tags': {'key': 'tags', 'type': '{str}'}, 1489 'platform_fault_domain': {'key': 'properties.platformFaultDomain', 'type': 'int'}, 1490 'auto_replace_on_failure': {'key': 'properties.autoReplaceOnFailure', 'type': 'bool'}, 1491 'host_id': {'key': 'properties.hostId', 'type': 'str'}, 1492 'virtual_machines': {'key': 'properties.virtualMachines', 'type': '[SubResourceReadOnly]'}, 1493 'license_type': {'key': 'properties.licenseType', 'type': 'str'}, 1494 'provisioning_time': {'key': 'properties.provisioningTime', 'type': 'iso-8601'}, 1495 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 1496 'instance_view': {'key': 'properties.instanceView', 'type': 'DedicatedHostInstanceView'}, 1497 } 1498 1499 def __init__( 1500 self, 1501 *, 1502 tags: Optional[Dict[str, str]] = None, 1503 platform_fault_domain: Optional[int] = None, 1504 auto_replace_on_failure: Optional[bool] = None, 1505 license_type: Optional[Union[str, "DedicatedHostLicenseTypes"]] = None, 1506 **kwargs 1507 ): 1508 super(DedicatedHostUpdate, self).__init__(tags=tags, **kwargs) 1509 self.platform_fault_domain = platform_fault_domain 1510 self.auto_replace_on_failure = auto_replace_on_failure 1511 self.host_id = None 1512 self.virtual_machines = None 1513 self.license_type = license_type 1514 self.provisioning_time = None 1515 self.provisioning_state = None 1516 self.instance_view = None 1517 1518 1519class DiagnosticsProfile(msrest.serialization.Model): 1520 """Specifies the boot diagnostic settings state. :code:`<br>`:code:`<br>`Minimum api-version: 2015-06-15. 1521 1522 :param boot_diagnostics: Boot Diagnostics is a debugging feature which allows you to view 1523 Console Output and Screenshot to diagnose VM status. :code:`<br>`:code:`<br>` You can easily 1524 view the output of your console log. :code:`<br>`:code:`<br>` Azure also enables you to see a 1525 screenshot of the VM from the hypervisor. 1526 :type boot_diagnostics: ~azure.mgmt.compute.v2020_12_01.models.BootDiagnostics 1527 """ 1528 1529 _attribute_map = { 1530 'boot_diagnostics': {'key': 'bootDiagnostics', 'type': 'BootDiagnostics'}, 1531 } 1532 1533 def __init__( 1534 self, 1535 *, 1536 boot_diagnostics: Optional["BootDiagnostics"] = None, 1537 **kwargs 1538 ): 1539 super(DiagnosticsProfile, self).__init__(**kwargs) 1540 self.boot_diagnostics = boot_diagnostics 1541 1542 1543class DiffDiskSettings(msrest.serialization.Model): 1544 """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. 1545 1546 :param option: Specifies the ephemeral disk settings for operating system disk. Possible values 1547 include: "Local". 1548 :type option: str or ~azure.mgmt.compute.v2020_12_01.models.DiffDiskOptions 1549 :param placement: Specifies the ephemeral disk placement for operating system 1550 disk.:code:`<br>`:code:`<br>` Possible values are: :code:`<br>`:code:`<br>` **CacheDisk** 1551 :code:`<br>`:code:`<br>` **ResourceDisk** :code:`<br>`:code:`<br>` Default: **CacheDisk** if 1552 one is configured for the VM size otherwise **ResourceDisk** is used.:code:`<br>`:code:`<br>` 1553 Refer to VM size documentation for Windows VM at 1554 https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes and Linux VM at 1555 https://docs.microsoft.com/en-us/azure/virtual-machines/linux/sizes to check which VM sizes 1556 exposes a cache disk. Possible values include: "CacheDisk", "ResourceDisk". 1557 :type placement: str or ~azure.mgmt.compute.v2020_12_01.models.DiffDiskPlacement 1558 """ 1559 1560 _attribute_map = { 1561 'option': {'key': 'option', 'type': 'str'}, 1562 'placement': {'key': 'placement', 'type': 'str'}, 1563 } 1564 1565 def __init__( 1566 self, 1567 *, 1568 option: Optional[Union[str, "DiffDiskOptions"]] = None, 1569 placement: Optional[Union[str, "DiffDiskPlacement"]] = None, 1570 **kwargs 1571 ): 1572 super(DiffDiskSettings, self).__init__(**kwargs) 1573 self.option = option 1574 self.placement = placement 1575 1576 1577class DisallowedConfiguration(msrest.serialization.Model): 1578 """Specifies the disallowed configuration for a virtual machine image. 1579 1580 :param vm_disk_type: VM disk types which are disallowed. Possible values include: "None", 1581 "Unmanaged". 1582 :type vm_disk_type: str or ~azure.mgmt.compute.v2020_12_01.models.VmDiskTypes 1583 """ 1584 1585 _attribute_map = { 1586 'vm_disk_type': {'key': 'vmDiskType', 'type': 'str'}, 1587 } 1588 1589 def __init__( 1590 self, 1591 *, 1592 vm_disk_type: Optional[Union[str, "VmDiskTypes"]] = None, 1593 **kwargs 1594 ): 1595 super(DisallowedConfiguration, self).__init__(**kwargs) 1596 self.vm_disk_type = vm_disk_type 1597 1598 1599class Disk(Resource): 1600 """Disk resource. 1601 1602 Variables are only populated by the server, and will be ignored when sending a request. 1603 1604 All required parameters must be populated in order to send to Azure. 1605 1606 :ivar id: Resource Id. 1607 :vartype id: str 1608 :ivar name: Resource name. 1609 :vartype name: str 1610 :ivar type: Resource type. 1611 :vartype type: str 1612 :param location: Required. Resource location. 1613 :type location: str 1614 :param tags: A set of tags. Resource tags. 1615 :type tags: dict[str, str] 1616 :ivar managed_by: A relative URI containing the ID of the VM that has the disk attached. 1617 :vartype managed_by: str 1618 :ivar managed_by_extended: List of relative URIs containing the IDs of the VMs that have the 1619 disk attached. maxShares should be set to a value greater than one for disks to allow attaching 1620 them to multiple VMs. 1621 :vartype managed_by_extended: list[str] 1622 :param sku: The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, 1623 UltraSSD_LRS, Premium_ZRS, or StandardSSD_ZRS. 1624 :type sku: ~azure.mgmt.compute.v2020_12_01.models.DiskSku 1625 :param zones: The Logical zone list for Disk. 1626 :type zones: list[str] 1627 :param extended_location: The extended location where the disk will be created. Extended 1628 location cannot be changed. 1629 :type extended_location: ~azure.mgmt.compute.v2020_12_01.models.ExtendedLocation 1630 :ivar time_created: The time when the disk was created. 1631 :vartype time_created: ~datetime.datetime 1632 :param os_type: The Operating System type. Possible values include: "Windows", "Linux". 1633 :type os_type: str or ~azure.mgmt.compute.v2020_12_01.models.OperatingSystemTypes 1634 :param hyper_v_generation: The hypervisor generation of the Virtual Machine. Applicable to OS 1635 disks only. Possible values include: "V1", "V2". 1636 :type hyper_v_generation: str or ~azure.mgmt.compute.v2020_12_01.models.HyperVGeneration 1637 :param purchase_plan: Purchase plan information for the the image from which the OS disk was 1638 created. E.g. - {name: 2019-Datacenter, publisher: MicrosoftWindowsServer, product: 1639 WindowsServer}. 1640 :type purchase_plan: ~azure.mgmt.compute.v2020_12_01.models.PurchasePlan 1641 :param creation_data: Disk source information. CreationData information cannot be changed after 1642 the disk has been created. 1643 :type creation_data: ~azure.mgmt.compute.v2020_12_01.models.CreationData 1644 :param disk_size_gb: If creationData.createOption is Empty, this field is mandatory and it 1645 indicates the size of the disk to create. If this field is present for updates or creation with 1646 other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a 1647 running VM, and can only increase the disk's size. 1648 :type disk_size_gb: int 1649 :ivar disk_size_bytes: The size of the disk in bytes. This field is read only. 1650 :vartype disk_size_bytes: long 1651 :ivar unique_id: Unique Guid identifying the resource. 1652 :vartype unique_id: str 1653 :param encryption_settings_collection: Encryption settings collection used for Azure Disk 1654 Encryption, can contain multiple encryption settings per disk or snapshot. 1655 :type encryption_settings_collection: 1656 ~azure.mgmt.compute.v2020_12_01.models.EncryptionSettingsCollection 1657 :ivar provisioning_state: The disk provisioning state. 1658 :vartype provisioning_state: str 1659 :param disk_iops_read_write: The number of IOPS allowed for this disk; only settable for 1660 UltraSSD disks. One operation can transfer between 4k and 256k bytes. 1661 :type disk_iops_read_write: long 1662 :param disk_m_bps_read_write: The bandwidth allowed for this disk; only settable for UltraSSD 1663 disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 1664 10. 1665 :type disk_m_bps_read_write: long 1666 :param disk_iops_read_only: The total number of IOPS that will be allowed across all VMs 1667 mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes. 1668 :type disk_iops_read_only: long 1669 :param disk_m_bps_read_only: The total throughput (MBps) that will be allowed across all VMs 1670 mounting the shared disk as ReadOnly. MBps means millions of bytes per second - MB here uses 1671 the ISO notation, of powers of 10. 1672 :type disk_m_bps_read_only: long 1673 :ivar disk_state: The state of the disk. Possible values include: "Unattached", "Attached", 1674 "Reserved", "ActiveSAS", "ReadyToUpload", "ActiveUpload". 1675 :vartype disk_state: str or ~azure.mgmt.compute.v2020_12_01.models.DiskState 1676 :param encryption: Encryption property can be used to encrypt data at rest with customer 1677 managed keys or platform managed keys. 1678 :type encryption: ~azure.mgmt.compute.v2020_12_01.models.Encryption 1679 :param max_shares: The maximum number of VMs that can attach to the disk at the same time. 1680 Value greater than one indicates a disk that can be mounted on multiple VMs at the same time. 1681 :type max_shares: int 1682 :ivar share_info: Details of the list of all VMs that have the disk attached. maxShares should 1683 be set to a value greater than one for disks to allow attaching them to multiple VMs. 1684 :vartype share_info: list[~azure.mgmt.compute.v2020_12_01.models.ShareInfoElement] 1685 :param network_access_policy: Policy for accessing the disk via network. Possible values 1686 include: "AllowAll", "AllowPrivate", "DenyAll". 1687 :type network_access_policy: str or ~azure.mgmt.compute.v2020_12_01.models.NetworkAccessPolicy 1688 :param disk_access_id: ARM id of the DiskAccess resource for using private endpoints on disks. 1689 :type disk_access_id: str 1690 :param tier: Performance tier of the disk (e.g, P4, S10) as described here: 1691 https://azure.microsoft.com/en-us/pricing/details/managed-disks/. Does not apply to Ultra 1692 disks. 1693 :type tier: str 1694 :param bursting_enabled: Set to true to enable bursting beyond the provisioned performance 1695 target of the disk. Bursting is disabled by default. Does not apply to Ultra disks. 1696 :type bursting_enabled: bool 1697 :ivar property_updates_in_progress: Properties of the disk for which update is pending. 1698 :vartype property_updates_in_progress: 1699 ~azure.mgmt.compute.v2020_12_01.models.PropertyUpdatesInProgress 1700 :param supports_hibernation: Indicates the OS on a disk supports hibernation. 1701 :type supports_hibernation: bool 1702 :param security_profile: Contains the security related information for the resource. 1703 :type security_profile: ~azure.mgmt.compute.v2020_12_01.models.DiskSecurityProfile 1704 """ 1705 1706 _validation = { 1707 'id': {'readonly': True}, 1708 'name': {'readonly': True}, 1709 'type': {'readonly': True}, 1710 'location': {'required': True}, 1711 'managed_by': {'readonly': True}, 1712 'managed_by_extended': {'readonly': True}, 1713 'time_created': {'readonly': True}, 1714 'disk_size_bytes': {'readonly': True}, 1715 'unique_id': {'readonly': True}, 1716 'provisioning_state': {'readonly': True}, 1717 'disk_state': {'readonly': True}, 1718 'share_info': {'readonly': True}, 1719 'property_updates_in_progress': {'readonly': True}, 1720 } 1721 1722 _attribute_map = { 1723 'id': {'key': 'id', 'type': 'str'}, 1724 'name': {'key': 'name', 'type': 'str'}, 1725 'type': {'key': 'type', 'type': 'str'}, 1726 'location': {'key': 'location', 'type': 'str'}, 1727 'tags': {'key': 'tags', 'type': '{str}'}, 1728 'managed_by': {'key': 'managedBy', 'type': 'str'}, 1729 'managed_by_extended': {'key': 'managedByExtended', 'type': '[str]'}, 1730 'sku': {'key': 'sku', 'type': 'DiskSku'}, 1731 'zones': {'key': 'zones', 'type': '[str]'}, 1732 'extended_location': {'key': 'extendedLocation', 'type': 'ExtendedLocation'}, 1733 'time_created': {'key': 'properties.timeCreated', 'type': 'iso-8601'}, 1734 'os_type': {'key': 'properties.osType', 'type': 'str'}, 1735 'hyper_v_generation': {'key': 'properties.hyperVGeneration', 'type': 'str'}, 1736 'purchase_plan': {'key': 'properties.purchasePlan', 'type': 'PurchasePlan'}, 1737 'creation_data': {'key': 'properties.creationData', 'type': 'CreationData'}, 1738 'disk_size_gb': {'key': 'properties.diskSizeGB', 'type': 'int'}, 1739 'disk_size_bytes': {'key': 'properties.diskSizeBytes', 'type': 'long'}, 1740 'unique_id': {'key': 'properties.uniqueId', 'type': 'str'}, 1741 'encryption_settings_collection': {'key': 'properties.encryptionSettingsCollection', 'type': 'EncryptionSettingsCollection'}, 1742 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 1743 'disk_iops_read_write': {'key': 'properties.diskIOPSReadWrite', 'type': 'long'}, 1744 'disk_m_bps_read_write': {'key': 'properties.diskMBpsReadWrite', 'type': 'long'}, 1745 'disk_iops_read_only': {'key': 'properties.diskIOPSReadOnly', 'type': 'long'}, 1746 'disk_m_bps_read_only': {'key': 'properties.diskMBpsReadOnly', 'type': 'long'}, 1747 'disk_state': {'key': 'properties.diskState', 'type': 'str'}, 1748 'encryption': {'key': 'properties.encryption', 'type': 'Encryption'}, 1749 'max_shares': {'key': 'properties.maxShares', 'type': 'int'}, 1750 'share_info': {'key': 'properties.shareInfo', 'type': '[ShareInfoElement]'}, 1751 'network_access_policy': {'key': 'properties.networkAccessPolicy', 'type': 'str'}, 1752 'disk_access_id': {'key': 'properties.diskAccessId', 'type': 'str'}, 1753 'tier': {'key': 'properties.tier', 'type': 'str'}, 1754 'bursting_enabled': {'key': 'properties.burstingEnabled', 'type': 'bool'}, 1755 'property_updates_in_progress': {'key': 'properties.propertyUpdatesInProgress', 'type': 'PropertyUpdatesInProgress'}, 1756 'supports_hibernation': {'key': 'properties.supportsHibernation', 'type': 'bool'}, 1757 'security_profile': {'key': 'properties.securityProfile', 'type': 'DiskSecurityProfile'}, 1758 } 1759 1760 def __init__( 1761 self, 1762 *, 1763 location: str, 1764 tags: Optional[Dict[str, str]] = None, 1765 sku: Optional["DiskSku"] = None, 1766 zones: Optional[List[str]] = None, 1767 extended_location: Optional["ExtendedLocation"] = None, 1768 os_type: Optional[Union[str, "OperatingSystemTypes"]] = None, 1769 hyper_v_generation: Optional[Union[str, "HyperVGeneration"]] = None, 1770 purchase_plan: Optional["PurchasePlan"] = None, 1771 creation_data: Optional["CreationData"] = None, 1772 disk_size_gb: Optional[int] = None, 1773 encryption_settings_collection: Optional["EncryptionSettingsCollection"] = None, 1774 disk_iops_read_write: Optional[int] = None, 1775 disk_m_bps_read_write: Optional[int] = None, 1776 disk_iops_read_only: Optional[int] = None, 1777 disk_m_bps_read_only: Optional[int] = None, 1778 encryption: Optional["Encryption"] = None, 1779 max_shares: Optional[int] = None, 1780 network_access_policy: Optional[Union[str, "NetworkAccessPolicy"]] = None, 1781 disk_access_id: Optional[str] = None, 1782 tier: Optional[str] = None, 1783 bursting_enabled: Optional[bool] = None, 1784 supports_hibernation: Optional[bool] = None, 1785 security_profile: Optional["DiskSecurityProfile"] = None, 1786 **kwargs 1787 ): 1788 super(Disk, self).__init__(location=location, tags=tags, **kwargs) 1789 self.managed_by = None 1790 self.managed_by_extended = None 1791 self.sku = sku 1792 self.zones = zones 1793 self.extended_location = extended_location 1794 self.time_created = None 1795 self.os_type = os_type 1796 self.hyper_v_generation = hyper_v_generation 1797 self.purchase_plan = purchase_plan 1798 self.creation_data = creation_data 1799 self.disk_size_gb = disk_size_gb 1800 self.disk_size_bytes = None 1801 self.unique_id = None 1802 self.encryption_settings_collection = encryption_settings_collection 1803 self.provisioning_state = None 1804 self.disk_iops_read_write = disk_iops_read_write 1805 self.disk_m_bps_read_write = disk_m_bps_read_write 1806 self.disk_iops_read_only = disk_iops_read_only 1807 self.disk_m_bps_read_only = disk_m_bps_read_only 1808 self.disk_state = None 1809 self.encryption = encryption 1810 self.max_shares = max_shares 1811 self.share_info = None 1812 self.network_access_policy = network_access_policy 1813 self.disk_access_id = disk_access_id 1814 self.tier = tier 1815 self.bursting_enabled = bursting_enabled 1816 self.property_updates_in_progress = None 1817 self.supports_hibernation = supports_hibernation 1818 self.security_profile = security_profile 1819 1820 1821class DiskAccess(Resource): 1822 """disk access resource. 1823 1824 Variables are only populated by the server, and will be ignored when sending a request. 1825 1826 All required parameters must be populated in order to send to Azure. 1827 1828 :ivar id: Resource Id. 1829 :vartype id: str 1830 :ivar name: Resource name. 1831 :vartype name: str 1832 :ivar type: Resource type. 1833 :vartype type: str 1834 :param location: Required. Resource location. 1835 :type location: str 1836 :param tags: A set of tags. Resource tags. 1837 :type tags: dict[str, str] 1838 :ivar private_endpoint_connections: A readonly collection of private endpoint connections 1839 created on the disk. Currently only one endpoint connection is supported. 1840 :vartype private_endpoint_connections: 1841 list[~azure.mgmt.compute.v2020_12_01.models.PrivateEndpointConnection] 1842 :ivar provisioning_state: The disk access resource provisioning state. 1843 :vartype provisioning_state: str 1844 :ivar time_created: The time when the disk access was created. 1845 :vartype time_created: ~datetime.datetime 1846 """ 1847 1848 _validation = { 1849 'id': {'readonly': True}, 1850 'name': {'readonly': True}, 1851 'type': {'readonly': True}, 1852 'location': {'required': True}, 1853 'private_endpoint_connections': {'readonly': True}, 1854 'provisioning_state': {'readonly': True}, 1855 'time_created': {'readonly': True}, 1856 } 1857 1858 _attribute_map = { 1859 'id': {'key': 'id', 'type': 'str'}, 1860 'name': {'key': 'name', 'type': 'str'}, 1861 'type': {'key': 'type', 'type': 'str'}, 1862 'location': {'key': 'location', 'type': 'str'}, 1863 'tags': {'key': 'tags', 'type': '{str}'}, 1864 'private_endpoint_connections': {'key': 'properties.privateEndpointConnections', 'type': '[PrivateEndpointConnection]'}, 1865 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 1866 'time_created': {'key': 'properties.timeCreated', 'type': 'iso-8601'}, 1867 } 1868 1869 def __init__( 1870 self, 1871 *, 1872 location: str, 1873 tags: Optional[Dict[str, str]] = None, 1874 **kwargs 1875 ): 1876 super(DiskAccess, self).__init__(location=location, tags=tags, **kwargs) 1877 self.private_endpoint_connections = None 1878 self.provisioning_state = None 1879 self.time_created = None 1880 1881 1882class DiskAccessList(msrest.serialization.Model): 1883 """The List disk access operation response. 1884 1885 All required parameters must be populated in order to send to Azure. 1886 1887 :param value: Required. A list of disk access resources. 1888 :type value: list[~azure.mgmt.compute.v2020_12_01.models.DiskAccess] 1889 :param next_link: The uri to fetch the next page of disk access resources. Call ListNext() with 1890 this to fetch the next page of disk access resources. 1891 :type next_link: str 1892 """ 1893 1894 _validation = { 1895 'value': {'required': True}, 1896 } 1897 1898 _attribute_map = { 1899 'value': {'key': 'value', 'type': '[DiskAccess]'}, 1900 'next_link': {'key': 'nextLink', 'type': 'str'}, 1901 } 1902 1903 def __init__( 1904 self, 1905 *, 1906 value: List["DiskAccess"], 1907 next_link: Optional[str] = None, 1908 **kwargs 1909 ): 1910 super(DiskAccessList, self).__init__(**kwargs) 1911 self.value = value 1912 self.next_link = next_link 1913 1914 1915class DiskAccessUpdate(msrest.serialization.Model): 1916 """Used for updating a disk access resource. 1917 1918 :param tags: A set of tags. Resource tags. 1919 :type tags: dict[str, str] 1920 """ 1921 1922 _attribute_map = { 1923 'tags': {'key': 'tags', 'type': '{str}'}, 1924 } 1925 1926 def __init__( 1927 self, 1928 *, 1929 tags: Optional[Dict[str, str]] = None, 1930 **kwargs 1931 ): 1932 super(DiskAccessUpdate, self).__init__(**kwargs) 1933 self.tags = tags 1934 1935 1936class DiskEncryptionSet(Resource): 1937 """disk encryption set resource. 1938 1939 Variables are only populated by the server, and will be ignored when sending a request. 1940 1941 All required parameters must be populated in order to send to Azure. 1942 1943 :ivar id: Resource Id. 1944 :vartype id: str 1945 :ivar name: Resource name. 1946 :vartype name: str 1947 :ivar type: Resource type. 1948 :vartype type: str 1949 :param location: Required. Resource location. 1950 :type location: str 1951 :param tags: A set of tags. Resource tags. 1952 :type tags: dict[str, str] 1953 :param identity: The managed identity for the disk encryption set. It should be given 1954 permission on the key vault before it can be used to encrypt disks. 1955 :type identity: ~azure.mgmt.compute.v2020_12_01.models.EncryptionSetIdentity 1956 :param encryption_type: The type of key used to encrypt the data of the disk. Possible values 1957 include: "EncryptionAtRestWithCustomerKey", "EncryptionAtRestWithPlatformAndCustomerKeys". 1958 :type encryption_type: str or ~azure.mgmt.compute.v2020_12_01.models.DiskEncryptionSetType 1959 :param active_key: The key vault key which is currently used by this disk encryption set. 1960 :type active_key: ~azure.mgmt.compute.v2020_12_01.models.KeyForDiskEncryptionSet 1961 :ivar previous_keys: A readonly collection of key vault keys previously used by this disk 1962 encryption set while a key rotation is in progress. It will be empty if there is no ongoing key 1963 rotation. 1964 :vartype previous_keys: list[~azure.mgmt.compute.v2020_12_01.models.KeyForDiskEncryptionSet] 1965 :ivar provisioning_state: The disk encryption set provisioning state. 1966 :vartype provisioning_state: str 1967 :param rotation_to_latest_key_version_enabled: Set this flag to true to enable auto-updating of 1968 this disk encryption set to the latest key version. 1969 :type rotation_to_latest_key_version_enabled: bool 1970 :ivar last_key_rotation_timestamp: The time when the active key of this disk encryption set was 1971 updated. 1972 :vartype last_key_rotation_timestamp: ~datetime.datetime 1973 """ 1974 1975 _validation = { 1976 'id': {'readonly': True}, 1977 'name': {'readonly': True}, 1978 'type': {'readonly': True}, 1979 'location': {'required': True}, 1980 'previous_keys': {'readonly': True}, 1981 'provisioning_state': {'readonly': True}, 1982 'last_key_rotation_timestamp': {'readonly': True}, 1983 } 1984 1985 _attribute_map = { 1986 'id': {'key': 'id', 'type': 'str'}, 1987 'name': {'key': 'name', 'type': 'str'}, 1988 'type': {'key': 'type', 'type': 'str'}, 1989 'location': {'key': 'location', 'type': 'str'}, 1990 'tags': {'key': 'tags', 'type': '{str}'}, 1991 'identity': {'key': 'identity', 'type': 'EncryptionSetIdentity'}, 1992 'encryption_type': {'key': 'properties.encryptionType', 'type': 'str'}, 1993 'active_key': {'key': 'properties.activeKey', 'type': 'KeyForDiskEncryptionSet'}, 1994 'previous_keys': {'key': 'properties.previousKeys', 'type': '[KeyForDiskEncryptionSet]'}, 1995 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 1996 'rotation_to_latest_key_version_enabled': {'key': 'properties.rotationToLatestKeyVersionEnabled', 'type': 'bool'}, 1997 'last_key_rotation_timestamp': {'key': 'properties.lastKeyRotationTimestamp', 'type': 'iso-8601'}, 1998 } 1999 2000 def __init__( 2001 self, 2002 *, 2003 location: str, 2004 tags: Optional[Dict[str, str]] = None, 2005 identity: Optional["EncryptionSetIdentity"] = None, 2006 encryption_type: Optional[Union[str, "DiskEncryptionSetType"]] = None, 2007 active_key: Optional["KeyForDiskEncryptionSet"] = None, 2008 rotation_to_latest_key_version_enabled: Optional[bool] = None, 2009 **kwargs 2010 ): 2011 super(DiskEncryptionSet, self).__init__(location=location, tags=tags, **kwargs) 2012 self.identity = identity 2013 self.encryption_type = encryption_type 2014 self.active_key = active_key 2015 self.previous_keys = None 2016 self.provisioning_state = None 2017 self.rotation_to_latest_key_version_enabled = rotation_to_latest_key_version_enabled 2018 self.last_key_rotation_timestamp = None 2019 2020 2021class DiskEncryptionSetList(msrest.serialization.Model): 2022 """The List disk encryption set operation response. 2023 2024 All required parameters must be populated in order to send to Azure. 2025 2026 :param value: Required. A list of disk encryption sets. 2027 :type value: list[~azure.mgmt.compute.v2020_12_01.models.DiskEncryptionSet] 2028 :param next_link: The uri to fetch the next page of disk encryption sets. Call ListNext() with 2029 this to fetch the next page of disk encryption sets. 2030 :type next_link: str 2031 """ 2032 2033 _validation = { 2034 'value': {'required': True}, 2035 } 2036 2037 _attribute_map = { 2038 'value': {'key': 'value', 'type': '[DiskEncryptionSet]'}, 2039 'next_link': {'key': 'nextLink', 'type': 'str'}, 2040 } 2041 2042 def __init__( 2043 self, 2044 *, 2045 value: List["DiskEncryptionSet"], 2046 next_link: Optional[str] = None, 2047 **kwargs 2048 ): 2049 super(DiskEncryptionSetList, self).__init__(**kwargs) 2050 self.value = value 2051 self.next_link = next_link 2052 2053 2054class SubResource(msrest.serialization.Model): 2055 """SubResource. 2056 2057 :param id: Resource Id. 2058 :type id: str 2059 """ 2060 2061 _attribute_map = { 2062 'id': {'key': 'id', 'type': 'str'}, 2063 } 2064 2065 def __init__( 2066 self, 2067 *, 2068 id: Optional[str] = None, 2069 **kwargs 2070 ): 2071 super(SubResource, self).__init__(**kwargs) 2072 self.id = id 2073 2074 2075class DiskEncryptionSetParameters(SubResource): 2076 """Describes the parameter of customer managed disk encryption set resource id that can be specified for disk. :code:`<br>`:code:`<br>` NOTE: The disk encryption set resource id can only be specified for managed disk. Please refer https://aka.ms/mdssewithcmkoverview for more details. 2077 2078 :param id: Resource Id. 2079 :type id: str 2080 """ 2081 2082 _attribute_map = { 2083 'id': {'key': 'id', 'type': 'str'}, 2084 } 2085 2086 def __init__( 2087 self, 2088 *, 2089 id: Optional[str] = None, 2090 **kwargs 2091 ): 2092 super(DiskEncryptionSetParameters, self).__init__(id=id, **kwargs) 2093 2094 2095class DiskEncryptionSettings(msrest.serialization.Model): 2096 """Describes a Encryption Settings for a Disk. 2097 2098 :param disk_encryption_key: Specifies the location of the disk encryption key, which is a Key 2099 Vault Secret. 2100 :type disk_encryption_key: ~azure.mgmt.compute.v2020_12_01.models.KeyVaultSecretReference 2101 :param key_encryption_key: Specifies the location of the key encryption key in Key Vault. 2102 :type key_encryption_key: ~azure.mgmt.compute.v2020_12_01.models.KeyVaultKeyReference 2103 :param enabled: Specifies whether disk encryption should be enabled on the virtual machine. 2104 :type enabled: bool 2105 """ 2106 2107 _attribute_map = { 2108 'disk_encryption_key': {'key': 'diskEncryptionKey', 'type': 'KeyVaultSecretReference'}, 2109 'key_encryption_key': {'key': 'keyEncryptionKey', 'type': 'KeyVaultKeyReference'}, 2110 'enabled': {'key': 'enabled', 'type': 'bool'}, 2111 } 2112 2113 def __init__( 2114 self, 2115 *, 2116 disk_encryption_key: Optional["KeyVaultSecretReference"] = None, 2117 key_encryption_key: Optional["KeyVaultKeyReference"] = None, 2118 enabled: Optional[bool] = None, 2119 **kwargs 2120 ): 2121 super(DiskEncryptionSettings, self).__init__(**kwargs) 2122 self.disk_encryption_key = disk_encryption_key 2123 self.key_encryption_key = key_encryption_key 2124 self.enabled = enabled 2125 2126 2127class DiskEncryptionSetUpdate(msrest.serialization.Model): 2128 """disk encryption set update resource. 2129 2130 :param tags: A set of tags. Resource tags. 2131 :type tags: dict[str, str] 2132 :param identity: The managed identity for the disk encryption set. It should be given 2133 permission on the key vault before it can be used to encrypt disks. 2134 :type identity: ~azure.mgmt.compute.v2020_12_01.models.EncryptionSetIdentity 2135 :param encryption_type: The type of key used to encrypt the data of the disk. Possible values 2136 include: "EncryptionAtRestWithCustomerKey", "EncryptionAtRestWithPlatformAndCustomerKeys". 2137 :type encryption_type: str or ~azure.mgmt.compute.v2020_12_01.models.DiskEncryptionSetType 2138 :param active_key: Key Vault Key Url to be used for server side encryption of Managed Disks and 2139 Snapshots. 2140 :type active_key: ~azure.mgmt.compute.v2020_12_01.models.KeyForDiskEncryptionSet 2141 :param rotation_to_latest_key_version_enabled: Set this flag to true to enable auto-updating of 2142 this disk encryption set to the latest key version. 2143 :type rotation_to_latest_key_version_enabled: bool 2144 """ 2145 2146 _attribute_map = { 2147 'tags': {'key': 'tags', 'type': '{str}'}, 2148 'identity': {'key': 'identity', 'type': 'EncryptionSetIdentity'}, 2149 'encryption_type': {'key': 'properties.encryptionType', 'type': 'str'}, 2150 'active_key': {'key': 'properties.activeKey', 'type': 'KeyForDiskEncryptionSet'}, 2151 'rotation_to_latest_key_version_enabled': {'key': 'properties.rotationToLatestKeyVersionEnabled', 'type': 'bool'}, 2152 } 2153 2154 def __init__( 2155 self, 2156 *, 2157 tags: Optional[Dict[str, str]] = None, 2158 identity: Optional["EncryptionSetIdentity"] = None, 2159 encryption_type: Optional[Union[str, "DiskEncryptionSetType"]] = None, 2160 active_key: Optional["KeyForDiskEncryptionSet"] = None, 2161 rotation_to_latest_key_version_enabled: Optional[bool] = None, 2162 **kwargs 2163 ): 2164 super(DiskEncryptionSetUpdate, self).__init__(**kwargs) 2165 self.tags = tags 2166 self.identity = identity 2167 self.encryption_type = encryption_type 2168 self.active_key = active_key 2169 self.rotation_to_latest_key_version_enabled = rotation_to_latest_key_version_enabled 2170 2171 2172class DiskInstanceView(msrest.serialization.Model): 2173 """The instance view of the disk. 2174 2175 :param name: The disk name. 2176 :type name: str 2177 :param encryption_settings: Specifies the encryption settings for the OS Disk. 2178 :code:`<br>`:code:`<br>` Minimum api-version: 2015-06-15. 2179 :type encryption_settings: list[~azure.mgmt.compute.v2020_12_01.models.DiskEncryptionSettings] 2180 :param statuses: The resource status information. 2181 :type statuses: list[~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus] 2182 """ 2183 2184 _attribute_map = { 2185 'name': {'key': 'name', 'type': 'str'}, 2186 'encryption_settings': {'key': 'encryptionSettings', 'type': '[DiskEncryptionSettings]'}, 2187 'statuses': {'key': 'statuses', 'type': '[InstanceViewStatus]'}, 2188 } 2189 2190 def __init__( 2191 self, 2192 *, 2193 name: Optional[str] = None, 2194 encryption_settings: Optional[List["DiskEncryptionSettings"]] = None, 2195 statuses: Optional[List["InstanceViewStatus"]] = None, 2196 **kwargs 2197 ): 2198 super(DiskInstanceView, self).__init__(**kwargs) 2199 self.name = name 2200 self.encryption_settings = encryption_settings 2201 self.statuses = statuses 2202 2203 2204class DiskList(msrest.serialization.Model): 2205 """The List Disks operation response. 2206 2207 All required parameters must be populated in order to send to Azure. 2208 2209 :param value: Required. A list of disks. 2210 :type value: list[~azure.mgmt.compute.v2020_12_01.models.Disk] 2211 :param next_link: The uri to fetch the next page of disks. Call ListNext() with this to fetch 2212 the next page of disks. 2213 :type next_link: str 2214 """ 2215 2216 _validation = { 2217 'value': {'required': True}, 2218 } 2219 2220 _attribute_map = { 2221 'value': {'key': 'value', 'type': '[Disk]'}, 2222 'next_link': {'key': 'nextLink', 'type': 'str'}, 2223 } 2224 2225 def __init__( 2226 self, 2227 *, 2228 value: List["Disk"], 2229 next_link: Optional[str] = None, 2230 **kwargs 2231 ): 2232 super(DiskList, self).__init__(**kwargs) 2233 self.value = value 2234 self.next_link = next_link 2235 2236 2237class ProxyOnlyResource(msrest.serialization.Model): 2238 """The ProxyOnly Resource model definition. 2239 2240 Variables are only populated by the server, and will be ignored when sending a request. 2241 2242 :ivar id: Resource Id. 2243 :vartype id: str 2244 :ivar name: Resource name. 2245 :vartype name: str 2246 :ivar type: Resource type. 2247 :vartype type: str 2248 """ 2249 2250 _validation = { 2251 'id': {'readonly': True}, 2252 'name': {'readonly': True}, 2253 'type': {'readonly': True}, 2254 } 2255 2256 _attribute_map = { 2257 'id': {'key': 'id', 'type': 'str'}, 2258 'name': {'key': 'name', 'type': 'str'}, 2259 'type': {'key': 'type', 'type': 'str'}, 2260 } 2261 2262 def __init__( 2263 self, 2264 **kwargs 2265 ): 2266 super(ProxyOnlyResource, self).__init__(**kwargs) 2267 self.id = None 2268 self.name = None 2269 self.type = None 2270 2271 2272class DiskRestorePoint(ProxyOnlyResource): 2273 """Properties of disk restore point. 2274 2275 Variables are only populated by the server, and will be ignored when sending a request. 2276 2277 :ivar id: Resource Id. 2278 :vartype id: str 2279 :ivar name: Resource name. 2280 :vartype name: str 2281 :ivar type: Resource type. 2282 :vartype type: str 2283 :ivar time_created: The timestamp of restorePoint creation. 2284 :vartype time_created: ~datetime.datetime 2285 :ivar source_resource_id: arm id of source disk. 2286 :vartype source_resource_id: str 2287 :ivar os_type: The Operating System type. Possible values include: "Windows", "Linux". 2288 :vartype os_type: str or ~azure.mgmt.compute.v2020_12_01.models.OperatingSystemTypes 2289 :param hyper_v_generation: The hypervisor generation of the Virtual Machine. Applicable to OS 2290 disks only. Possible values include: "V1", "V2". 2291 :type hyper_v_generation: str or ~azure.mgmt.compute.v2020_12_01.models.HyperVGeneration 2292 :param purchase_plan: Purchase plan information for the the image from which the OS disk was 2293 created. 2294 :type purchase_plan: ~azure.mgmt.compute.v2020_12_01.models.PurchasePlan 2295 :ivar family_id: id of the backing snapshot's MIS family. 2296 :vartype family_id: str 2297 :ivar source_unique_id: unique incarnation id of the source disk. 2298 :vartype source_unique_id: str 2299 :ivar encryption: Encryption property can be used to encrypt data at rest with customer managed 2300 keys or platform managed keys. 2301 :vartype encryption: ~azure.mgmt.compute.v2020_12_01.models.Encryption 2302 :param supports_hibernation: Indicates the OS on a disk supports hibernation. 2303 :type supports_hibernation: bool 2304 """ 2305 2306 _validation = { 2307 'id': {'readonly': True}, 2308 'name': {'readonly': True}, 2309 'type': {'readonly': True}, 2310 'time_created': {'readonly': True}, 2311 'source_resource_id': {'readonly': True}, 2312 'os_type': {'readonly': True}, 2313 'family_id': {'readonly': True}, 2314 'source_unique_id': {'readonly': True}, 2315 'encryption': {'readonly': True}, 2316 } 2317 2318 _attribute_map = { 2319 'id': {'key': 'id', 'type': 'str'}, 2320 'name': {'key': 'name', 'type': 'str'}, 2321 'type': {'key': 'type', 'type': 'str'}, 2322 'time_created': {'key': 'properties.timeCreated', 'type': 'iso-8601'}, 2323 'source_resource_id': {'key': 'properties.sourceResourceId', 'type': 'str'}, 2324 'os_type': {'key': 'properties.osType', 'type': 'str'}, 2325 'hyper_v_generation': {'key': 'properties.hyperVGeneration', 'type': 'str'}, 2326 'purchase_plan': {'key': 'properties.purchasePlan', 'type': 'PurchasePlan'}, 2327 'family_id': {'key': 'properties.familyId', 'type': 'str'}, 2328 'source_unique_id': {'key': 'properties.sourceUniqueId', 'type': 'str'}, 2329 'encryption': {'key': 'properties.encryption', 'type': 'Encryption'}, 2330 'supports_hibernation': {'key': 'properties.supportsHibernation', 'type': 'bool'}, 2331 } 2332 2333 def __init__( 2334 self, 2335 *, 2336 hyper_v_generation: Optional[Union[str, "HyperVGeneration"]] = None, 2337 purchase_plan: Optional["PurchasePlan"] = None, 2338 supports_hibernation: Optional[bool] = None, 2339 **kwargs 2340 ): 2341 super(DiskRestorePoint, self).__init__(**kwargs) 2342 self.time_created = None 2343 self.source_resource_id = None 2344 self.os_type = None 2345 self.hyper_v_generation = hyper_v_generation 2346 self.purchase_plan = purchase_plan 2347 self.family_id = None 2348 self.source_unique_id = None 2349 self.encryption = None 2350 self.supports_hibernation = supports_hibernation 2351 2352 2353class DiskRestorePointList(msrest.serialization.Model): 2354 """The List Disk Restore Points operation response. 2355 2356 All required parameters must be populated in order to send to Azure. 2357 2358 :param value: Required. A list of disk restore points. 2359 :type value: list[~azure.mgmt.compute.v2020_12_01.models.DiskRestorePoint] 2360 :param next_link: The uri to fetch the next page of disk restore points. Call ListNext() with 2361 this to fetch the next page of disk restore points. 2362 :type next_link: str 2363 """ 2364 2365 _validation = { 2366 'value': {'required': True}, 2367 } 2368 2369 _attribute_map = { 2370 'value': {'key': 'value', 'type': '[DiskRestorePoint]'}, 2371 'next_link': {'key': 'nextLink', 'type': 'str'}, 2372 } 2373 2374 def __init__( 2375 self, 2376 *, 2377 value: List["DiskRestorePoint"], 2378 next_link: Optional[str] = None, 2379 **kwargs 2380 ): 2381 super(DiskRestorePointList, self).__init__(**kwargs) 2382 self.value = value 2383 self.next_link = next_link 2384 2385 2386class DiskSecurityProfile(msrest.serialization.Model): 2387 """Contains the security related information for the resource. 2388 2389 :param security_type: Specifies the SecurityType of the VM. Applicable for OS disks only. 2390 Possible values include: "TrustedLaunch". 2391 :type security_type: str or ~azure.mgmt.compute.v2020_12_01.models.DiskSecurityTypes 2392 """ 2393 2394 _attribute_map = { 2395 'security_type': {'key': 'securityType', 'type': 'str'}, 2396 } 2397 2398 def __init__( 2399 self, 2400 *, 2401 security_type: Optional[Union[str, "DiskSecurityTypes"]] = None, 2402 **kwargs 2403 ): 2404 super(DiskSecurityProfile, self).__init__(**kwargs) 2405 self.security_type = security_type 2406 2407 2408class DiskSku(msrest.serialization.Model): 2409 """The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, UltraSSD_LRS, Premium_ZRS, or StandardSSD_ZRS. 2410 2411 Variables are only populated by the server, and will be ignored when sending a request. 2412 2413 :param name: The sku name. Possible values include: "Standard_LRS", "Premium_LRS", 2414 "StandardSSD_LRS", "UltraSSD_LRS", "Premium_ZRS", "StandardSSD_ZRS". 2415 :type name: str or ~azure.mgmt.compute.v2020_12_01.models.DiskStorageAccountTypes 2416 :ivar tier: The sku tier. 2417 :vartype tier: str 2418 """ 2419 2420 _validation = { 2421 'tier': {'readonly': True}, 2422 } 2423 2424 _attribute_map = { 2425 'name': {'key': 'name', 'type': 'str'}, 2426 'tier': {'key': 'tier', 'type': 'str'}, 2427 } 2428 2429 def __init__( 2430 self, 2431 *, 2432 name: Optional[Union[str, "DiskStorageAccountTypes"]] = None, 2433 **kwargs 2434 ): 2435 super(DiskSku, self).__init__(**kwargs) 2436 self.name = name 2437 self.tier = None 2438 2439 2440class DiskUpdate(msrest.serialization.Model): 2441 """Disk update resource. 2442 2443 Variables are only populated by the server, and will be ignored when sending a request. 2444 2445 :param tags: A set of tags. Resource tags. 2446 :type tags: dict[str, str] 2447 :param sku: The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, 2448 UltraSSD_LRS, Premium_ZRS, or StandardSSD_ZRS. 2449 :type sku: ~azure.mgmt.compute.v2020_12_01.models.DiskSku 2450 :param os_type: the Operating System type. Possible values include: "Windows", "Linux". 2451 :type os_type: str or ~azure.mgmt.compute.v2020_12_01.models.OperatingSystemTypes 2452 :param disk_size_gb: If creationData.createOption is Empty, this field is mandatory and it 2453 indicates the size of the disk to create. If this field is present for updates or creation with 2454 other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a 2455 running VM, and can only increase the disk's size. 2456 :type disk_size_gb: int 2457 :param encryption_settings_collection: Encryption settings collection used be Azure Disk 2458 Encryption, can contain multiple encryption settings per disk or snapshot. 2459 :type encryption_settings_collection: 2460 ~azure.mgmt.compute.v2020_12_01.models.EncryptionSettingsCollection 2461 :param disk_iops_read_write: The number of IOPS allowed for this disk; only settable for 2462 UltraSSD disks. One operation can transfer between 4k and 256k bytes. 2463 :type disk_iops_read_write: long 2464 :param disk_m_bps_read_write: The bandwidth allowed for this disk; only settable for UltraSSD 2465 disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 2466 10. 2467 :type disk_m_bps_read_write: long 2468 :param disk_iops_read_only: The total number of IOPS that will be allowed across all VMs 2469 mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes. 2470 :type disk_iops_read_only: long 2471 :param disk_m_bps_read_only: The total throughput (MBps) that will be allowed across all VMs 2472 mounting the shared disk as ReadOnly. MBps means millions of bytes per second - MB here uses 2473 the ISO notation, of powers of 10. 2474 :type disk_m_bps_read_only: long 2475 :param max_shares: The maximum number of VMs that can attach to the disk at the same time. 2476 Value greater than one indicates a disk that can be mounted on multiple VMs at the same time. 2477 :type max_shares: int 2478 :param encryption: Encryption property can be used to encrypt data at rest with customer 2479 managed keys or platform managed keys. 2480 :type encryption: ~azure.mgmt.compute.v2020_12_01.models.Encryption 2481 :param network_access_policy: Policy for accessing the disk via network. Possible values 2482 include: "AllowAll", "AllowPrivate", "DenyAll". 2483 :type network_access_policy: str or ~azure.mgmt.compute.v2020_12_01.models.NetworkAccessPolicy 2484 :param disk_access_id: ARM id of the DiskAccess resource for using private endpoints on disks. 2485 :type disk_access_id: str 2486 :param tier: Performance tier of the disk (e.g, P4, S10) as described here: 2487 https://azure.microsoft.com/en-us/pricing/details/managed-disks/. Does not apply to Ultra 2488 disks. 2489 :type tier: str 2490 :param bursting_enabled: Set to true to enable bursting beyond the provisioned performance 2491 target of the disk. Bursting is disabled by default. Does not apply to Ultra disks. 2492 :type bursting_enabled: bool 2493 :param purchase_plan: Purchase plan information to be added on the OS disk. 2494 :type purchase_plan: ~azure.mgmt.compute.v2020_12_01.models.PurchasePlan 2495 :ivar property_updates_in_progress: Properties of the disk for which update is pending. 2496 :vartype property_updates_in_progress: 2497 ~azure.mgmt.compute.v2020_12_01.models.PropertyUpdatesInProgress 2498 :param supports_hibernation: Indicates the OS on a disk supports hibernation. 2499 :type supports_hibernation: bool 2500 """ 2501 2502 _validation = { 2503 'property_updates_in_progress': {'readonly': True}, 2504 } 2505 2506 _attribute_map = { 2507 'tags': {'key': 'tags', 'type': '{str}'}, 2508 'sku': {'key': 'sku', 'type': 'DiskSku'}, 2509 'os_type': {'key': 'properties.osType', 'type': 'str'}, 2510 'disk_size_gb': {'key': 'properties.diskSizeGB', 'type': 'int'}, 2511 'encryption_settings_collection': {'key': 'properties.encryptionSettingsCollection', 'type': 'EncryptionSettingsCollection'}, 2512 'disk_iops_read_write': {'key': 'properties.diskIOPSReadWrite', 'type': 'long'}, 2513 'disk_m_bps_read_write': {'key': 'properties.diskMBpsReadWrite', 'type': 'long'}, 2514 'disk_iops_read_only': {'key': 'properties.diskIOPSReadOnly', 'type': 'long'}, 2515 'disk_m_bps_read_only': {'key': 'properties.diskMBpsReadOnly', 'type': 'long'}, 2516 'max_shares': {'key': 'properties.maxShares', 'type': 'int'}, 2517 'encryption': {'key': 'properties.encryption', 'type': 'Encryption'}, 2518 'network_access_policy': {'key': 'properties.networkAccessPolicy', 'type': 'str'}, 2519 'disk_access_id': {'key': 'properties.diskAccessId', 'type': 'str'}, 2520 'tier': {'key': 'properties.tier', 'type': 'str'}, 2521 'bursting_enabled': {'key': 'properties.burstingEnabled', 'type': 'bool'}, 2522 'purchase_plan': {'key': 'properties.purchasePlan', 'type': 'PurchasePlan'}, 2523 'property_updates_in_progress': {'key': 'properties.propertyUpdatesInProgress', 'type': 'PropertyUpdatesInProgress'}, 2524 'supports_hibernation': {'key': 'properties.supportsHibernation', 'type': 'bool'}, 2525 } 2526 2527 def __init__( 2528 self, 2529 *, 2530 tags: Optional[Dict[str, str]] = None, 2531 sku: Optional["DiskSku"] = None, 2532 os_type: Optional[Union[str, "OperatingSystemTypes"]] = None, 2533 disk_size_gb: Optional[int] = None, 2534 encryption_settings_collection: Optional["EncryptionSettingsCollection"] = None, 2535 disk_iops_read_write: Optional[int] = None, 2536 disk_m_bps_read_write: Optional[int] = None, 2537 disk_iops_read_only: Optional[int] = None, 2538 disk_m_bps_read_only: Optional[int] = None, 2539 max_shares: Optional[int] = None, 2540 encryption: Optional["Encryption"] = None, 2541 network_access_policy: Optional[Union[str, "NetworkAccessPolicy"]] = None, 2542 disk_access_id: Optional[str] = None, 2543 tier: Optional[str] = None, 2544 bursting_enabled: Optional[bool] = None, 2545 purchase_plan: Optional["PurchasePlan"] = None, 2546 supports_hibernation: Optional[bool] = None, 2547 **kwargs 2548 ): 2549 super(DiskUpdate, self).__init__(**kwargs) 2550 self.tags = tags 2551 self.sku = sku 2552 self.os_type = os_type 2553 self.disk_size_gb = disk_size_gb 2554 self.encryption_settings_collection = encryption_settings_collection 2555 self.disk_iops_read_write = disk_iops_read_write 2556 self.disk_m_bps_read_write = disk_m_bps_read_write 2557 self.disk_iops_read_only = disk_iops_read_only 2558 self.disk_m_bps_read_only = disk_m_bps_read_only 2559 self.max_shares = max_shares 2560 self.encryption = encryption 2561 self.network_access_policy = network_access_policy 2562 self.disk_access_id = disk_access_id 2563 self.tier = tier 2564 self.bursting_enabled = bursting_enabled 2565 self.purchase_plan = purchase_plan 2566 self.property_updates_in_progress = None 2567 self.supports_hibernation = supports_hibernation 2568 2569 2570class Encryption(msrest.serialization.Model): 2571 """Encryption at rest settings for disk or snapshot. 2572 2573 :param disk_encryption_set_id: ResourceId of the disk encryption set to use for enabling 2574 encryption at rest. 2575 :type disk_encryption_set_id: str 2576 :param type: The type of key used to encrypt the data of the disk. Possible values include: 2577 "EncryptionAtRestWithPlatformKey", "EncryptionAtRestWithCustomerKey", 2578 "EncryptionAtRestWithPlatformAndCustomerKeys". 2579 :type type: str or ~azure.mgmt.compute.v2020_12_01.models.EncryptionType 2580 """ 2581 2582 _attribute_map = { 2583 'disk_encryption_set_id': {'key': 'diskEncryptionSetId', 'type': 'str'}, 2584 'type': {'key': 'type', 'type': 'str'}, 2585 } 2586 2587 def __init__( 2588 self, 2589 *, 2590 disk_encryption_set_id: Optional[str] = None, 2591 type: Optional[Union[str, "EncryptionType"]] = None, 2592 **kwargs 2593 ): 2594 super(Encryption, self).__init__(**kwargs) 2595 self.disk_encryption_set_id = disk_encryption_set_id 2596 self.type = type 2597 2598 2599class EncryptionSetIdentity(msrest.serialization.Model): 2600 """The managed identity for the disk encryption set. It should be given permission on the key vault before it can be used to encrypt disks. 2601 2602 Variables are only populated by the server, and will be ignored when sending a request. 2603 2604 :param type: The type of Managed Identity used by the DiskEncryptionSet. Only SystemAssigned is 2605 supported for new creations. Disk Encryption Sets can be updated with Identity type None during 2606 migration of subscription to a new Azure Active Directory tenant; it will cause the encrypted 2607 resources to lose access to the keys. Possible values include: "SystemAssigned", "None". 2608 :type type: str or ~azure.mgmt.compute.v2020_12_01.models.DiskEncryptionSetIdentityType 2609 :ivar principal_id: The object id of the Managed Identity Resource. This will be sent to the RP 2610 from ARM via the x-ms-identity-principal-id header in the PUT request if the resource has a 2611 systemAssigned(implicit) identity. 2612 :vartype principal_id: str 2613 :ivar tenant_id: The tenant id of the Managed Identity Resource. This will be sent to the RP 2614 from ARM via the x-ms-client-tenant-id header in the PUT request if the resource has a 2615 systemAssigned(implicit) identity. 2616 :vartype tenant_id: str 2617 """ 2618 2619 _validation = { 2620 'principal_id': {'readonly': True}, 2621 'tenant_id': {'readonly': True}, 2622 } 2623 2624 _attribute_map = { 2625 'type': {'key': 'type', 'type': 'str'}, 2626 'principal_id': {'key': 'principalId', 'type': 'str'}, 2627 'tenant_id': {'key': 'tenantId', 'type': 'str'}, 2628 } 2629 2630 def __init__( 2631 self, 2632 *, 2633 type: Optional[Union[str, "DiskEncryptionSetIdentityType"]] = None, 2634 **kwargs 2635 ): 2636 super(EncryptionSetIdentity, self).__init__(**kwargs) 2637 self.type = type 2638 self.principal_id = None 2639 self.tenant_id = None 2640 2641 2642class EncryptionSettingsCollection(msrest.serialization.Model): 2643 """Encryption settings for disk or snapshot. 2644 2645 All required parameters must be populated in order to send to Azure. 2646 2647 :param enabled: Required. Set this flag to true and provide DiskEncryptionKey and optional 2648 KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and 2649 KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, 2650 the existing settings remain unchanged. 2651 :type enabled: bool 2652 :param encryption_settings: A collection of encryption settings, one for each disk volume. 2653 :type encryption_settings: 2654 list[~azure.mgmt.compute.v2020_12_01.models.EncryptionSettingsElement] 2655 :param encryption_settings_version: Describes what type of encryption is used for the disks. 2656 Once this field is set, it cannot be overwritten. '1.0' corresponds to Azure Disk Encryption 2657 with AAD app.'1.1' corresponds to Azure Disk Encryption. 2658 :type encryption_settings_version: str 2659 """ 2660 2661 _validation = { 2662 'enabled': {'required': True}, 2663 } 2664 2665 _attribute_map = { 2666 'enabled': {'key': 'enabled', 'type': 'bool'}, 2667 'encryption_settings': {'key': 'encryptionSettings', 'type': '[EncryptionSettingsElement]'}, 2668 'encryption_settings_version': {'key': 'encryptionSettingsVersion', 'type': 'str'}, 2669 } 2670 2671 def __init__( 2672 self, 2673 *, 2674 enabled: bool, 2675 encryption_settings: Optional[List["EncryptionSettingsElement"]] = None, 2676 encryption_settings_version: Optional[str] = None, 2677 **kwargs 2678 ): 2679 super(EncryptionSettingsCollection, self).__init__(**kwargs) 2680 self.enabled = enabled 2681 self.encryption_settings = encryption_settings 2682 self.encryption_settings_version = encryption_settings_version 2683 2684 2685class EncryptionSettingsElement(msrest.serialization.Model): 2686 """Encryption settings for one disk volume. 2687 2688 :param disk_encryption_key: Key Vault Secret Url and vault id of the disk encryption key. 2689 :type disk_encryption_key: ~azure.mgmt.compute.v2020_12_01.models.KeyVaultAndSecretReference 2690 :param key_encryption_key: Key Vault Key Url and vault id of the key encryption key. 2691 KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key. 2692 :type key_encryption_key: ~azure.mgmt.compute.v2020_12_01.models.KeyVaultAndKeyReference 2693 """ 2694 2695 _attribute_map = { 2696 'disk_encryption_key': {'key': 'diskEncryptionKey', 'type': 'KeyVaultAndSecretReference'}, 2697 'key_encryption_key': {'key': 'keyEncryptionKey', 'type': 'KeyVaultAndKeyReference'}, 2698 } 2699 2700 def __init__( 2701 self, 2702 *, 2703 disk_encryption_key: Optional["KeyVaultAndSecretReference"] = None, 2704 key_encryption_key: Optional["KeyVaultAndKeyReference"] = None, 2705 **kwargs 2706 ): 2707 super(EncryptionSettingsElement, self).__init__(**kwargs) 2708 self.disk_encryption_key = disk_encryption_key 2709 self.key_encryption_key = key_encryption_key 2710 2711 2712class ExtendedLocation(msrest.serialization.Model): 2713 """The complex type of the extended location. 2714 2715 :param name: The name of the extended location. 2716 :type name: str 2717 :param type: The type of the extended location. Possible values include: "EdgeZone". 2718 :type type: str or ~azure.mgmt.compute.v2020_12_01.models.ExtendedLocationTypes 2719 """ 2720 2721 _attribute_map = { 2722 'name': {'key': 'name', 'type': 'str'}, 2723 'type': {'key': 'type', 'type': 'str'}, 2724 } 2725 2726 def __init__( 2727 self, 2728 *, 2729 name: Optional[str] = None, 2730 type: Optional[Union[str, "ExtendedLocationTypes"]] = None, 2731 **kwargs 2732 ): 2733 super(ExtendedLocation, self).__init__(**kwargs) 2734 self.name = name 2735 self.type = type 2736 2737 2738class GrantAccessData(msrest.serialization.Model): 2739 """Data used for requesting a SAS. 2740 2741 All required parameters must be populated in order to send to Azure. 2742 2743 :param access: Required. Possible values include: "None", "Read", "Write". 2744 :type access: str or ~azure.mgmt.compute.v2020_12_01.models.AccessLevel 2745 :param duration_in_seconds: Required. Time duration in seconds until the SAS access expires. 2746 :type duration_in_seconds: int 2747 """ 2748 2749 _validation = { 2750 'access': {'required': True}, 2751 'duration_in_seconds': {'required': True}, 2752 } 2753 2754 _attribute_map = { 2755 'access': {'key': 'access', 'type': 'str'}, 2756 'duration_in_seconds': {'key': 'durationInSeconds', 'type': 'int'}, 2757 } 2758 2759 def __init__( 2760 self, 2761 *, 2762 access: Union[str, "AccessLevel"], 2763 duration_in_seconds: int, 2764 **kwargs 2765 ): 2766 super(GrantAccessData, self).__init__(**kwargs) 2767 self.access = access 2768 self.duration_in_seconds = duration_in_seconds 2769 2770 2771class HardwareProfile(msrest.serialization.Model): 2772 """Specifies the hardware settings for the virtual machine. 2773 2774 :param vm_size: Specifies the size of the virtual machine. :code:`<br>`:code:`<br>` The enum 2775 data type is currently deprecated and will be removed by December 23rd 2023. 2776 :code:`<br>`:code:`<br>` Recommended way to get the list of available sizes is using these 2777 APIs: :code:`<br>`:code:`<br>` `List all available virtual machine sizes in an availability set 2778 <https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes>`_ 2779 :code:`<br>`:code:`<br>` `List all available virtual machine sizes in a region 2780 <https://docs.microsoft.com/en-us/rest/api/compute/resourceskus/list>`_ 2781 :code:`<br>`:code:`<br>` `List all available virtual machine sizes for resizing 2782 <https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes>`_. For more 2783 information about virtual machine sizes, see `Sizes for virtual machines 2784 <https://docs.microsoft.com/en-us/azure/virtual-machines/sizes>`_. :code:`<br>`:code:`<br>` The 2785 available VM sizes depend on region and availability set. Possible values include: "Basic_A0", 2786 "Basic_A1", "Basic_A2", "Basic_A3", "Basic_A4", "Standard_A0", "Standard_A1", "Standard_A2", 2787 "Standard_A3", "Standard_A4", "Standard_A5", "Standard_A6", "Standard_A7", "Standard_A8", 2788 "Standard_A9", "Standard_A10", "Standard_A11", "Standard_A1_v2", "Standard_A2_v2", 2789 "Standard_A4_v2", "Standard_A8_v2", "Standard_A2m_v2", "Standard_A4m_v2", "Standard_A8m_v2", 2790 "Standard_B1s", "Standard_B1ms", "Standard_B2s", "Standard_B2ms", "Standard_B4ms", 2791 "Standard_B8ms", "Standard_D1", "Standard_D2", "Standard_D3", "Standard_D4", "Standard_D11", 2792 "Standard_D12", "Standard_D13", "Standard_D14", "Standard_D1_v2", "Standard_D2_v2", 2793 "Standard_D3_v2", "Standard_D4_v2", "Standard_D5_v2", "Standard_D2_v3", "Standard_D4_v3", 2794 "Standard_D8_v3", "Standard_D16_v3", "Standard_D32_v3", "Standard_D64_v3", "Standard_D2s_v3", 2795 "Standard_D4s_v3", "Standard_D8s_v3", "Standard_D16s_v3", "Standard_D32s_v3", 2796 "Standard_D64s_v3", "Standard_D11_v2", "Standard_D12_v2", "Standard_D13_v2", "Standard_D14_v2", 2797 "Standard_D15_v2", "Standard_DS1", "Standard_DS2", "Standard_DS3", "Standard_DS4", 2798 "Standard_DS11", "Standard_DS12", "Standard_DS13", "Standard_DS14", "Standard_DS1_v2", 2799 "Standard_DS2_v2", "Standard_DS3_v2", "Standard_DS4_v2", "Standard_DS5_v2", "Standard_DS11_v2", 2800 "Standard_DS12_v2", "Standard_DS13_v2", "Standard_DS14_v2", "Standard_DS15_v2", 2801 "Standard_DS13-4_v2", "Standard_DS13-2_v2", "Standard_DS14-8_v2", "Standard_DS14-4_v2", 2802 "Standard_E2_v3", "Standard_E4_v3", "Standard_E8_v3", "Standard_E16_v3", "Standard_E32_v3", 2803 "Standard_E64_v3", "Standard_E2s_v3", "Standard_E4s_v3", "Standard_E8s_v3", "Standard_E16s_v3", 2804 "Standard_E32s_v3", "Standard_E64s_v3", "Standard_E32-16_v3", "Standard_E32-8s_v3", 2805 "Standard_E64-32s_v3", "Standard_E64-16s_v3", "Standard_F1", "Standard_F2", "Standard_F4", 2806 "Standard_F8", "Standard_F16", "Standard_F1s", "Standard_F2s", "Standard_F4s", "Standard_F8s", 2807 "Standard_F16s", "Standard_F2s_v2", "Standard_F4s_v2", "Standard_F8s_v2", "Standard_F16s_v2", 2808 "Standard_F32s_v2", "Standard_F64s_v2", "Standard_F72s_v2", "Standard_G1", "Standard_G2", 2809 "Standard_G3", "Standard_G4", "Standard_G5", "Standard_GS1", "Standard_GS2", "Standard_GS3", 2810 "Standard_GS4", "Standard_GS5", "Standard_GS4-8", "Standard_GS4-4", "Standard_GS5-16", 2811 "Standard_GS5-8", "Standard_H8", "Standard_H16", "Standard_H8m", "Standard_H16m", 2812 "Standard_H16r", "Standard_H16mr", "Standard_L4s", "Standard_L8s", "Standard_L16s", 2813 "Standard_L32s", "Standard_M64s", "Standard_M64ms", "Standard_M128s", "Standard_M128ms", 2814 "Standard_M64-32ms", "Standard_M64-16ms", "Standard_M128-64ms", "Standard_M128-32ms", 2815 "Standard_NC6", "Standard_NC12", "Standard_NC24", "Standard_NC24r", "Standard_NC6s_v2", 2816 "Standard_NC12s_v2", "Standard_NC24s_v2", "Standard_NC24rs_v2", "Standard_NC6s_v3", 2817 "Standard_NC12s_v3", "Standard_NC24s_v3", "Standard_NC24rs_v3", "Standard_ND6s", 2818 "Standard_ND12s", "Standard_ND24s", "Standard_ND24rs", "Standard_NV6", "Standard_NV12", 2819 "Standard_NV24". 2820 :type vm_size: str or ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineSizeTypes 2821 """ 2822 2823 _attribute_map = { 2824 'vm_size': {'key': 'vmSize', 'type': 'str'}, 2825 } 2826 2827 def __init__( 2828 self, 2829 *, 2830 vm_size: Optional[Union[str, "VirtualMachineSizeTypes"]] = None, 2831 **kwargs 2832 ): 2833 super(HardwareProfile, self).__init__(**kwargs) 2834 self.vm_size = vm_size 2835 2836 2837class Image(Resource): 2838 """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. 2839 2840 Variables are only populated by the server, and will be ignored when sending a request. 2841 2842 All required parameters must be populated in order to send to Azure. 2843 2844 :ivar id: Resource Id. 2845 :vartype id: str 2846 :ivar name: Resource name. 2847 :vartype name: str 2848 :ivar type: Resource type. 2849 :vartype type: str 2850 :param location: Required. Resource location. 2851 :type location: str 2852 :param tags: A set of tags. Resource tags. 2853 :type tags: dict[str, str] 2854 :param extended_location: The extended location of the Image. 2855 :type extended_location: ~azure.mgmt.compute.v2020_12_01.models.ExtendedLocation 2856 :param source_virtual_machine: The source virtual machine from which Image is created. 2857 :type source_virtual_machine: ~azure.mgmt.compute.v2020_12_01.models.SubResource 2858 :param storage_profile: Specifies the storage settings for the virtual machine disks. 2859 :type storage_profile: ~azure.mgmt.compute.v2020_12_01.models.ImageStorageProfile 2860 :ivar provisioning_state: The provisioning state. 2861 :vartype provisioning_state: str 2862 :param hyper_v_generation: Specifies the HyperVGenerationType of the VirtualMachine created 2863 from the image. From API Version 2019-03-01 if the image source is a blob, then we need the 2864 user to specify the value, if the source is managed resource like disk or snapshot, we may 2865 require the user to specify the property if we cannot deduce it from the source managed 2866 resource. Possible values include: "V1", "V2". 2867 :type hyper_v_generation: str or ~azure.mgmt.compute.v2020_12_01.models.HyperVGenerationTypes 2868 """ 2869 2870 _validation = { 2871 'id': {'readonly': True}, 2872 'name': {'readonly': True}, 2873 'type': {'readonly': True}, 2874 'location': {'required': True}, 2875 'provisioning_state': {'readonly': True}, 2876 } 2877 2878 _attribute_map = { 2879 'id': {'key': 'id', 'type': 'str'}, 2880 'name': {'key': 'name', 'type': 'str'}, 2881 'type': {'key': 'type', 'type': 'str'}, 2882 'location': {'key': 'location', 'type': 'str'}, 2883 'tags': {'key': 'tags', 'type': '{str}'}, 2884 'extended_location': {'key': 'extendedLocation', 'type': 'ExtendedLocation'}, 2885 'source_virtual_machine': {'key': 'properties.sourceVirtualMachine', 'type': 'SubResource'}, 2886 'storage_profile': {'key': 'properties.storageProfile', 'type': 'ImageStorageProfile'}, 2887 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 2888 'hyper_v_generation': {'key': 'properties.hyperVGeneration', 'type': 'str'}, 2889 } 2890 2891 def __init__( 2892 self, 2893 *, 2894 location: str, 2895 tags: Optional[Dict[str, str]] = None, 2896 extended_location: Optional["ExtendedLocation"] = None, 2897 source_virtual_machine: Optional["SubResource"] = None, 2898 storage_profile: Optional["ImageStorageProfile"] = None, 2899 hyper_v_generation: Optional[Union[str, "HyperVGenerationTypes"]] = None, 2900 **kwargs 2901 ): 2902 super(Image, self).__init__(location=location, tags=tags, **kwargs) 2903 self.extended_location = extended_location 2904 self.source_virtual_machine = source_virtual_machine 2905 self.storage_profile = storage_profile 2906 self.provisioning_state = None 2907 self.hyper_v_generation = hyper_v_generation 2908 2909 2910class ImageDisk(msrest.serialization.Model): 2911 """Describes a image disk. 2912 2913 :param snapshot: The snapshot. 2914 :type snapshot: ~azure.mgmt.compute.v2020_12_01.models.SubResource 2915 :param managed_disk: The managedDisk. 2916 :type managed_disk: ~azure.mgmt.compute.v2020_12_01.models.SubResource 2917 :param blob_uri: The Virtual Hard Disk. 2918 :type blob_uri: str 2919 :param caching: Specifies the caching requirements. :code:`<br>`:code:`<br>` Possible values 2920 are: :code:`<br>`:code:`<br>` **None** :code:`<br>`:code:`<br>` **ReadOnly** 2921 :code:`<br>`:code:`<br>` **ReadWrite** :code:`<br>`:code:`<br>` Default: **None for Standard 2922 storage. ReadOnly for Premium storage**. Possible values include: "None", "ReadOnly", 2923 "ReadWrite". 2924 :type caching: str or ~azure.mgmt.compute.v2020_12_01.models.CachingTypes 2925 :param disk_size_gb: Specifies the size of empty data disks in gigabytes. This element can be 2926 used to overwrite the name of the disk in a virtual machine image. :code:`<br>`:code:`<br>` 2927 This value cannot be larger than 1023 GB. 2928 :type disk_size_gb: int 2929 :param storage_account_type: Specifies the storage account type for the managed disk. NOTE: 2930 UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. Possible values 2931 include: "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS", "Premium_ZRS", 2932 "StandardSSD_ZRS". 2933 :type storage_account_type: str or ~azure.mgmt.compute.v2020_12_01.models.StorageAccountTypes 2934 :param disk_encryption_set: Specifies the customer managed disk encryption set resource id for 2935 the managed image disk. 2936 :type disk_encryption_set: ~azure.mgmt.compute.v2020_12_01.models.DiskEncryptionSetParameters 2937 """ 2938 2939 _attribute_map = { 2940 'snapshot': {'key': 'snapshot', 'type': 'SubResource'}, 2941 'managed_disk': {'key': 'managedDisk', 'type': 'SubResource'}, 2942 'blob_uri': {'key': 'blobUri', 'type': 'str'}, 2943 'caching': {'key': 'caching', 'type': 'str'}, 2944 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, 2945 'storage_account_type': {'key': 'storageAccountType', 'type': 'str'}, 2946 'disk_encryption_set': {'key': 'diskEncryptionSet', 'type': 'DiskEncryptionSetParameters'}, 2947 } 2948 2949 def __init__( 2950 self, 2951 *, 2952 snapshot: Optional["SubResource"] = None, 2953 managed_disk: Optional["SubResource"] = None, 2954 blob_uri: Optional[str] = None, 2955 caching: Optional[Union[str, "CachingTypes"]] = None, 2956 disk_size_gb: Optional[int] = None, 2957 storage_account_type: Optional[Union[str, "StorageAccountTypes"]] = None, 2958 disk_encryption_set: Optional["DiskEncryptionSetParameters"] = None, 2959 **kwargs 2960 ): 2961 super(ImageDisk, self).__init__(**kwargs) 2962 self.snapshot = snapshot 2963 self.managed_disk = managed_disk 2964 self.blob_uri = blob_uri 2965 self.caching = caching 2966 self.disk_size_gb = disk_size_gb 2967 self.storage_account_type = storage_account_type 2968 self.disk_encryption_set = disk_encryption_set 2969 2970 2971class ImageDataDisk(ImageDisk): 2972 """Describes a data disk. 2973 2974 All required parameters must be populated in order to send to Azure. 2975 2976 :param snapshot: The snapshot. 2977 :type snapshot: ~azure.mgmt.compute.v2020_12_01.models.SubResource 2978 :param managed_disk: The managedDisk. 2979 :type managed_disk: ~azure.mgmt.compute.v2020_12_01.models.SubResource 2980 :param blob_uri: The Virtual Hard Disk. 2981 :type blob_uri: str 2982 :param caching: Specifies the caching requirements. :code:`<br>`:code:`<br>` Possible values 2983 are: :code:`<br>`:code:`<br>` **None** :code:`<br>`:code:`<br>` **ReadOnly** 2984 :code:`<br>`:code:`<br>` **ReadWrite** :code:`<br>`:code:`<br>` Default: **None for Standard 2985 storage. ReadOnly for Premium storage**. Possible values include: "None", "ReadOnly", 2986 "ReadWrite". 2987 :type caching: str or ~azure.mgmt.compute.v2020_12_01.models.CachingTypes 2988 :param disk_size_gb: Specifies the size of empty data disks in gigabytes. This element can be 2989 used to overwrite the name of the disk in a virtual machine image. :code:`<br>`:code:`<br>` 2990 This value cannot be larger than 1023 GB. 2991 :type disk_size_gb: int 2992 :param storage_account_type: Specifies the storage account type for the managed disk. NOTE: 2993 UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. Possible values 2994 include: "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS", "Premium_ZRS", 2995 "StandardSSD_ZRS". 2996 :type storage_account_type: str or ~azure.mgmt.compute.v2020_12_01.models.StorageAccountTypes 2997 :param disk_encryption_set: Specifies the customer managed disk encryption set resource id for 2998 the managed image disk. 2999 :type disk_encryption_set: ~azure.mgmt.compute.v2020_12_01.models.DiskEncryptionSetParameters 3000 :param lun: Required. Specifies the logical unit number of the data disk. This value is used to 3001 identify data disks within the VM and therefore must be unique for each data disk attached to a 3002 VM. 3003 :type lun: int 3004 """ 3005 3006 _validation = { 3007 'lun': {'required': True}, 3008 } 3009 3010 _attribute_map = { 3011 'snapshot': {'key': 'snapshot', 'type': 'SubResource'}, 3012 'managed_disk': {'key': 'managedDisk', 'type': 'SubResource'}, 3013 'blob_uri': {'key': 'blobUri', 'type': 'str'}, 3014 'caching': {'key': 'caching', 'type': 'str'}, 3015 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, 3016 'storage_account_type': {'key': 'storageAccountType', 'type': 'str'}, 3017 'disk_encryption_set': {'key': 'diskEncryptionSet', 'type': 'DiskEncryptionSetParameters'}, 3018 'lun': {'key': 'lun', 'type': 'int'}, 3019 } 3020 3021 def __init__( 3022 self, 3023 *, 3024 lun: int, 3025 snapshot: Optional["SubResource"] = None, 3026 managed_disk: Optional["SubResource"] = None, 3027 blob_uri: Optional[str] = None, 3028 caching: Optional[Union[str, "CachingTypes"]] = None, 3029 disk_size_gb: Optional[int] = None, 3030 storage_account_type: Optional[Union[str, "StorageAccountTypes"]] = None, 3031 disk_encryption_set: Optional["DiskEncryptionSetParameters"] = None, 3032 **kwargs 3033 ): 3034 super(ImageDataDisk, self).__init__(snapshot=snapshot, managed_disk=managed_disk, blob_uri=blob_uri, caching=caching, disk_size_gb=disk_size_gb, storage_account_type=storage_account_type, disk_encryption_set=disk_encryption_set, **kwargs) 3035 self.lun = lun 3036 3037 3038class ImageDiskReference(msrest.serialization.Model): 3039 """The source image used for creating the disk. 3040 3041 All required parameters must be populated in order to send to Azure. 3042 3043 :param id: Required. A relative uri containing either a Platform Image Repository or user image 3044 reference. 3045 :type id: str 3046 :param lun: If the disk is created from an image's data disk, this is an index that indicates 3047 which of the data disks in the image to use. For OS disks, this field is null. 3048 :type lun: int 3049 """ 3050 3051 _validation = { 3052 'id': {'required': True}, 3053 } 3054 3055 _attribute_map = { 3056 'id': {'key': 'id', 'type': 'str'}, 3057 'lun': {'key': 'lun', 'type': 'int'}, 3058 } 3059 3060 def __init__( 3061 self, 3062 *, 3063 id: str, 3064 lun: Optional[int] = None, 3065 **kwargs 3066 ): 3067 super(ImageDiskReference, self).__init__(**kwargs) 3068 self.id = id 3069 self.lun = lun 3070 3071 3072class ImageListResult(msrest.serialization.Model): 3073 """The List Image operation response. 3074 3075 All required parameters must be populated in order to send to Azure. 3076 3077 :param value: Required. The list of Images. 3078 :type value: list[~azure.mgmt.compute.v2020_12_01.models.Image] 3079 :param next_link: The uri to fetch the next page of Images. Call ListNext() with this to fetch 3080 the next page of Images. 3081 :type next_link: str 3082 """ 3083 3084 _validation = { 3085 'value': {'required': True}, 3086 } 3087 3088 _attribute_map = { 3089 'value': {'key': 'value', 'type': '[Image]'}, 3090 'next_link': {'key': 'nextLink', 'type': 'str'}, 3091 } 3092 3093 def __init__( 3094 self, 3095 *, 3096 value: List["Image"], 3097 next_link: Optional[str] = None, 3098 **kwargs 3099 ): 3100 super(ImageListResult, self).__init__(**kwargs) 3101 self.value = value 3102 self.next_link = next_link 3103 3104 3105class ImageOSDisk(ImageDisk): 3106 """Describes an Operating System disk. 3107 3108 All required parameters must be populated in order to send to Azure. 3109 3110 :param snapshot: The snapshot. 3111 :type snapshot: ~azure.mgmt.compute.v2020_12_01.models.SubResource 3112 :param managed_disk: The managedDisk. 3113 :type managed_disk: ~azure.mgmt.compute.v2020_12_01.models.SubResource 3114 :param blob_uri: The Virtual Hard Disk. 3115 :type blob_uri: str 3116 :param caching: Specifies the caching requirements. :code:`<br>`:code:`<br>` Possible values 3117 are: :code:`<br>`:code:`<br>` **None** :code:`<br>`:code:`<br>` **ReadOnly** 3118 :code:`<br>`:code:`<br>` **ReadWrite** :code:`<br>`:code:`<br>` Default: **None for Standard 3119 storage. ReadOnly for Premium storage**. Possible values include: "None", "ReadOnly", 3120 "ReadWrite". 3121 :type caching: str or ~azure.mgmt.compute.v2020_12_01.models.CachingTypes 3122 :param disk_size_gb: Specifies the size of empty data disks in gigabytes. This element can be 3123 used to overwrite the name of the disk in a virtual machine image. :code:`<br>`:code:`<br>` 3124 This value cannot be larger than 1023 GB. 3125 :type disk_size_gb: int 3126 :param storage_account_type: Specifies the storage account type for the managed disk. NOTE: 3127 UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. Possible values 3128 include: "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS", "Premium_ZRS", 3129 "StandardSSD_ZRS". 3130 :type storage_account_type: str or ~azure.mgmt.compute.v2020_12_01.models.StorageAccountTypes 3131 :param disk_encryption_set: Specifies the customer managed disk encryption set resource id for 3132 the managed image disk. 3133 :type disk_encryption_set: ~azure.mgmt.compute.v2020_12_01.models.DiskEncryptionSetParameters 3134 :param os_type: Required. This property allows you to specify the type of the OS that is 3135 included in the disk if creating a VM from a custom image. :code:`<br>`:code:`<br>` Possible 3136 values are: :code:`<br>`:code:`<br>` **Windows** :code:`<br>`:code:`<br>` **Linux**. Possible 3137 values include: "Windows", "Linux". 3138 :type os_type: str or ~azure.mgmt.compute.v2020_12_01.models.OperatingSystemTypes 3139 :param os_state: Required. The OS State. Possible values include: "Generalized", "Specialized". 3140 :type os_state: str or ~azure.mgmt.compute.v2020_12_01.models.OperatingSystemStateTypes 3141 """ 3142 3143 _validation = { 3144 'os_type': {'required': True}, 3145 'os_state': {'required': True}, 3146 } 3147 3148 _attribute_map = { 3149 'snapshot': {'key': 'snapshot', 'type': 'SubResource'}, 3150 'managed_disk': {'key': 'managedDisk', 'type': 'SubResource'}, 3151 'blob_uri': {'key': 'blobUri', 'type': 'str'}, 3152 'caching': {'key': 'caching', 'type': 'str'}, 3153 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, 3154 'storage_account_type': {'key': 'storageAccountType', 'type': 'str'}, 3155 'disk_encryption_set': {'key': 'diskEncryptionSet', 'type': 'DiskEncryptionSetParameters'}, 3156 'os_type': {'key': 'osType', 'type': 'str'}, 3157 'os_state': {'key': 'osState', 'type': 'str'}, 3158 } 3159 3160 def __init__( 3161 self, 3162 *, 3163 os_type: Union[str, "OperatingSystemTypes"], 3164 os_state: Union[str, "OperatingSystemStateTypes"], 3165 snapshot: Optional["SubResource"] = None, 3166 managed_disk: Optional["SubResource"] = None, 3167 blob_uri: Optional[str] = None, 3168 caching: Optional[Union[str, "CachingTypes"]] = None, 3169 disk_size_gb: Optional[int] = None, 3170 storage_account_type: Optional[Union[str, "StorageAccountTypes"]] = None, 3171 disk_encryption_set: Optional["DiskEncryptionSetParameters"] = None, 3172 **kwargs 3173 ): 3174 super(ImageOSDisk, self).__init__(snapshot=snapshot, managed_disk=managed_disk, blob_uri=blob_uri, caching=caching, disk_size_gb=disk_size_gb, storage_account_type=storage_account_type, disk_encryption_set=disk_encryption_set, **kwargs) 3175 self.os_type = os_type 3176 self.os_state = os_state 3177 3178 3179class ImageReference(SubResource): 3180 """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. 3181 3182 Variables are only populated by the server, and will be ignored when sending a request. 3183 3184 :param id: Resource Id. 3185 :type id: str 3186 :param publisher: The image publisher. 3187 :type publisher: str 3188 :param offer: Specifies the offer of the platform image or marketplace image used to create the 3189 virtual machine. 3190 :type offer: str 3191 :param sku: The image SKU. 3192 :type sku: str 3193 :param version: Specifies the version of the platform image or marketplace image used to create 3194 the virtual machine. The allowed formats are Major.Minor.Build or 'latest'. Major, Minor, and 3195 Build are decimal numbers. Specify 'latest' to use the latest version of an image available at 3196 deploy time. Even if you use 'latest', the VM image will not automatically update after deploy 3197 time even if a new version becomes available. 3198 :type version: str 3199 :ivar exact_version: Specifies in decimal numbers, the version of platform image or marketplace 3200 image used to create the virtual machine. This readonly field differs from 'version', only if 3201 the value specified in 'version' field is 'latest'. 3202 :vartype exact_version: str 3203 """ 3204 3205 _validation = { 3206 'exact_version': {'readonly': True}, 3207 } 3208 3209 _attribute_map = { 3210 'id': {'key': 'id', 'type': 'str'}, 3211 'publisher': {'key': 'publisher', 'type': 'str'}, 3212 'offer': {'key': 'offer', 'type': 'str'}, 3213 'sku': {'key': 'sku', 'type': 'str'}, 3214 'version': {'key': 'version', 'type': 'str'}, 3215 'exact_version': {'key': 'exactVersion', 'type': 'str'}, 3216 } 3217 3218 def __init__( 3219 self, 3220 *, 3221 id: Optional[str] = None, 3222 publisher: Optional[str] = None, 3223 offer: Optional[str] = None, 3224 sku: Optional[str] = None, 3225 version: Optional[str] = None, 3226 **kwargs 3227 ): 3228 super(ImageReference, self).__init__(id=id, **kwargs) 3229 self.publisher = publisher 3230 self.offer = offer 3231 self.sku = sku 3232 self.version = version 3233 self.exact_version = None 3234 3235 3236class ImageStorageProfile(msrest.serialization.Model): 3237 """Describes a storage profile. 3238 3239 :param os_disk: Specifies information about the operating system disk used by the virtual 3240 machine. :code:`<br>`:code:`<br>` For more information about disks, see `About disks and VHDs 3241 for Azure virtual machines 3242 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 3243 :type os_disk: ~azure.mgmt.compute.v2020_12_01.models.ImageOSDisk 3244 :param data_disks: Specifies the parameters that are used to add a data disk to a virtual 3245 machine. :code:`<br>`:code:`<br>` For more information about disks, see `About disks and VHDs 3246 for Azure virtual machines 3247 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 3248 :type data_disks: list[~azure.mgmt.compute.v2020_12_01.models.ImageDataDisk] 3249 :param zone_resilient: Specifies whether an image is zone resilient or not. Default is false. 3250 Zone resilient images can be created only in regions that provide Zone Redundant Storage (ZRS). 3251 :type zone_resilient: bool 3252 """ 3253 3254 _attribute_map = { 3255 'os_disk': {'key': 'osDisk', 'type': 'ImageOSDisk'}, 3256 'data_disks': {'key': 'dataDisks', 'type': '[ImageDataDisk]'}, 3257 'zone_resilient': {'key': 'zoneResilient', 'type': 'bool'}, 3258 } 3259 3260 def __init__( 3261 self, 3262 *, 3263 os_disk: Optional["ImageOSDisk"] = None, 3264 data_disks: Optional[List["ImageDataDisk"]] = None, 3265 zone_resilient: Optional[bool] = None, 3266 **kwargs 3267 ): 3268 super(ImageStorageProfile, self).__init__(**kwargs) 3269 self.os_disk = os_disk 3270 self.data_disks = data_disks 3271 self.zone_resilient = zone_resilient 3272 3273 3274class ImageUpdate(UpdateResource): 3275 """The source user image virtual hard disk. Only tags may be updated. 3276 3277 Variables are only populated by the server, and will be ignored when sending a request. 3278 3279 :param tags: A set of tags. Resource tags. 3280 :type tags: dict[str, str] 3281 :param source_virtual_machine: The source virtual machine from which Image is created. 3282 :type source_virtual_machine: ~azure.mgmt.compute.v2020_12_01.models.SubResource 3283 :param storage_profile: Specifies the storage settings for the virtual machine disks. 3284 :type storage_profile: ~azure.mgmt.compute.v2020_12_01.models.ImageStorageProfile 3285 :ivar provisioning_state: The provisioning state. 3286 :vartype provisioning_state: str 3287 :param hyper_v_generation: Specifies the HyperVGenerationType of the VirtualMachine created 3288 from the image. From API Version 2019-03-01 if the image source is a blob, then we need the 3289 user to specify the value, if the source is managed resource like disk or snapshot, we may 3290 require the user to specify the property if we cannot deduce it from the source managed 3291 resource. Possible values include: "V1", "V2". 3292 :type hyper_v_generation: str or ~azure.mgmt.compute.v2020_12_01.models.HyperVGenerationTypes 3293 """ 3294 3295 _validation = { 3296 'provisioning_state': {'readonly': True}, 3297 } 3298 3299 _attribute_map = { 3300 'tags': {'key': 'tags', 'type': '{str}'}, 3301 'source_virtual_machine': {'key': 'properties.sourceVirtualMachine', 'type': 'SubResource'}, 3302 'storage_profile': {'key': 'properties.storageProfile', 'type': 'ImageStorageProfile'}, 3303 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 3304 'hyper_v_generation': {'key': 'properties.hyperVGeneration', 'type': 'str'}, 3305 } 3306 3307 def __init__( 3308 self, 3309 *, 3310 tags: Optional[Dict[str, str]] = None, 3311 source_virtual_machine: Optional["SubResource"] = None, 3312 storage_profile: Optional["ImageStorageProfile"] = None, 3313 hyper_v_generation: Optional[Union[str, "HyperVGenerationTypes"]] = None, 3314 **kwargs 3315 ): 3316 super(ImageUpdate, self).__init__(tags=tags, **kwargs) 3317 self.source_virtual_machine = source_virtual_machine 3318 self.storage_profile = storage_profile 3319 self.provisioning_state = None 3320 self.hyper_v_generation = hyper_v_generation 3321 3322 3323class InnerError(msrest.serialization.Model): 3324 """Inner error details. 3325 3326 :param exceptiontype: The exception type. 3327 :type exceptiontype: str 3328 :param errordetail: The internal error message or exception dump. 3329 :type errordetail: str 3330 """ 3331 3332 _attribute_map = { 3333 'exceptiontype': {'key': 'exceptiontype', 'type': 'str'}, 3334 'errordetail': {'key': 'errordetail', 'type': 'str'}, 3335 } 3336 3337 def __init__( 3338 self, 3339 *, 3340 exceptiontype: Optional[str] = None, 3341 errordetail: Optional[str] = None, 3342 **kwargs 3343 ): 3344 super(InnerError, self).__init__(**kwargs) 3345 self.exceptiontype = exceptiontype 3346 self.errordetail = errordetail 3347 3348 3349class InstanceViewStatus(msrest.serialization.Model): 3350 """Instance view status. 3351 3352 :param code: The status code. 3353 :type code: str 3354 :param level: The level code. Possible values include: "Info", "Warning", "Error". 3355 :type level: str or ~azure.mgmt.compute.v2020_12_01.models.StatusLevelTypes 3356 :param display_status: The short localizable label for the status. 3357 :type display_status: str 3358 :param message: The detailed status message, including for alerts and error messages. 3359 :type message: str 3360 :param time: The time of the status. 3361 :type time: ~datetime.datetime 3362 """ 3363 3364 _attribute_map = { 3365 'code': {'key': 'code', 'type': 'str'}, 3366 'level': {'key': 'level', 'type': 'str'}, 3367 'display_status': {'key': 'displayStatus', 'type': 'str'}, 3368 'message': {'key': 'message', 'type': 'str'}, 3369 'time': {'key': 'time', 'type': 'iso-8601'}, 3370 } 3371 3372 def __init__( 3373 self, 3374 *, 3375 code: Optional[str] = None, 3376 level: Optional[Union[str, "StatusLevelTypes"]] = None, 3377 display_status: Optional[str] = None, 3378 message: Optional[str] = None, 3379 time: Optional[datetime.datetime] = None, 3380 **kwargs 3381 ): 3382 super(InstanceViewStatus, self).__init__(**kwargs) 3383 self.code = code 3384 self.level = level 3385 self.display_status = display_status 3386 self.message = message 3387 self.time = time 3388 3389 3390class KeyForDiskEncryptionSet(msrest.serialization.Model): 3391 """Key Vault Key Url to be used for server side encryption of Managed Disks and Snapshots. 3392 3393 All required parameters must be populated in order to send to Azure. 3394 3395 :param source_vault: Resource id of the KeyVault containing the key or secret. This property is 3396 optional and cannot be used if the KeyVault subscription is not the same as the Disk Encryption 3397 Set subscription. 3398 :type source_vault: ~azure.mgmt.compute.v2020_12_01.models.SourceVault 3399 :param key_url: Required. Fully versioned Key Url pointing to a key in KeyVault. Version 3400 segment of the Url is required regardless of rotationToLatestKeyVersionEnabled value. 3401 :type key_url: str 3402 """ 3403 3404 _validation = { 3405 'key_url': {'required': True}, 3406 } 3407 3408 _attribute_map = { 3409 'source_vault': {'key': 'sourceVault', 'type': 'SourceVault'}, 3410 'key_url': {'key': 'keyUrl', 'type': 'str'}, 3411 } 3412 3413 def __init__( 3414 self, 3415 *, 3416 key_url: str, 3417 source_vault: Optional["SourceVault"] = None, 3418 **kwargs 3419 ): 3420 super(KeyForDiskEncryptionSet, self).__init__(**kwargs) 3421 self.source_vault = source_vault 3422 self.key_url = key_url 3423 3424 3425class KeyVaultAndKeyReference(msrest.serialization.Model): 3426 """Key Vault Key Url and vault id of KeK, KeK is optional and when provided is used to unwrap the encryptionKey. 3427 3428 All required parameters must be populated in order to send to Azure. 3429 3430 :param source_vault: Required. Resource id of the KeyVault containing the key or secret. 3431 :type source_vault: ~azure.mgmt.compute.v2020_12_01.models.SourceVault 3432 :param key_url: Required. Url pointing to a key or secret in KeyVault. 3433 :type key_url: str 3434 """ 3435 3436 _validation = { 3437 'source_vault': {'required': True}, 3438 'key_url': {'required': True}, 3439 } 3440 3441 _attribute_map = { 3442 'source_vault': {'key': 'sourceVault', 'type': 'SourceVault'}, 3443 'key_url': {'key': 'keyUrl', 'type': 'str'}, 3444 } 3445 3446 def __init__( 3447 self, 3448 *, 3449 source_vault: "SourceVault", 3450 key_url: str, 3451 **kwargs 3452 ): 3453 super(KeyVaultAndKeyReference, self).__init__(**kwargs) 3454 self.source_vault = source_vault 3455 self.key_url = key_url 3456 3457 3458class KeyVaultAndSecretReference(msrest.serialization.Model): 3459 """Key Vault Secret Url and vault id of the encryption key. 3460 3461 All required parameters must be populated in order to send to Azure. 3462 3463 :param source_vault: Required. Resource id of the KeyVault containing the key or secret. 3464 :type source_vault: ~azure.mgmt.compute.v2020_12_01.models.SourceVault 3465 :param secret_url: Required. Url pointing to a key or secret in KeyVault. 3466 :type secret_url: str 3467 """ 3468 3469 _validation = { 3470 'source_vault': {'required': True}, 3471 'secret_url': {'required': True}, 3472 } 3473 3474 _attribute_map = { 3475 'source_vault': {'key': 'sourceVault', 'type': 'SourceVault'}, 3476 'secret_url': {'key': 'secretUrl', 'type': 'str'}, 3477 } 3478 3479 def __init__( 3480 self, 3481 *, 3482 source_vault: "SourceVault", 3483 secret_url: str, 3484 **kwargs 3485 ): 3486 super(KeyVaultAndSecretReference, self).__init__(**kwargs) 3487 self.source_vault = source_vault 3488 self.secret_url = secret_url 3489 3490 3491class KeyVaultKeyReference(msrest.serialization.Model): 3492 """Describes a reference to Key Vault Key. 3493 3494 All required parameters must be populated in order to send to Azure. 3495 3496 :param key_url: Required. The URL referencing a key encryption key in Key Vault. 3497 :type key_url: str 3498 :param source_vault: Required. The relative URL of the Key Vault containing the key. 3499 :type source_vault: ~azure.mgmt.compute.v2020_12_01.models.SubResource 3500 """ 3501 3502 _validation = { 3503 'key_url': {'required': True}, 3504 'source_vault': {'required': True}, 3505 } 3506 3507 _attribute_map = { 3508 'key_url': {'key': 'keyUrl', 'type': 'str'}, 3509 'source_vault': {'key': 'sourceVault', 'type': 'SubResource'}, 3510 } 3511 3512 def __init__( 3513 self, 3514 *, 3515 key_url: str, 3516 source_vault: "SubResource", 3517 **kwargs 3518 ): 3519 super(KeyVaultKeyReference, self).__init__(**kwargs) 3520 self.key_url = key_url 3521 self.source_vault = source_vault 3522 3523 3524class KeyVaultSecretReference(msrest.serialization.Model): 3525 """Describes a reference to Key Vault Secret. 3526 3527 All required parameters must be populated in order to send to Azure. 3528 3529 :param secret_url: Required. The URL referencing a secret in a Key Vault. 3530 :type secret_url: str 3531 :param source_vault: Required. The relative URL of the Key Vault containing the secret. 3532 :type source_vault: ~azure.mgmt.compute.v2020_12_01.models.SubResource 3533 """ 3534 3535 _validation = { 3536 'secret_url': {'required': True}, 3537 'source_vault': {'required': True}, 3538 } 3539 3540 _attribute_map = { 3541 'secret_url': {'key': 'secretUrl', 'type': 'str'}, 3542 'source_vault': {'key': 'sourceVault', 'type': 'SubResource'}, 3543 } 3544 3545 def __init__( 3546 self, 3547 *, 3548 secret_url: str, 3549 source_vault: "SubResource", 3550 **kwargs 3551 ): 3552 super(KeyVaultSecretReference, self).__init__(**kwargs) 3553 self.secret_url = secret_url 3554 self.source_vault = source_vault 3555 3556 3557class LastPatchInstallationSummary(msrest.serialization.Model): 3558 """Describes the properties of the last installed patch summary. 3559 3560 Variables are only populated by the server, and will be ignored when sending a request. 3561 3562 :ivar status: The overall success or failure status of the operation. It remains "InProgress" 3563 until the operation completes. At that point it will become "Unknown", "Failed", "Succeeded", 3564 or "CompletedWithWarnings.". Possible values include: "Unknown", "InProgress", "Failed", 3565 "Succeeded", "CompletedWithWarnings". 3566 :vartype status: str or ~azure.mgmt.compute.v2020_12_01.models.PatchOperationStatus 3567 :ivar installation_activity_id: The activity ID of the operation that produced this result. It 3568 is used to correlate across CRP and extension logs. 3569 :vartype installation_activity_id: str 3570 :ivar maintenance_window_exceeded: Describes whether the operation ran out of time before it 3571 completed all its intended actions. 3572 :vartype maintenance_window_exceeded: bool 3573 :ivar not_selected_patch_count: The number of all available patches but not going to be 3574 installed because it didn't match a classification or inclusion list entry. 3575 :vartype not_selected_patch_count: int 3576 :ivar excluded_patch_count: The number of all available patches but excluded explicitly by a 3577 customer-specified exclusion list match. 3578 :vartype excluded_patch_count: int 3579 :ivar pending_patch_count: The number of all available patches expected to be installed over 3580 the course of the patch installation operation. 3581 :vartype pending_patch_count: int 3582 :ivar installed_patch_count: The count of patches that successfully installed. 3583 :vartype installed_patch_count: int 3584 :ivar failed_patch_count: The count of patches that failed installation. 3585 :vartype failed_patch_count: int 3586 :ivar start_time: The UTC timestamp when the operation began. 3587 :vartype start_time: ~datetime.datetime 3588 :ivar last_modified_time: The UTC timestamp when the operation began. 3589 :vartype last_modified_time: ~datetime.datetime 3590 :ivar error: The errors that were encountered during execution of the operation. The details 3591 array contains the list of them. 3592 :vartype error: ~azure.mgmt.compute.v2020_12_01.models.ApiError 3593 """ 3594 3595 _validation = { 3596 'status': {'readonly': True}, 3597 'installation_activity_id': {'readonly': True}, 3598 'maintenance_window_exceeded': {'readonly': True}, 3599 'not_selected_patch_count': {'readonly': True}, 3600 'excluded_patch_count': {'readonly': True}, 3601 'pending_patch_count': {'readonly': True}, 3602 'installed_patch_count': {'readonly': True}, 3603 'failed_patch_count': {'readonly': True}, 3604 'start_time': {'readonly': True}, 3605 'last_modified_time': {'readonly': True}, 3606 'error': {'readonly': True}, 3607 } 3608 3609 _attribute_map = { 3610 'status': {'key': 'status', 'type': 'str'}, 3611 'installation_activity_id': {'key': 'installationActivityId', 'type': 'str'}, 3612 'maintenance_window_exceeded': {'key': 'maintenanceWindowExceeded', 'type': 'bool'}, 3613 'not_selected_patch_count': {'key': 'notSelectedPatchCount', 'type': 'int'}, 3614 'excluded_patch_count': {'key': 'excludedPatchCount', 'type': 'int'}, 3615 'pending_patch_count': {'key': 'pendingPatchCount', 'type': 'int'}, 3616 'installed_patch_count': {'key': 'installedPatchCount', 'type': 'int'}, 3617 'failed_patch_count': {'key': 'failedPatchCount', 'type': 'int'}, 3618 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, 3619 'last_modified_time': {'key': 'lastModifiedTime', 'type': 'iso-8601'}, 3620 'error': {'key': 'error', 'type': 'ApiError'}, 3621 } 3622 3623 def __init__( 3624 self, 3625 **kwargs 3626 ): 3627 super(LastPatchInstallationSummary, self).__init__(**kwargs) 3628 self.status = None 3629 self.installation_activity_id = None 3630 self.maintenance_window_exceeded = None 3631 self.not_selected_patch_count = None 3632 self.excluded_patch_count = None 3633 self.pending_patch_count = None 3634 self.installed_patch_count = None 3635 self.failed_patch_count = None 3636 self.start_time = None 3637 self.last_modified_time = None 3638 self.error = None 3639 3640 3641class LinuxConfiguration(msrest.serialization.Model): 3642 """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>`_. 3643 3644 :param disable_password_authentication: Specifies whether password authentication should be 3645 disabled. 3646 :type disable_password_authentication: bool 3647 :param ssh: Specifies the ssh key configuration for a Linux OS. 3648 :type ssh: ~azure.mgmt.compute.v2020_12_01.models.SshConfiguration 3649 :param provision_vm_agent: Indicates whether virtual machine agent should be provisioned on the 3650 virtual machine. :code:`<br>`:code:`<br>` When this property is not specified in the request 3651 body, default behavior is to set it to true. This will ensure that VM Agent is installed on 3652 the VM so that extensions can be added to the VM later. 3653 :type provision_vm_agent: bool 3654 :param patch_settings: [Preview Feature] Specifies settings related to VM Guest Patching on 3655 Linux. 3656 :type patch_settings: ~azure.mgmt.compute.v2020_12_01.models.LinuxPatchSettings 3657 """ 3658 3659 _attribute_map = { 3660 'disable_password_authentication': {'key': 'disablePasswordAuthentication', 'type': 'bool'}, 3661 'ssh': {'key': 'ssh', 'type': 'SshConfiguration'}, 3662 'provision_vm_agent': {'key': 'provisionVMAgent', 'type': 'bool'}, 3663 'patch_settings': {'key': 'patchSettings', 'type': 'LinuxPatchSettings'}, 3664 } 3665 3666 def __init__( 3667 self, 3668 *, 3669 disable_password_authentication: Optional[bool] = None, 3670 ssh: Optional["SshConfiguration"] = None, 3671 provision_vm_agent: Optional[bool] = None, 3672 patch_settings: Optional["LinuxPatchSettings"] = None, 3673 **kwargs 3674 ): 3675 super(LinuxConfiguration, self).__init__(**kwargs) 3676 self.disable_password_authentication = disable_password_authentication 3677 self.ssh = ssh 3678 self.provision_vm_agent = provision_vm_agent 3679 self.patch_settings = patch_settings 3680 3681 3682class LinuxParameters(msrest.serialization.Model): 3683 """Input for InstallPatches on a Linux VM, as directly received by the API. 3684 3685 :param classifications_to_include: The update classifications to select when installing patches 3686 for Linux. 3687 :type classifications_to_include: list[str or 3688 ~azure.mgmt.compute.v2020_12_01.models.VMGuestPatchClassificationLinux] 3689 :param package_name_masks_to_include: packages to include in the patch operation. Format: 3690 packageName_packageVersion. 3691 :type package_name_masks_to_include: list[str] 3692 :param package_name_masks_to_exclude: packages to exclude in the patch operation. Format: 3693 packageName_packageVersion. 3694 :type package_name_masks_to_exclude: list[str] 3695 :param maintenance_run_id: This is used as a maintenance run identifier for Auto VM Guest 3696 Patching in Linux. 3697 :type maintenance_run_id: str 3698 """ 3699 3700 _attribute_map = { 3701 'classifications_to_include': {'key': 'classificationsToInclude', 'type': '[str]'}, 3702 'package_name_masks_to_include': {'key': 'packageNameMasksToInclude', 'type': '[str]'}, 3703 'package_name_masks_to_exclude': {'key': 'packageNameMasksToExclude', 'type': '[str]'}, 3704 'maintenance_run_id': {'key': 'maintenanceRunId', 'type': 'str'}, 3705 } 3706 3707 def __init__( 3708 self, 3709 *, 3710 classifications_to_include: Optional[List[Union[str, "VMGuestPatchClassificationLinux"]]] = None, 3711 package_name_masks_to_include: Optional[List[str]] = None, 3712 package_name_masks_to_exclude: Optional[List[str]] = None, 3713 maintenance_run_id: Optional[str] = None, 3714 **kwargs 3715 ): 3716 super(LinuxParameters, self).__init__(**kwargs) 3717 self.classifications_to_include = classifications_to_include 3718 self.package_name_masks_to_include = package_name_masks_to_include 3719 self.package_name_masks_to_exclude = package_name_masks_to_exclude 3720 self.maintenance_run_id = maintenance_run_id 3721 3722 3723class LinuxPatchSettings(msrest.serialization.Model): 3724 """Specifies settings related to VM Guest Patching on Linux. 3725 3726 :param patch_mode: Specifies the mode of VM Guest Patching to IaaS virtual machine.:code:`<br 3727 />`:code:`<br />` Possible values are::code:`<br />`:code:`<br />` **ImageDefault** - The 3728 virtual machine's default patching configuration is used. :code:`<br />`:code:`<br />` 3729 **AutomaticByPlatform** - The virtual machine will be automatically updated by the platform. 3730 The property provisionVMAgent must be true. Possible values include: "ImageDefault", 3731 "AutomaticByPlatform". 3732 :type patch_mode: str or ~azure.mgmt.compute.v2020_12_01.models.LinuxVMGuestPatchMode 3733 """ 3734 3735 _attribute_map = { 3736 'patch_mode': {'key': 'patchMode', 'type': 'str'}, 3737 } 3738 3739 def __init__( 3740 self, 3741 *, 3742 patch_mode: Optional[Union[str, "LinuxVMGuestPatchMode"]] = None, 3743 **kwargs 3744 ): 3745 super(LinuxPatchSettings, self).__init__(**kwargs) 3746 self.patch_mode = patch_mode 3747 3748 3749class ListUsagesResult(msrest.serialization.Model): 3750 """The List Usages operation response. 3751 3752 All required parameters must be populated in order to send to Azure. 3753 3754 :param value: Required. The list of compute resource usages. 3755 :type value: list[~azure.mgmt.compute.v2020_12_01.models.Usage] 3756 :param next_link: The URI to fetch the next page of compute resource usage information. Call 3757 ListNext() with this to fetch the next page of compute resource usage information. 3758 :type next_link: str 3759 """ 3760 3761 _validation = { 3762 'value': {'required': True}, 3763 } 3764 3765 _attribute_map = { 3766 'value': {'key': 'value', 'type': '[Usage]'}, 3767 'next_link': {'key': 'nextLink', 'type': 'str'}, 3768 } 3769 3770 def __init__( 3771 self, 3772 *, 3773 value: List["Usage"], 3774 next_link: Optional[str] = None, 3775 **kwargs 3776 ): 3777 super(ListUsagesResult, self).__init__(**kwargs) 3778 self.value = value 3779 self.next_link = next_link 3780 3781 3782class LogAnalyticsInputBase(msrest.serialization.Model): 3783 """Api input base class for LogAnalytics Api. 3784 3785 All required parameters must be populated in order to send to Azure. 3786 3787 :param blob_container_sas_uri: Required. SAS Uri of the logging blob container to which 3788 LogAnalytics Api writes output logs to. 3789 :type blob_container_sas_uri: str 3790 :param from_time: Required. From time of the query. 3791 :type from_time: ~datetime.datetime 3792 :param to_time: Required. To time of the query. 3793 :type to_time: ~datetime.datetime 3794 :param group_by_throttle_policy: Group query result by Throttle Policy applied. 3795 :type group_by_throttle_policy: bool 3796 :param group_by_operation_name: Group query result by Operation Name. 3797 :type group_by_operation_name: bool 3798 :param group_by_resource_name: Group query result by Resource Name. 3799 :type group_by_resource_name: bool 3800 :param group_by_client_application_id: Group query result by Client Application ID. 3801 :type group_by_client_application_id: bool 3802 :param group_by_user_agent: Group query result by User Agent. 3803 :type group_by_user_agent: bool 3804 """ 3805 3806 _validation = { 3807 'blob_container_sas_uri': {'required': True}, 3808 'from_time': {'required': True}, 3809 'to_time': {'required': True}, 3810 } 3811 3812 _attribute_map = { 3813 'blob_container_sas_uri': {'key': 'blobContainerSasUri', 'type': 'str'}, 3814 'from_time': {'key': 'fromTime', 'type': 'iso-8601'}, 3815 'to_time': {'key': 'toTime', 'type': 'iso-8601'}, 3816 'group_by_throttle_policy': {'key': 'groupByThrottlePolicy', 'type': 'bool'}, 3817 'group_by_operation_name': {'key': 'groupByOperationName', 'type': 'bool'}, 3818 'group_by_resource_name': {'key': 'groupByResourceName', 'type': 'bool'}, 3819 'group_by_client_application_id': {'key': 'groupByClientApplicationId', 'type': 'bool'}, 3820 'group_by_user_agent': {'key': 'groupByUserAgent', 'type': 'bool'}, 3821 } 3822 3823 def __init__( 3824 self, 3825 *, 3826 blob_container_sas_uri: str, 3827 from_time: datetime.datetime, 3828 to_time: datetime.datetime, 3829 group_by_throttle_policy: Optional[bool] = None, 3830 group_by_operation_name: Optional[bool] = None, 3831 group_by_resource_name: Optional[bool] = None, 3832 group_by_client_application_id: Optional[bool] = None, 3833 group_by_user_agent: Optional[bool] = None, 3834 **kwargs 3835 ): 3836 super(LogAnalyticsInputBase, self).__init__(**kwargs) 3837 self.blob_container_sas_uri = blob_container_sas_uri 3838 self.from_time = from_time 3839 self.to_time = to_time 3840 self.group_by_throttle_policy = group_by_throttle_policy 3841 self.group_by_operation_name = group_by_operation_name 3842 self.group_by_resource_name = group_by_resource_name 3843 self.group_by_client_application_id = group_by_client_application_id 3844 self.group_by_user_agent = group_by_user_agent 3845 3846 3847class LogAnalyticsOperationResult(msrest.serialization.Model): 3848 """LogAnalytics operation status response. 3849 3850 Variables are only populated by the server, and will be ignored when sending a request. 3851 3852 :ivar properties: LogAnalyticsOutput. 3853 :vartype properties: ~azure.mgmt.compute.v2020_12_01.models.LogAnalyticsOutput 3854 """ 3855 3856 _validation = { 3857 'properties': {'readonly': True}, 3858 } 3859 3860 _attribute_map = { 3861 'properties': {'key': 'properties', 'type': 'LogAnalyticsOutput'}, 3862 } 3863 3864 def __init__( 3865 self, 3866 **kwargs 3867 ): 3868 super(LogAnalyticsOperationResult, self).__init__(**kwargs) 3869 self.properties = None 3870 3871 3872class LogAnalyticsOutput(msrest.serialization.Model): 3873 """LogAnalytics output properties. 3874 3875 Variables are only populated by the server, and will be ignored when sending a request. 3876 3877 :ivar output: Output file Uri path to blob container. 3878 :vartype output: str 3879 """ 3880 3881 _validation = { 3882 'output': {'readonly': True}, 3883 } 3884 3885 _attribute_map = { 3886 'output': {'key': 'output', 'type': 'str'}, 3887 } 3888 3889 def __init__( 3890 self, 3891 **kwargs 3892 ): 3893 super(LogAnalyticsOutput, self).__init__(**kwargs) 3894 self.output = None 3895 3896 3897class MaintenanceRedeployStatus(msrest.serialization.Model): 3898 """Maintenance Operation Status. 3899 3900 :param is_customer_initiated_maintenance_allowed: True, if customer is allowed to perform 3901 Maintenance. 3902 :type is_customer_initiated_maintenance_allowed: bool 3903 :param pre_maintenance_window_start_time: Start Time for the Pre Maintenance Window. 3904 :type pre_maintenance_window_start_time: ~datetime.datetime 3905 :param pre_maintenance_window_end_time: End Time for the Pre Maintenance Window. 3906 :type pre_maintenance_window_end_time: ~datetime.datetime 3907 :param maintenance_window_start_time: Start Time for the Maintenance Window. 3908 :type maintenance_window_start_time: ~datetime.datetime 3909 :param maintenance_window_end_time: End Time for the Maintenance Window. 3910 :type maintenance_window_end_time: ~datetime.datetime 3911 :param last_operation_result_code: The Last Maintenance Operation Result Code. Possible values 3912 include: "None", "RetryLater", "MaintenanceAborted", "MaintenanceCompleted". 3913 :type last_operation_result_code: str or 3914 ~azure.mgmt.compute.v2020_12_01.models.MaintenanceOperationResultCodeTypes 3915 :param last_operation_message: Message returned for the last Maintenance Operation. 3916 :type last_operation_message: str 3917 """ 3918 3919 _attribute_map = { 3920 'is_customer_initiated_maintenance_allowed': {'key': 'isCustomerInitiatedMaintenanceAllowed', 'type': 'bool'}, 3921 'pre_maintenance_window_start_time': {'key': 'preMaintenanceWindowStartTime', 'type': 'iso-8601'}, 3922 'pre_maintenance_window_end_time': {'key': 'preMaintenanceWindowEndTime', 'type': 'iso-8601'}, 3923 'maintenance_window_start_time': {'key': 'maintenanceWindowStartTime', 'type': 'iso-8601'}, 3924 'maintenance_window_end_time': {'key': 'maintenanceWindowEndTime', 'type': 'iso-8601'}, 3925 'last_operation_result_code': {'key': 'lastOperationResultCode', 'type': 'str'}, 3926 'last_operation_message': {'key': 'lastOperationMessage', 'type': 'str'}, 3927 } 3928 3929 def __init__( 3930 self, 3931 *, 3932 is_customer_initiated_maintenance_allowed: Optional[bool] = None, 3933 pre_maintenance_window_start_time: Optional[datetime.datetime] = None, 3934 pre_maintenance_window_end_time: Optional[datetime.datetime] = None, 3935 maintenance_window_start_time: Optional[datetime.datetime] = None, 3936 maintenance_window_end_time: Optional[datetime.datetime] = None, 3937 last_operation_result_code: Optional[Union[str, "MaintenanceOperationResultCodeTypes"]] = None, 3938 last_operation_message: Optional[str] = None, 3939 **kwargs 3940 ): 3941 super(MaintenanceRedeployStatus, self).__init__(**kwargs) 3942 self.is_customer_initiated_maintenance_allowed = is_customer_initiated_maintenance_allowed 3943 self.pre_maintenance_window_start_time = pre_maintenance_window_start_time 3944 self.pre_maintenance_window_end_time = pre_maintenance_window_end_time 3945 self.maintenance_window_start_time = maintenance_window_start_time 3946 self.maintenance_window_end_time = maintenance_window_end_time 3947 self.last_operation_result_code = last_operation_result_code 3948 self.last_operation_message = last_operation_message 3949 3950 3951class ManagedDiskParameters(SubResource): 3952 """The parameters of a managed disk. 3953 3954 :param id: Resource Id. 3955 :type id: str 3956 :param storage_account_type: Specifies the storage account type for the managed disk. Managed 3957 OS disk storage account type can only be set when you create the scale set. NOTE: UltraSSD_LRS 3958 can only be used with data disks, it cannot be used with OS Disk. Possible values include: 3959 "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS", "Premium_ZRS", 3960 "StandardSSD_ZRS". 3961 :type storage_account_type: str or ~azure.mgmt.compute.v2020_12_01.models.StorageAccountTypes 3962 :param disk_encryption_set: Specifies the customer managed disk encryption set resource id for 3963 the managed disk. 3964 :type disk_encryption_set: ~azure.mgmt.compute.v2020_12_01.models.DiskEncryptionSetParameters 3965 """ 3966 3967 _attribute_map = { 3968 'id': {'key': 'id', 'type': 'str'}, 3969 'storage_account_type': {'key': 'storageAccountType', 'type': 'str'}, 3970 'disk_encryption_set': {'key': 'diskEncryptionSet', 'type': 'DiskEncryptionSetParameters'}, 3971 } 3972 3973 def __init__( 3974 self, 3975 *, 3976 id: Optional[str] = None, 3977 storage_account_type: Optional[Union[str, "StorageAccountTypes"]] = None, 3978 disk_encryption_set: Optional["DiskEncryptionSetParameters"] = None, 3979 **kwargs 3980 ): 3981 super(ManagedDiskParameters, self).__init__(id=id, **kwargs) 3982 self.storage_account_type = storage_account_type 3983 self.disk_encryption_set = disk_encryption_set 3984 3985 3986class NetworkInterfaceReference(SubResource): 3987 """Describes a network interface reference. 3988 3989 :param id: Resource Id. 3990 :type id: str 3991 :param primary: Specifies the primary network interface in case the virtual machine has more 3992 than 1 network interface. 3993 :type primary: bool 3994 """ 3995 3996 _attribute_map = { 3997 'id': {'key': 'id', 'type': 'str'}, 3998 'primary': {'key': 'properties.primary', 'type': 'bool'}, 3999 } 4000 4001 def __init__( 4002 self, 4003 *, 4004 id: Optional[str] = None, 4005 primary: Optional[bool] = None, 4006 **kwargs 4007 ): 4008 super(NetworkInterfaceReference, self).__init__(id=id, **kwargs) 4009 self.primary = primary 4010 4011 4012class NetworkProfile(msrest.serialization.Model): 4013 """Specifies the network interfaces of the virtual machine. 4014 4015 :param network_interfaces: Specifies the list of resource Ids for the network interfaces 4016 associated with the virtual machine. 4017 :type network_interfaces: 4018 list[~azure.mgmt.compute.v2020_12_01.models.NetworkInterfaceReference] 4019 """ 4020 4021 _attribute_map = { 4022 'network_interfaces': {'key': 'networkInterfaces', 'type': '[NetworkInterfaceReference]'}, 4023 } 4024 4025 def __init__( 4026 self, 4027 *, 4028 network_interfaces: Optional[List["NetworkInterfaceReference"]] = None, 4029 **kwargs 4030 ): 4031 super(NetworkProfile, self).__init__(**kwargs) 4032 self.network_interfaces = network_interfaces 4033 4034 4035class OrchestrationServiceStateInput(msrest.serialization.Model): 4036 """The input for OrchestrationServiceState. 4037 4038 All required parameters must be populated in order to send to Azure. 4039 4040 :param service_name: Required. The name of the service. Possible values include: 4041 "AutomaticRepairs", "DummyOrchestrationServiceName". 4042 :type service_name: str or ~azure.mgmt.compute.v2020_12_01.models.OrchestrationServiceNames 4043 :param action: Required. The action to be performed. Possible values include: "Resume", 4044 "Suspend". 4045 :type action: str or ~azure.mgmt.compute.v2020_12_01.models.OrchestrationServiceStateAction 4046 """ 4047 4048 _validation = { 4049 'service_name': {'required': True}, 4050 'action': {'required': True}, 4051 } 4052 4053 _attribute_map = { 4054 'service_name': {'key': 'serviceName', 'type': 'str'}, 4055 'action': {'key': 'action', 'type': 'str'}, 4056 } 4057 4058 def __init__( 4059 self, 4060 *, 4061 service_name: Union[str, "OrchestrationServiceNames"], 4062 action: Union[str, "OrchestrationServiceStateAction"], 4063 **kwargs 4064 ): 4065 super(OrchestrationServiceStateInput, self).__init__(**kwargs) 4066 self.service_name = service_name 4067 self.action = action 4068 4069 4070class OrchestrationServiceSummary(msrest.serialization.Model): 4071 """Summary for an orchestration service of a virtual machine scale set. 4072 4073 Variables are only populated by the server, and will be ignored when sending a request. 4074 4075 :ivar service_name: The name of the service. Possible values include: "AutomaticRepairs", 4076 "DummyOrchestrationServiceName". 4077 :vartype service_name: str or ~azure.mgmt.compute.v2020_12_01.models.OrchestrationServiceNames 4078 :ivar service_state: The current state of the service. Possible values include: "NotRunning", 4079 "Running", "Suspended". 4080 :vartype service_state: str or ~azure.mgmt.compute.v2020_12_01.models.OrchestrationServiceState 4081 """ 4082 4083 _validation = { 4084 'service_name': {'readonly': True}, 4085 'service_state': {'readonly': True}, 4086 } 4087 4088 _attribute_map = { 4089 'service_name': {'key': 'serviceName', 'type': 'str'}, 4090 'service_state': {'key': 'serviceState', 'type': 'str'}, 4091 } 4092 4093 def __init__( 4094 self, 4095 **kwargs 4096 ): 4097 super(OrchestrationServiceSummary, self).__init__(**kwargs) 4098 self.service_name = None 4099 self.service_state = None 4100 4101 4102class OSDisk(msrest.serialization.Model): 4103 """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>`_. 4104 4105 All required parameters must be populated in order to send to Azure. 4106 4107 :param os_type: This property allows you to specify the type of the OS that is included in the 4108 disk if creating a VM from user-image or a specialized VHD. :code:`<br>`:code:`<br>` Possible 4109 values are: :code:`<br>`:code:`<br>` **Windows** :code:`<br>`:code:`<br>` **Linux**. Possible 4110 values include: "Windows", "Linux". 4111 :type os_type: str or ~azure.mgmt.compute.v2020_12_01.models.OperatingSystemTypes 4112 :param encryption_settings: Specifies the encryption settings for the OS Disk. 4113 :code:`<br>`:code:`<br>` Minimum api-version: 2015-06-15. 4114 :type encryption_settings: ~azure.mgmt.compute.v2020_12_01.models.DiskEncryptionSettings 4115 :param name: The disk name. 4116 :type name: str 4117 :param vhd: The virtual hard disk. 4118 :type vhd: ~azure.mgmt.compute.v2020_12_01.models.VirtualHardDisk 4119 :param image: The source user image virtual hard disk. The virtual hard disk will be copied 4120 before being attached to the virtual machine. If SourceImage is provided, the destination 4121 virtual hard drive must not exist. 4122 :type image: ~azure.mgmt.compute.v2020_12_01.models.VirtualHardDisk 4123 :param caching: Specifies the caching requirements. :code:`<br>`:code:`<br>` Possible values 4124 are: :code:`<br>`:code:`<br>` **None** :code:`<br>`:code:`<br>` **ReadOnly** 4125 :code:`<br>`:code:`<br>` **ReadWrite** :code:`<br>`:code:`<br>` Default: **None** for Standard 4126 storage. **ReadOnly** for Premium storage. Possible values include: "None", "ReadOnly", 4127 "ReadWrite". 4128 :type caching: str or ~azure.mgmt.compute.v2020_12_01.models.CachingTypes 4129 :param write_accelerator_enabled: Specifies whether writeAccelerator should be enabled or 4130 disabled on the disk. 4131 :type write_accelerator_enabled: bool 4132 :param diff_disk_settings: Specifies the ephemeral Disk Settings for the operating system disk 4133 used by the virtual machine. 4134 :type diff_disk_settings: ~azure.mgmt.compute.v2020_12_01.models.DiffDiskSettings 4135 :param create_option: Required. Specifies how the virtual machine should be 4136 created.:code:`<br>`:code:`<br>` Possible values are::code:`<br>`:code:`<br>` **Attach** \u2013 4137 This value is used when you are using a specialized disk to create the virtual 4138 machine.:code:`<br>`:code:`<br>` **FromImage** \u2013 This value is used when you are using an 4139 image to create the virtual machine. If you are using a platform image, you also use the 4140 imageReference element described above. If you are using a marketplace image, you also use the 4141 plan element previously described. Possible values include: "FromImage", "Empty", "Attach". 4142 :type create_option: str or ~azure.mgmt.compute.v2020_12_01.models.DiskCreateOptionTypes 4143 :param disk_size_gb: Specifies the size of an empty data disk in gigabytes. This element can be 4144 used to overwrite the size of the disk in a virtual machine image. :code:`<br>`:code:`<br>` 4145 This value cannot be larger than 1023 GB. 4146 :type disk_size_gb: int 4147 :param managed_disk: The managed disk parameters. 4148 :type managed_disk: ~azure.mgmt.compute.v2020_12_01.models.ManagedDiskParameters 4149 """ 4150 4151 _validation = { 4152 'create_option': {'required': True}, 4153 } 4154 4155 _attribute_map = { 4156 'os_type': {'key': 'osType', 'type': 'str'}, 4157 'encryption_settings': {'key': 'encryptionSettings', 'type': 'DiskEncryptionSettings'}, 4158 'name': {'key': 'name', 'type': 'str'}, 4159 'vhd': {'key': 'vhd', 'type': 'VirtualHardDisk'}, 4160 'image': {'key': 'image', 'type': 'VirtualHardDisk'}, 4161 'caching': {'key': 'caching', 'type': 'str'}, 4162 'write_accelerator_enabled': {'key': 'writeAcceleratorEnabled', 'type': 'bool'}, 4163 'diff_disk_settings': {'key': 'diffDiskSettings', 'type': 'DiffDiskSettings'}, 4164 'create_option': {'key': 'createOption', 'type': 'str'}, 4165 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, 4166 'managed_disk': {'key': 'managedDisk', 'type': 'ManagedDiskParameters'}, 4167 } 4168 4169 def __init__( 4170 self, 4171 *, 4172 create_option: Union[str, "DiskCreateOptionTypes"], 4173 os_type: Optional[Union[str, "OperatingSystemTypes"]] = None, 4174 encryption_settings: Optional["DiskEncryptionSettings"] = None, 4175 name: Optional[str] = None, 4176 vhd: Optional["VirtualHardDisk"] = None, 4177 image: Optional["VirtualHardDisk"] = None, 4178 caching: Optional[Union[str, "CachingTypes"]] = None, 4179 write_accelerator_enabled: Optional[bool] = None, 4180 diff_disk_settings: Optional["DiffDiskSettings"] = None, 4181 disk_size_gb: Optional[int] = None, 4182 managed_disk: Optional["ManagedDiskParameters"] = None, 4183 **kwargs 4184 ): 4185 super(OSDisk, self).__init__(**kwargs) 4186 self.os_type = os_type 4187 self.encryption_settings = encryption_settings 4188 self.name = name 4189 self.vhd = vhd 4190 self.image = image 4191 self.caching = caching 4192 self.write_accelerator_enabled = write_accelerator_enabled 4193 self.diff_disk_settings = diff_disk_settings 4194 self.create_option = create_option 4195 self.disk_size_gb = disk_size_gb 4196 self.managed_disk = managed_disk 4197 4198 4199class OSDiskImage(msrest.serialization.Model): 4200 """Contains the os disk image information. 4201 4202 All required parameters must be populated in order to send to Azure. 4203 4204 :param operating_system: Required. The operating system of the osDiskImage. Possible values 4205 include: "Windows", "Linux". 4206 :type operating_system: str or ~azure.mgmt.compute.v2020_12_01.models.OperatingSystemTypes 4207 """ 4208 4209 _validation = { 4210 'operating_system': {'required': True}, 4211 } 4212 4213 _attribute_map = { 4214 'operating_system': {'key': 'operatingSystem', 'type': 'str'}, 4215 } 4216 4217 def __init__( 4218 self, 4219 *, 4220 operating_system: Union[str, "OperatingSystemTypes"], 4221 **kwargs 4222 ): 4223 super(OSDiskImage, self).__init__(**kwargs) 4224 self.operating_system = operating_system 4225 4226 4227class OSProfile(msrest.serialization.Model): 4228 """Specifies the operating system settings for the virtual machine. Some of the settings cannot be changed once VM is provisioned. 4229 4230 :param computer_name: Specifies the host OS name of the virtual machine. 4231 :code:`<br>`:code:`<br>` This name cannot be updated after the VM is created. 4232 :code:`<br>`:code:`<br>` **Max-length (Windows):** 15 characters :code:`<br>`:code:`<br>` 4233 **Max-length (Linux):** 64 characters. :code:`<br>`:code:`<br>` For naming conventions and 4234 restrictions see `Azure infrastructure services implementation guidelines 4235 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-infrastructure-subscription-accounts-guidelines?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#1-naming-conventions>`_. 4236 :type computer_name: str 4237 :param admin_username: Specifies the name of the administrator account. 4238 :code:`<br>`:code:`<br>` This property cannot be updated after the VM is created. 4239 :code:`<br>`:code:`<br>` **Windows-only restriction:** Cannot end in "." 4240 :code:`<br>`:code:`<br>` **Disallowed values:** "administrator", "admin", "user", "user1", 4241 "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", 4242 "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", 4243 "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". 4244 :code:`<br>`:code:`<br>` **Minimum-length (Linux):** 1 character :code:`<br>`:code:`<br>` 4245 **Max-length (Linux):** 64 characters :code:`<br>`:code:`<br>` **Max-length (Windows):** 20 4246 characters :code:`<br>`:code:`<br>`:code:`<li>` For root access to the Linux VM, see `Using 4247 root privileges on Linux virtual machines in Azure 4248 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_\ 4249 :code:`<br>`:code:`<li>` For a list of built-in system users on Linux that should not be used 4250 in this field, see `Selecting User Names for Linux on Azure 4251 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_. 4252 :type admin_username: str 4253 :param admin_password: Specifies the password of the administrator account. 4254 :code:`<br>`:code:`<br>` **Minimum-length (Windows):** 8 characters :code:`<br>`:code:`<br>` 4255 **Minimum-length (Linux):** 6 characters :code:`<br>`:code:`<br>` **Max-length (Windows):** 123 4256 characters :code:`<br>`:code:`<br>` **Max-length (Linux):** 72 characters 4257 :code:`<br>`:code:`<br>` **Complexity requirements:** 3 out of 4 conditions below need to be 4258 fulfilled :code:`<br>` Has lower characters :code:`<br>`Has upper characters :code:`<br>` Has a 4259 digit :code:`<br>` Has a special character (Regex match [\W_]) :code:`<br>`:code:`<br>` 4260 **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", 4261 "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" :code:`<br>`:code:`<br>` For 4262 resetting the password, see `How to reset the Remote Desktop service or its login password in a 4263 Windows VM 4264 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-reset-rdp?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_ 4265 :code:`<br>`:code:`<br>` For resetting root password, see `Manage users, SSH, and check or 4266 repair disks on Azure Linux VMs using the VMAccess Extension 4267 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-vmaccess-extension?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#reset-root-password>`_. 4268 :type admin_password: str 4269 :param custom_data: Specifies a base-64 encoded string of custom data. The base-64 encoded 4270 string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum 4271 length of the binary array is 65535 bytes. :code:`<br>`:code:`<br>` **Note: Do not pass any 4272 secrets or passwords in customData property** :code:`<br>`:code:`<br>` This property cannot be 4273 updated after the VM is created. :code:`<br>`:code:`<br>` customData is passed to the VM to be 4274 saved as a file, for more information see `Custom Data on Azure VMs 4275 <https://azure.microsoft.com/en-us/blog/custom-data-and-cloud-init-on-windows-azure/>`_ 4276 :code:`<br>`:code:`<br>` For using cloud-init for your Linux VM, see `Using cloud-init to 4277 customize a Linux VM during creation 4278 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_. 4279 :type custom_data: str 4280 :param windows_configuration: Specifies Windows operating system settings on the virtual 4281 machine. 4282 :type windows_configuration: ~azure.mgmt.compute.v2020_12_01.models.WindowsConfiguration 4283 :param linux_configuration: Specifies the Linux operating system settings on the virtual 4284 machine. :code:`<br>`:code:`<br>`For a list of supported Linux distributions, see `Linux on 4285 Azure-Endorsed Distributions 4286 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_ 4287 :code:`<br>`:code:`<br>` For running non-endorsed distributions, see `Information for 4288 Non-Endorsed Distributions 4289 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_. 4290 :type linux_configuration: ~azure.mgmt.compute.v2020_12_01.models.LinuxConfiguration 4291 :param secrets: Specifies set of certificates that should be installed onto the virtual 4292 machine. 4293 :type secrets: list[~azure.mgmt.compute.v2020_12_01.models.VaultSecretGroup] 4294 :param allow_extension_operations: Specifies whether extension operations should be allowed on 4295 the virtual machine. :code:`<br>`:code:`<br>`This may only be set to False when no extensions 4296 are present on the virtual machine. 4297 :type allow_extension_operations: bool 4298 :param require_guest_provision_signal: Specifies whether the guest provision signal is required 4299 to infer provision success of the virtual machine. **Note: This property is for private 4300 testing only, and all customers must not set the property to false.**. 4301 :type require_guest_provision_signal: bool 4302 """ 4303 4304 _attribute_map = { 4305 'computer_name': {'key': 'computerName', 'type': 'str'}, 4306 'admin_username': {'key': 'adminUsername', 'type': 'str'}, 4307 'admin_password': {'key': 'adminPassword', 'type': 'str'}, 4308 'custom_data': {'key': 'customData', 'type': 'str'}, 4309 'windows_configuration': {'key': 'windowsConfiguration', 'type': 'WindowsConfiguration'}, 4310 'linux_configuration': {'key': 'linuxConfiguration', 'type': 'LinuxConfiguration'}, 4311 'secrets': {'key': 'secrets', 'type': '[VaultSecretGroup]'}, 4312 'allow_extension_operations': {'key': 'allowExtensionOperations', 'type': 'bool'}, 4313 'require_guest_provision_signal': {'key': 'requireGuestProvisionSignal', 'type': 'bool'}, 4314 } 4315 4316 def __init__( 4317 self, 4318 *, 4319 computer_name: Optional[str] = None, 4320 admin_username: Optional[str] = None, 4321 admin_password: Optional[str] = None, 4322 custom_data: Optional[str] = None, 4323 windows_configuration: Optional["WindowsConfiguration"] = None, 4324 linux_configuration: Optional["LinuxConfiguration"] = None, 4325 secrets: Optional[List["VaultSecretGroup"]] = None, 4326 allow_extension_operations: Optional[bool] = None, 4327 require_guest_provision_signal: Optional[bool] = None, 4328 **kwargs 4329 ): 4330 super(OSProfile, self).__init__(**kwargs) 4331 self.computer_name = computer_name 4332 self.admin_username = admin_username 4333 self.admin_password = admin_password 4334 self.custom_data = custom_data 4335 self.windows_configuration = windows_configuration 4336 self.linux_configuration = linux_configuration 4337 self.secrets = secrets 4338 self.allow_extension_operations = allow_extension_operations 4339 self.require_guest_provision_signal = require_guest_provision_signal 4340 4341 4342class PatchInstallationDetail(msrest.serialization.Model): 4343 """Information about a specific patch that was encountered during an installation action. 4344 4345 Variables are only populated by the server, and will be ignored when sending a request. 4346 4347 :ivar patch_id: A unique identifier for the patch. 4348 :vartype patch_id: str 4349 :ivar name: The friendly name of the patch. 4350 :vartype name: str 4351 :ivar version: The version string of the package. It may conform to Semantic Versioning. Only 4352 applies to Linux. 4353 :vartype version: str 4354 :ivar kb_id: The KBID of the patch. Only applies to Windows patches. 4355 :vartype kb_id: str 4356 :ivar classifications: The classification(s) of the patch as provided by the patch publisher. 4357 :vartype classifications: list[str] 4358 :ivar installation_state: The state of the patch after the installation operation completed. 4359 Possible values include: "Unknown", "Installed", "Failed", "Excluded", "NotSelected", 4360 "Pending". 4361 :vartype installation_state: str or 4362 ~azure.mgmt.compute.v2020_12_01.models.PatchInstallationState 4363 """ 4364 4365 _validation = { 4366 'patch_id': {'readonly': True}, 4367 'name': {'readonly': True}, 4368 'version': {'readonly': True}, 4369 'kb_id': {'readonly': True}, 4370 'classifications': {'readonly': True}, 4371 'installation_state': {'readonly': True}, 4372 } 4373 4374 _attribute_map = { 4375 'patch_id': {'key': 'patchId', 'type': 'str'}, 4376 'name': {'key': 'name', 'type': 'str'}, 4377 'version': {'key': 'version', 'type': 'str'}, 4378 'kb_id': {'key': 'kbId', 'type': 'str'}, 4379 'classifications': {'key': 'classifications', 'type': '[str]'}, 4380 'installation_state': {'key': 'installationState', 'type': 'str'}, 4381 } 4382 4383 def __init__( 4384 self, 4385 **kwargs 4386 ): 4387 super(PatchInstallationDetail, self).__init__(**kwargs) 4388 self.patch_id = None 4389 self.name = None 4390 self.version = None 4391 self.kb_id = None 4392 self.classifications = None 4393 self.installation_state = None 4394 4395 4396class PatchSettings(msrest.serialization.Model): 4397 """Specifies settings related to VM Guest Patching on Windows. 4398 4399 :param patch_mode: Specifies the mode of VM Guest Patching to IaaS virtual machine.:code:`<br 4400 />`:code:`<br />` Possible values are::code:`<br />`:code:`<br />` **Manual** - You control 4401 the application of patches to a virtual machine. You do this by applying patches manually 4402 inside the VM. In this mode, automatic updates are disabled; the property 4403 WindowsConfiguration.enableAutomaticUpdates must be false:code:`<br />`:code:`<br />` 4404 **AutomaticByOS** - The virtual machine will automatically be updated by the OS. The property 4405 WindowsConfiguration.enableAutomaticUpdates must be true. :code:`<br />`:code:`<br />` 4406 **AutomaticByPlatform** - the virtual machine will automatically updated by the platform. The 4407 properties provisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true. 4408 Possible values include: "Manual", "AutomaticByOS", "AutomaticByPlatform". 4409 :type patch_mode: str or ~azure.mgmt.compute.v2020_12_01.models.WindowsVMGuestPatchMode 4410 :param enable_hotpatching: Enables customers to patch their Azure VMs without requiring a 4411 reboot. For enableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode' must 4412 be set to 'AutomaticByPlatform'. 4413 :type enable_hotpatching: bool 4414 """ 4415 4416 _attribute_map = { 4417 'patch_mode': {'key': 'patchMode', 'type': 'str'}, 4418 'enable_hotpatching': {'key': 'enableHotpatching', 'type': 'bool'}, 4419 } 4420 4421 def __init__( 4422 self, 4423 *, 4424 patch_mode: Optional[Union[str, "WindowsVMGuestPatchMode"]] = None, 4425 enable_hotpatching: Optional[bool] = None, 4426 **kwargs 4427 ): 4428 super(PatchSettings, self).__init__(**kwargs) 4429 self.patch_mode = patch_mode 4430 self.enable_hotpatching = enable_hotpatching 4431 4432 4433class Plan(msrest.serialization.Model): 4434 """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**. 4435 4436 :param name: The plan ID. 4437 :type name: str 4438 :param publisher: The publisher ID. 4439 :type publisher: str 4440 :param product: Specifies the product of the image from the marketplace. This is the same value 4441 as Offer under the imageReference element. 4442 :type product: str 4443 :param promotion_code: The promotion code. 4444 :type promotion_code: str 4445 """ 4446 4447 _attribute_map = { 4448 'name': {'key': 'name', 'type': 'str'}, 4449 'publisher': {'key': 'publisher', 'type': 'str'}, 4450 'product': {'key': 'product', 'type': 'str'}, 4451 'promotion_code': {'key': 'promotionCode', 'type': 'str'}, 4452 } 4453 4454 def __init__( 4455 self, 4456 *, 4457 name: Optional[str] = None, 4458 publisher: Optional[str] = None, 4459 product: Optional[str] = None, 4460 promotion_code: Optional[str] = None, 4461 **kwargs 4462 ): 4463 super(Plan, self).__init__(**kwargs) 4464 self.name = name 4465 self.publisher = publisher 4466 self.product = product 4467 self.promotion_code = promotion_code 4468 4469 4470class PrivateEndpoint(msrest.serialization.Model): 4471 """The Private Endpoint resource. 4472 4473 Variables are only populated by the server, and will be ignored when sending a request. 4474 4475 :ivar id: The ARM identifier for Private Endpoint. 4476 :vartype id: str 4477 """ 4478 4479 _validation = { 4480 'id': {'readonly': True}, 4481 } 4482 4483 _attribute_map = { 4484 'id': {'key': 'id', 'type': 'str'}, 4485 } 4486 4487 def __init__( 4488 self, 4489 **kwargs 4490 ): 4491 super(PrivateEndpoint, self).__init__(**kwargs) 4492 self.id = None 4493 4494 4495class PrivateEndpointConnection(msrest.serialization.Model): 4496 """The Private Endpoint Connection resource. 4497 4498 Variables are only populated by the server, and will be ignored when sending a request. 4499 4500 :ivar id: private endpoint connection Id. 4501 :vartype id: str 4502 :ivar name: private endpoint connection name. 4503 :vartype name: str 4504 :ivar type: private endpoint connection type. 4505 :vartype type: str 4506 :ivar private_endpoint: The resource of private end point. 4507 :vartype private_endpoint: ~azure.mgmt.compute.v2020_12_01.models.PrivateEndpoint 4508 :param private_link_service_connection_state: A collection of information about the state of 4509 the connection between DiskAccess and Virtual Network. 4510 :type private_link_service_connection_state: 4511 ~azure.mgmt.compute.v2020_12_01.models.PrivateLinkServiceConnectionState 4512 :ivar provisioning_state: The provisioning state of the private endpoint connection resource. 4513 Possible values include: "Succeeded", "Creating", "Deleting", "Failed". 4514 :vartype provisioning_state: str or 4515 ~azure.mgmt.compute.v2020_12_01.models.PrivateEndpointConnectionProvisioningState 4516 """ 4517 4518 _validation = { 4519 'id': {'readonly': True}, 4520 'name': {'readonly': True}, 4521 'type': {'readonly': True}, 4522 'private_endpoint': {'readonly': True}, 4523 'provisioning_state': {'readonly': True}, 4524 } 4525 4526 _attribute_map = { 4527 'id': {'key': 'id', 'type': 'str'}, 4528 'name': {'key': 'name', 'type': 'str'}, 4529 'type': {'key': 'type', 'type': 'str'}, 4530 'private_endpoint': {'key': 'properties.privateEndpoint', 'type': 'PrivateEndpoint'}, 4531 'private_link_service_connection_state': {'key': 'properties.privateLinkServiceConnectionState', 'type': 'PrivateLinkServiceConnectionState'}, 4532 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 4533 } 4534 4535 def __init__( 4536 self, 4537 *, 4538 private_link_service_connection_state: Optional["PrivateLinkServiceConnectionState"] = None, 4539 **kwargs 4540 ): 4541 super(PrivateEndpointConnection, self).__init__(**kwargs) 4542 self.id = None 4543 self.name = None 4544 self.type = None 4545 self.private_endpoint = None 4546 self.private_link_service_connection_state = private_link_service_connection_state 4547 self.provisioning_state = None 4548 4549 4550class PrivateEndpointConnectionListResult(msrest.serialization.Model): 4551 """A list of private link resources. 4552 4553 :param value: Array of private endpoint connections. 4554 :type value: list[~azure.mgmt.compute.v2020_12_01.models.PrivateEndpointConnection] 4555 :param next_link: The uri to fetch the next page of snapshots. Call ListNext() with this to 4556 fetch the next page of snapshots. 4557 :type next_link: str 4558 """ 4559 4560 _attribute_map = { 4561 'value': {'key': 'value', 'type': '[PrivateEndpointConnection]'}, 4562 'next_link': {'key': 'nextLink', 'type': 'str'}, 4563 } 4564 4565 def __init__( 4566 self, 4567 *, 4568 value: Optional[List["PrivateEndpointConnection"]] = None, 4569 next_link: Optional[str] = None, 4570 **kwargs 4571 ): 4572 super(PrivateEndpointConnectionListResult, self).__init__(**kwargs) 4573 self.value = value 4574 self.next_link = next_link 4575 4576 4577class PrivateLinkResource(msrest.serialization.Model): 4578 """A private link resource. 4579 4580 Variables are only populated by the server, and will be ignored when sending a request. 4581 4582 :ivar id: private link resource Id. 4583 :vartype id: str 4584 :ivar name: private link resource name. 4585 :vartype name: str 4586 :ivar type: private link resource type. 4587 :vartype type: str 4588 :ivar group_id: The private link resource group id. 4589 :vartype group_id: str 4590 :ivar required_members: The private link resource required member names. 4591 :vartype required_members: list[str] 4592 :param required_zone_names: The private link resource DNS zone name. 4593 :type required_zone_names: list[str] 4594 """ 4595 4596 _validation = { 4597 'id': {'readonly': True}, 4598 'name': {'readonly': True}, 4599 'type': {'readonly': True}, 4600 'group_id': {'readonly': True}, 4601 'required_members': {'readonly': True}, 4602 } 4603 4604 _attribute_map = { 4605 'id': {'key': 'id', 'type': 'str'}, 4606 'name': {'key': 'name', 'type': 'str'}, 4607 'type': {'key': 'type', 'type': 'str'}, 4608 'group_id': {'key': 'properties.groupId', 'type': 'str'}, 4609 'required_members': {'key': 'properties.requiredMembers', 'type': '[str]'}, 4610 'required_zone_names': {'key': 'properties.requiredZoneNames', 'type': '[str]'}, 4611 } 4612 4613 def __init__( 4614 self, 4615 *, 4616 required_zone_names: Optional[List[str]] = None, 4617 **kwargs 4618 ): 4619 super(PrivateLinkResource, self).__init__(**kwargs) 4620 self.id = None 4621 self.name = None 4622 self.type = None 4623 self.group_id = None 4624 self.required_members = None 4625 self.required_zone_names = required_zone_names 4626 4627 4628class PrivateLinkResourceListResult(msrest.serialization.Model): 4629 """A list of private link resources. 4630 4631 :param value: Array of private link resources. 4632 :type value: list[~azure.mgmt.compute.v2020_12_01.models.PrivateLinkResource] 4633 """ 4634 4635 _attribute_map = { 4636 'value': {'key': 'value', 'type': '[PrivateLinkResource]'}, 4637 } 4638 4639 def __init__( 4640 self, 4641 *, 4642 value: Optional[List["PrivateLinkResource"]] = None, 4643 **kwargs 4644 ): 4645 super(PrivateLinkResourceListResult, self).__init__(**kwargs) 4646 self.value = value 4647 4648 4649class PrivateLinkServiceConnectionState(msrest.serialization.Model): 4650 """A collection of information about the state of the connection between service consumer and provider. 4651 4652 :param status: Indicates whether the connection has been Approved/Rejected/Removed by the owner 4653 of the service. Possible values include: "Pending", "Approved", "Rejected". 4654 :type status: str or 4655 ~azure.mgmt.compute.v2020_12_01.models.PrivateEndpointServiceConnectionStatus 4656 :param description: The reason for approval/rejection of the connection. 4657 :type description: str 4658 :param actions_required: A message indicating if changes on the service provider require any 4659 updates on the consumer. 4660 :type actions_required: str 4661 """ 4662 4663 _attribute_map = { 4664 'status': {'key': 'status', 'type': 'str'}, 4665 'description': {'key': 'description', 'type': 'str'}, 4666 'actions_required': {'key': 'actionsRequired', 'type': 'str'}, 4667 } 4668 4669 def __init__( 4670 self, 4671 *, 4672 status: Optional[Union[str, "PrivateEndpointServiceConnectionStatus"]] = None, 4673 description: Optional[str] = None, 4674 actions_required: Optional[str] = None, 4675 **kwargs 4676 ): 4677 super(PrivateLinkServiceConnectionState, self).__init__(**kwargs) 4678 self.status = status 4679 self.description = description 4680 self.actions_required = actions_required 4681 4682 4683class PropertyUpdatesInProgress(msrest.serialization.Model): 4684 """Properties of the disk for which update is pending. 4685 4686 :param target_tier: The target performance tier of the disk if a tier change operation is in 4687 progress. 4688 :type target_tier: str 4689 """ 4690 4691 _attribute_map = { 4692 'target_tier': {'key': 'targetTier', 'type': 'str'}, 4693 } 4694 4695 def __init__( 4696 self, 4697 *, 4698 target_tier: Optional[str] = None, 4699 **kwargs 4700 ): 4701 super(PropertyUpdatesInProgress, self).__init__(**kwargs) 4702 self.target_tier = target_tier 4703 4704 4705class ProximityPlacementGroup(Resource): 4706 """Specifies information about the proximity placement group. 4707 4708 Variables are only populated by the server, and will be ignored when sending a request. 4709 4710 All required parameters must be populated in order to send to Azure. 4711 4712 :ivar id: Resource Id. 4713 :vartype id: str 4714 :ivar name: Resource name. 4715 :vartype name: str 4716 :ivar type: Resource type. 4717 :vartype type: str 4718 :param location: Required. Resource location. 4719 :type location: str 4720 :param tags: A set of tags. Resource tags. 4721 :type tags: dict[str, str] 4722 :param proximity_placement_group_type: Specifies the type of the proximity placement group. 4723 :code:`<br>`:code:`<br>` Possible values are: :code:`<br>`:code:`<br>` **Standard** : Co-locate 4724 resources within an Azure region or Availability Zone. :code:`<br>`:code:`<br>` **Ultra** : For 4725 future use. Possible values include: "Standard", "Ultra". 4726 :type proximity_placement_group_type: str or 4727 ~azure.mgmt.compute.v2020_12_01.models.ProximityPlacementGroupType 4728 :ivar virtual_machines: A list of references to all virtual machines in the proximity placement 4729 group. 4730 :vartype virtual_machines: 4731 list[~azure.mgmt.compute.v2020_12_01.models.SubResourceWithColocationStatus] 4732 :ivar virtual_machine_scale_sets: A list of references to all virtual machine scale sets in the 4733 proximity placement group. 4734 :vartype virtual_machine_scale_sets: 4735 list[~azure.mgmt.compute.v2020_12_01.models.SubResourceWithColocationStatus] 4736 :ivar availability_sets: A list of references to all availability sets in the proximity 4737 placement group. 4738 :vartype availability_sets: 4739 list[~azure.mgmt.compute.v2020_12_01.models.SubResourceWithColocationStatus] 4740 :param colocation_status: Describes colocation status of the Proximity Placement Group. 4741 :type colocation_status: ~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus 4742 """ 4743 4744 _validation = { 4745 'id': {'readonly': True}, 4746 'name': {'readonly': True}, 4747 'type': {'readonly': True}, 4748 'location': {'required': True}, 4749 'virtual_machines': {'readonly': True}, 4750 'virtual_machine_scale_sets': {'readonly': True}, 4751 'availability_sets': {'readonly': True}, 4752 } 4753 4754 _attribute_map = { 4755 'id': {'key': 'id', 'type': 'str'}, 4756 'name': {'key': 'name', 'type': 'str'}, 4757 'type': {'key': 'type', 'type': 'str'}, 4758 'location': {'key': 'location', 'type': 'str'}, 4759 'tags': {'key': 'tags', 'type': '{str}'}, 4760 'proximity_placement_group_type': {'key': 'properties.proximityPlacementGroupType', 'type': 'str'}, 4761 'virtual_machines': {'key': 'properties.virtualMachines', 'type': '[SubResourceWithColocationStatus]'}, 4762 'virtual_machine_scale_sets': {'key': 'properties.virtualMachineScaleSets', 'type': '[SubResourceWithColocationStatus]'}, 4763 'availability_sets': {'key': 'properties.availabilitySets', 'type': '[SubResourceWithColocationStatus]'}, 4764 'colocation_status': {'key': 'properties.colocationStatus', 'type': 'InstanceViewStatus'}, 4765 } 4766 4767 def __init__( 4768 self, 4769 *, 4770 location: str, 4771 tags: Optional[Dict[str, str]] = None, 4772 proximity_placement_group_type: Optional[Union[str, "ProximityPlacementGroupType"]] = None, 4773 colocation_status: Optional["InstanceViewStatus"] = None, 4774 **kwargs 4775 ): 4776 super(ProximityPlacementGroup, self).__init__(location=location, tags=tags, **kwargs) 4777 self.proximity_placement_group_type = proximity_placement_group_type 4778 self.virtual_machines = None 4779 self.virtual_machine_scale_sets = None 4780 self.availability_sets = None 4781 self.colocation_status = colocation_status 4782 4783 4784class ProximityPlacementGroupListResult(msrest.serialization.Model): 4785 """The List Proximity Placement Group operation response. 4786 4787 All required parameters must be populated in order to send to Azure. 4788 4789 :param value: Required. The list of proximity placement groups. 4790 :type value: list[~azure.mgmt.compute.v2020_12_01.models.ProximityPlacementGroup] 4791 :param next_link: The URI to fetch the next page of proximity placement groups. 4792 :type next_link: str 4793 """ 4794 4795 _validation = { 4796 'value': {'required': True}, 4797 } 4798 4799 _attribute_map = { 4800 'value': {'key': 'value', 'type': '[ProximityPlacementGroup]'}, 4801 'next_link': {'key': 'nextLink', 'type': 'str'}, 4802 } 4803 4804 def __init__( 4805 self, 4806 *, 4807 value: List["ProximityPlacementGroup"], 4808 next_link: Optional[str] = None, 4809 **kwargs 4810 ): 4811 super(ProximityPlacementGroupListResult, self).__init__(**kwargs) 4812 self.value = value 4813 self.next_link = next_link 4814 4815 4816class ProximityPlacementGroupUpdate(UpdateResource): 4817 """Specifies information about the proximity placement group. 4818 4819 :param tags: A set of tags. Resource tags. 4820 :type tags: dict[str, str] 4821 """ 4822 4823 _attribute_map = { 4824 'tags': {'key': 'tags', 'type': '{str}'}, 4825 } 4826 4827 def __init__( 4828 self, 4829 *, 4830 tags: Optional[Dict[str, str]] = None, 4831 **kwargs 4832 ): 4833 super(ProximityPlacementGroupUpdate, self).__init__(tags=tags, **kwargs) 4834 4835 4836class PurchasePlan(msrest.serialization.Model): 4837 """Used for establishing the purchase context of any 3rd Party artifact through MarketPlace. 4838 4839 All required parameters must be populated in order to send to Azure. 4840 4841 :param name: Required. The plan ID. 4842 :type name: str 4843 :param publisher: Required. The publisher ID. 4844 :type publisher: str 4845 :param product: Required. Specifies the product of the image from the marketplace. This is the 4846 same value as Offer under the imageReference element. 4847 :type product: str 4848 :param promotion_code: The Offer Promotion Code. 4849 :type promotion_code: str 4850 """ 4851 4852 _validation = { 4853 'name': {'required': True}, 4854 'publisher': {'required': True}, 4855 'product': {'required': True}, 4856 } 4857 4858 _attribute_map = { 4859 'name': {'key': 'name', 'type': 'str'}, 4860 'publisher': {'key': 'publisher', 'type': 'str'}, 4861 'product': {'key': 'product', 'type': 'str'}, 4862 'promotion_code': {'key': 'promotionCode', 'type': 'str'}, 4863 } 4864 4865 def __init__( 4866 self, 4867 *, 4868 name: str, 4869 publisher: str, 4870 product: str, 4871 promotion_code: Optional[str] = None, 4872 **kwargs 4873 ): 4874 super(PurchasePlan, self).__init__(**kwargs) 4875 self.name = name 4876 self.publisher = publisher 4877 self.product = product 4878 self.promotion_code = promotion_code 4879 4880 4881class PurchasePlanAutoGenerated(msrest.serialization.Model): 4882 """Used for establishing the purchase context of any 3rd Party artifact through MarketPlace. 4883 4884 All required parameters must be populated in order to send to Azure. 4885 4886 :param publisher: Required. The publisher ID. 4887 :type publisher: str 4888 :param name: Required. The plan ID. 4889 :type name: str 4890 :param product: Required. Specifies the product of the image from the marketplace. This is the 4891 same value as Offer under the imageReference element. 4892 :type product: str 4893 """ 4894 4895 _validation = { 4896 'publisher': {'required': True}, 4897 'name': {'required': True}, 4898 'product': {'required': True}, 4899 } 4900 4901 _attribute_map = { 4902 'publisher': {'key': 'publisher', 'type': 'str'}, 4903 'name': {'key': 'name', 'type': 'str'}, 4904 'product': {'key': 'product', 'type': 'str'}, 4905 } 4906 4907 def __init__( 4908 self, 4909 *, 4910 publisher: str, 4911 name: str, 4912 product: str, 4913 **kwargs 4914 ): 4915 super(PurchasePlanAutoGenerated, self).__init__(**kwargs) 4916 self.publisher = publisher 4917 self.name = name 4918 self.product = product 4919 4920 4921class RecoveryWalkResponse(msrest.serialization.Model): 4922 """Response after calling a manual recovery walk. 4923 4924 Variables are only populated by the server, and will be ignored when sending a request. 4925 4926 :ivar walk_performed: Whether the recovery walk was performed. 4927 :vartype walk_performed: bool 4928 :ivar next_platform_update_domain: The next update domain that needs to be walked. Null means 4929 walk spanning all update domains has been completed. 4930 :vartype next_platform_update_domain: int 4931 """ 4932 4933 _validation = { 4934 'walk_performed': {'readonly': True}, 4935 'next_platform_update_domain': {'readonly': True}, 4936 } 4937 4938 _attribute_map = { 4939 'walk_performed': {'key': 'walkPerformed', 'type': 'bool'}, 4940 'next_platform_update_domain': {'key': 'nextPlatformUpdateDomain', 'type': 'int'}, 4941 } 4942 4943 def __init__( 4944 self, 4945 **kwargs 4946 ): 4947 super(RecoveryWalkResponse, self).__init__(**kwargs) 4948 self.walk_performed = None 4949 self.next_platform_update_domain = None 4950 4951 4952class RequestRateByIntervalInput(LogAnalyticsInputBase): 4953 """Api request input for LogAnalytics getRequestRateByInterval Api. 4954 4955 All required parameters must be populated in order to send to Azure. 4956 4957 :param blob_container_sas_uri: Required. SAS Uri of the logging blob container to which 4958 LogAnalytics Api writes output logs to. 4959 :type blob_container_sas_uri: str 4960 :param from_time: Required. From time of the query. 4961 :type from_time: ~datetime.datetime 4962 :param to_time: Required. To time of the query. 4963 :type to_time: ~datetime.datetime 4964 :param group_by_throttle_policy: Group query result by Throttle Policy applied. 4965 :type group_by_throttle_policy: bool 4966 :param group_by_operation_name: Group query result by Operation Name. 4967 :type group_by_operation_name: bool 4968 :param group_by_resource_name: Group query result by Resource Name. 4969 :type group_by_resource_name: bool 4970 :param group_by_client_application_id: Group query result by Client Application ID. 4971 :type group_by_client_application_id: bool 4972 :param group_by_user_agent: Group query result by User Agent. 4973 :type group_by_user_agent: bool 4974 :param interval_length: Required. Interval value in minutes used to create LogAnalytics call 4975 rate logs. Possible values include: "ThreeMins", "FiveMins", "ThirtyMins", "SixtyMins". 4976 :type interval_length: str or ~azure.mgmt.compute.v2020_12_01.models.IntervalInMins 4977 """ 4978 4979 _validation = { 4980 'blob_container_sas_uri': {'required': True}, 4981 'from_time': {'required': True}, 4982 'to_time': {'required': True}, 4983 'interval_length': {'required': True}, 4984 } 4985 4986 _attribute_map = { 4987 'blob_container_sas_uri': {'key': 'blobContainerSasUri', 'type': 'str'}, 4988 'from_time': {'key': 'fromTime', 'type': 'iso-8601'}, 4989 'to_time': {'key': 'toTime', 'type': 'iso-8601'}, 4990 'group_by_throttle_policy': {'key': 'groupByThrottlePolicy', 'type': 'bool'}, 4991 'group_by_operation_name': {'key': 'groupByOperationName', 'type': 'bool'}, 4992 'group_by_resource_name': {'key': 'groupByResourceName', 'type': 'bool'}, 4993 'group_by_client_application_id': {'key': 'groupByClientApplicationId', 'type': 'bool'}, 4994 'group_by_user_agent': {'key': 'groupByUserAgent', 'type': 'bool'}, 4995 'interval_length': {'key': 'intervalLength', 'type': 'str'}, 4996 } 4997 4998 def __init__( 4999 self, 5000 *, 5001 blob_container_sas_uri: str, 5002 from_time: datetime.datetime, 5003 to_time: datetime.datetime, 5004 interval_length: Union[str, "IntervalInMins"], 5005 group_by_throttle_policy: Optional[bool] = None, 5006 group_by_operation_name: Optional[bool] = None, 5007 group_by_resource_name: Optional[bool] = None, 5008 group_by_client_application_id: Optional[bool] = None, 5009 group_by_user_agent: Optional[bool] = None, 5010 **kwargs 5011 ): 5012 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, group_by_client_application_id=group_by_client_application_id, group_by_user_agent=group_by_user_agent, **kwargs) 5013 self.interval_length = interval_length 5014 5015 5016class ResourceUriList(msrest.serialization.Model): 5017 """The List resources which are encrypted with the disk encryption set. 5018 5019 All required parameters must be populated in order to send to Azure. 5020 5021 :param value: Required. A list of IDs or Owner IDs of resources which are encrypted with the 5022 disk encryption set. 5023 :type value: list[str] 5024 :param next_link: The uri to fetch the next page of encrypted resources. Call ListNext() with 5025 this to fetch the next page of encrypted resources. 5026 :type next_link: str 5027 """ 5028 5029 _validation = { 5030 'value': {'required': True}, 5031 } 5032 5033 _attribute_map = { 5034 'value': {'key': 'value', 'type': '[str]'}, 5035 'next_link': {'key': 'nextLink', 'type': 'str'}, 5036 } 5037 5038 def __init__( 5039 self, 5040 *, 5041 value: List[str], 5042 next_link: Optional[str] = None, 5043 **kwargs 5044 ): 5045 super(ResourceUriList, self).__init__(**kwargs) 5046 self.value = value 5047 self.next_link = next_link 5048 5049 5050class RetrieveBootDiagnosticsDataResult(msrest.serialization.Model): 5051 """The SAS URIs of the console screenshot and serial log blobs. 5052 5053 Variables are only populated by the server, and will be ignored when sending a request. 5054 5055 :ivar console_screenshot_blob_uri: The console screenshot blob URI. 5056 :vartype console_screenshot_blob_uri: str 5057 :ivar serial_console_log_blob_uri: The serial console log blob URI. 5058 :vartype serial_console_log_blob_uri: str 5059 """ 5060 5061 _validation = { 5062 'console_screenshot_blob_uri': {'readonly': True}, 5063 'serial_console_log_blob_uri': {'readonly': True}, 5064 } 5065 5066 _attribute_map = { 5067 'console_screenshot_blob_uri': {'key': 'consoleScreenshotBlobUri', 'type': 'str'}, 5068 'serial_console_log_blob_uri': {'key': 'serialConsoleLogBlobUri', 'type': 'str'}, 5069 } 5070 5071 def __init__( 5072 self, 5073 **kwargs 5074 ): 5075 super(RetrieveBootDiagnosticsDataResult, self).__init__(**kwargs) 5076 self.console_screenshot_blob_uri = None 5077 self.serial_console_log_blob_uri = None 5078 5079 5080class RollbackStatusInfo(msrest.serialization.Model): 5081 """Information about rollback on failed VM instances after a OS Upgrade operation. 5082 5083 Variables are only populated by the server, and will be ignored when sending a request. 5084 5085 :ivar successfully_rolledback_instance_count: The number of instances which have been 5086 successfully rolled back. 5087 :vartype successfully_rolledback_instance_count: int 5088 :ivar failed_rolledback_instance_count: The number of instances which failed to rollback. 5089 :vartype failed_rolledback_instance_count: int 5090 :ivar rollback_error: Error details if OS rollback failed. 5091 :vartype rollback_error: ~azure.mgmt.compute.v2020_12_01.models.ApiError 5092 """ 5093 5094 _validation = { 5095 'successfully_rolledback_instance_count': {'readonly': True}, 5096 'failed_rolledback_instance_count': {'readonly': True}, 5097 'rollback_error': {'readonly': True}, 5098 } 5099 5100 _attribute_map = { 5101 'successfully_rolledback_instance_count': {'key': 'successfullyRolledbackInstanceCount', 'type': 'int'}, 5102 'failed_rolledback_instance_count': {'key': 'failedRolledbackInstanceCount', 'type': 'int'}, 5103 'rollback_error': {'key': 'rollbackError', 'type': 'ApiError'}, 5104 } 5105 5106 def __init__( 5107 self, 5108 **kwargs 5109 ): 5110 super(RollbackStatusInfo, self).__init__(**kwargs) 5111 self.successfully_rolledback_instance_count = None 5112 self.failed_rolledback_instance_count = None 5113 self.rollback_error = None 5114 5115 5116class RollingUpgradePolicy(msrest.serialization.Model): 5117 """The configuration parameters used while performing a rolling upgrade. 5118 5119 :param max_batch_instance_percent: The maximum percent of total virtual machine instances that 5120 will be upgraded simultaneously by the rolling upgrade in one batch. As this is a maximum, 5121 unhealthy instances in previous or future batches can cause the percentage of instances in a 5122 batch to decrease to ensure higher reliability. The default value for this parameter is 20%. 5123 :type max_batch_instance_percent: int 5124 :param max_unhealthy_instance_percent: The maximum percentage of the total virtual machine 5125 instances in the scale set that can be simultaneously unhealthy, either as a result of being 5126 upgraded, or by being found in an unhealthy state by the virtual machine health checks before 5127 the rolling upgrade aborts. This constraint will be checked prior to starting any batch. The 5128 default value for this parameter is 20%. 5129 :type max_unhealthy_instance_percent: int 5130 :param max_unhealthy_upgraded_instance_percent: The maximum percentage of upgraded virtual 5131 machine instances that can be found to be in an unhealthy state. This check will happen after 5132 each batch is upgraded. If this percentage is ever exceeded, the rolling update aborts. The 5133 default value for this parameter is 20%. 5134 :type max_unhealthy_upgraded_instance_percent: int 5135 :param pause_time_between_batches: The wait time between completing the update for all virtual 5136 machines in one batch and starting the next batch. The time duration should be specified in ISO 5137 8601 format. The default value is 0 seconds (PT0S). 5138 :type pause_time_between_batches: str 5139 :param enable_cross_zone_upgrade: Allow VMSS to ignore AZ boundaries when constructing upgrade 5140 batches. Take into consideration the Update Domain and maxBatchInstancePercent to determine the 5141 batch size. 5142 :type enable_cross_zone_upgrade: bool 5143 :param prioritize_unhealthy_instances: Upgrade all unhealthy instances in a scale set before 5144 any healthy instances. 5145 :type prioritize_unhealthy_instances: bool 5146 """ 5147 5148 _validation = { 5149 'max_batch_instance_percent': {'maximum': 100, 'minimum': 5}, 5150 'max_unhealthy_instance_percent': {'maximum': 100, 'minimum': 5}, 5151 'max_unhealthy_upgraded_instance_percent': {'maximum': 100, 'minimum': 0}, 5152 } 5153 5154 _attribute_map = { 5155 'max_batch_instance_percent': {'key': 'maxBatchInstancePercent', 'type': 'int'}, 5156 'max_unhealthy_instance_percent': {'key': 'maxUnhealthyInstancePercent', 'type': 'int'}, 5157 'max_unhealthy_upgraded_instance_percent': {'key': 'maxUnhealthyUpgradedInstancePercent', 'type': 'int'}, 5158 'pause_time_between_batches': {'key': 'pauseTimeBetweenBatches', 'type': 'str'}, 5159 'enable_cross_zone_upgrade': {'key': 'enableCrossZoneUpgrade', 'type': 'bool'}, 5160 'prioritize_unhealthy_instances': {'key': 'prioritizeUnhealthyInstances', 'type': 'bool'}, 5161 } 5162 5163 def __init__( 5164 self, 5165 *, 5166 max_batch_instance_percent: Optional[int] = None, 5167 max_unhealthy_instance_percent: Optional[int] = None, 5168 max_unhealthy_upgraded_instance_percent: Optional[int] = None, 5169 pause_time_between_batches: Optional[str] = None, 5170 enable_cross_zone_upgrade: Optional[bool] = None, 5171 prioritize_unhealthy_instances: Optional[bool] = None, 5172 **kwargs 5173 ): 5174 super(RollingUpgradePolicy, self).__init__(**kwargs) 5175 self.max_batch_instance_percent = max_batch_instance_percent 5176 self.max_unhealthy_instance_percent = max_unhealthy_instance_percent 5177 self.max_unhealthy_upgraded_instance_percent = max_unhealthy_upgraded_instance_percent 5178 self.pause_time_between_batches = pause_time_between_batches 5179 self.enable_cross_zone_upgrade = enable_cross_zone_upgrade 5180 self.prioritize_unhealthy_instances = prioritize_unhealthy_instances 5181 5182 5183class RollingUpgradeProgressInfo(msrest.serialization.Model): 5184 """Information about the number of virtual machine instances in each upgrade state. 5185 5186 Variables are only populated by the server, and will be ignored when sending a request. 5187 5188 :ivar successful_instance_count: The number of instances that have been successfully upgraded. 5189 :vartype successful_instance_count: int 5190 :ivar failed_instance_count: The number of instances that have failed to be upgraded 5191 successfully. 5192 :vartype failed_instance_count: int 5193 :ivar in_progress_instance_count: The number of instances that are currently being upgraded. 5194 :vartype in_progress_instance_count: int 5195 :ivar pending_instance_count: The number of instances that have not yet begun to be upgraded. 5196 :vartype pending_instance_count: int 5197 """ 5198 5199 _validation = { 5200 'successful_instance_count': {'readonly': True}, 5201 'failed_instance_count': {'readonly': True}, 5202 'in_progress_instance_count': {'readonly': True}, 5203 'pending_instance_count': {'readonly': True}, 5204 } 5205 5206 _attribute_map = { 5207 'successful_instance_count': {'key': 'successfulInstanceCount', 'type': 'int'}, 5208 'failed_instance_count': {'key': 'failedInstanceCount', 'type': 'int'}, 5209 'in_progress_instance_count': {'key': 'inProgressInstanceCount', 'type': 'int'}, 5210 'pending_instance_count': {'key': 'pendingInstanceCount', 'type': 'int'}, 5211 } 5212 5213 def __init__( 5214 self, 5215 **kwargs 5216 ): 5217 super(RollingUpgradeProgressInfo, self).__init__(**kwargs) 5218 self.successful_instance_count = None 5219 self.failed_instance_count = None 5220 self.in_progress_instance_count = None 5221 self.pending_instance_count = None 5222 5223 5224class RollingUpgradeRunningStatus(msrest.serialization.Model): 5225 """Information about the current running state of the overall upgrade. 5226 5227 Variables are only populated by the server, and will be ignored when sending a request. 5228 5229 :ivar code: Code indicating the current status of the upgrade. Possible values include: 5230 "RollingForward", "Cancelled", "Completed", "Faulted". 5231 :vartype code: str or ~azure.mgmt.compute.v2020_12_01.models.RollingUpgradeStatusCode 5232 :ivar start_time: Start time of the upgrade. 5233 :vartype start_time: ~datetime.datetime 5234 :ivar last_action: The last action performed on the rolling upgrade. Possible values include: 5235 "Start", "Cancel". 5236 :vartype last_action: str or ~azure.mgmt.compute.v2020_12_01.models.RollingUpgradeActionType 5237 :ivar last_action_time: Last action time of the upgrade. 5238 :vartype last_action_time: ~datetime.datetime 5239 """ 5240 5241 _validation = { 5242 'code': {'readonly': True}, 5243 'start_time': {'readonly': True}, 5244 'last_action': {'readonly': True}, 5245 'last_action_time': {'readonly': True}, 5246 } 5247 5248 _attribute_map = { 5249 'code': {'key': 'code', 'type': 'str'}, 5250 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, 5251 'last_action': {'key': 'lastAction', 'type': 'str'}, 5252 'last_action_time': {'key': 'lastActionTime', 'type': 'iso-8601'}, 5253 } 5254 5255 def __init__( 5256 self, 5257 **kwargs 5258 ): 5259 super(RollingUpgradeRunningStatus, self).__init__(**kwargs) 5260 self.code = None 5261 self.start_time = None 5262 self.last_action = None 5263 self.last_action_time = None 5264 5265 5266class RollingUpgradeStatusInfo(Resource): 5267 """The status of the latest virtual machine scale set rolling upgrade. 5268 5269 Variables are only populated by the server, and will be ignored when sending a request. 5270 5271 All required parameters must be populated in order to send to Azure. 5272 5273 :ivar id: Resource Id. 5274 :vartype id: str 5275 :ivar name: Resource name. 5276 :vartype name: str 5277 :ivar type: Resource type. 5278 :vartype type: str 5279 :param location: Required. Resource location. 5280 :type location: str 5281 :param tags: A set of tags. Resource tags. 5282 :type tags: dict[str, str] 5283 :ivar policy: The rolling upgrade policies applied for this upgrade. 5284 :vartype policy: ~azure.mgmt.compute.v2020_12_01.models.RollingUpgradePolicy 5285 :ivar running_status: Information about the current running state of the overall upgrade. 5286 :vartype running_status: ~azure.mgmt.compute.v2020_12_01.models.RollingUpgradeRunningStatus 5287 :ivar progress: Information about the number of virtual machine instances in each upgrade 5288 state. 5289 :vartype progress: ~azure.mgmt.compute.v2020_12_01.models.RollingUpgradeProgressInfo 5290 :ivar error: Error details for this upgrade, if there are any. 5291 :vartype error: ~azure.mgmt.compute.v2020_12_01.models.ApiError 5292 """ 5293 5294 _validation = { 5295 'id': {'readonly': True}, 5296 'name': {'readonly': True}, 5297 'type': {'readonly': True}, 5298 'location': {'required': True}, 5299 'policy': {'readonly': True}, 5300 'running_status': {'readonly': True}, 5301 'progress': {'readonly': True}, 5302 'error': {'readonly': True}, 5303 } 5304 5305 _attribute_map = { 5306 'id': {'key': 'id', 'type': 'str'}, 5307 'name': {'key': 'name', 'type': 'str'}, 5308 'type': {'key': 'type', 'type': 'str'}, 5309 'location': {'key': 'location', 'type': 'str'}, 5310 'tags': {'key': 'tags', 'type': '{str}'}, 5311 'policy': {'key': 'properties.policy', 'type': 'RollingUpgradePolicy'}, 5312 'running_status': {'key': 'properties.runningStatus', 'type': 'RollingUpgradeRunningStatus'}, 5313 'progress': {'key': 'properties.progress', 'type': 'RollingUpgradeProgressInfo'}, 5314 'error': {'key': 'properties.error', 'type': 'ApiError'}, 5315 } 5316 5317 def __init__( 5318 self, 5319 *, 5320 location: str, 5321 tags: Optional[Dict[str, str]] = None, 5322 **kwargs 5323 ): 5324 super(RollingUpgradeStatusInfo, self).__init__(location=location, tags=tags, **kwargs) 5325 self.policy = None 5326 self.running_status = None 5327 self.progress = None 5328 self.error = None 5329 5330 5331class RunCommandDocumentBase(msrest.serialization.Model): 5332 """Describes the properties of a Run Command metadata. 5333 5334 All required parameters must be populated in order to send to Azure. 5335 5336 :param schema: Required. The VM run command schema. 5337 :type schema: str 5338 :param id: Required. The VM run command id. 5339 :type id: str 5340 :param os_type: Required. The Operating System type. Possible values include: "Windows", 5341 "Linux". 5342 :type os_type: str or ~azure.mgmt.compute.v2020_12_01.models.OperatingSystemTypes 5343 :param label: Required. The VM run command label. 5344 :type label: str 5345 :param description: Required. The VM run command description. 5346 :type description: str 5347 """ 5348 5349 _validation = { 5350 'schema': {'required': True}, 5351 'id': {'required': True}, 5352 'os_type': {'required': True}, 5353 'label': {'required': True}, 5354 'description': {'required': True}, 5355 } 5356 5357 _attribute_map = { 5358 'schema': {'key': '$schema', 'type': 'str'}, 5359 'id': {'key': 'id', 'type': 'str'}, 5360 'os_type': {'key': 'osType', 'type': 'str'}, 5361 'label': {'key': 'label', 'type': 'str'}, 5362 'description': {'key': 'description', 'type': 'str'}, 5363 } 5364 5365 def __init__( 5366 self, 5367 *, 5368 schema: str, 5369 id: str, 5370 os_type: Union[str, "OperatingSystemTypes"], 5371 label: str, 5372 description: str, 5373 **kwargs 5374 ): 5375 super(RunCommandDocumentBase, self).__init__(**kwargs) 5376 self.schema = schema 5377 self.id = id 5378 self.os_type = os_type 5379 self.label = label 5380 self.description = description 5381 5382 5383class RunCommandDocument(RunCommandDocumentBase): 5384 """Describes the properties of a Run Command. 5385 5386 All required parameters must be populated in order to send to Azure. 5387 5388 :param schema: Required. The VM run command schema. 5389 :type schema: str 5390 :param id: Required. The VM run command id. 5391 :type id: str 5392 :param os_type: Required. The Operating System type. Possible values include: "Windows", 5393 "Linux". 5394 :type os_type: str or ~azure.mgmt.compute.v2020_12_01.models.OperatingSystemTypes 5395 :param label: Required. The VM run command label. 5396 :type label: str 5397 :param description: Required. The VM run command description. 5398 :type description: str 5399 :param script: Required. The script to be executed. 5400 :type script: list[str] 5401 :param parameters: The parameters used by the script. 5402 :type parameters: list[~azure.mgmt.compute.v2020_12_01.models.RunCommandParameterDefinition] 5403 """ 5404 5405 _validation = { 5406 'schema': {'required': True}, 5407 'id': {'required': True}, 5408 'os_type': {'required': True}, 5409 'label': {'required': True}, 5410 'description': {'required': True}, 5411 'script': {'required': True}, 5412 } 5413 5414 _attribute_map = { 5415 'schema': {'key': '$schema', 'type': 'str'}, 5416 'id': {'key': 'id', 'type': 'str'}, 5417 'os_type': {'key': 'osType', 'type': 'str'}, 5418 'label': {'key': 'label', 'type': 'str'}, 5419 'description': {'key': 'description', 'type': 'str'}, 5420 'script': {'key': 'script', 'type': '[str]'}, 5421 'parameters': {'key': 'parameters', 'type': '[RunCommandParameterDefinition]'}, 5422 } 5423 5424 def __init__( 5425 self, 5426 *, 5427 schema: str, 5428 id: str, 5429 os_type: Union[str, "OperatingSystemTypes"], 5430 label: str, 5431 description: str, 5432 script: List[str], 5433 parameters: Optional[List["RunCommandParameterDefinition"]] = None, 5434 **kwargs 5435 ): 5436 super(RunCommandDocument, self).__init__(schema=schema, id=id, os_type=os_type, label=label, description=description, **kwargs) 5437 self.script = script 5438 self.parameters = parameters 5439 5440 5441class RunCommandInput(msrest.serialization.Model): 5442 """Capture Virtual Machine parameters. 5443 5444 All required parameters must be populated in order to send to Azure. 5445 5446 :param command_id: Required. The run command id. 5447 :type command_id: str 5448 :param script: Optional. The script to be executed. When this value is given, the given script 5449 will override the default script of the command. 5450 :type script: list[str] 5451 :param parameters: The run command parameters. 5452 :type parameters: list[~azure.mgmt.compute.v2020_12_01.models.RunCommandInputParameter] 5453 """ 5454 5455 _validation = { 5456 'command_id': {'required': True}, 5457 } 5458 5459 _attribute_map = { 5460 'command_id': {'key': 'commandId', 'type': 'str'}, 5461 'script': {'key': 'script', 'type': '[str]'}, 5462 'parameters': {'key': 'parameters', 'type': '[RunCommandInputParameter]'}, 5463 } 5464 5465 def __init__( 5466 self, 5467 *, 5468 command_id: str, 5469 script: Optional[List[str]] = None, 5470 parameters: Optional[List["RunCommandInputParameter"]] = None, 5471 **kwargs 5472 ): 5473 super(RunCommandInput, self).__init__(**kwargs) 5474 self.command_id = command_id 5475 self.script = script 5476 self.parameters = parameters 5477 5478 5479class RunCommandInputParameter(msrest.serialization.Model): 5480 """Describes the properties of a run command parameter. 5481 5482 All required parameters must be populated in order to send to Azure. 5483 5484 :param name: Required. The run command parameter name. 5485 :type name: str 5486 :param value: Required. The run command parameter value. 5487 :type value: str 5488 """ 5489 5490 _validation = { 5491 'name': {'required': True}, 5492 'value': {'required': True}, 5493 } 5494 5495 _attribute_map = { 5496 'name': {'key': 'name', 'type': 'str'}, 5497 'value': {'key': 'value', 'type': 'str'}, 5498 } 5499 5500 def __init__( 5501 self, 5502 *, 5503 name: str, 5504 value: str, 5505 **kwargs 5506 ): 5507 super(RunCommandInputParameter, self).__init__(**kwargs) 5508 self.name = name 5509 self.value = value 5510 5511 5512class RunCommandListResult(msrest.serialization.Model): 5513 """The List Virtual Machine operation response. 5514 5515 All required parameters must be populated in order to send to Azure. 5516 5517 :param value: Required. The list of virtual machine run commands. 5518 :type value: list[~azure.mgmt.compute.v2020_12_01.models.RunCommandDocumentBase] 5519 :param next_link: The uri to fetch the next page of run commands. Call ListNext() with this to 5520 fetch the next page of run commands. 5521 :type next_link: str 5522 """ 5523 5524 _validation = { 5525 'value': {'required': True}, 5526 } 5527 5528 _attribute_map = { 5529 'value': {'key': 'value', 'type': '[RunCommandDocumentBase]'}, 5530 'next_link': {'key': 'nextLink', 'type': 'str'}, 5531 } 5532 5533 def __init__( 5534 self, 5535 *, 5536 value: List["RunCommandDocumentBase"], 5537 next_link: Optional[str] = None, 5538 **kwargs 5539 ): 5540 super(RunCommandListResult, self).__init__(**kwargs) 5541 self.value = value 5542 self.next_link = next_link 5543 5544 5545class RunCommandParameterDefinition(msrest.serialization.Model): 5546 """Describes the properties of a run command parameter. 5547 5548 All required parameters must be populated in order to send to Azure. 5549 5550 :param name: Required. The run command parameter name. 5551 :type name: str 5552 :param type: Required. The run command parameter type. 5553 :type type: str 5554 :param default_value: The run command parameter default value. 5555 :type default_value: str 5556 :param required: The run command parameter required. 5557 :type required: bool 5558 """ 5559 5560 _validation = { 5561 'name': {'required': True}, 5562 'type': {'required': True}, 5563 } 5564 5565 _attribute_map = { 5566 'name': {'key': 'name', 'type': 'str'}, 5567 'type': {'key': 'type', 'type': 'str'}, 5568 'default_value': {'key': 'defaultValue', 'type': 'str'}, 5569 'required': {'key': 'required', 'type': 'bool'}, 5570 } 5571 5572 def __init__( 5573 self, 5574 *, 5575 name: str, 5576 type: str, 5577 default_value: Optional[str] = None, 5578 required: Optional[bool] = False, 5579 **kwargs 5580 ): 5581 super(RunCommandParameterDefinition, self).__init__(**kwargs) 5582 self.name = name 5583 self.type = type 5584 self.default_value = default_value 5585 self.required = required 5586 5587 5588class RunCommandResult(msrest.serialization.Model): 5589 """RunCommandResult. 5590 5591 :param value: Run command operation response. 5592 :type value: list[~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus] 5593 """ 5594 5595 _attribute_map = { 5596 'value': {'key': 'value', 'type': '[InstanceViewStatus]'}, 5597 } 5598 5599 def __init__( 5600 self, 5601 *, 5602 value: Optional[List["InstanceViewStatus"]] = None, 5603 **kwargs 5604 ): 5605 super(RunCommandResult, self).__init__(**kwargs) 5606 self.value = value 5607 5608 5609class ScaleInPolicy(msrest.serialization.Model): 5610 """Describes a scale-in policy for a virtual machine scale set. 5611 5612 :param rules: The rules to be followed when scaling-in a virtual machine scale set. 5613 :code:`<br>`:code:`<br>` Possible values are: :code:`<br>`:code:`<br>` **Default** When a 5614 virtual machine scale set is scaled in, the scale set will first be balanced across zones if it 5615 is a zonal scale set. Then, it will be balanced across Fault Domains as far as possible. Within 5616 each Fault Domain, the virtual machines chosen for removal will be the newest ones that are not 5617 protected from scale-in. :code:`<br>`:code:`<br>` **OldestVM** When a virtual machine scale set 5618 is being scaled-in, the oldest virtual machines that are not protected from scale-in will be 5619 chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced 5620 across zones. Within each zone, the oldest virtual machines that are not protected will be 5621 chosen for removal. :code:`<br>`:code:`<br>` **NewestVM** When a virtual machine scale set is 5622 being scaled-in, the newest virtual machines that are not protected from scale-in will be 5623 chosen for removal. For zonal virtual machine scale sets, the scale set will first be balanced 5624 across zones. Within each zone, the newest virtual machines that are not protected will be 5625 chosen for removal. :code:`<br>`:code:`<br>`. 5626 :type rules: list[str or 5627 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetScaleInRules] 5628 """ 5629 5630 _attribute_map = { 5631 'rules': {'key': 'rules', 'type': '[str]'}, 5632 } 5633 5634 def __init__( 5635 self, 5636 *, 5637 rules: Optional[List[Union[str, "VirtualMachineScaleSetScaleInRules"]]] = None, 5638 **kwargs 5639 ): 5640 super(ScaleInPolicy, self).__init__(**kwargs) 5641 self.rules = rules 5642 5643 5644class ScheduledEventsProfile(msrest.serialization.Model): 5645 """ScheduledEventsProfile. 5646 5647 :param terminate_notification_profile: Specifies Terminate Scheduled Event related 5648 configurations. 5649 :type terminate_notification_profile: 5650 ~azure.mgmt.compute.v2020_12_01.models.TerminateNotificationProfile 5651 """ 5652 5653 _attribute_map = { 5654 'terminate_notification_profile': {'key': 'terminateNotificationProfile', 'type': 'TerminateNotificationProfile'}, 5655 } 5656 5657 def __init__( 5658 self, 5659 *, 5660 terminate_notification_profile: Optional["TerminateNotificationProfile"] = None, 5661 **kwargs 5662 ): 5663 super(ScheduledEventsProfile, self).__init__(**kwargs) 5664 self.terminate_notification_profile = terminate_notification_profile 5665 5666 5667class SecurityProfile(msrest.serialization.Model): 5668 """Specifies the Security profile settings for the virtual machine or virtual machine scale set. 5669 5670 :param uefi_settings: Specifies the security settings like secure boot and vTPM used while 5671 creating the virtual machine. :code:`<br>`:code:`<br>`Minimum api-version: 2020-12-01. 5672 :type uefi_settings: ~azure.mgmt.compute.v2020_12_01.models.UefiSettings 5673 :param encryption_at_host: This property can be used by user in the request to enable or 5674 disable the Host Encryption for the virtual machine or virtual machine scale set. This will 5675 enable the encryption for all the disks including Resource/Temp disk at host itself. 5676 :code:`<br>`:code:`<br>` Default: The Encryption at host will be disabled unless this property 5677 is set to true for the resource. 5678 :type encryption_at_host: bool 5679 :param security_type: Specifies the SecurityType of the virtual machine. It is set as 5680 TrustedLaunch to enable UefiSettings. :code:`<br>`:code:`<br>` Default: UefiSettings will not 5681 be enabled unless this property is set as TrustedLaunch. Possible values include: 5682 "TrustedLaunch". 5683 :type security_type: str or ~azure.mgmt.compute.v2020_12_01.models.SecurityTypes 5684 """ 5685 5686 _attribute_map = { 5687 'uefi_settings': {'key': 'uefiSettings', 'type': 'UefiSettings'}, 5688 'encryption_at_host': {'key': 'encryptionAtHost', 'type': 'bool'}, 5689 'security_type': {'key': 'securityType', 'type': 'str'}, 5690 } 5691 5692 def __init__( 5693 self, 5694 *, 5695 uefi_settings: Optional["UefiSettings"] = None, 5696 encryption_at_host: Optional[bool] = None, 5697 security_type: Optional[Union[str, "SecurityTypes"]] = None, 5698 **kwargs 5699 ): 5700 super(SecurityProfile, self).__init__(**kwargs) 5701 self.uefi_settings = uefi_settings 5702 self.encryption_at_host = encryption_at_host 5703 self.security_type = security_type 5704 5705 5706class ShareInfoElement(msrest.serialization.Model): 5707 """ShareInfoElement. 5708 5709 Variables are only populated by the server, and will be ignored when sending a request. 5710 5711 :ivar vm_uri: A relative URI containing the ID of the VM that has the disk attached. 5712 :vartype vm_uri: str 5713 """ 5714 5715 _validation = { 5716 'vm_uri': {'readonly': True}, 5717 } 5718 5719 _attribute_map = { 5720 'vm_uri': {'key': 'vmUri', 'type': 'str'}, 5721 } 5722 5723 def __init__( 5724 self, 5725 **kwargs 5726 ): 5727 super(ShareInfoElement, self).__init__(**kwargs) 5728 self.vm_uri = None 5729 5730 5731class Sku(msrest.serialization.Model): 5732 """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. 5733 5734 :param name: The sku name. 5735 :type name: str 5736 :param tier: Specifies the tier of virtual machines in a scale set.:code:`<br />`:code:`<br />` 5737 Possible Values::code:`<br />`:code:`<br />` **Standard**\ :code:`<br />`:code:`<br />` 5738 **Basic**. 5739 :type tier: str 5740 :param capacity: Specifies the number of virtual machines in the scale set. 5741 :type capacity: long 5742 """ 5743 5744 _attribute_map = { 5745 'name': {'key': 'name', 'type': 'str'}, 5746 'tier': {'key': 'tier', 'type': 'str'}, 5747 'capacity': {'key': 'capacity', 'type': 'long'}, 5748 } 5749 5750 def __init__( 5751 self, 5752 *, 5753 name: Optional[str] = None, 5754 tier: Optional[str] = None, 5755 capacity: Optional[int] = None, 5756 **kwargs 5757 ): 5758 super(Sku, self).__init__(**kwargs) 5759 self.name = name 5760 self.tier = tier 5761 self.capacity = capacity 5762 5763 5764class Snapshot(Resource): 5765 """Snapshot resource. 5766 5767 Variables are only populated by the server, and will be ignored when sending a request. 5768 5769 All required parameters must be populated in order to send to Azure. 5770 5771 :ivar id: Resource Id. 5772 :vartype id: str 5773 :ivar name: Resource name. 5774 :vartype name: str 5775 :ivar type: Resource type. 5776 :vartype type: str 5777 :param location: Required. Resource location. 5778 :type location: str 5779 :param tags: A set of tags. Resource tags. 5780 :type tags: dict[str, str] 5781 :ivar managed_by: Unused. Always Null. 5782 :vartype managed_by: str 5783 :param sku: The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS. This is 5784 an optional parameter for incremental snapshot and the default behavior is the SKU will be set 5785 to the same sku as the previous snapshot. 5786 :type sku: ~azure.mgmt.compute.v2020_12_01.models.SnapshotSku 5787 :param extended_location: The extended location where the snapshot will be created. Extended 5788 location cannot be changed. 5789 :type extended_location: ~azure.mgmt.compute.v2020_12_01.models.ExtendedLocation 5790 :ivar time_created: The time when the snapshot was created. 5791 :vartype time_created: ~datetime.datetime 5792 :param os_type: The Operating System type. Possible values include: "Windows", "Linux". 5793 :type os_type: str or ~azure.mgmt.compute.v2020_12_01.models.OperatingSystemTypes 5794 :param hyper_v_generation: The hypervisor generation of the Virtual Machine. Applicable to OS 5795 disks only. Possible values include: "V1", "V2". 5796 :type hyper_v_generation: str or ~azure.mgmt.compute.v2020_12_01.models.HyperVGeneration 5797 :param purchase_plan: Purchase plan information for the image from which the source disk for 5798 the snapshot was originally created. 5799 :type purchase_plan: ~azure.mgmt.compute.v2020_12_01.models.PurchasePlan 5800 :param creation_data: Disk source information. CreationData information cannot be changed after 5801 the disk has been created. 5802 :type creation_data: ~azure.mgmt.compute.v2020_12_01.models.CreationData 5803 :param disk_size_gb: If creationData.createOption is Empty, this field is mandatory and it 5804 indicates the size of the disk to create. If this field is present for updates or creation with 5805 other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a 5806 running VM, and can only increase the disk's size. 5807 :type disk_size_gb: int 5808 :ivar disk_size_bytes: The size of the disk in bytes. This field is read only. 5809 :vartype disk_size_bytes: long 5810 :ivar disk_state: The state of the snapshot. Possible values include: "Unattached", "Attached", 5811 "Reserved", "ActiveSAS", "ReadyToUpload", "ActiveUpload". 5812 :vartype disk_state: str or ~azure.mgmt.compute.v2020_12_01.models.DiskState 5813 :ivar unique_id: Unique Guid identifying the resource. 5814 :vartype unique_id: str 5815 :param encryption_settings_collection: Encryption settings collection used be Azure Disk 5816 Encryption, can contain multiple encryption settings per disk or snapshot. 5817 :type encryption_settings_collection: 5818 ~azure.mgmt.compute.v2020_12_01.models.EncryptionSettingsCollection 5819 :ivar provisioning_state: The disk provisioning state. 5820 :vartype provisioning_state: str 5821 :param incremental: Whether a snapshot is incremental. Incremental snapshots on the same disk 5822 occupy less space than full snapshots and can be diffed. 5823 :type incremental: bool 5824 :param encryption: Encryption property can be used to encrypt data at rest with customer 5825 managed keys or platform managed keys. 5826 :type encryption: ~azure.mgmt.compute.v2020_12_01.models.Encryption 5827 :param network_access_policy: Policy for accessing the disk via network. Possible values 5828 include: "AllowAll", "AllowPrivate", "DenyAll". 5829 :type network_access_policy: str or ~azure.mgmt.compute.v2020_12_01.models.NetworkAccessPolicy 5830 :param disk_access_id: ARM id of the DiskAccess resource for using private endpoints on disks. 5831 :type disk_access_id: str 5832 :param supports_hibernation: Indicates the OS on a snapshot supports hibernation. 5833 :type supports_hibernation: bool 5834 """ 5835 5836 _validation = { 5837 'id': {'readonly': True}, 5838 'name': {'readonly': True}, 5839 'type': {'readonly': True}, 5840 'location': {'required': True}, 5841 'managed_by': {'readonly': True}, 5842 'time_created': {'readonly': True}, 5843 'disk_size_bytes': {'readonly': True}, 5844 'disk_state': {'readonly': True}, 5845 'unique_id': {'readonly': True}, 5846 'provisioning_state': {'readonly': True}, 5847 } 5848 5849 _attribute_map = { 5850 'id': {'key': 'id', 'type': 'str'}, 5851 'name': {'key': 'name', 'type': 'str'}, 5852 'type': {'key': 'type', 'type': 'str'}, 5853 'location': {'key': 'location', 'type': 'str'}, 5854 'tags': {'key': 'tags', 'type': '{str}'}, 5855 'managed_by': {'key': 'managedBy', 'type': 'str'}, 5856 'sku': {'key': 'sku', 'type': 'SnapshotSku'}, 5857 'extended_location': {'key': 'extendedLocation', 'type': 'ExtendedLocation'}, 5858 'time_created': {'key': 'properties.timeCreated', 'type': 'iso-8601'}, 5859 'os_type': {'key': 'properties.osType', 'type': 'str'}, 5860 'hyper_v_generation': {'key': 'properties.hyperVGeneration', 'type': 'str'}, 5861 'purchase_plan': {'key': 'properties.purchasePlan', 'type': 'PurchasePlan'}, 5862 'creation_data': {'key': 'properties.creationData', 'type': 'CreationData'}, 5863 'disk_size_gb': {'key': 'properties.diskSizeGB', 'type': 'int'}, 5864 'disk_size_bytes': {'key': 'properties.diskSizeBytes', 'type': 'long'}, 5865 'disk_state': {'key': 'properties.diskState', 'type': 'str'}, 5866 'unique_id': {'key': 'properties.uniqueId', 'type': 'str'}, 5867 'encryption_settings_collection': {'key': 'properties.encryptionSettingsCollection', 'type': 'EncryptionSettingsCollection'}, 5868 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 5869 'incremental': {'key': 'properties.incremental', 'type': 'bool'}, 5870 'encryption': {'key': 'properties.encryption', 'type': 'Encryption'}, 5871 'network_access_policy': {'key': 'properties.networkAccessPolicy', 'type': 'str'}, 5872 'disk_access_id': {'key': 'properties.diskAccessId', 'type': 'str'}, 5873 'supports_hibernation': {'key': 'properties.supportsHibernation', 'type': 'bool'}, 5874 } 5875 5876 def __init__( 5877 self, 5878 *, 5879 location: str, 5880 tags: Optional[Dict[str, str]] = None, 5881 sku: Optional["SnapshotSku"] = None, 5882 extended_location: Optional["ExtendedLocation"] = None, 5883 os_type: Optional[Union[str, "OperatingSystemTypes"]] = None, 5884 hyper_v_generation: Optional[Union[str, "HyperVGeneration"]] = None, 5885 purchase_plan: Optional["PurchasePlan"] = None, 5886 creation_data: Optional["CreationData"] = None, 5887 disk_size_gb: Optional[int] = None, 5888 encryption_settings_collection: Optional["EncryptionSettingsCollection"] = None, 5889 incremental: Optional[bool] = None, 5890 encryption: Optional["Encryption"] = None, 5891 network_access_policy: Optional[Union[str, "NetworkAccessPolicy"]] = None, 5892 disk_access_id: Optional[str] = None, 5893 supports_hibernation: Optional[bool] = None, 5894 **kwargs 5895 ): 5896 super(Snapshot, self).__init__(location=location, tags=tags, **kwargs) 5897 self.managed_by = None 5898 self.sku = sku 5899 self.extended_location = extended_location 5900 self.time_created = None 5901 self.os_type = os_type 5902 self.hyper_v_generation = hyper_v_generation 5903 self.purchase_plan = purchase_plan 5904 self.creation_data = creation_data 5905 self.disk_size_gb = disk_size_gb 5906 self.disk_size_bytes = None 5907 self.disk_state = None 5908 self.unique_id = None 5909 self.encryption_settings_collection = encryption_settings_collection 5910 self.provisioning_state = None 5911 self.incremental = incremental 5912 self.encryption = encryption 5913 self.network_access_policy = network_access_policy 5914 self.disk_access_id = disk_access_id 5915 self.supports_hibernation = supports_hibernation 5916 5917 5918class SnapshotList(msrest.serialization.Model): 5919 """The List Snapshots operation response. 5920 5921 All required parameters must be populated in order to send to Azure. 5922 5923 :param value: Required. A list of snapshots. 5924 :type value: list[~azure.mgmt.compute.v2020_12_01.models.Snapshot] 5925 :param next_link: The uri to fetch the next page of snapshots. Call ListNext() with this to 5926 fetch the next page of snapshots. 5927 :type next_link: str 5928 """ 5929 5930 _validation = { 5931 'value': {'required': True}, 5932 } 5933 5934 _attribute_map = { 5935 'value': {'key': 'value', 'type': '[Snapshot]'}, 5936 'next_link': {'key': 'nextLink', 'type': 'str'}, 5937 } 5938 5939 def __init__( 5940 self, 5941 *, 5942 value: List["Snapshot"], 5943 next_link: Optional[str] = None, 5944 **kwargs 5945 ): 5946 super(SnapshotList, self).__init__(**kwargs) 5947 self.value = value 5948 self.next_link = next_link 5949 5950 5951class SnapshotSku(msrest.serialization.Model): 5952 """The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS. This is an optional parameter for incremental snapshot and the default behavior is the SKU will be set to the same sku as the previous snapshot. 5953 5954 Variables are only populated by the server, and will be ignored when sending a request. 5955 5956 :param name: The sku name. Possible values include: "Standard_LRS", "Premium_LRS", 5957 "Standard_ZRS". 5958 :type name: str or ~azure.mgmt.compute.v2020_12_01.models.SnapshotStorageAccountTypes 5959 :ivar tier: The sku tier. 5960 :vartype tier: str 5961 """ 5962 5963 _validation = { 5964 'tier': {'readonly': True}, 5965 } 5966 5967 _attribute_map = { 5968 'name': {'key': 'name', 'type': 'str'}, 5969 'tier': {'key': 'tier', 'type': 'str'}, 5970 } 5971 5972 def __init__( 5973 self, 5974 *, 5975 name: Optional[Union[str, "SnapshotStorageAccountTypes"]] = None, 5976 **kwargs 5977 ): 5978 super(SnapshotSku, self).__init__(**kwargs) 5979 self.name = name 5980 self.tier = None 5981 5982 5983class SnapshotUpdate(msrest.serialization.Model): 5984 """Snapshot update resource. 5985 5986 :param tags: A set of tags. Resource tags. 5987 :type tags: dict[str, str] 5988 :param sku: The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS. This is 5989 an optional parameter for incremental snapshot and the default behavior is the SKU will be set 5990 to the same sku as the previous snapshot. 5991 :type sku: ~azure.mgmt.compute.v2020_12_01.models.SnapshotSku 5992 :param os_type: the Operating System type. Possible values include: "Windows", "Linux". 5993 :type os_type: str or ~azure.mgmt.compute.v2020_12_01.models.OperatingSystemTypes 5994 :param disk_size_gb: If creationData.createOption is Empty, this field is mandatory and it 5995 indicates the size of the disk to create. If this field is present for updates or creation with 5996 other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a 5997 running VM, and can only increase the disk's size. 5998 :type disk_size_gb: int 5999 :param encryption_settings_collection: Encryption settings collection used be Azure Disk 6000 Encryption, can contain multiple encryption settings per disk or snapshot. 6001 :type encryption_settings_collection: 6002 ~azure.mgmt.compute.v2020_12_01.models.EncryptionSettingsCollection 6003 :param encryption: Encryption property can be used to encrypt data at rest with customer 6004 managed keys or platform managed keys. 6005 :type encryption: ~azure.mgmt.compute.v2020_12_01.models.Encryption 6006 :param network_access_policy: Policy for accessing the disk via network. Possible values 6007 include: "AllowAll", "AllowPrivate", "DenyAll". 6008 :type network_access_policy: str or ~azure.mgmt.compute.v2020_12_01.models.NetworkAccessPolicy 6009 :param disk_access_id: ARM id of the DiskAccess resource for using private endpoints on disks. 6010 :type disk_access_id: str 6011 :param supports_hibernation: Indicates the OS on a snapshot supports hibernation. 6012 :type supports_hibernation: bool 6013 """ 6014 6015 _attribute_map = { 6016 'tags': {'key': 'tags', 'type': '{str}'}, 6017 'sku': {'key': 'sku', 'type': 'SnapshotSku'}, 6018 'os_type': {'key': 'properties.osType', 'type': 'str'}, 6019 'disk_size_gb': {'key': 'properties.diskSizeGB', 'type': 'int'}, 6020 'encryption_settings_collection': {'key': 'properties.encryptionSettingsCollection', 'type': 'EncryptionSettingsCollection'}, 6021 'encryption': {'key': 'properties.encryption', 'type': 'Encryption'}, 6022 'network_access_policy': {'key': 'properties.networkAccessPolicy', 'type': 'str'}, 6023 'disk_access_id': {'key': 'properties.diskAccessId', 'type': 'str'}, 6024 'supports_hibernation': {'key': 'properties.supportsHibernation', 'type': 'bool'}, 6025 } 6026 6027 def __init__( 6028 self, 6029 *, 6030 tags: Optional[Dict[str, str]] = None, 6031 sku: Optional["SnapshotSku"] = None, 6032 os_type: Optional[Union[str, "OperatingSystemTypes"]] = None, 6033 disk_size_gb: Optional[int] = None, 6034 encryption_settings_collection: Optional["EncryptionSettingsCollection"] = None, 6035 encryption: Optional["Encryption"] = None, 6036 network_access_policy: Optional[Union[str, "NetworkAccessPolicy"]] = None, 6037 disk_access_id: Optional[str] = None, 6038 supports_hibernation: Optional[bool] = None, 6039 **kwargs 6040 ): 6041 super(SnapshotUpdate, self).__init__(**kwargs) 6042 self.tags = tags 6043 self.sku = sku 6044 self.os_type = os_type 6045 self.disk_size_gb = disk_size_gb 6046 self.encryption_settings_collection = encryption_settings_collection 6047 self.encryption = encryption 6048 self.network_access_policy = network_access_policy 6049 self.disk_access_id = disk_access_id 6050 self.supports_hibernation = supports_hibernation 6051 6052 6053class SourceVault(msrest.serialization.Model): 6054 """The vault id is an Azure Resource Manager Resource id in the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}. 6055 6056 :param id: Resource Id. 6057 :type id: str 6058 """ 6059 6060 _attribute_map = { 6061 'id': {'key': 'id', 'type': 'str'}, 6062 } 6063 6064 def __init__( 6065 self, 6066 *, 6067 id: Optional[str] = None, 6068 **kwargs 6069 ): 6070 super(SourceVault, self).__init__(**kwargs) 6071 self.id = id 6072 6073 6074class SshConfiguration(msrest.serialization.Model): 6075 """SSH configuration for Linux based VMs running on Azure. 6076 6077 :param public_keys: The list of SSH public keys used to authenticate with linux based VMs. 6078 :type public_keys: list[~azure.mgmt.compute.v2020_12_01.models.SshPublicKey] 6079 """ 6080 6081 _attribute_map = { 6082 'public_keys': {'key': 'publicKeys', 'type': '[SshPublicKey]'}, 6083 } 6084 6085 def __init__( 6086 self, 6087 *, 6088 public_keys: Optional[List["SshPublicKey"]] = None, 6089 **kwargs 6090 ): 6091 super(SshConfiguration, self).__init__(**kwargs) 6092 self.public_keys = public_keys 6093 6094 6095class SshPublicKey(msrest.serialization.Model): 6096 """Contains information about SSH certificate public key and the path on the Linux VM where the public key is placed. 6097 6098 :param path: Specifies the full path on the created VM where ssh public key is stored. If the 6099 file already exists, the specified key is appended to the file. Example: 6100 /home/user/.ssh/authorized_keys. 6101 :type path: str 6102 :param key_data: SSH public key certificate used to authenticate with the VM through ssh. The 6103 key needs to be at least 2048-bit and in ssh-rsa format. :code:`<br>`:code:`<br>` For creating 6104 ssh keys, see `Create SSH keys on Linux and Mac for Linux VMs in Azure 6105 <https://docs.microsoft.com/en-us/azure/virtual-machines/linux/mac-create-ssh-keys?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_. 6106 :type key_data: str 6107 """ 6108 6109 _attribute_map = { 6110 'path': {'key': 'path', 'type': 'str'}, 6111 'key_data': {'key': 'keyData', 'type': 'str'}, 6112 } 6113 6114 def __init__( 6115 self, 6116 *, 6117 path: Optional[str] = None, 6118 key_data: Optional[str] = None, 6119 **kwargs 6120 ): 6121 super(SshPublicKey, self).__init__(**kwargs) 6122 self.path = path 6123 self.key_data = key_data 6124 6125 6126class SshPublicKeyGenerateKeyPairResult(msrest.serialization.Model): 6127 """Response from generation of an SSH key pair. 6128 6129 All required parameters must be populated in order to send to Azure. 6130 6131 :param private_key: Required. Private key portion of the key pair used to authenticate to a 6132 virtual machine through ssh. The private key is returned in RFC3447 format and should be 6133 treated as a secret. 6134 :type private_key: str 6135 :param public_key: Required. Public key portion of the key pair used to authenticate to a 6136 virtual machine through ssh. The public key is in ssh-rsa format. 6137 :type public_key: str 6138 :param id: Required. The ARM resource id in the form of 6139 /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/sshPublicKeys/{SshPublicKeyName}. 6140 :type id: str 6141 """ 6142 6143 _validation = { 6144 'private_key': {'required': True}, 6145 'public_key': {'required': True}, 6146 'id': {'required': True}, 6147 } 6148 6149 _attribute_map = { 6150 'private_key': {'key': 'privateKey', 'type': 'str'}, 6151 'public_key': {'key': 'publicKey', 'type': 'str'}, 6152 'id': {'key': 'id', 'type': 'str'}, 6153 } 6154 6155 def __init__( 6156 self, 6157 *, 6158 private_key: str, 6159 public_key: str, 6160 id: str, 6161 **kwargs 6162 ): 6163 super(SshPublicKeyGenerateKeyPairResult, self).__init__(**kwargs) 6164 self.private_key = private_key 6165 self.public_key = public_key 6166 self.id = id 6167 6168 6169class SshPublicKeyResource(Resource): 6170 """Specifies information about the SSH public key. 6171 6172 Variables are only populated by the server, and will be ignored when sending a request. 6173 6174 All required parameters must be populated in order to send to Azure. 6175 6176 :ivar id: Resource Id. 6177 :vartype id: str 6178 :ivar name: Resource name. 6179 :vartype name: str 6180 :ivar type: Resource type. 6181 :vartype type: str 6182 :param location: Required. Resource location. 6183 :type location: str 6184 :param tags: A set of tags. Resource tags. 6185 :type tags: dict[str, str] 6186 :param public_key: SSH public key used to authenticate to a virtual machine through ssh. If 6187 this property is not initially provided when the resource is created, the publicKey property 6188 will be populated when generateKeyPair is called. If the public key is provided upon resource 6189 creation, the provided public key needs to be at least 2048-bit and in ssh-rsa format. 6190 :type public_key: str 6191 """ 6192 6193 _validation = { 6194 'id': {'readonly': True}, 6195 'name': {'readonly': True}, 6196 'type': {'readonly': True}, 6197 'location': {'required': True}, 6198 } 6199 6200 _attribute_map = { 6201 'id': {'key': 'id', 'type': 'str'}, 6202 'name': {'key': 'name', 'type': 'str'}, 6203 'type': {'key': 'type', 'type': 'str'}, 6204 'location': {'key': 'location', 'type': 'str'}, 6205 'tags': {'key': 'tags', 'type': '{str}'}, 6206 'public_key': {'key': 'properties.publicKey', 'type': 'str'}, 6207 } 6208 6209 def __init__( 6210 self, 6211 *, 6212 location: str, 6213 tags: Optional[Dict[str, str]] = None, 6214 public_key: Optional[str] = None, 6215 **kwargs 6216 ): 6217 super(SshPublicKeyResource, self).__init__(location=location, tags=tags, **kwargs) 6218 self.public_key = public_key 6219 6220 6221class SshPublicKeysGroupListResult(msrest.serialization.Model): 6222 """The list SSH public keys operation response. 6223 6224 All required parameters must be populated in order to send to Azure. 6225 6226 :param value: Required. The list of SSH public keys. 6227 :type value: list[~azure.mgmt.compute.v2020_12_01.models.SshPublicKeyResource] 6228 :param next_link: The URI to fetch the next page of SSH public keys. Call ListNext() with this 6229 URI to fetch the next page of SSH public keys. 6230 :type next_link: str 6231 """ 6232 6233 _validation = { 6234 'value': {'required': True}, 6235 } 6236 6237 _attribute_map = { 6238 'value': {'key': 'value', 'type': '[SshPublicKeyResource]'}, 6239 'next_link': {'key': 'nextLink', 'type': 'str'}, 6240 } 6241 6242 def __init__( 6243 self, 6244 *, 6245 value: List["SshPublicKeyResource"], 6246 next_link: Optional[str] = None, 6247 **kwargs 6248 ): 6249 super(SshPublicKeysGroupListResult, self).__init__(**kwargs) 6250 self.value = value 6251 self.next_link = next_link 6252 6253 6254class SshPublicKeyUpdateResource(UpdateResource): 6255 """Specifies information about the SSH public key. 6256 6257 :param tags: A set of tags. Resource tags. 6258 :type tags: dict[str, str] 6259 :param public_key: SSH public key used to authenticate to a virtual machine through ssh. If 6260 this property is not initially provided when the resource is created, the publicKey property 6261 will be populated when generateKeyPair is called. If the public key is provided upon resource 6262 creation, the provided public key needs to be at least 2048-bit and in ssh-rsa format. 6263 :type public_key: str 6264 """ 6265 6266 _attribute_map = { 6267 'tags': {'key': 'tags', 'type': '{str}'}, 6268 'public_key': {'key': 'properties.publicKey', 'type': 'str'}, 6269 } 6270 6271 def __init__( 6272 self, 6273 *, 6274 tags: Optional[Dict[str, str]] = None, 6275 public_key: Optional[str] = None, 6276 **kwargs 6277 ): 6278 super(SshPublicKeyUpdateResource, self).__init__(tags=tags, **kwargs) 6279 self.public_key = public_key 6280 6281 6282class StorageProfile(msrest.serialization.Model): 6283 """Specifies the storage settings for the virtual machine disks. 6284 6285 :param image_reference: Specifies information about the image to use. You can specify 6286 information about platform images, marketplace images, or virtual machine images. This element 6287 is required when you want to use a platform image, marketplace image, or virtual machine image, 6288 but is not used in other creation operations. 6289 :type image_reference: ~azure.mgmt.compute.v2020_12_01.models.ImageReference 6290 :param os_disk: Specifies information about the operating system disk used by the virtual 6291 machine. :code:`<br>`:code:`<br>` For more information about disks, see `About disks and VHDs 6292 for Azure virtual machines 6293 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 6294 :type os_disk: ~azure.mgmt.compute.v2020_12_01.models.OSDisk 6295 :param data_disks: Specifies the parameters that are used to add a data disk to a virtual 6296 machine. :code:`<br>`:code:`<br>` For more information about disks, see `About disks and VHDs 6297 for Azure virtual machines 6298 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 6299 :type data_disks: list[~azure.mgmt.compute.v2020_12_01.models.DataDisk] 6300 """ 6301 6302 _attribute_map = { 6303 'image_reference': {'key': 'imageReference', 'type': 'ImageReference'}, 6304 'os_disk': {'key': 'osDisk', 'type': 'OSDisk'}, 6305 'data_disks': {'key': 'dataDisks', 'type': '[DataDisk]'}, 6306 } 6307 6308 def __init__( 6309 self, 6310 *, 6311 image_reference: Optional["ImageReference"] = None, 6312 os_disk: Optional["OSDisk"] = None, 6313 data_disks: Optional[List["DataDisk"]] = None, 6314 **kwargs 6315 ): 6316 super(StorageProfile, self).__init__(**kwargs) 6317 self.image_reference = image_reference 6318 self.os_disk = os_disk 6319 self.data_disks = data_disks 6320 6321 6322class SubResourceReadOnly(msrest.serialization.Model): 6323 """SubResourceReadOnly. 6324 6325 Variables are only populated by the server, and will be ignored when sending a request. 6326 6327 :ivar id: Resource Id. 6328 :vartype id: str 6329 """ 6330 6331 _validation = { 6332 'id': {'readonly': True}, 6333 } 6334 6335 _attribute_map = { 6336 'id': {'key': 'id', 'type': 'str'}, 6337 } 6338 6339 def __init__( 6340 self, 6341 **kwargs 6342 ): 6343 super(SubResourceReadOnly, self).__init__(**kwargs) 6344 self.id = None 6345 6346 6347class SubResourceWithColocationStatus(SubResource): 6348 """SubResourceWithColocationStatus. 6349 6350 :param id: Resource Id. 6351 :type id: str 6352 :param colocation_status: Describes colocation status of a resource in the Proximity Placement 6353 Group. 6354 :type colocation_status: ~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus 6355 """ 6356 6357 _attribute_map = { 6358 'id': {'key': 'id', 'type': 'str'}, 6359 'colocation_status': {'key': 'colocationStatus', 'type': 'InstanceViewStatus'}, 6360 } 6361 6362 def __init__( 6363 self, 6364 *, 6365 id: Optional[str] = None, 6366 colocation_status: Optional["InstanceViewStatus"] = None, 6367 **kwargs 6368 ): 6369 super(SubResourceWithColocationStatus, self).__init__(id=id, **kwargs) 6370 self.colocation_status = colocation_status 6371 6372 6373class TerminateNotificationProfile(msrest.serialization.Model): 6374 """TerminateNotificationProfile. 6375 6376 :param not_before_timeout: Configurable length of time a Virtual Machine being deleted will 6377 have to potentially approve the Terminate Scheduled Event before the event is auto approved 6378 (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 6379 minutes (PT5M). 6380 :type not_before_timeout: str 6381 :param enable: Specifies whether the Terminate Scheduled event is enabled or disabled. 6382 :type enable: bool 6383 """ 6384 6385 _attribute_map = { 6386 'not_before_timeout': {'key': 'notBeforeTimeout', 'type': 'str'}, 6387 'enable': {'key': 'enable', 'type': 'bool'}, 6388 } 6389 6390 def __init__( 6391 self, 6392 *, 6393 not_before_timeout: Optional[str] = None, 6394 enable: Optional[bool] = None, 6395 **kwargs 6396 ): 6397 super(TerminateNotificationProfile, self).__init__(**kwargs) 6398 self.not_before_timeout = not_before_timeout 6399 self.enable = enable 6400 6401 6402class ThrottledRequestsInput(LogAnalyticsInputBase): 6403 """Api request input for LogAnalytics getThrottledRequests Api. 6404 6405 All required parameters must be populated in order to send to Azure. 6406 6407 :param blob_container_sas_uri: Required. SAS Uri of the logging blob container to which 6408 LogAnalytics Api writes output logs to. 6409 :type blob_container_sas_uri: str 6410 :param from_time: Required. From time of the query. 6411 :type from_time: ~datetime.datetime 6412 :param to_time: Required. To time of the query. 6413 :type to_time: ~datetime.datetime 6414 :param group_by_throttle_policy: Group query result by Throttle Policy applied. 6415 :type group_by_throttle_policy: bool 6416 :param group_by_operation_name: Group query result by Operation Name. 6417 :type group_by_operation_name: bool 6418 :param group_by_resource_name: Group query result by Resource Name. 6419 :type group_by_resource_name: bool 6420 :param group_by_client_application_id: Group query result by Client Application ID. 6421 :type group_by_client_application_id: bool 6422 :param group_by_user_agent: Group query result by User Agent. 6423 :type group_by_user_agent: bool 6424 """ 6425 6426 _validation = { 6427 'blob_container_sas_uri': {'required': True}, 6428 'from_time': {'required': True}, 6429 'to_time': {'required': True}, 6430 } 6431 6432 _attribute_map = { 6433 'blob_container_sas_uri': {'key': 'blobContainerSasUri', 'type': 'str'}, 6434 'from_time': {'key': 'fromTime', 'type': 'iso-8601'}, 6435 'to_time': {'key': 'toTime', 'type': 'iso-8601'}, 6436 'group_by_throttle_policy': {'key': 'groupByThrottlePolicy', 'type': 'bool'}, 6437 'group_by_operation_name': {'key': 'groupByOperationName', 'type': 'bool'}, 6438 'group_by_resource_name': {'key': 'groupByResourceName', 'type': 'bool'}, 6439 'group_by_client_application_id': {'key': 'groupByClientApplicationId', 'type': 'bool'}, 6440 'group_by_user_agent': {'key': 'groupByUserAgent', 'type': 'bool'}, 6441 } 6442 6443 def __init__( 6444 self, 6445 *, 6446 blob_container_sas_uri: str, 6447 from_time: datetime.datetime, 6448 to_time: datetime.datetime, 6449 group_by_throttle_policy: Optional[bool] = None, 6450 group_by_operation_name: Optional[bool] = None, 6451 group_by_resource_name: Optional[bool] = None, 6452 group_by_client_application_id: Optional[bool] = None, 6453 group_by_user_agent: Optional[bool] = None, 6454 **kwargs 6455 ): 6456 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, group_by_client_application_id=group_by_client_application_id, group_by_user_agent=group_by_user_agent, **kwargs) 6457 6458 6459class UefiSettings(msrest.serialization.Model): 6460 """Specifies the security settings like secure boot and vTPM used while creating the virtual machine. :code:`<br>`:code:`<br>`Minimum api-version: 2020-12-01. 6461 6462 :param secure_boot_enabled: Specifies whether secure boot should be enabled on the virtual 6463 machine. :code:`<br>`:code:`<br>`Minimum api-version: 2020-12-01. 6464 :type secure_boot_enabled: bool 6465 :param v_tpm_enabled: Specifies whether vTPM should be enabled on the virtual machine. 6466 :code:`<br>`:code:`<br>`Minimum api-version: 2020-12-01. 6467 :type v_tpm_enabled: bool 6468 """ 6469 6470 _attribute_map = { 6471 'secure_boot_enabled': {'key': 'secureBootEnabled', 'type': 'bool'}, 6472 'v_tpm_enabled': {'key': 'vTpmEnabled', 'type': 'bool'}, 6473 } 6474 6475 def __init__( 6476 self, 6477 *, 6478 secure_boot_enabled: Optional[bool] = None, 6479 v_tpm_enabled: Optional[bool] = None, 6480 **kwargs 6481 ): 6482 super(UefiSettings, self).__init__(**kwargs) 6483 self.secure_boot_enabled = secure_boot_enabled 6484 self.v_tpm_enabled = v_tpm_enabled 6485 6486 6487class UpgradeOperationHistoricalStatusInfo(msrest.serialization.Model): 6488 """Virtual Machine Scale Set OS Upgrade History operation response. 6489 6490 Variables are only populated by the server, and will be ignored when sending a request. 6491 6492 :ivar properties: Information about the properties of the upgrade operation. 6493 :vartype properties: 6494 ~azure.mgmt.compute.v2020_12_01.models.UpgradeOperationHistoricalStatusInfoProperties 6495 :ivar type: Resource type. 6496 :vartype type: str 6497 :ivar location: Resource location. 6498 :vartype location: str 6499 """ 6500 6501 _validation = { 6502 'properties': {'readonly': True}, 6503 'type': {'readonly': True}, 6504 'location': {'readonly': True}, 6505 } 6506 6507 _attribute_map = { 6508 'properties': {'key': 'properties', 'type': 'UpgradeOperationHistoricalStatusInfoProperties'}, 6509 'type': {'key': 'type', 'type': 'str'}, 6510 'location': {'key': 'location', 'type': 'str'}, 6511 } 6512 6513 def __init__( 6514 self, 6515 **kwargs 6516 ): 6517 super(UpgradeOperationHistoricalStatusInfo, self).__init__(**kwargs) 6518 self.properties = None 6519 self.type = None 6520 self.location = None 6521 6522 6523class UpgradeOperationHistoricalStatusInfoProperties(msrest.serialization.Model): 6524 """Describes each OS upgrade on the Virtual Machine Scale Set. 6525 6526 Variables are only populated by the server, and will be ignored when sending a request. 6527 6528 :ivar running_status: Information about the overall status of the upgrade operation. 6529 :vartype running_status: ~azure.mgmt.compute.v2020_12_01.models.UpgradeOperationHistoryStatus 6530 :ivar progress: Counts of the VMs in each state. 6531 :vartype progress: ~azure.mgmt.compute.v2020_12_01.models.RollingUpgradeProgressInfo 6532 :ivar error: Error Details for this upgrade if there are any. 6533 :vartype error: ~azure.mgmt.compute.v2020_12_01.models.ApiError 6534 :ivar started_by: Invoker of the Upgrade Operation. Possible values include: "Unknown", "User", 6535 "Platform". 6536 :vartype started_by: str or ~azure.mgmt.compute.v2020_12_01.models.UpgradeOperationInvoker 6537 :ivar target_image_reference: Image Reference details. 6538 :vartype target_image_reference: ~azure.mgmt.compute.v2020_12_01.models.ImageReference 6539 :ivar rollback_info: Information about OS rollback if performed. 6540 :vartype rollback_info: ~azure.mgmt.compute.v2020_12_01.models.RollbackStatusInfo 6541 """ 6542 6543 _validation = { 6544 'running_status': {'readonly': True}, 6545 'progress': {'readonly': True}, 6546 'error': {'readonly': True}, 6547 'started_by': {'readonly': True}, 6548 'target_image_reference': {'readonly': True}, 6549 'rollback_info': {'readonly': True}, 6550 } 6551 6552 _attribute_map = { 6553 'running_status': {'key': 'runningStatus', 'type': 'UpgradeOperationHistoryStatus'}, 6554 'progress': {'key': 'progress', 'type': 'RollingUpgradeProgressInfo'}, 6555 'error': {'key': 'error', 'type': 'ApiError'}, 6556 'started_by': {'key': 'startedBy', 'type': 'str'}, 6557 'target_image_reference': {'key': 'targetImageReference', 'type': 'ImageReference'}, 6558 'rollback_info': {'key': 'rollbackInfo', 'type': 'RollbackStatusInfo'}, 6559 } 6560 6561 def __init__( 6562 self, 6563 **kwargs 6564 ): 6565 super(UpgradeOperationHistoricalStatusInfoProperties, self).__init__(**kwargs) 6566 self.running_status = None 6567 self.progress = None 6568 self.error = None 6569 self.started_by = None 6570 self.target_image_reference = None 6571 self.rollback_info = None 6572 6573 6574class UpgradeOperationHistoryStatus(msrest.serialization.Model): 6575 """Information about the current running state of the overall upgrade. 6576 6577 Variables are only populated by the server, and will be ignored when sending a request. 6578 6579 :ivar code: Code indicating the current status of the upgrade. Possible values include: 6580 "RollingForward", "Cancelled", "Completed", "Faulted". 6581 :vartype code: str or ~azure.mgmt.compute.v2020_12_01.models.UpgradeState 6582 :ivar start_time: Start time of the upgrade. 6583 :vartype start_time: ~datetime.datetime 6584 :ivar end_time: End time of the upgrade. 6585 :vartype end_time: ~datetime.datetime 6586 """ 6587 6588 _validation = { 6589 'code': {'readonly': True}, 6590 'start_time': {'readonly': True}, 6591 'end_time': {'readonly': True}, 6592 } 6593 6594 _attribute_map = { 6595 'code': {'key': 'code', 'type': 'str'}, 6596 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, 6597 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, 6598 } 6599 6600 def __init__( 6601 self, 6602 **kwargs 6603 ): 6604 super(UpgradeOperationHistoryStatus, self).__init__(**kwargs) 6605 self.code = None 6606 self.start_time = None 6607 self.end_time = None 6608 6609 6610class UpgradePolicy(msrest.serialization.Model): 6611 """Describes an upgrade policy - automatic, manual, or rolling. 6612 6613 :param mode: Specifies the mode of an upgrade to virtual machines in the scale set.:code:`<br 6614 />`:code:`<br />` Possible values are::code:`<br />`:code:`<br />` **Manual** - You control 6615 the application of updates to virtual machines in the scale set. You do this by using the 6616 manualUpgrade action.:code:`<br />`:code:`<br />` **Automatic** - All virtual machines in the 6617 scale set are automatically updated at the same time. Possible values include: "Automatic", 6618 "Manual", "Rolling". 6619 :type mode: str or ~azure.mgmt.compute.v2020_12_01.models.UpgradeMode 6620 :param rolling_upgrade_policy: The configuration parameters used while performing a rolling 6621 upgrade. 6622 :type rolling_upgrade_policy: ~azure.mgmt.compute.v2020_12_01.models.RollingUpgradePolicy 6623 :param automatic_os_upgrade_policy: Configuration parameters used for performing automatic OS 6624 Upgrade. 6625 :type automatic_os_upgrade_policy: 6626 ~azure.mgmt.compute.v2020_12_01.models.AutomaticOSUpgradePolicy 6627 """ 6628 6629 _attribute_map = { 6630 'mode': {'key': 'mode', 'type': 'str'}, 6631 'rolling_upgrade_policy': {'key': 'rollingUpgradePolicy', 'type': 'RollingUpgradePolicy'}, 6632 'automatic_os_upgrade_policy': {'key': 'automaticOSUpgradePolicy', 'type': 'AutomaticOSUpgradePolicy'}, 6633 } 6634 6635 def __init__( 6636 self, 6637 *, 6638 mode: Optional[Union[str, "UpgradeMode"]] = None, 6639 rolling_upgrade_policy: Optional["RollingUpgradePolicy"] = None, 6640 automatic_os_upgrade_policy: Optional["AutomaticOSUpgradePolicy"] = None, 6641 **kwargs 6642 ): 6643 super(UpgradePolicy, self).__init__(**kwargs) 6644 self.mode = mode 6645 self.rolling_upgrade_policy = rolling_upgrade_policy 6646 self.automatic_os_upgrade_policy = automatic_os_upgrade_policy 6647 6648 6649class Usage(msrest.serialization.Model): 6650 """Describes Compute Resource Usage. 6651 6652 Variables are only populated by the server, and will be ignored when sending a request. 6653 6654 All required parameters must be populated in order to send to Azure. 6655 6656 :ivar unit: An enum describing the unit of usage measurement. Has constant value: "Count". 6657 :vartype unit: str 6658 :param current_value: Required. The current usage of the resource. 6659 :type current_value: int 6660 :param limit: Required. The maximum permitted usage of the resource. 6661 :type limit: long 6662 :param name: Required. The name of the type of usage. 6663 :type name: ~azure.mgmt.compute.v2020_12_01.models.UsageName 6664 """ 6665 6666 _validation = { 6667 'unit': {'required': True, 'constant': True}, 6668 'current_value': {'required': True}, 6669 'limit': {'required': True}, 6670 'name': {'required': True}, 6671 } 6672 6673 _attribute_map = { 6674 'unit': {'key': 'unit', 'type': 'str'}, 6675 'current_value': {'key': 'currentValue', 'type': 'int'}, 6676 'limit': {'key': 'limit', 'type': 'long'}, 6677 'name': {'key': 'name', 'type': 'UsageName'}, 6678 } 6679 6680 unit = "Count" 6681 6682 def __init__( 6683 self, 6684 *, 6685 current_value: int, 6686 limit: int, 6687 name: "UsageName", 6688 **kwargs 6689 ): 6690 super(Usage, self).__init__(**kwargs) 6691 self.current_value = current_value 6692 self.limit = limit 6693 self.name = name 6694 6695 6696class UsageName(msrest.serialization.Model): 6697 """The Usage Names. 6698 6699 :param value: The name of the resource. 6700 :type value: str 6701 :param localized_value: The localized name of the resource. 6702 :type localized_value: str 6703 """ 6704 6705 _attribute_map = { 6706 'value': {'key': 'value', 'type': 'str'}, 6707 'localized_value': {'key': 'localizedValue', 'type': 'str'}, 6708 } 6709 6710 def __init__( 6711 self, 6712 *, 6713 value: Optional[str] = None, 6714 localized_value: Optional[str] = None, 6715 **kwargs 6716 ): 6717 super(UsageName, self).__init__(**kwargs) 6718 self.value = value 6719 self.localized_value = localized_value 6720 6721 6722class UserAssignedIdentitiesValue(msrest.serialization.Model): 6723 """UserAssignedIdentitiesValue. 6724 6725 Variables are only populated by the server, and will be ignored when sending a request. 6726 6727 :ivar principal_id: The principal id of user assigned identity. 6728 :vartype principal_id: str 6729 :ivar client_id: The client id of user assigned identity. 6730 :vartype client_id: str 6731 """ 6732 6733 _validation = { 6734 'principal_id': {'readonly': True}, 6735 'client_id': {'readonly': True}, 6736 } 6737 6738 _attribute_map = { 6739 'principal_id': {'key': 'principalId', 'type': 'str'}, 6740 'client_id': {'key': 'clientId', 'type': 'str'}, 6741 } 6742 6743 def __init__( 6744 self, 6745 **kwargs 6746 ): 6747 super(UserAssignedIdentitiesValue, self).__init__(**kwargs) 6748 self.principal_id = None 6749 self.client_id = None 6750 6751 6752class VaultCertificate(msrest.serialization.Model): 6753 """Describes a single certificate reference in a Key Vault, and where the certificate should reside on the VM. 6754 6755 :param certificate_url: This is the URL of a certificate that has been uploaded to Key Vault as 6756 a secret. For adding a secret to the Key Vault, see `Add a key or secret to the key vault 6757 <https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add>`_. In this case, your 6758 certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded 6759 in UTF-8: :code:`<br>`:code:`<br>` {:code:`<br>` 6760 "data":":code:`<Base64-encoded-certificate>`",:code:`<br>` "dataType":"pfx",:code:`<br>` 6761 "password":":code:`<pfx-file-password>`":code:`<br>`}. 6762 :type certificate_url: str 6763 :param certificate_store: For Windows VMs, specifies the certificate store on the Virtual 6764 Machine to which the certificate should be added. The specified certificate store is implicitly 6765 in the LocalMachine account. :code:`<br>`:code:`<br>`For Linux VMs, the certificate file is 6766 placed under the /var/lib/waagent directory, with the file name <UppercaseThumbprint>.crt 6767 for the X509 certificate file and <UppercaseThumbprint>.prv for private key. Both of 6768 these files are .pem formatted. 6769 :type certificate_store: str 6770 """ 6771 6772 _attribute_map = { 6773 'certificate_url': {'key': 'certificateUrl', 'type': 'str'}, 6774 'certificate_store': {'key': 'certificateStore', 'type': 'str'}, 6775 } 6776 6777 def __init__( 6778 self, 6779 *, 6780 certificate_url: Optional[str] = None, 6781 certificate_store: Optional[str] = None, 6782 **kwargs 6783 ): 6784 super(VaultCertificate, self).__init__(**kwargs) 6785 self.certificate_url = certificate_url 6786 self.certificate_store = certificate_store 6787 6788 6789class VaultSecretGroup(msrest.serialization.Model): 6790 """Describes a set of certificates which are all in the same Key Vault. 6791 6792 :param source_vault: The relative URL of the Key Vault containing all of the certificates in 6793 VaultCertificates. 6794 :type source_vault: ~azure.mgmt.compute.v2020_12_01.models.SubResource 6795 :param vault_certificates: The list of key vault references in SourceVault which contain 6796 certificates. 6797 :type vault_certificates: list[~azure.mgmt.compute.v2020_12_01.models.VaultCertificate] 6798 """ 6799 6800 _attribute_map = { 6801 'source_vault': {'key': 'sourceVault', 'type': 'SubResource'}, 6802 'vault_certificates': {'key': 'vaultCertificates', 'type': '[VaultCertificate]'}, 6803 } 6804 6805 def __init__( 6806 self, 6807 *, 6808 source_vault: Optional["SubResource"] = None, 6809 vault_certificates: Optional[List["VaultCertificate"]] = None, 6810 **kwargs 6811 ): 6812 super(VaultSecretGroup, self).__init__(**kwargs) 6813 self.source_vault = source_vault 6814 self.vault_certificates = vault_certificates 6815 6816 6817class VirtualHardDisk(msrest.serialization.Model): 6818 """Describes the uri of a disk. 6819 6820 :param uri: Specifies the virtual hard disk's uri. 6821 :type uri: str 6822 """ 6823 6824 _attribute_map = { 6825 'uri': {'key': 'uri', 'type': 'str'}, 6826 } 6827 6828 def __init__( 6829 self, 6830 *, 6831 uri: Optional[str] = None, 6832 **kwargs 6833 ): 6834 super(VirtualHardDisk, self).__init__(**kwargs) 6835 self.uri = uri 6836 6837 6838class VirtualMachine(Resource): 6839 """Describes a Virtual Machine. 6840 6841 Variables are only populated by the server, and will be ignored when sending a request. 6842 6843 All required parameters must be populated in order to send to Azure. 6844 6845 :ivar id: Resource Id. 6846 :vartype id: str 6847 :ivar name: Resource name. 6848 :vartype name: str 6849 :ivar type: Resource type. 6850 :vartype type: str 6851 :param location: Required. Resource location. 6852 :type location: str 6853 :param tags: A set of tags. Resource tags. 6854 :type tags: dict[str, str] 6855 :param plan: Specifies information about the marketplace image used to create the virtual 6856 machine. This element is only used for marketplace images. Before you can use a marketplace 6857 image from an API, you must enable the image for programmatic use. In the Azure portal, find 6858 the marketplace image that you want to use and then click **Want to deploy programmatically, 6859 Get Started ->**. Enter any required information and then click **Save**. 6860 :type plan: ~azure.mgmt.compute.v2020_12_01.models.Plan 6861 :ivar resources: The virtual machine child extension resources. 6862 :vartype resources: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineExtension] 6863 :param identity: The identity of the virtual machine, if configured. 6864 :type identity: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineIdentity 6865 :param zones: The virtual machine zones. 6866 :type zones: list[str] 6867 :param extended_location: The extended location of the Virtual Machine. 6868 :type extended_location: ~azure.mgmt.compute.v2020_12_01.models.ExtendedLocation 6869 :param hardware_profile: Specifies the hardware settings for the virtual machine. 6870 :type hardware_profile: ~azure.mgmt.compute.v2020_12_01.models.HardwareProfile 6871 :param storage_profile: Specifies the storage settings for the virtual machine disks. 6872 :type storage_profile: ~azure.mgmt.compute.v2020_12_01.models.StorageProfile 6873 :param additional_capabilities: Specifies additional capabilities enabled or disabled on the 6874 virtual machine. 6875 :type additional_capabilities: ~azure.mgmt.compute.v2020_12_01.models.AdditionalCapabilities 6876 :param os_profile: Specifies the operating system settings used while creating the virtual 6877 machine. Some of the settings cannot be changed once VM is provisioned. 6878 :type os_profile: ~azure.mgmt.compute.v2020_12_01.models.OSProfile 6879 :param network_profile: Specifies the network interfaces of the virtual machine. 6880 :type network_profile: ~azure.mgmt.compute.v2020_12_01.models.NetworkProfile 6881 :param security_profile: Specifies the Security related profile settings for the virtual 6882 machine. 6883 :type security_profile: ~azure.mgmt.compute.v2020_12_01.models.SecurityProfile 6884 :param diagnostics_profile: Specifies the boot diagnostic settings state. 6885 :code:`<br>`:code:`<br>`Minimum api-version: 2015-06-15. 6886 :type diagnostics_profile: ~azure.mgmt.compute.v2020_12_01.models.DiagnosticsProfile 6887 :param availability_set: Specifies information about the availability set that the virtual 6888 machine should be assigned to. Virtual machines specified in the same availability set are 6889 allocated to different nodes to maximize availability. For more information about availability 6890 sets, see `Manage the availability of virtual machines 6891 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 6892 :code:`<br>`:code:`<br>` For more information on Azure planned maintenance, see `Planned 6893 maintenance for virtual machines in Azure 6894 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_ 6895 :code:`<br>`:code:`<br>` Currently, a VM can only be added to availability set at creation 6896 time. The availability set to which the VM is being added should be under the same resource 6897 group as the availability set resource. An existing VM cannot be added to an availability set. 6898 :code:`<br>`:code:`<br>`This property cannot exist along with a non-null 6899 properties.virtualMachineScaleSet reference. 6900 :type availability_set: ~azure.mgmt.compute.v2020_12_01.models.SubResource 6901 :param virtual_machine_scale_set: Specifies information about the virtual machine scale set 6902 that the virtual machine should be assigned to. Virtual machines specified in the same virtual 6903 machine scale set are allocated to different nodes to maximize availability. Currently, a VM 6904 can only be added to virtual machine scale set at creation time. An existing VM cannot be added 6905 to a virtual machine scale set. :code:`<br>`:code:`<br>`This property cannot exist along with a 6906 non-null properties.availabilitySet reference. :code:`<br>`:code:`<br>`Minimum api‐version: 6907 2019‐03‐01. 6908 :type virtual_machine_scale_set: ~azure.mgmt.compute.v2020_12_01.models.SubResource 6909 :param proximity_placement_group: Specifies information about the proximity placement group 6910 that the virtual machine should be assigned to. :code:`<br>`:code:`<br>`Minimum api-version: 6911 2018-04-01. 6912 :type proximity_placement_group: ~azure.mgmt.compute.v2020_12_01.models.SubResource 6913 :param priority: Specifies the priority for the virtual machine. 6914 :code:`<br>`:code:`<br>`Minimum api-version: 2019-03-01. Possible values include: "Regular", 6915 "Low", "Spot". 6916 :type priority: str or ~azure.mgmt.compute.v2020_12_01.models.VirtualMachinePriorityTypes 6917 :param eviction_policy: Specifies the eviction policy for the Azure Spot virtual machine and 6918 Azure Spot scale set. :code:`<br>`:code:`<br>`For Azure Spot virtual machines, both 6919 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. 6920 :code:`<br>`:code:`<br>`For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported 6921 and the minimum api-version is 2017-10-30-preview. Possible values include: "Deallocate", 6922 "Delete". 6923 :type eviction_policy: str or 6924 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineEvictionPolicyTypes 6925 :param billing_profile: Specifies the billing related details of a Azure Spot virtual machine. 6926 :code:`<br>`:code:`<br>`Minimum api-version: 2019-03-01. 6927 :type billing_profile: ~azure.mgmt.compute.v2020_12_01.models.BillingProfile 6928 :param host: Specifies information about the dedicated host that the virtual machine resides 6929 in. :code:`<br>`:code:`<br>`Minimum api-version: 2018-10-01. 6930 :type host: ~azure.mgmt.compute.v2020_12_01.models.SubResource 6931 :param host_group: Specifies information about the dedicated host group that the virtual 6932 machine resides in. :code:`<br>`:code:`<br>`Minimum api-version: 2020-06-01. 6933 :code:`<br>`:code:`<br>`NOTE: User cannot specify both host and hostGroup properties. 6934 :type host_group: ~azure.mgmt.compute.v2020_12_01.models.SubResource 6935 :ivar provisioning_state: The provisioning state, which only appears in the response. 6936 :vartype provisioning_state: str 6937 :ivar instance_view: The virtual machine instance view. 6938 :vartype instance_view: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineInstanceView 6939 :param license_type: Specifies that the image or disk that is being used was licensed 6940 on-premises. :code:`<br>`:code:`<br>` Possible values for Windows Server operating system are: 6941 :code:`<br>`:code:`<br>` Windows_Client :code:`<br>`:code:`<br>` Windows_Server 6942 :code:`<br>`:code:`<br>` Possible values for Linux Server operating system are: 6943 :code:`<br>`:code:`<br>` RHEL_BYOS (for RHEL) :code:`<br>`:code:`<br>` SLES_BYOS (for SUSE) 6944 :code:`<br>`:code:`<br>` For more information, see `Azure Hybrid Use Benefit for Windows Server 6945 <https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing>`_ 6946 :code:`<br>`:code:`<br>` `Azure Hybrid Use Benefit for Linux Server 6947 <https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux>`_ 6948 :code:`<br>`:code:`<br>` Minimum api-version: 2015-06-15. 6949 :type license_type: str 6950 :ivar vm_id: Specifies the VM unique ID which is a 128-bits identifier that is encoded and 6951 stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands. 6952 :vartype vm_id: str 6953 :param extensions_time_budget: Specifies the time alloted for all extensions to start. The time 6954 duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in 6955 ISO 8601 format. The default value is 90 minutes (PT1H30M). :code:`<br>`:code:`<br>` Minimum 6956 api-version: 2020-06-01. 6957 :type extensions_time_budget: str 6958 :param platform_fault_domain: Specifies the scale set logical fault domain into which the 6959 Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned 6960 to a fault domain that best maintains balance across available fault 6961 domains.:code:`<br>`:code:`<li>`This is applicable only if the 'virtualMachineScaleSet' 6962 property of this Virtual Machine is set.:code:`<li>`The Virtual Machine Scale Set that is 6963 referenced, must have 'platformFaultDomainCount' > 1.:code:`<li>`This property cannot be 6964 updated once the Virtual Machine is created.:code:`<li>`Fault domain assignment can be viewed 6965 in the Virtual Machine Instance View.:code:`<br>`:code:`<br>`Minimum api‐version: 2020‐12‐01. 6966 :type platform_fault_domain: int 6967 """ 6968 6969 _validation = { 6970 'id': {'readonly': True}, 6971 'name': {'readonly': True}, 6972 'type': {'readonly': True}, 6973 'location': {'required': True}, 6974 'resources': {'readonly': True}, 6975 'provisioning_state': {'readonly': True}, 6976 'instance_view': {'readonly': True}, 6977 'vm_id': {'readonly': True}, 6978 } 6979 6980 _attribute_map = { 6981 'id': {'key': 'id', 'type': 'str'}, 6982 'name': {'key': 'name', 'type': 'str'}, 6983 'type': {'key': 'type', 'type': 'str'}, 6984 'location': {'key': 'location', 'type': 'str'}, 6985 'tags': {'key': 'tags', 'type': '{str}'}, 6986 'plan': {'key': 'plan', 'type': 'Plan'}, 6987 'resources': {'key': 'resources', 'type': '[VirtualMachineExtension]'}, 6988 'identity': {'key': 'identity', 'type': 'VirtualMachineIdentity'}, 6989 'zones': {'key': 'zones', 'type': '[str]'}, 6990 'extended_location': {'key': 'extendedLocation', 'type': 'ExtendedLocation'}, 6991 'hardware_profile': {'key': 'properties.hardwareProfile', 'type': 'HardwareProfile'}, 6992 'storage_profile': {'key': 'properties.storageProfile', 'type': 'StorageProfile'}, 6993 'additional_capabilities': {'key': 'properties.additionalCapabilities', 'type': 'AdditionalCapabilities'}, 6994 'os_profile': {'key': 'properties.osProfile', 'type': 'OSProfile'}, 6995 'network_profile': {'key': 'properties.networkProfile', 'type': 'NetworkProfile'}, 6996 'security_profile': {'key': 'properties.securityProfile', 'type': 'SecurityProfile'}, 6997 'diagnostics_profile': {'key': 'properties.diagnosticsProfile', 'type': 'DiagnosticsProfile'}, 6998 'availability_set': {'key': 'properties.availabilitySet', 'type': 'SubResource'}, 6999 'virtual_machine_scale_set': {'key': 'properties.virtualMachineScaleSet', 'type': 'SubResource'}, 7000 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, 7001 'priority': {'key': 'properties.priority', 'type': 'str'}, 7002 'eviction_policy': {'key': 'properties.evictionPolicy', 'type': 'str'}, 7003 'billing_profile': {'key': 'properties.billingProfile', 'type': 'BillingProfile'}, 7004 'host': {'key': 'properties.host', 'type': 'SubResource'}, 7005 'host_group': {'key': 'properties.hostGroup', 'type': 'SubResource'}, 7006 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 7007 'instance_view': {'key': 'properties.instanceView', 'type': 'VirtualMachineInstanceView'}, 7008 'license_type': {'key': 'properties.licenseType', 'type': 'str'}, 7009 'vm_id': {'key': 'properties.vmId', 'type': 'str'}, 7010 'extensions_time_budget': {'key': 'properties.extensionsTimeBudget', 'type': 'str'}, 7011 'platform_fault_domain': {'key': 'properties.platformFaultDomain', 'type': 'int'}, 7012 } 7013 7014 def __init__( 7015 self, 7016 *, 7017 location: str, 7018 tags: Optional[Dict[str, str]] = None, 7019 plan: Optional["Plan"] = None, 7020 identity: Optional["VirtualMachineIdentity"] = None, 7021 zones: Optional[List[str]] = None, 7022 extended_location: Optional["ExtendedLocation"] = None, 7023 hardware_profile: Optional["HardwareProfile"] = None, 7024 storage_profile: Optional["StorageProfile"] = None, 7025 additional_capabilities: Optional["AdditionalCapabilities"] = None, 7026 os_profile: Optional["OSProfile"] = None, 7027 network_profile: Optional["NetworkProfile"] = None, 7028 security_profile: Optional["SecurityProfile"] = None, 7029 diagnostics_profile: Optional["DiagnosticsProfile"] = None, 7030 availability_set: Optional["SubResource"] = None, 7031 virtual_machine_scale_set: Optional["SubResource"] = None, 7032 proximity_placement_group: Optional["SubResource"] = None, 7033 priority: Optional[Union[str, "VirtualMachinePriorityTypes"]] = None, 7034 eviction_policy: Optional[Union[str, "VirtualMachineEvictionPolicyTypes"]] = None, 7035 billing_profile: Optional["BillingProfile"] = None, 7036 host: Optional["SubResource"] = None, 7037 host_group: Optional["SubResource"] = None, 7038 license_type: Optional[str] = None, 7039 extensions_time_budget: Optional[str] = None, 7040 platform_fault_domain: Optional[int] = None, 7041 **kwargs 7042 ): 7043 super(VirtualMachine, self).__init__(location=location, tags=tags, **kwargs) 7044 self.plan = plan 7045 self.resources = None 7046 self.identity = identity 7047 self.zones = zones 7048 self.extended_location = extended_location 7049 self.hardware_profile = hardware_profile 7050 self.storage_profile = storage_profile 7051 self.additional_capabilities = additional_capabilities 7052 self.os_profile = os_profile 7053 self.network_profile = network_profile 7054 self.security_profile = security_profile 7055 self.diagnostics_profile = diagnostics_profile 7056 self.availability_set = availability_set 7057 self.virtual_machine_scale_set = virtual_machine_scale_set 7058 self.proximity_placement_group = proximity_placement_group 7059 self.priority = priority 7060 self.eviction_policy = eviction_policy 7061 self.billing_profile = billing_profile 7062 self.host = host 7063 self.host_group = host_group 7064 self.provisioning_state = None 7065 self.instance_view = None 7066 self.license_type = license_type 7067 self.vm_id = None 7068 self.extensions_time_budget = extensions_time_budget 7069 self.platform_fault_domain = platform_fault_domain 7070 7071 7072class VirtualMachineAgentInstanceView(msrest.serialization.Model): 7073 """The instance view of the VM Agent running on the virtual machine. 7074 7075 :param vm_agent_version: The VM Agent full version. 7076 :type vm_agent_version: str 7077 :param extension_handlers: The virtual machine extension handler instance view. 7078 :type extension_handlers: 7079 list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineExtensionHandlerInstanceView] 7080 :param statuses: The resource status information. 7081 :type statuses: list[~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus] 7082 """ 7083 7084 _attribute_map = { 7085 'vm_agent_version': {'key': 'vmAgentVersion', 'type': 'str'}, 7086 'extension_handlers': {'key': 'extensionHandlers', 'type': '[VirtualMachineExtensionHandlerInstanceView]'}, 7087 'statuses': {'key': 'statuses', 'type': '[InstanceViewStatus]'}, 7088 } 7089 7090 def __init__( 7091 self, 7092 *, 7093 vm_agent_version: Optional[str] = None, 7094 extension_handlers: Optional[List["VirtualMachineExtensionHandlerInstanceView"]] = None, 7095 statuses: Optional[List["InstanceViewStatus"]] = None, 7096 **kwargs 7097 ): 7098 super(VirtualMachineAgentInstanceView, self).__init__(**kwargs) 7099 self.vm_agent_version = vm_agent_version 7100 self.extension_handlers = extension_handlers 7101 self.statuses = statuses 7102 7103 7104class VirtualMachineAssessPatchesResult(msrest.serialization.Model): 7105 """Describes the properties of an AssessPatches result. 7106 7107 Variables are only populated by the server, and will be ignored when sending a request. 7108 7109 :ivar status: The overall success or failure status of the operation. It remains "InProgress" 7110 until the operation completes. At that point it will become "Unknown", "Failed", "Succeeded", 7111 or "CompletedWithWarnings.". Possible values include: "Unknown", "InProgress", "Failed", 7112 "Succeeded", "CompletedWithWarnings". 7113 :vartype status: str or ~azure.mgmt.compute.v2020_12_01.models.PatchOperationStatus 7114 :ivar assessment_activity_id: The activity ID of the operation that produced this result. It is 7115 used to correlate across CRP and extension logs. 7116 :vartype assessment_activity_id: str 7117 :ivar reboot_pending: The overall reboot status of the VM. It will be true when partially 7118 installed patches require a reboot to complete installation but the reboot has not yet 7119 occurred. 7120 :vartype reboot_pending: bool 7121 :ivar critical_and_security_patch_count: The number of critical or security patches that have 7122 been detected as available and not yet installed. 7123 :vartype critical_and_security_patch_count: int 7124 :ivar other_patch_count: The number of all available patches excluding critical and security. 7125 :vartype other_patch_count: int 7126 :ivar start_date_time: The UTC timestamp when the operation began. 7127 :vartype start_date_time: ~datetime.datetime 7128 :ivar available_patches: The list of patches that have been detected as available for 7129 installation. 7130 :vartype available_patches: 7131 list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineSoftwarePatchProperties] 7132 :ivar error: The errors that were encountered during execution of the operation. The details 7133 array contains the list of them. 7134 :vartype error: ~azure.mgmt.compute.v2020_12_01.models.ApiError 7135 """ 7136 7137 _validation = { 7138 'status': {'readonly': True}, 7139 'assessment_activity_id': {'readonly': True}, 7140 'reboot_pending': {'readonly': True}, 7141 'critical_and_security_patch_count': {'readonly': True}, 7142 'other_patch_count': {'readonly': True}, 7143 'start_date_time': {'readonly': True}, 7144 'available_patches': {'readonly': True}, 7145 'error': {'readonly': True}, 7146 } 7147 7148 _attribute_map = { 7149 'status': {'key': 'status', 'type': 'str'}, 7150 'assessment_activity_id': {'key': 'assessmentActivityId', 'type': 'str'}, 7151 'reboot_pending': {'key': 'rebootPending', 'type': 'bool'}, 7152 'critical_and_security_patch_count': {'key': 'criticalAndSecurityPatchCount', 'type': 'int'}, 7153 'other_patch_count': {'key': 'otherPatchCount', 'type': 'int'}, 7154 'start_date_time': {'key': 'startDateTime', 'type': 'iso-8601'}, 7155 'available_patches': {'key': 'availablePatches', 'type': '[VirtualMachineSoftwarePatchProperties]'}, 7156 'error': {'key': 'error', 'type': 'ApiError'}, 7157 } 7158 7159 def __init__( 7160 self, 7161 **kwargs 7162 ): 7163 super(VirtualMachineAssessPatchesResult, self).__init__(**kwargs) 7164 self.status = None 7165 self.assessment_activity_id = None 7166 self.reboot_pending = None 7167 self.critical_and_security_patch_count = None 7168 self.other_patch_count = None 7169 self.start_date_time = None 7170 self.available_patches = None 7171 self.error = None 7172 7173 7174class VirtualMachineCaptureParameters(msrest.serialization.Model): 7175 """Capture Virtual Machine parameters. 7176 7177 All required parameters must be populated in order to send to Azure. 7178 7179 :param vhd_prefix: Required. The captured virtual hard disk's name prefix. 7180 :type vhd_prefix: str 7181 :param destination_container_name: Required. The destination container name. 7182 :type destination_container_name: str 7183 :param overwrite_vhds: Required. Specifies whether to overwrite the destination virtual hard 7184 disk, in case of conflict. 7185 :type overwrite_vhds: bool 7186 """ 7187 7188 _validation = { 7189 'vhd_prefix': {'required': True}, 7190 'destination_container_name': {'required': True}, 7191 'overwrite_vhds': {'required': True}, 7192 } 7193 7194 _attribute_map = { 7195 'vhd_prefix': {'key': 'vhdPrefix', 'type': 'str'}, 7196 'destination_container_name': {'key': 'destinationContainerName', 'type': 'str'}, 7197 'overwrite_vhds': {'key': 'overwriteVhds', 'type': 'bool'}, 7198 } 7199 7200 def __init__( 7201 self, 7202 *, 7203 vhd_prefix: str, 7204 destination_container_name: str, 7205 overwrite_vhds: bool, 7206 **kwargs 7207 ): 7208 super(VirtualMachineCaptureParameters, self).__init__(**kwargs) 7209 self.vhd_prefix = vhd_prefix 7210 self.destination_container_name = destination_container_name 7211 self.overwrite_vhds = overwrite_vhds 7212 7213 7214class VirtualMachineCaptureResult(SubResource): 7215 """Output of virtual machine capture operation. 7216 7217 Variables are only populated by the server, and will be ignored when sending a request. 7218 7219 :param id: Resource Id. 7220 :type id: str 7221 :ivar schema: the schema of the captured virtual machine. 7222 :vartype schema: str 7223 :ivar content_version: the version of the content. 7224 :vartype content_version: str 7225 :ivar parameters: parameters of the captured virtual machine. 7226 :vartype parameters: any 7227 :ivar resources: a list of resource items of the captured virtual machine. 7228 :vartype resources: list[any] 7229 """ 7230 7231 _validation = { 7232 'schema': {'readonly': True}, 7233 'content_version': {'readonly': True}, 7234 'parameters': {'readonly': True}, 7235 'resources': {'readonly': True}, 7236 } 7237 7238 _attribute_map = { 7239 'id': {'key': 'id', 'type': 'str'}, 7240 'schema': {'key': '$schema', 'type': 'str'}, 7241 'content_version': {'key': 'contentVersion', 'type': 'str'}, 7242 'parameters': {'key': 'parameters', 'type': 'object'}, 7243 'resources': {'key': 'resources', 'type': '[object]'}, 7244 } 7245 7246 def __init__( 7247 self, 7248 *, 7249 id: Optional[str] = None, 7250 **kwargs 7251 ): 7252 super(VirtualMachineCaptureResult, self).__init__(id=id, **kwargs) 7253 self.schema = None 7254 self.content_version = None 7255 self.parameters = None 7256 self.resources = None 7257 7258 7259class VirtualMachineExtension(Resource): 7260 """Describes a Virtual Machine Extension. 7261 7262 Variables are only populated by the server, and will be ignored when sending a request. 7263 7264 All required parameters must be populated in order to send to Azure. 7265 7266 :ivar id: Resource Id. 7267 :vartype id: str 7268 :ivar name: Resource name. 7269 :vartype name: str 7270 :ivar type: Resource type. 7271 :vartype type: str 7272 :param location: Required. Resource location. 7273 :type location: str 7274 :param tags: A set of tags. Resource tags. 7275 :type tags: dict[str, str] 7276 :param force_update_tag: How the extension handler should be forced to update even if the 7277 extension configuration has not changed. 7278 :type force_update_tag: str 7279 :param publisher: The name of the extension handler publisher. 7280 :type publisher: str 7281 :param type_properties_type: Specifies the type of the extension; an example is 7282 "CustomScriptExtension". 7283 :type type_properties_type: str 7284 :param type_handler_version: Specifies the version of the script handler. 7285 :type type_handler_version: str 7286 :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor 7287 version if one is available at deployment time. Once deployed, however, the extension will not 7288 upgrade minor versions unless redeployed, even with this property set to true. 7289 :type auto_upgrade_minor_version: bool 7290 :param enable_automatic_upgrade: Indicates whether the extension should be automatically 7291 upgraded by the platform if there is a newer version of the extension available. 7292 :type enable_automatic_upgrade: bool 7293 :param settings: Json formatted public settings for the extension. 7294 :type settings: any 7295 :param protected_settings: The extension can contain either protectedSettings or 7296 protectedSettingsFromKeyVault or no protected settings at all. 7297 :type protected_settings: any 7298 :ivar provisioning_state: The provisioning state, which only appears in the response. 7299 :vartype provisioning_state: str 7300 :param instance_view: The virtual machine extension instance view. 7301 :type instance_view: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineExtensionInstanceView 7302 """ 7303 7304 _validation = { 7305 'id': {'readonly': True}, 7306 'name': {'readonly': True}, 7307 'type': {'readonly': True}, 7308 'location': {'required': True}, 7309 'provisioning_state': {'readonly': True}, 7310 } 7311 7312 _attribute_map = { 7313 'id': {'key': 'id', 'type': 'str'}, 7314 'name': {'key': 'name', 'type': 'str'}, 7315 'type': {'key': 'type', 'type': 'str'}, 7316 'location': {'key': 'location', 'type': 'str'}, 7317 'tags': {'key': 'tags', 'type': '{str}'}, 7318 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, 7319 'publisher': {'key': 'properties.publisher', 'type': 'str'}, 7320 'type_properties_type': {'key': 'properties.type', 'type': 'str'}, 7321 'type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, 7322 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, 7323 'enable_automatic_upgrade': {'key': 'properties.enableAutomaticUpgrade', 'type': 'bool'}, 7324 'settings': {'key': 'properties.settings', 'type': 'object'}, 7325 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, 7326 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 7327 'instance_view': {'key': 'properties.instanceView', 'type': 'VirtualMachineExtensionInstanceView'}, 7328 } 7329 7330 def __init__( 7331 self, 7332 *, 7333 location: str, 7334 tags: Optional[Dict[str, str]] = None, 7335 force_update_tag: Optional[str] = None, 7336 publisher: Optional[str] = None, 7337 type_properties_type: Optional[str] = None, 7338 type_handler_version: Optional[str] = None, 7339 auto_upgrade_minor_version: Optional[bool] = None, 7340 enable_automatic_upgrade: Optional[bool] = None, 7341 settings: Optional[Any] = None, 7342 protected_settings: Optional[Any] = None, 7343 instance_view: Optional["VirtualMachineExtensionInstanceView"] = None, 7344 **kwargs 7345 ): 7346 super(VirtualMachineExtension, self).__init__(location=location, tags=tags, **kwargs) 7347 self.force_update_tag = force_update_tag 7348 self.publisher = publisher 7349 self.type_properties_type = type_properties_type 7350 self.type_handler_version = type_handler_version 7351 self.auto_upgrade_minor_version = auto_upgrade_minor_version 7352 self.enable_automatic_upgrade = enable_automatic_upgrade 7353 self.settings = settings 7354 self.protected_settings = protected_settings 7355 self.provisioning_state = None 7356 self.instance_view = instance_view 7357 7358 7359class VirtualMachineExtensionHandlerInstanceView(msrest.serialization.Model): 7360 """The instance view of a virtual machine extension handler. 7361 7362 :param type: Specifies the type of the extension; an example is "CustomScriptExtension". 7363 :type type: str 7364 :param type_handler_version: Specifies the version of the script handler. 7365 :type type_handler_version: str 7366 :param status: The extension handler status. 7367 :type status: ~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus 7368 """ 7369 7370 _attribute_map = { 7371 'type': {'key': 'type', 'type': 'str'}, 7372 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, 7373 'status': {'key': 'status', 'type': 'InstanceViewStatus'}, 7374 } 7375 7376 def __init__( 7377 self, 7378 *, 7379 type: Optional[str] = None, 7380 type_handler_version: Optional[str] = None, 7381 status: Optional["InstanceViewStatus"] = None, 7382 **kwargs 7383 ): 7384 super(VirtualMachineExtensionHandlerInstanceView, self).__init__(**kwargs) 7385 self.type = type 7386 self.type_handler_version = type_handler_version 7387 self.status = status 7388 7389 7390class VirtualMachineExtensionImage(Resource): 7391 """Describes a Virtual Machine Extension Image. 7392 7393 Variables are only populated by the server, and will be ignored when sending a request. 7394 7395 All required parameters must be populated in order to send to Azure. 7396 7397 :ivar id: Resource Id. 7398 :vartype id: str 7399 :ivar name: Resource name. 7400 :vartype name: str 7401 :ivar type: Resource type. 7402 :vartype type: str 7403 :param location: Required. Resource location. 7404 :type location: str 7405 :param tags: A set of tags. Resource tags. 7406 :type tags: dict[str, str] 7407 :param operating_system: The operating system this extension supports. 7408 :type operating_system: str 7409 :param compute_role: The type of role (IaaS or PaaS) this extension supports. 7410 :type compute_role: str 7411 :param handler_schema: The schema defined by publisher, where extension consumers should 7412 provide settings in a matching schema. 7413 :type handler_schema: str 7414 :param vm_scale_set_enabled: Whether the extension can be used on xRP VMScaleSets. By default 7415 existing extensions are usable on scalesets, but there might be cases where a publisher wants 7416 to explicitly indicate the extension is only enabled for CRP VMs but not VMSS. 7417 :type vm_scale_set_enabled: bool 7418 :param supports_multiple_extensions: Whether the handler can support multiple extensions. 7419 :type supports_multiple_extensions: bool 7420 """ 7421 7422 _validation = { 7423 'id': {'readonly': True}, 7424 'name': {'readonly': True}, 7425 'type': {'readonly': True}, 7426 'location': {'required': True}, 7427 } 7428 7429 _attribute_map = { 7430 'id': {'key': 'id', 'type': 'str'}, 7431 'name': {'key': 'name', 'type': 'str'}, 7432 'type': {'key': 'type', 'type': 'str'}, 7433 'location': {'key': 'location', 'type': 'str'}, 7434 'tags': {'key': 'tags', 'type': '{str}'}, 7435 'operating_system': {'key': 'properties.operatingSystem', 'type': 'str'}, 7436 'compute_role': {'key': 'properties.computeRole', 'type': 'str'}, 7437 'handler_schema': {'key': 'properties.handlerSchema', 'type': 'str'}, 7438 'vm_scale_set_enabled': {'key': 'properties.vmScaleSetEnabled', 'type': 'bool'}, 7439 'supports_multiple_extensions': {'key': 'properties.supportsMultipleExtensions', 'type': 'bool'}, 7440 } 7441 7442 def __init__( 7443 self, 7444 *, 7445 location: str, 7446 tags: Optional[Dict[str, str]] = None, 7447 operating_system: Optional[str] = None, 7448 compute_role: Optional[str] = None, 7449 handler_schema: Optional[str] = None, 7450 vm_scale_set_enabled: Optional[bool] = None, 7451 supports_multiple_extensions: Optional[bool] = None, 7452 **kwargs 7453 ): 7454 super(VirtualMachineExtensionImage, self).__init__(location=location, tags=tags, **kwargs) 7455 self.operating_system = operating_system 7456 self.compute_role = compute_role 7457 self.handler_schema = handler_schema 7458 self.vm_scale_set_enabled = vm_scale_set_enabled 7459 self.supports_multiple_extensions = supports_multiple_extensions 7460 7461 7462class VirtualMachineExtensionInstanceView(msrest.serialization.Model): 7463 """The instance view of a virtual machine extension. 7464 7465 :param name: The virtual machine extension name. 7466 :type name: str 7467 :param type: Specifies the type of the extension; an example is "CustomScriptExtension". 7468 :type type: str 7469 :param type_handler_version: Specifies the version of the script handler. 7470 :type type_handler_version: str 7471 :param substatuses: The resource status information. 7472 :type substatuses: list[~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus] 7473 :param statuses: The resource status information. 7474 :type statuses: list[~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus] 7475 """ 7476 7477 _attribute_map = { 7478 'name': {'key': 'name', 'type': 'str'}, 7479 'type': {'key': 'type', 'type': 'str'}, 7480 'type_handler_version': {'key': 'typeHandlerVersion', 'type': 'str'}, 7481 'substatuses': {'key': 'substatuses', 'type': '[InstanceViewStatus]'}, 7482 'statuses': {'key': 'statuses', 'type': '[InstanceViewStatus]'}, 7483 } 7484 7485 def __init__( 7486 self, 7487 *, 7488 name: Optional[str] = None, 7489 type: Optional[str] = None, 7490 type_handler_version: Optional[str] = None, 7491 substatuses: Optional[List["InstanceViewStatus"]] = None, 7492 statuses: Optional[List["InstanceViewStatus"]] = None, 7493 **kwargs 7494 ): 7495 super(VirtualMachineExtensionInstanceView, self).__init__(**kwargs) 7496 self.name = name 7497 self.type = type 7498 self.type_handler_version = type_handler_version 7499 self.substatuses = substatuses 7500 self.statuses = statuses 7501 7502 7503class VirtualMachineExtensionsListResult(msrest.serialization.Model): 7504 """The List Extension operation response. 7505 7506 :param value: The list of extensions. 7507 :type value: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineExtension] 7508 """ 7509 7510 _attribute_map = { 7511 'value': {'key': 'value', 'type': '[VirtualMachineExtension]'}, 7512 } 7513 7514 def __init__( 7515 self, 7516 *, 7517 value: Optional[List["VirtualMachineExtension"]] = None, 7518 **kwargs 7519 ): 7520 super(VirtualMachineExtensionsListResult, self).__init__(**kwargs) 7521 self.value = value 7522 7523 7524class VirtualMachineExtensionUpdate(UpdateResource): 7525 """Describes a Virtual Machine Extension. 7526 7527 :param tags: A set of tags. Resource tags. 7528 :type tags: dict[str, str] 7529 :param force_update_tag: How the extension handler should be forced to update even if the 7530 extension configuration has not changed. 7531 :type force_update_tag: str 7532 :param publisher: The name of the extension handler publisher. 7533 :type publisher: str 7534 :param type: Specifies the type of the extension; an example is "CustomScriptExtension". 7535 :type type: str 7536 :param type_handler_version: Specifies the version of the script handler. 7537 :type type_handler_version: str 7538 :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor 7539 version if one is available at deployment time. Once deployed, however, the extension will not 7540 upgrade minor versions unless redeployed, even with this property set to true. 7541 :type auto_upgrade_minor_version: bool 7542 :param enable_automatic_upgrade: Indicates whether the extension should be automatically 7543 upgraded by the platform if there is a newer version of the extension available. 7544 :type enable_automatic_upgrade: bool 7545 :param settings: Json formatted public settings for the extension. 7546 :type settings: any 7547 :param protected_settings: The extension can contain either protectedSettings or 7548 protectedSettingsFromKeyVault or no protected settings at all. 7549 :type protected_settings: any 7550 """ 7551 7552 _attribute_map = { 7553 'tags': {'key': 'tags', 'type': '{str}'}, 7554 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, 7555 'publisher': {'key': 'properties.publisher', 'type': 'str'}, 7556 'type': {'key': 'properties.type', 'type': 'str'}, 7557 'type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, 7558 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, 7559 'enable_automatic_upgrade': {'key': 'properties.enableAutomaticUpgrade', 'type': 'bool'}, 7560 'settings': {'key': 'properties.settings', 'type': 'object'}, 7561 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, 7562 } 7563 7564 def __init__( 7565 self, 7566 *, 7567 tags: Optional[Dict[str, str]] = None, 7568 force_update_tag: Optional[str] = None, 7569 publisher: Optional[str] = None, 7570 type: Optional[str] = None, 7571 type_handler_version: Optional[str] = None, 7572 auto_upgrade_minor_version: Optional[bool] = None, 7573 enable_automatic_upgrade: Optional[bool] = None, 7574 settings: Optional[Any] = None, 7575 protected_settings: Optional[Any] = None, 7576 **kwargs 7577 ): 7578 super(VirtualMachineExtensionUpdate, self).__init__(tags=tags, **kwargs) 7579 self.force_update_tag = force_update_tag 7580 self.publisher = publisher 7581 self.type = type 7582 self.type_handler_version = type_handler_version 7583 self.auto_upgrade_minor_version = auto_upgrade_minor_version 7584 self.enable_automatic_upgrade = enable_automatic_upgrade 7585 self.settings = settings 7586 self.protected_settings = protected_settings 7587 7588 7589class VirtualMachineHealthStatus(msrest.serialization.Model): 7590 """The health status of the VM. 7591 7592 Variables are only populated by the server, and will be ignored when sending a request. 7593 7594 :ivar status: The health status information for the VM. 7595 :vartype status: ~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus 7596 """ 7597 7598 _validation = { 7599 'status': {'readonly': True}, 7600 } 7601 7602 _attribute_map = { 7603 'status': {'key': 'status', 'type': 'InstanceViewStatus'}, 7604 } 7605 7606 def __init__( 7607 self, 7608 **kwargs 7609 ): 7610 super(VirtualMachineHealthStatus, self).__init__(**kwargs) 7611 self.status = None 7612 7613 7614class VirtualMachineIdentity(msrest.serialization.Model): 7615 """Identity for the virtual machine. 7616 7617 Variables are only populated by the server, and will be ignored when sending a request. 7618 7619 :ivar principal_id: The principal id of virtual machine identity. This property will only be 7620 provided for a system assigned identity. 7621 :vartype principal_id: str 7622 :ivar tenant_id: The tenant id associated with the virtual machine. This property will only be 7623 provided for a system assigned identity. 7624 :vartype tenant_id: str 7625 :param type: The type of identity used for the virtual machine. The type 'SystemAssigned, 7626 UserAssigned' includes both an implicitly created identity and a set of user assigned 7627 identities. The type 'None' will remove any identities from the virtual machine. Possible 7628 values include: "SystemAssigned", "UserAssigned", "SystemAssigned, UserAssigned", "None". 7629 :type type: str or ~azure.mgmt.compute.v2020_12_01.models.ResourceIdentityType 7630 :param user_assigned_identities: The list of user identities associated with the Virtual 7631 Machine. The user identity dictionary key references will be ARM resource ids in the form: 7632 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. 7633 :type user_assigned_identities: dict[str, 7634 ~azure.mgmt.compute.v2020_12_01.models.UserAssignedIdentitiesValue] 7635 """ 7636 7637 _validation = { 7638 'principal_id': {'readonly': True}, 7639 'tenant_id': {'readonly': True}, 7640 } 7641 7642 _attribute_map = { 7643 'principal_id': {'key': 'principalId', 'type': 'str'}, 7644 'tenant_id': {'key': 'tenantId', 'type': 'str'}, 7645 'type': {'key': 'type', 'type': 'str'}, 7646 'user_assigned_identities': {'key': 'userAssignedIdentities', 'type': '{UserAssignedIdentitiesValue}'}, 7647 } 7648 7649 def __init__( 7650 self, 7651 *, 7652 type: Optional[Union[str, "ResourceIdentityType"]] = None, 7653 user_assigned_identities: Optional[Dict[str, "UserAssignedIdentitiesValue"]] = None, 7654 **kwargs 7655 ): 7656 super(VirtualMachineIdentity, self).__init__(**kwargs) 7657 self.principal_id = None 7658 self.tenant_id = None 7659 self.type = type 7660 self.user_assigned_identities = user_assigned_identities 7661 7662 7663class VirtualMachineImageResource(SubResource): 7664 """Virtual machine image resource information. 7665 7666 All required parameters must be populated in order to send to Azure. 7667 7668 :param id: Resource Id. 7669 :type id: str 7670 :param name: Required. The name of the resource. 7671 :type name: str 7672 :param location: Required. The supported Azure location of the resource. 7673 :type location: str 7674 :param tags: A set of tags. Specifies the tags that are assigned to the virtual machine. For 7675 more information about using tags, see `Using tags to organize your Azure resources 7676 <https://docs.microsoft.com/azure/azure-resource-manager/resource-group-using-tags.md>`_. 7677 :type tags: dict[str, str] 7678 :param extended_location: The extended location of the Virtual Machine. 7679 :type extended_location: ~azure.mgmt.compute.v2020_12_01.models.ExtendedLocation 7680 """ 7681 7682 _validation = { 7683 'name': {'required': True}, 7684 'location': {'required': True}, 7685 } 7686 7687 _attribute_map = { 7688 'id': {'key': 'id', 'type': 'str'}, 7689 'name': {'key': 'name', 'type': 'str'}, 7690 'location': {'key': 'location', 'type': 'str'}, 7691 'tags': {'key': 'tags', 'type': '{str}'}, 7692 'extended_location': {'key': 'extendedLocation', 'type': 'ExtendedLocation'}, 7693 } 7694 7695 def __init__( 7696 self, 7697 *, 7698 name: str, 7699 location: str, 7700 id: Optional[str] = None, 7701 tags: Optional[Dict[str, str]] = None, 7702 extended_location: Optional["ExtendedLocation"] = None, 7703 **kwargs 7704 ): 7705 super(VirtualMachineImageResource, self).__init__(id=id, **kwargs) 7706 self.name = name 7707 self.location = location 7708 self.tags = tags 7709 self.extended_location = extended_location 7710 7711 7712class VirtualMachineImage(VirtualMachineImageResource): 7713 """Describes a Virtual Machine Image. 7714 7715 All required parameters must be populated in order to send to Azure. 7716 7717 :param id: Resource Id. 7718 :type id: str 7719 :param name: Required. The name of the resource. 7720 :type name: str 7721 :param location: Required. The supported Azure location of the resource. 7722 :type location: str 7723 :param tags: A set of tags. Specifies the tags that are assigned to the virtual machine. For 7724 more information about using tags, see `Using tags to organize your Azure resources 7725 <https://docs.microsoft.com/azure/azure-resource-manager/resource-group-using-tags.md>`_. 7726 :type tags: dict[str, str] 7727 :param extended_location: The extended location of the Virtual Machine. 7728 :type extended_location: ~azure.mgmt.compute.v2020_12_01.models.ExtendedLocation 7729 :param plan: Used for establishing the purchase context of any 3rd Party artifact through 7730 MarketPlace. 7731 :type plan: ~azure.mgmt.compute.v2020_12_01.models.PurchasePlanAutoGenerated 7732 :param os_disk_image: Contains the os disk image information. 7733 :type os_disk_image: ~azure.mgmt.compute.v2020_12_01.models.OSDiskImage 7734 :param data_disk_images: 7735 :type data_disk_images: list[~azure.mgmt.compute.v2020_12_01.models.DataDiskImage] 7736 :param automatic_os_upgrade_properties: Describes automatic OS upgrade properties on the image. 7737 :type automatic_os_upgrade_properties: 7738 ~azure.mgmt.compute.v2020_12_01.models.AutomaticOSUpgradeProperties 7739 :param hyper_v_generation: Specifies the HyperVGeneration Type. Possible values include: "V1", 7740 "V2". 7741 :type hyper_v_generation: str or ~azure.mgmt.compute.v2020_12_01.models.HyperVGenerationTypes 7742 :param disallowed: Specifies disallowed configuration for the VirtualMachine created from the 7743 image. 7744 :type disallowed: ~azure.mgmt.compute.v2020_12_01.models.DisallowedConfiguration 7745 :param features: 7746 :type features: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineImageFeature] 7747 """ 7748 7749 _validation = { 7750 'name': {'required': True}, 7751 'location': {'required': True}, 7752 } 7753 7754 _attribute_map = { 7755 'id': {'key': 'id', 'type': 'str'}, 7756 'name': {'key': 'name', 'type': 'str'}, 7757 'location': {'key': 'location', 'type': 'str'}, 7758 'tags': {'key': 'tags', 'type': '{str}'}, 7759 'extended_location': {'key': 'extendedLocation', 'type': 'ExtendedLocation'}, 7760 'plan': {'key': 'properties.plan', 'type': 'PurchasePlanAutoGenerated'}, 7761 'os_disk_image': {'key': 'properties.osDiskImage', 'type': 'OSDiskImage'}, 7762 'data_disk_images': {'key': 'properties.dataDiskImages', 'type': '[DataDiskImage]'}, 7763 'automatic_os_upgrade_properties': {'key': 'properties.automaticOSUpgradeProperties', 'type': 'AutomaticOSUpgradeProperties'}, 7764 'hyper_v_generation': {'key': 'properties.hyperVGeneration', 'type': 'str'}, 7765 'disallowed': {'key': 'properties.disallowed', 'type': 'DisallowedConfiguration'}, 7766 'features': {'key': 'properties.features', 'type': '[VirtualMachineImageFeature]'}, 7767 } 7768 7769 def __init__( 7770 self, 7771 *, 7772 name: str, 7773 location: str, 7774 id: Optional[str] = None, 7775 tags: Optional[Dict[str, str]] = None, 7776 extended_location: Optional["ExtendedLocation"] = None, 7777 plan: Optional["PurchasePlanAutoGenerated"] = None, 7778 os_disk_image: Optional["OSDiskImage"] = None, 7779 data_disk_images: Optional[List["DataDiskImage"]] = None, 7780 automatic_os_upgrade_properties: Optional["AutomaticOSUpgradeProperties"] = None, 7781 hyper_v_generation: Optional[Union[str, "HyperVGenerationTypes"]] = None, 7782 disallowed: Optional["DisallowedConfiguration"] = None, 7783 features: Optional[List["VirtualMachineImageFeature"]] = None, 7784 **kwargs 7785 ): 7786 super(VirtualMachineImage, self).__init__(id=id, name=name, location=location, tags=tags, extended_location=extended_location, **kwargs) 7787 self.plan = plan 7788 self.os_disk_image = os_disk_image 7789 self.data_disk_images = data_disk_images 7790 self.automatic_os_upgrade_properties = automatic_os_upgrade_properties 7791 self.hyper_v_generation = hyper_v_generation 7792 self.disallowed = disallowed 7793 self.features = features 7794 7795 7796class VirtualMachineImageFeature(msrest.serialization.Model): 7797 """Specifies additional capabilities supported by the image. 7798 7799 :param name: The name of the feature. 7800 :type name: str 7801 :param value: The corresponding value for the feature. 7802 :type value: str 7803 """ 7804 7805 _attribute_map = { 7806 'name': {'key': 'name', 'type': 'str'}, 7807 'value': {'key': 'value', 'type': 'str'}, 7808 } 7809 7810 def __init__( 7811 self, 7812 *, 7813 name: Optional[str] = None, 7814 value: Optional[str] = None, 7815 **kwargs 7816 ): 7817 super(VirtualMachineImageFeature, self).__init__(**kwargs) 7818 self.name = name 7819 self.value = value 7820 7821 7822class VirtualMachineInstallPatchesParameters(msrest.serialization.Model): 7823 """Input for InstallPatches as directly received by the API. 7824 7825 All required parameters must be populated in order to send to Azure. 7826 7827 :param maximum_duration: Required. Specifies the maximum amount of time that the operation will 7828 run. It must be an ISO 8601-compliant duration string such as PT4H (4 hours). 7829 :type maximum_duration: str 7830 :param reboot_setting: Required. Defines when it is acceptable to reboot a VM during a software 7831 update operation. Possible values include: "IfRequired", "Never", "Always". 7832 :type reboot_setting: str or ~azure.mgmt.compute.v2020_12_01.models.VMGuestPatchRebootSetting 7833 :param windows_parameters: Input for InstallPatches on a Windows VM, as directly received by 7834 the API. 7835 :type windows_parameters: ~azure.mgmt.compute.v2020_12_01.models.WindowsParameters 7836 :param linux_parameters: Input for InstallPatches on a Linux VM, as directly received by the 7837 API. 7838 :type linux_parameters: ~azure.mgmt.compute.v2020_12_01.models.LinuxParameters 7839 """ 7840 7841 _validation = { 7842 'maximum_duration': {'required': True}, 7843 'reboot_setting': {'required': True}, 7844 } 7845 7846 _attribute_map = { 7847 'maximum_duration': {'key': 'maximumDuration', 'type': 'str'}, 7848 'reboot_setting': {'key': 'rebootSetting', 'type': 'str'}, 7849 'windows_parameters': {'key': 'windowsParameters', 'type': 'WindowsParameters'}, 7850 'linux_parameters': {'key': 'linuxParameters', 'type': 'LinuxParameters'}, 7851 } 7852 7853 def __init__( 7854 self, 7855 *, 7856 maximum_duration: str, 7857 reboot_setting: Union[str, "VMGuestPatchRebootSetting"], 7858 windows_parameters: Optional["WindowsParameters"] = None, 7859 linux_parameters: Optional["LinuxParameters"] = None, 7860 **kwargs 7861 ): 7862 super(VirtualMachineInstallPatchesParameters, self).__init__(**kwargs) 7863 self.maximum_duration = maximum_duration 7864 self.reboot_setting = reboot_setting 7865 self.windows_parameters = windows_parameters 7866 self.linux_parameters = linux_parameters 7867 7868 7869class VirtualMachineInstallPatchesResult(msrest.serialization.Model): 7870 """The result summary of an installation operation. 7871 7872 Variables are only populated by the server, and will be ignored when sending a request. 7873 7874 :ivar status: The overall success or failure status of the operation. It remains "InProgress" 7875 until the operation completes. At that point it will become "Failed", "Succeeded", "Unknown" or 7876 "CompletedWithWarnings.". Possible values include: "Unknown", "InProgress", "Failed", 7877 "Succeeded", "CompletedWithWarnings". 7878 :vartype status: str or ~azure.mgmt.compute.v2020_12_01.models.PatchOperationStatus 7879 :ivar installation_activity_id: The activity ID of the operation that produced this result. It 7880 is used to correlate across CRP and extension logs. 7881 :vartype installation_activity_id: str 7882 :ivar reboot_status: The reboot state of the VM following completion of the operation. Possible 7883 values include: "Unknown", "NotNeeded", "Required", "Started", "Failed", "Completed". 7884 :vartype reboot_status: str or ~azure.mgmt.compute.v2020_12_01.models.VMGuestPatchRebootStatus 7885 :ivar maintenance_window_exceeded: Whether the operation ran out of time before it completed 7886 all its intended actions. 7887 :vartype maintenance_window_exceeded: bool 7888 :ivar excluded_patch_count: The number of patches that were not installed due to the user 7889 blocking their installation. 7890 :vartype excluded_patch_count: int 7891 :ivar not_selected_patch_count: The number of patches that were detected as available for 7892 install, but did not meet the operation's criteria. 7893 :vartype not_selected_patch_count: int 7894 :ivar pending_patch_count: The number of patches that were identified as meeting the 7895 installation criteria, but were not able to be installed. Typically this happens when 7896 maintenanceWindowExceeded == true. 7897 :vartype pending_patch_count: int 7898 :ivar installed_patch_count: The number of patches successfully installed. 7899 :vartype installed_patch_count: int 7900 :ivar failed_patch_count: The number of patches that could not be installed due to some issue. 7901 See errors for details. 7902 :vartype failed_patch_count: int 7903 :ivar patches: The patches that were installed during the operation. 7904 :vartype patches: list[~azure.mgmt.compute.v2020_12_01.models.PatchInstallationDetail] 7905 :ivar start_date_time: The UTC timestamp when the operation began. 7906 :vartype start_date_time: ~datetime.datetime 7907 :ivar error: The errors that were encountered during execution of the operation. The details 7908 array contains the list of them. 7909 :vartype error: ~azure.mgmt.compute.v2020_12_01.models.ApiError 7910 """ 7911 7912 _validation = { 7913 'status': {'readonly': True}, 7914 'installation_activity_id': {'readonly': True}, 7915 'reboot_status': {'readonly': True}, 7916 'maintenance_window_exceeded': {'readonly': True}, 7917 'excluded_patch_count': {'readonly': True}, 7918 'not_selected_patch_count': {'readonly': True}, 7919 'pending_patch_count': {'readonly': True}, 7920 'installed_patch_count': {'readonly': True}, 7921 'failed_patch_count': {'readonly': True}, 7922 'patches': {'readonly': True}, 7923 'start_date_time': {'readonly': True}, 7924 'error': {'readonly': True}, 7925 } 7926 7927 _attribute_map = { 7928 'status': {'key': 'status', 'type': 'str'}, 7929 'installation_activity_id': {'key': 'installationActivityId', 'type': 'str'}, 7930 'reboot_status': {'key': 'rebootStatus', 'type': 'str'}, 7931 'maintenance_window_exceeded': {'key': 'maintenanceWindowExceeded', 'type': 'bool'}, 7932 'excluded_patch_count': {'key': 'excludedPatchCount', 'type': 'int'}, 7933 'not_selected_patch_count': {'key': 'notSelectedPatchCount', 'type': 'int'}, 7934 'pending_patch_count': {'key': 'pendingPatchCount', 'type': 'int'}, 7935 'installed_patch_count': {'key': 'installedPatchCount', 'type': 'int'}, 7936 'failed_patch_count': {'key': 'failedPatchCount', 'type': 'int'}, 7937 'patches': {'key': 'patches', 'type': '[PatchInstallationDetail]'}, 7938 'start_date_time': {'key': 'startDateTime', 'type': 'iso-8601'}, 7939 'error': {'key': 'error', 'type': 'ApiError'}, 7940 } 7941 7942 def __init__( 7943 self, 7944 **kwargs 7945 ): 7946 super(VirtualMachineInstallPatchesResult, self).__init__(**kwargs) 7947 self.status = None 7948 self.installation_activity_id = None 7949 self.reboot_status = None 7950 self.maintenance_window_exceeded = None 7951 self.excluded_patch_count = None 7952 self.not_selected_patch_count = None 7953 self.pending_patch_count = None 7954 self.installed_patch_count = None 7955 self.failed_patch_count = None 7956 self.patches = None 7957 self.start_date_time = None 7958 self.error = None 7959 7960 7961class VirtualMachineInstanceView(msrest.serialization.Model): 7962 """The instance view of a virtual machine. 7963 7964 Variables are only populated by the server, and will be ignored when sending a request. 7965 7966 :param platform_update_domain: Specifies the update domain of the virtual machine. 7967 :type platform_update_domain: int 7968 :param platform_fault_domain: Specifies the fault domain of the virtual machine. 7969 :type platform_fault_domain: int 7970 :param computer_name: The computer name assigned to the virtual machine. 7971 :type computer_name: str 7972 :param os_name: The Operating System running on the virtual machine. 7973 :type os_name: str 7974 :param os_version: The version of Operating System running on the virtual machine. 7975 :type os_version: str 7976 :param hyper_v_generation: Specifies the HyperVGeneration Type associated with a resource. 7977 Possible values include: "V1", "V2". 7978 :type hyper_v_generation: str or ~azure.mgmt.compute.v2020_12_01.models.HyperVGenerationType 7979 :param rdp_thumb_print: The Remote desktop certificate thumbprint. 7980 :type rdp_thumb_print: str 7981 :param vm_agent: The VM Agent running on the virtual machine. 7982 :type vm_agent: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineAgentInstanceView 7983 :param maintenance_redeploy_status: The Maintenance Operation status on the virtual machine. 7984 :type maintenance_redeploy_status: 7985 ~azure.mgmt.compute.v2020_12_01.models.MaintenanceRedeployStatus 7986 :param disks: The virtual machine disk information. 7987 :type disks: list[~azure.mgmt.compute.v2020_12_01.models.DiskInstanceView] 7988 :param extensions: The extensions information. 7989 :type extensions: 7990 list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineExtensionInstanceView] 7991 :ivar vm_health: The health status for the VM. 7992 :vartype vm_health: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineHealthStatus 7993 :param boot_diagnostics: Boot Diagnostics is a debugging feature which allows you to view 7994 Console Output and Screenshot to diagnose VM status. :code:`<br>`:code:`<br>` You can easily 7995 view the output of your console log. :code:`<br>`:code:`<br>` Azure also enables you to see a 7996 screenshot of the VM from the hypervisor. 7997 :type boot_diagnostics: ~azure.mgmt.compute.v2020_12_01.models.BootDiagnosticsInstanceView 7998 :ivar assigned_host: Resource id of the dedicated host, on which the virtual machine is 7999 allocated through automatic placement, when the virtual machine is associated with a dedicated 8000 host group that has automatic placement enabled. :code:`<br>`:code:`<br>`Minimum api-version: 8001 2020-06-01. 8002 :vartype assigned_host: str 8003 :param statuses: The resource status information. 8004 :type statuses: list[~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus] 8005 :param patch_status: [Preview Feature] The status of virtual machine patch operations. 8006 :type patch_status: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachinePatchStatus 8007 """ 8008 8009 _validation = { 8010 'vm_health': {'readonly': True}, 8011 'assigned_host': {'readonly': True}, 8012 } 8013 8014 _attribute_map = { 8015 'platform_update_domain': {'key': 'platformUpdateDomain', 'type': 'int'}, 8016 'platform_fault_domain': {'key': 'platformFaultDomain', 'type': 'int'}, 8017 'computer_name': {'key': 'computerName', 'type': 'str'}, 8018 'os_name': {'key': 'osName', 'type': 'str'}, 8019 'os_version': {'key': 'osVersion', 'type': 'str'}, 8020 'hyper_v_generation': {'key': 'hyperVGeneration', 'type': 'str'}, 8021 'rdp_thumb_print': {'key': 'rdpThumbPrint', 'type': 'str'}, 8022 'vm_agent': {'key': 'vmAgent', 'type': 'VirtualMachineAgentInstanceView'}, 8023 'maintenance_redeploy_status': {'key': 'maintenanceRedeployStatus', 'type': 'MaintenanceRedeployStatus'}, 8024 'disks': {'key': 'disks', 'type': '[DiskInstanceView]'}, 8025 'extensions': {'key': 'extensions', 'type': '[VirtualMachineExtensionInstanceView]'}, 8026 'vm_health': {'key': 'vmHealth', 'type': 'VirtualMachineHealthStatus'}, 8027 'boot_diagnostics': {'key': 'bootDiagnostics', 'type': 'BootDiagnosticsInstanceView'}, 8028 'assigned_host': {'key': 'assignedHost', 'type': 'str'}, 8029 'statuses': {'key': 'statuses', 'type': '[InstanceViewStatus]'}, 8030 'patch_status': {'key': 'patchStatus', 'type': 'VirtualMachinePatchStatus'}, 8031 } 8032 8033 def __init__( 8034 self, 8035 *, 8036 platform_update_domain: Optional[int] = None, 8037 platform_fault_domain: Optional[int] = None, 8038 computer_name: Optional[str] = None, 8039 os_name: Optional[str] = None, 8040 os_version: Optional[str] = None, 8041 hyper_v_generation: Optional[Union[str, "HyperVGenerationType"]] = None, 8042 rdp_thumb_print: Optional[str] = None, 8043 vm_agent: Optional["VirtualMachineAgentInstanceView"] = None, 8044 maintenance_redeploy_status: Optional["MaintenanceRedeployStatus"] = None, 8045 disks: Optional[List["DiskInstanceView"]] = None, 8046 extensions: Optional[List["VirtualMachineExtensionInstanceView"]] = None, 8047 boot_diagnostics: Optional["BootDiagnosticsInstanceView"] = None, 8048 statuses: Optional[List["InstanceViewStatus"]] = None, 8049 patch_status: Optional["VirtualMachinePatchStatus"] = None, 8050 **kwargs 8051 ): 8052 super(VirtualMachineInstanceView, self).__init__(**kwargs) 8053 self.platform_update_domain = platform_update_domain 8054 self.platform_fault_domain = platform_fault_domain 8055 self.computer_name = computer_name 8056 self.os_name = os_name 8057 self.os_version = os_version 8058 self.hyper_v_generation = hyper_v_generation 8059 self.rdp_thumb_print = rdp_thumb_print 8060 self.vm_agent = vm_agent 8061 self.maintenance_redeploy_status = maintenance_redeploy_status 8062 self.disks = disks 8063 self.extensions = extensions 8064 self.vm_health = None 8065 self.boot_diagnostics = boot_diagnostics 8066 self.assigned_host = None 8067 self.statuses = statuses 8068 self.patch_status = patch_status 8069 8070 8071class VirtualMachineListResult(msrest.serialization.Model): 8072 """The List Virtual Machine operation response. 8073 8074 All required parameters must be populated in order to send to Azure. 8075 8076 :param value: Required. The list of virtual machines. 8077 :type value: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachine] 8078 :param next_link: The URI to fetch the next page of VMs. Call ListNext() with this URI to fetch 8079 the next page of Virtual Machines. 8080 :type next_link: str 8081 """ 8082 8083 _validation = { 8084 'value': {'required': True}, 8085 } 8086 8087 _attribute_map = { 8088 'value': {'key': 'value', 'type': '[VirtualMachine]'}, 8089 'next_link': {'key': 'nextLink', 'type': 'str'}, 8090 } 8091 8092 def __init__( 8093 self, 8094 *, 8095 value: List["VirtualMachine"], 8096 next_link: Optional[str] = None, 8097 **kwargs 8098 ): 8099 super(VirtualMachineListResult, self).__init__(**kwargs) 8100 self.value = value 8101 self.next_link = next_link 8102 8103 8104class VirtualMachinePatchStatus(msrest.serialization.Model): 8105 """The status of virtual machine patch operations. 8106 8107 Variables are only populated by the server, and will be ignored when sending a request. 8108 8109 :param available_patch_summary: The available patch summary of the latest assessment operation 8110 for the virtual machine. 8111 :type available_patch_summary: ~azure.mgmt.compute.v2020_12_01.models.AvailablePatchSummary 8112 :param last_patch_installation_summary: The installation summary of the latest installation 8113 operation for the virtual machine. 8114 :type last_patch_installation_summary: 8115 ~azure.mgmt.compute.v2020_12_01.models.LastPatchInstallationSummary 8116 :ivar configuration_statuses: The enablement status of the specified patchMode. 8117 :vartype configuration_statuses: 8118 list[~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus] 8119 """ 8120 8121 _validation = { 8122 'configuration_statuses': {'readonly': True}, 8123 } 8124 8125 _attribute_map = { 8126 'available_patch_summary': {'key': 'availablePatchSummary', 'type': 'AvailablePatchSummary'}, 8127 'last_patch_installation_summary': {'key': 'lastPatchInstallationSummary', 'type': 'LastPatchInstallationSummary'}, 8128 'configuration_statuses': {'key': 'configurationStatuses', 'type': '[InstanceViewStatus]'}, 8129 } 8130 8131 def __init__( 8132 self, 8133 *, 8134 available_patch_summary: Optional["AvailablePatchSummary"] = None, 8135 last_patch_installation_summary: Optional["LastPatchInstallationSummary"] = None, 8136 **kwargs 8137 ): 8138 super(VirtualMachinePatchStatus, self).__init__(**kwargs) 8139 self.available_patch_summary = available_patch_summary 8140 self.last_patch_installation_summary = last_patch_installation_summary 8141 self.configuration_statuses = None 8142 8143 8144class VirtualMachineReimageParameters(msrest.serialization.Model): 8145 """Parameters for Reimaging Virtual Machine. NOTE: Virtual Machine OS disk will always be reimaged. 8146 8147 :param temp_disk: Specifies whether to reimage temp disk. Default value: false. Note: This temp 8148 disk reimage parameter is only supported for VM/VMSS with Ephemeral OS disk. 8149 :type temp_disk: bool 8150 """ 8151 8152 _attribute_map = { 8153 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, 8154 } 8155 8156 def __init__( 8157 self, 8158 *, 8159 temp_disk: Optional[bool] = None, 8160 **kwargs 8161 ): 8162 super(VirtualMachineReimageParameters, self).__init__(**kwargs) 8163 self.temp_disk = temp_disk 8164 8165 8166class VirtualMachineRunCommand(Resource): 8167 """Describes a Virtual Machine run command. 8168 8169 Variables are only populated by the server, and will be ignored when sending a request. 8170 8171 All required parameters must be populated in order to send to Azure. 8172 8173 :ivar id: Resource Id. 8174 :vartype id: str 8175 :ivar name: Resource name. 8176 :vartype name: str 8177 :ivar type: Resource type. 8178 :vartype type: str 8179 :param location: Required. Resource location. 8180 :type location: str 8181 :param tags: A set of tags. Resource tags. 8182 :type tags: dict[str, str] 8183 :param source: The source of the run command script. 8184 :type source: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineRunCommandScriptSource 8185 :param parameters: The parameters used by the script. 8186 :type parameters: list[~azure.mgmt.compute.v2020_12_01.models.RunCommandInputParameter] 8187 :param protected_parameters: The parameters used by the script. 8188 :type protected_parameters: 8189 list[~azure.mgmt.compute.v2020_12_01.models.RunCommandInputParameter] 8190 :param async_execution: Optional. If set to true, provisioning will complete as soon as the 8191 script starts and will not wait for script to complete. 8192 :type async_execution: bool 8193 :param run_as_user: Specifies the user account on the VM when executing the run command. 8194 :type run_as_user: str 8195 :param run_as_password: Specifies the user account password on the VM when executing the run 8196 command. 8197 :type run_as_password: str 8198 :param timeout_in_seconds: The timeout in seconds to execute the run command. 8199 :type timeout_in_seconds: int 8200 :param output_blob_uri: Specifies the Azure storage blob where script output stream will be 8201 uploaded. 8202 :type output_blob_uri: str 8203 :param error_blob_uri: Specifies the Azure storage blob where script error stream will be 8204 uploaded. 8205 :type error_blob_uri: str 8206 :ivar provisioning_state: The provisioning state, which only appears in the response. 8207 :vartype provisioning_state: str 8208 :ivar instance_view: The virtual machine run command instance view. 8209 :vartype instance_view: 8210 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineRunCommandInstanceView 8211 """ 8212 8213 _validation = { 8214 'id': {'readonly': True}, 8215 'name': {'readonly': True}, 8216 'type': {'readonly': True}, 8217 'location': {'required': True}, 8218 'provisioning_state': {'readonly': True}, 8219 'instance_view': {'readonly': True}, 8220 } 8221 8222 _attribute_map = { 8223 'id': {'key': 'id', 'type': 'str'}, 8224 'name': {'key': 'name', 'type': 'str'}, 8225 'type': {'key': 'type', 'type': 'str'}, 8226 'location': {'key': 'location', 'type': 'str'}, 8227 'tags': {'key': 'tags', 'type': '{str}'}, 8228 'source': {'key': 'properties.source', 'type': 'VirtualMachineRunCommandScriptSource'}, 8229 'parameters': {'key': 'properties.parameters', 'type': '[RunCommandInputParameter]'}, 8230 'protected_parameters': {'key': 'properties.protectedParameters', 'type': '[RunCommandInputParameter]'}, 8231 'async_execution': {'key': 'properties.asyncExecution', 'type': 'bool'}, 8232 'run_as_user': {'key': 'properties.runAsUser', 'type': 'str'}, 8233 'run_as_password': {'key': 'properties.runAsPassword', 'type': 'str'}, 8234 'timeout_in_seconds': {'key': 'properties.timeoutInSeconds', 'type': 'int'}, 8235 'output_blob_uri': {'key': 'properties.outputBlobUri', 'type': 'str'}, 8236 'error_blob_uri': {'key': 'properties.errorBlobUri', 'type': 'str'}, 8237 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 8238 'instance_view': {'key': 'properties.instanceView', 'type': 'VirtualMachineRunCommandInstanceView'}, 8239 } 8240 8241 def __init__( 8242 self, 8243 *, 8244 location: str, 8245 tags: Optional[Dict[str, str]] = None, 8246 source: Optional["VirtualMachineRunCommandScriptSource"] = None, 8247 parameters: Optional[List["RunCommandInputParameter"]] = None, 8248 protected_parameters: Optional[List["RunCommandInputParameter"]] = None, 8249 async_execution: Optional[bool] = False, 8250 run_as_user: Optional[str] = None, 8251 run_as_password: Optional[str] = None, 8252 timeout_in_seconds: Optional[int] = None, 8253 output_blob_uri: Optional[str] = None, 8254 error_blob_uri: Optional[str] = None, 8255 **kwargs 8256 ): 8257 super(VirtualMachineRunCommand, self).__init__(location=location, tags=tags, **kwargs) 8258 self.source = source 8259 self.parameters = parameters 8260 self.protected_parameters = protected_parameters 8261 self.async_execution = async_execution 8262 self.run_as_user = run_as_user 8263 self.run_as_password = run_as_password 8264 self.timeout_in_seconds = timeout_in_seconds 8265 self.output_blob_uri = output_blob_uri 8266 self.error_blob_uri = error_blob_uri 8267 self.provisioning_state = None 8268 self.instance_view = None 8269 8270 8271class VirtualMachineRunCommandInstanceView(msrest.serialization.Model): 8272 """The instance view of a virtual machine run command. 8273 8274 :param execution_state: Script execution status. Possible values include: "Unknown", "Pending", 8275 "Running", "Failed", "Succeeded", "TimedOut", "Canceled". 8276 :type execution_state: str or ~azure.mgmt.compute.v2020_12_01.models.ExecutionState 8277 :param execution_message: Communicate script configuration errors or execution messages. 8278 :type execution_message: str 8279 :param exit_code: Exit code returned from script execution. 8280 :type exit_code: int 8281 :param output: Script output stream. 8282 :type output: str 8283 :param error: Script error stream. 8284 :type error: str 8285 :param start_time: Script start time. 8286 :type start_time: ~datetime.datetime 8287 :param end_time: Script end time. 8288 :type end_time: ~datetime.datetime 8289 :param statuses: The resource status information. 8290 :type statuses: list[~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus] 8291 """ 8292 8293 _attribute_map = { 8294 'execution_state': {'key': 'executionState', 'type': 'str'}, 8295 'execution_message': {'key': 'executionMessage', 'type': 'str'}, 8296 'exit_code': {'key': 'exitCode', 'type': 'int'}, 8297 'output': {'key': 'output', 'type': 'str'}, 8298 'error': {'key': 'error', 'type': 'str'}, 8299 'start_time': {'key': 'startTime', 'type': 'iso-8601'}, 8300 'end_time': {'key': 'endTime', 'type': 'iso-8601'}, 8301 'statuses': {'key': 'statuses', 'type': '[InstanceViewStatus]'}, 8302 } 8303 8304 def __init__( 8305 self, 8306 *, 8307 execution_state: Optional[Union[str, "ExecutionState"]] = None, 8308 execution_message: Optional[str] = None, 8309 exit_code: Optional[int] = None, 8310 output: Optional[str] = None, 8311 error: Optional[str] = None, 8312 start_time: Optional[datetime.datetime] = None, 8313 end_time: Optional[datetime.datetime] = None, 8314 statuses: Optional[List["InstanceViewStatus"]] = None, 8315 **kwargs 8316 ): 8317 super(VirtualMachineRunCommandInstanceView, self).__init__(**kwargs) 8318 self.execution_state = execution_state 8319 self.execution_message = execution_message 8320 self.exit_code = exit_code 8321 self.output = output 8322 self.error = error 8323 self.start_time = start_time 8324 self.end_time = end_time 8325 self.statuses = statuses 8326 8327 8328class VirtualMachineRunCommandScriptSource(msrest.serialization.Model): 8329 """Describes the script sources for run command. 8330 8331 :param script: Specifies the script content to be executed on the VM. 8332 :type script: str 8333 :param script_uri: Specifies the script download location. 8334 :type script_uri: str 8335 :param command_id: Specifies a commandId of predefined built-in script. 8336 :type command_id: str 8337 """ 8338 8339 _attribute_map = { 8340 'script': {'key': 'script', 'type': 'str'}, 8341 'script_uri': {'key': 'scriptUri', 'type': 'str'}, 8342 'command_id': {'key': 'commandId', 'type': 'str'}, 8343 } 8344 8345 def __init__( 8346 self, 8347 *, 8348 script: Optional[str] = None, 8349 script_uri: Optional[str] = None, 8350 command_id: Optional[str] = None, 8351 **kwargs 8352 ): 8353 super(VirtualMachineRunCommandScriptSource, self).__init__(**kwargs) 8354 self.script = script 8355 self.script_uri = script_uri 8356 self.command_id = command_id 8357 8358 8359class VirtualMachineRunCommandsListResult(msrest.serialization.Model): 8360 """The List run command operation response. 8361 8362 All required parameters must be populated in order to send to Azure. 8363 8364 :param value: Required. The list of run commands. 8365 :type value: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineRunCommand] 8366 :param next_link: The uri to fetch the next page of run commands. 8367 :type next_link: str 8368 """ 8369 8370 _validation = { 8371 'value': {'required': True}, 8372 } 8373 8374 _attribute_map = { 8375 'value': {'key': 'value', 'type': '[VirtualMachineRunCommand]'}, 8376 'next_link': {'key': 'nextLink', 'type': 'str'}, 8377 } 8378 8379 def __init__( 8380 self, 8381 *, 8382 value: List["VirtualMachineRunCommand"], 8383 next_link: Optional[str] = None, 8384 **kwargs 8385 ): 8386 super(VirtualMachineRunCommandsListResult, self).__init__(**kwargs) 8387 self.value = value 8388 self.next_link = next_link 8389 8390 8391class VirtualMachineRunCommandUpdate(UpdateResource): 8392 """Describes a Virtual Machine run command. 8393 8394 Variables are only populated by the server, and will be ignored when sending a request. 8395 8396 :param tags: A set of tags. Resource tags. 8397 :type tags: dict[str, str] 8398 :param source: The source of the run command script. 8399 :type source: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineRunCommandScriptSource 8400 :param parameters: The parameters used by the script. 8401 :type parameters: list[~azure.mgmt.compute.v2020_12_01.models.RunCommandInputParameter] 8402 :param protected_parameters: The parameters used by the script. 8403 :type protected_parameters: 8404 list[~azure.mgmt.compute.v2020_12_01.models.RunCommandInputParameter] 8405 :param async_execution: Optional. If set to true, provisioning will complete as soon as the 8406 script starts and will not wait for script to complete. 8407 :type async_execution: bool 8408 :param run_as_user: Specifies the user account on the VM when executing the run command. 8409 :type run_as_user: str 8410 :param run_as_password: Specifies the user account password on the VM when executing the run 8411 command. 8412 :type run_as_password: str 8413 :param timeout_in_seconds: The timeout in seconds to execute the run command. 8414 :type timeout_in_seconds: int 8415 :param output_blob_uri: Specifies the Azure storage blob where script output stream will be 8416 uploaded. 8417 :type output_blob_uri: str 8418 :param error_blob_uri: Specifies the Azure storage blob where script error stream will be 8419 uploaded. 8420 :type error_blob_uri: str 8421 :ivar provisioning_state: The provisioning state, which only appears in the response. 8422 :vartype provisioning_state: str 8423 :ivar instance_view: The virtual machine run command instance view. 8424 :vartype instance_view: 8425 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineRunCommandInstanceView 8426 """ 8427 8428 _validation = { 8429 'provisioning_state': {'readonly': True}, 8430 'instance_view': {'readonly': True}, 8431 } 8432 8433 _attribute_map = { 8434 'tags': {'key': 'tags', 'type': '{str}'}, 8435 'source': {'key': 'properties.source', 'type': 'VirtualMachineRunCommandScriptSource'}, 8436 'parameters': {'key': 'properties.parameters', 'type': '[RunCommandInputParameter]'}, 8437 'protected_parameters': {'key': 'properties.protectedParameters', 'type': '[RunCommandInputParameter]'}, 8438 'async_execution': {'key': 'properties.asyncExecution', 'type': 'bool'}, 8439 'run_as_user': {'key': 'properties.runAsUser', 'type': 'str'}, 8440 'run_as_password': {'key': 'properties.runAsPassword', 'type': 'str'}, 8441 'timeout_in_seconds': {'key': 'properties.timeoutInSeconds', 'type': 'int'}, 8442 'output_blob_uri': {'key': 'properties.outputBlobUri', 'type': 'str'}, 8443 'error_blob_uri': {'key': 'properties.errorBlobUri', 'type': 'str'}, 8444 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 8445 'instance_view': {'key': 'properties.instanceView', 'type': 'VirtualMachineRunCommandInstanceView'}, 8446 } 8447 8448 def __init__( 8449 self, 8450 *, 8451 tags: Optional[Dict[str, str]] = None, 8452 source: Optional["VirtualMachineRunCommandScriptSource"] = None, 8453 parameters: Optional[List["RunCommandInputParameter"]] = None, 8454 protected_parameters: Optional[List["RunCommandInputParameter"]] = None, 8455 async_execution: Optional[bool] = False, 8456 run_as_user: Optional[str] = None, 8457 run_as_password: Optional[str] = None, 8458 timeout_in_seconds: Optional[int] = None, 8459 output_blob_uri: Optional[str] = None, 8460 error_blob_uri: Optional[str] = None, 8461 **kwargs 8462 ): 8463 super(VirtualMachineRunCommandUpdate, self).__init__(tags=tags, **kwargs) 8464 self.source = source 8465 self.parameters = parameters 8466 self.protected_parameters = protected_parameters 8467 self.async_execution = async_execution 8468 self.run_as_user = run_as_user 8469 self.run_as_password = run_as_password 8470 self.timeout_in_seconds = timeout_in_seconds 8471 self.output_blob_uri = output_blob_uri 8472 self.error_blob_uri = error_blob_uri 8473 self.provisioning_state = None 8474 self.instance_view = None 8475 8476 8477class VirtualMachineScaleSet(Resource): 8478 """Describes a Virtual Machine Scale Set. 8479 8480 Variables are only populated by the server, and will be ignored when sending a request. 8481 8482 All required parameters must be populated in order to send to Azure. 8483 8484 :ivar id: Resource Id. 8485 :vartype id: str 8486 :ivar name: Resource name. 8487 :vartype name: str 8488 :ivar type: Resource type. 8489 :vartype type: str 8490 :param location: Required. Resource location. 8491 :type location: str 8492 :param tags: A set of tags. Resource tags. 8493 :type tags: dict[str, str] 8494 :param sku: The virtual machine scale set sku. 8495 :type sku: ~azure.mgmt.compute.v2020_12_01.models.Sku 8496 :param plan: Specifies information about the marketplace image used to create the virtual 8497 machine. This element is only used for marketplace images. Before you can use a marketplace 8498 image from an API, you must enable the image for programmatic use. In the Azure portal, find 8499 the marketplace image that you want to use and then click **Want to deploy programmatically, 8500 Get Started ->**. Enter any required information and then click **Save**. 8501 :type plan: ~azure.mgmt.compute.v2020_12_01.models.Plan 8502 :param identity: The identity of the virtual machine scale set, if configured. 8503 :type identity: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetIdentity 8504 :param zones: The virtual machine scale set zones. NOTE: Availability zones can only be set 8505 when you create the scale set. 8506 :type zones: list[str] 8507 :param extended_location: The extended location of the Virtual Machine Scale Set. 8508 :type extended_location: ~azure.mgmt.compute.v2020_12_01.models.ExtendedLocation 8509 :param upgrade_policy: The upgrade policy. 8510 :type upgrade_policy: ~azure.mgmt.compute.v2020_12_01.models.UpgradePolicy 8511 :param automatic_repairs_policy: Policy for automatic repairs. 8512 :type automatic_repairs_policy: ~azure.mgmt.compute.v2020_12_01.models.AutomaticRepairsPolicy 8513 :param virtual_machine_profile: The virtual machine profile. 8514 :type virtual_machine_profile: 8515 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetVMProfile 8516 :ivar provisioning_state: The provisioning state, which only appears in the response. 8517 :vartype provisioning_state: str 8518 :param overprovision: Specifies whether the Virtual Machine Scale Set should be 8519 overprovisioned. 8520 :type overprovision: bool 8521 :param do_not_run_extensions_on_overprovisioned_v_ms: When Overprovision is enabled, extensions 8522 are launched only on the requested number of VMs which are finally kept. This property will 8523 hence ensure that the extensions do not run on the extra overprovisioned VMs. 8524 :type do_not_run_extensions_on_overprovisioned_v_ms: bool 8525 :ivar unique_id: Specifies the ID which uniquely identifies a Virtual Machine Scale Set. 8526 :vartype unique_id: str 8527 :param single_placement_group: When true this limits the scale set to a single placement group, 8528 of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to 8529 false. However, if singlePlacementGroup is false, it may not be modified to true. 8530 :type single_placement_group: bool 8531 :param zone_balance: Whether to force strictly even Virtual Machine distribution cross x-zones 8532 in case there is zone outage. 8533 :type zone_balance: bool 8534 :param platform_fault_domain_count: Fault Domain count for each placement group. 8535 :type platform_fault_domain_count: int 8536 :param proximity_placement_group: Specifies information about the proximity placement group 8537 that the virtual machine scale set should be assigned to. :code:`<br>`:code:`<br>`Minimum 8538 api-version: 2018-04-01. 8539 :type proximity_placement_group: ~azure.mgmt.compute.v2020_12_01.models.SubResource 8540 :param host_group: Specifies information about the dedicated host group that the virtual 8541 machine scale set resides in. :code:`<br>`:code:`<br>`Minimum api-version: 2020-06-01. 8542 :type host_group: ~azure.mgmt.compute.v2020_12_01.models.SubResource 8543 :param additional_capabilities: Specifies additional capabilities enabled or disabled on the 8544 Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines 8545 have the capability to support attaching managed data disks with UltraSSD_LRS storage account 8546 type. 8547 :type additional_capabilities: ~azure.mgmt.compute.v2020_12_01.models.AdditionalCapabilities 8548 :param scale_in_policy: Specifies the scale-in policy that decides which virtual machines are 8549 chosen for removal when a Virtual Machine Scale Set is scaled-in. 8550 :type scale_in_policy: ~azure.mgmt.compute.v2020_12_01.models.ScaleInPolicy 8551 :param orchestration_mode: Specifies the orchestration mode for the virtual machine scale set. 8552 Possible values include: "Uniform", "Flexible". 8553 :type orchestration_mode: str or ~azure.mgmt.compute.v2020_12_01.models.OrchestrationMode 8554 """ 8555 8556 _validation = { 8557 'id': {'readonly': True}, 8558 'name': {'readonly': True}, 8559 'type': {'readonly': True}, 8560 'location': {'required': True}, 8561 'provisioning_state': {'readonly': True}, 8562 'unique_id': {'readonly': True}, 8563 } 8564 8565 _attribute_map = { 8566 'id': {'key': 'id', 'type': 'str'}, 8567 'name': {'key': 'name', 'type': 'str'}, 8568 'type': {'key': 'type', 'type': 'str'}, 8569 'location': {'key': 'location', 'type': 'str'}, 8570 'tags': {'key': 'tags', 'type': '{str}'}, 8571 'sku': {'key': 'sku', 'type': 'Sku'}, 8572 'plan': {'key': 'plan', 'type': 'Plan'}, 8573 'identity': {'key': 'identity', 'type': 'VirtualMachineScaleSetIdentity'}, 8574 'zones': {'key': 'zones', 'type': '[str]'}, 8575 'extended_location': {'key': 'extendedLocation', 'type': 'ExtendedLocation'}, 8576 'upgrade_policy': {'key': 'properties.upgradePolicy', 'type': 'UpgradePolicy'}, 8577 'automatic_repairs_policy': {'key': 'properties.automaticRepairsPolicy', 'type': 'AutomaticRepairsPolicy'}, 8578 'virtual_machine_profile': {'key': 'properties.virtualMachineProfile', 'type': 'VirtualMachineScaleSetVMProfile'}, 8579 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 8580 'overprovision': {'key': 'properties.overprovision', 'type': 'bool'}, 8581 'do_not_run_extensions_on_overprovisioned_v_ms': {'key': 'properties.doNotRunExtensionsOnOverprovisionedVMs', 'type': 'bool'}, 8582 'unique_id': {'key': 'properties.uniqueId', 'type': 'str'}, 8583 'single_placement_group': {'key': 'properties.singlePlacementGroup', 'type': 'bool'}, 8584 'zone_balance': {'key': 'properties.zoneBalance', 'type': 'bool'}, 8585 'platform_fault_domain_count': {'key': 'properties.platformFaultDomainCount', 'type': 'int'}, 8586 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, 8587 'host_group': {'key': 'properties.hostGroup', 'type': 'SubResource'}, 8588 'additional_capabilities': {'key': 'properties.additionalCapabilities', 'type': 'AdditionalCapabilities'}, 8589 'scale_in_policy': {'key': 'properties.scaleInPolicy', 'type': 'ScaleInPolicy'}, 8590 'orchestration_mode': {'key': 'properties.orchestrationMode', 'type': 'str'}, 8591 } 8592 8593 def __init__( 8594 self, 8595 *, 8596 location: str, 8597 tags: Optional[Dict[str, str]] = None, 8598 sku: Optional["Sku"] = None, 8599 plan: Optional["Plan"] = None, 8600 identity: Optional["VirtualMachineScaleSetIdentity"] = None, 8601 zones: Optional[List[str]] = None, 8602 extended_location: Optional["ExtendedLocation"] = None, 8603 upgrade_policy: Optional["UpgradePolicy"] = None, 8604 automatic_repairs_policy: Optional["AutomaticRepairsPolicy"] = None, 8605 virtual_machine_profile: Optional["VirtualMachineScaleSetVMProfile"] = None, 8606 overprovision: Optional[bool] = None, 8607 do_not_run_extensions_on_overprovisioned_v_ms: Optional[bool] = None, 8608 single_placement_group: Optional[bool] = None, 8609 zone_balance: Optional[bool] = None, 8610 platform_fault_domain_count: Optional[int] = None, 8611 proximity_placement_group: Optional["SubResource"] = None, 8612 host_group: Optional["SubResource"] = None, 8613 additional_capabilities: Optional["AdditionalCapabilities"] = None, 8614 scale_in_policy: Optional["ScaleInPolicy"] = None, 8615 orchestration_mode: Optional[Union[str, "OrchestrationMode"]] = None, 8616 **kwargs 8617 ): 8618 super(VirtualMachineScaleSet, self).__init__(location=location, tags=tags, **kwargs) 8619 self.sku = sku 8620 self.plan = plan 8621 self.identity = identity 8622 self.zones = zones 8623 self.extended_location = extended_location 8624 self.upgrade_policy = upgrade_policy 8625 self.automatic_repairs_policy = automatic_repairs_policy 8626 self.virtual_machine_profile = virtual_machine_profile 8627 self.provisioning_state = None 8628 self.overprovision = overprovision 8629 self.do_not_run_extensions_on_overprovisioned_v_ms = do_not_run_extensions_on_overprovisioned_v_ms 8630 self.unique_id = None 8631 self.single_placement_group = single_placement_group 8632 self.zone_balance = zone_balance 8633 self.platform_fault_domain_count = platform_fault_domain_count 8634 self.proximity_placement_group = proximity_placement_group 8635 self.host_group = host_group 8636 self.additional_capabilities = additional_capabilities 8637 self.scale_in_policy = scale_in_policy 8638 self.orchestration_mode = orchestration_mode 8639 8640 8641class VirtualMachineScaleSetDataDisk(msrest.serialization.Model): 8642 """Describes a virtual machine scale set data disk. 8643 8644 All required parameters must be populated in order to send to Azure. 8645 8646 :param name: The disk name. 8647 :type name: str 8648 :param lun: Required. Specifies the logical unit number of the data disk. This value is used to 8649 identify data disks within the VM and therefore must be unique for each data disk attached to a 8650 VM. 8651 :type lun: int 8652 :param caching: Specifies the caching requirements. :code:`<br>`:code:`<br>` Possible values 8653 are: :code:`<br>`:code:`<br>` **None** :code:`<br>`:code:`<br>` **ReadOnly** 8654 :code:`<br>`:code:`<br>` **ReadWrite** :code:`<br>`:code:`<br>` Default: **None for Standard 8655 storage. ReadOnly for Premium storage**. Possible values include: "None", "ReadOnly", 8656 "ReadWrite". 8657 :type caching: str or ~azure.mgmt.compute.v2020_12_01.models.CachingTypes 8658 :param write_accelerator_enabled: Specifies whether writeAccelerator should be enabled or 8659 disabled on the disk. 8660 :type write_accelerator_enabled: bool 8661 :param create_option: Required. The create option. Possible values include: "FromImage", 8662 "Empty", "Attach". 8663 :type create_option: str or ~azure.mgmt.compute.v2020_12_01.models.DiskCreateOptionTypes 8664 :param disk_size_gb: Specifies the size of an empty data disk in gigabytes. This element can be 8665 used to overwrite the size of the disk in a virtual machine image. :code:`<br>`:code:`<br>` 8666 This value cannot be larger than 1023 GB. 8667 :type disk_size_gb: int 8668 :param managed_disk: The managed disk parameters. 8669 :type managed_disk: 8670 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetManagedDiskParameters 8671 :param disk_iops_read_write: Specifies the Read-Write IOPS for the managed disk. Should be used 8672 only when StorageAccountType is UltraSSD_LRS. If not specified, a default value would be 8673 assigned based on diskSizeGB. 8674 :type disk_iops_read_write: long 8675 :param disk_m_bps_read_write: Specifies the bandwidth in MB per second for the managed disk. 8676 Should be used only when StorageAccountType is UltraSSD_LRS. If not specified, a default value 8677 would be assigned based on diskSizeGB. 8678 :type disk_m_bps_read_write: long 8679 """ 8680 8681 _validation = { 8682 'lun': {'required': True}, 8683 'create_option': {'required': True}, 8684 } 8685 8686 _attribute_map = { 8687 'name': {'key': 'name', 'type': 'str'}, 8688 'lun': {'key': 'lun', 'type': 'int'}, 8689 'caching': {'key': 'caching', 'type': 'str'}, 8690 'write_accelerator_enabled': {'key': 'writeAcceleratorEnabled', 'type': 'bool'}, 8691 'create_option': {'key': 'createOption', 'type': 'str'}, 8692 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, 8693 'managed_disk': {'key': 'managedDisk', 'type': 'VirtualMachineScaleSetManagedDiskParameters'}, 8694 'disk_iops_read_write': {'key': 'diskIOPSReadWrite', 'type': 'long'}, 8695 'disk_m_bps_read_write': {'key': 'diskMBpsReadWrite', 'type': 'long'}, 8696 } 8697 8698 def __init__( 8699 self, 8700 *, 8701 lun: int, 8702 create_option: Union[str, "DiskCreateOptionTypes"], 8703 name: Optional[str] = None, 8704 caching: Optional[Union[str, "CachingTypes"]] = None, 8705 write_accelerator_enabled: Optional[bool] = None, 8706 disk_size_gb: Optional[int] = None, 8707 managed_disk: Optional["VirtualMachineScaleSetManagedDiskParameters"] = None, 8708 disk_iops_read_write: Optional[int] = None, 8709 disk_m_bps_read_write: Optional[int] = None, 8710 **kwargs 8711 ): 8712 super(VirtualMachineScaleSetDataDisk, self).__init__(**kwargs) 8713 self.name = name 8714 self.lun = lun 8715 self.caching = caching 8716 self.write_accelerator_enabled = write_accelerator_enabled 8717 self.create_option = create_option 8718 self.disk_size_gb = disk_size_gb 8719 self.managed_disk = managed_disk 8720 self.disk_iops_read_write = disk_iops_read_write 8721 self.disk_m_bps_read_write = disk_m_bps_read_write 8722 8723 8724class VirtualMachineScaleSetExtension(SubResourceReadOnly): 8725 """Describes a Virtual Machine Scale Set Extension. 8726 8727 Variables are only populated by the server, and will be ignored when sending a request. 8728 8729 :ivar id: Resource Id. 8730 :vartype id: str 8731 :param name: The name of the extension. 8732 :type name: str 8733 :ivar type: Resource type. 8734 :vartype type: str 8735 :param force_update_tag: If a value is provided and is different from the previous value, the 8736 extension handler will be forced to update even if the extension configuration has not changed. 8737 :type force_update_tag: str 8738 :param publisher: The name of the extension handler publisher. 8739 :type publisher: str 8740 :param type_properties_type: Specifies the type of the extension; an example is 8741 "CustomScriptExtension". 8742 :type type_properties_type: str 8743 :param type_handler_version: Specifies the version of the script handler. 8744 :type type_handler_version: str 8745 :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor 8746 version if one is available at deployment time. Once deployed, however, the extension will not 8747 upgrade minor versions unless redeployed, even with this property set to true. 8748 :type auto_upgrade_minor_version: bool 8749 :param enable_automatic_upgrade: Indicates whether the extension should be automatically 8750 upgraded by the platform if there is a newer version of the extension available. 8751 :type enable_automatic_upgrade: bool 8752 :param settings: Json formatted public settings for the extension. 8753 :type settings: any 8754 :param protected_settings: The extension can contain either protectedSettings or 8755 protectedSettingsFromKeyVault or no protected settings at all. 8756 :type protected_settings: any 8757 :ivar provisioning_state: The provisioning state, which only appears in the response. 8758 :vartype provisioning_state: str 8759 :param provision_after_extensions: Collection of extension names after which this extension 8760 needs to be provisioned. 8761 :type provision_after_extensions: list[str] 8762 """ 8763 8764 _validation = { 8765 'id': {'readonly': True}, 8766 'type': {'readonly': True}, 8767 'provisioning_state': {'readonly': True}, 8768 } 8769 8770 _attribute_map = { 8771 'id': {'key': 'id', 'type': 'str'}, 8772 'name': {'key': 'name', 'type': 'str'}, 8773 'type': {'key': 'type', 'type': 'str'}, 8774 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, 8775 'publisher': {'key': 'properties.publisher', 'type': 'str'}, 8776 'type_properties_type': {'key': 'properties.type', 'type': 'str'}, 8777 'type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, 8778 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, 8779 'enable_automatic_upgrade': {'key': 'properties.enableAutomaticUpgrade', 'type': 'bool'}, 8780 'settings': {'key': 'properties.settings', 'type': 'object'}, 8781 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, 8782 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 8783 'provision_after_extensions': {'key': 'properties.provisionAfterExtensions', 'type': '[str]'}, 8784 } 8785 8786 def __init__( 8787 self, 8788 *, 8789 name: Optional[str] = None, 8790 force_update_tag: Optional[str] = None, 8791 publisher: Optional[str] = None, 8792 type_properties_type: Optional[str] = None, 8793 type_handler_version: Optional[str] = None, 8794 auto_upgrade_minor_version: Optional[bool] = None, 8795 enable_automatic_upgrade: Optional[bool] = None, 8796 settings: Optional[Any] = None, 8797 protected_settings: Optional[Any] = None, 8798 provision_after_extensions: Optional[List[str]] = None, 8799 **kwargs 8800 ): 8801 super(VirtualMachineScaleSetExtension, self).__init__(**kwargs) 8802 self.name = name 8803 self.type = None 8804 self.force_update_tag = force_update_tag 8805 self.publisher = publisher 8806 self.type_properties_type = type_properties_type 8807 self.type_handler_version = type_handler_version 8808 self.auto_upgrade_minor_version = auto_upgrade_minor_version 8809 self.enable_automatic_upgrade = enable_automatic_upgrade 8810 self.settings = settings 8811 self.protected_settings = protected_settings 8812 self.provisioning_state = None 8813 self.provision_after_extensions = provision_after_extensions 8814 8815 8816class VirtualMachineScaleSetExtensionListResult(msrest.serialization.Model): 8817 """The List VM scale set extension operation response. 8818 8819 All required parameters must be populated in order to send to Azure. 8820 8821 :param value: Required. The list of VM scale set extensions. 8822 :type value: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetExtension] 8823 :param next_link: The uri to fetch the next page of VM scale set extensions. Call ListNext() 8824 with this to fetch the next page of VM scale set extensions. 8825 :type next_link: str 8826 """ 8827 8828 _validation = { 8829 'value': {'required': True}, 8830 } 8831 8832 _attribute_map = { 8833 'value': {'key': 'value', 'type': '[VirtualMachineScaleSetExtension]'}, 8834 'next_link': {'key': 'nextLink', 'type': 'str'}, 8835 } 8836 8837 def __init__( 8838 self, 8839 *, 8840 value: List["VirtualMachineScaleSetExtension"], 8841 next_link: Optional[str] = None, 8842 **kwargs 8843 ): 8844 super(VirtualMachineScaleSetExtensionListResult, self).__init__(**kwargs) 8845 self.value = value 8846 self.next_link = next_link 8847 8848 8849class VirtualMachineScaleSetExtensionProfile(msrest.serialization.Model): 8850 """Describes a virtual machine scale set extension profile. 8851 8852 :param extensions: The virtual machine scale set child extension resources. 8853 :type extensions: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetExtension] 8854 :param extensions_time_budget: Specifies the time alloted for all extensions to start. The time 8855 duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in 8856 ISO 8601 format. The default value is 90 minutes (PT1H30M). :code:`<br>`:code:`<br>` Minimum 8857 api-version: 2020-06-01. 8858 :type extensions_time_budget: str 8859 """ 8860 8861 _attribute_map = { 8862 'extensions': {'key': 'extensions', 'type': '[VirtualMachineScaleSetExtension]'}, 8863 'extensions_time_budget': {'key': 'extensionsTimeBudget', 'type': 'str'}, 8864 } 8865 8866 def __init__( 8867 self, 8868 *, 8869 extensions: Optional[List["VirtualMachineScaleSetExtension"]] = None, 8870 extensions_time_budget: Optional[str] = None, 8871 **kwargs 8872 ): 8873 super(VirtualMachineScaleSetExtensionProfile, self).__init__(**kwargs) 8874 self.extensions = extensions 8875 self.extensions_time_budget = extensions_time_budget 8876 8877 8878class VirtualMachineScaleSetExtensionUpdate(SubResourceReadOnly): 8879 """Describes a Virtual Machine Scale Set Extension. 8880 8881 Variables are only populated by the server, and will be ignored when sending a request. 8882 8883 :ivar id: Resource Id. 8884 :vartype id: str 8885 :ivar name: The name of the extension. 8886 :vartype name: str 8887 :ivar type: Resource type. 8888 :vartype type: str 8889 :param force_update_tag: If a value is provided and is different from the previous value, the 8890 extension handler will be forced to update even if the extension configuration has not changed. 8891 :type force_update_tag: str 8892 :param publisher: The name of the extension handler publisher. 8893 :type publisher: str 8894 :param type_properties_type: Specifies the type of the extension; an example is 8895 "CustomScriptExtension". 8896 :type type_properties_type: str 8897 :param type_handler_version: Specifies the version of the script handler. 8898 :type type_handler_version: str 8899 :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor 8900 version if one is available at deployment time. Once deployed, however, the extension will not 8901 upgrade minor versions unless redeployed, even with this property set to true. 8902 :type auto_upgrade_minor_version: bool 8903 :param enable_automatic_upgrade: Indicates whether the extension should be automatically 8904 upgraded by the platform if there is a newer version of the extension available. 8905 :type enable_automatic_upgrade: bool 8906 :param settings: Json formatted public settings for the extension. 8907 :type settings: any 8908 :param protected_settings: The extension can contain either protectedSettings or 8909 protectedSettingsFromKeyVault or no protected settings at all. 8910 :type protected_settings: any 8911 :ivar provisioning_state: The provisioning state, which only appears in the response. 8912 :vartype provisioning_state: str 8913 :param provision_after_extensions: Collection of extension names after which this extension 8914 needs to be provisioned. 8915 :type provision_after_extensions: list[str] 8916 """ 8917 8918 _validation = { 8919 'id': {'readonly': True}, 8920 'name': {'readonly': True}, 8921 'type': {'readonly': True}, 8922 'provisioning_state': {'readonly': True}, 8923 } 8924 8925 _attribute_map = { 8926 'id': {'key': 'id', 'type': 'str'}, 8927 'name': {'key': 'name', 'type': 'str'}, 8928 'type': {'key': 'type', 'type': 'str'}, 8929 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, 8930 'publisher': {'key': 'properties.publisher', 'type': 'str'}, 8931 'type_properties_type': {'key': 'properties.type', 'type': 'str'}, 8932 'type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, 8933 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, 8934 'enable_automatic_upgrade': {'key': 'properties.enableAutomaticUpgrade', 'type': 'bool'}, 8935 'settings': {'key': 'properties.settings', 'type': 'object'}, 8936 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, 8937 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 8938 'provision_after_extensions': {'key': 'properties.provisionAfterExtensions', 'type': '[str]'}, 8939 } 8940 8941 def __init__( 8942 self, 8943 *, 8944 force_update_tag: Optional[str] = None, 8945 publisher: Optional[str] = None, 8946 type_properties_type: Optional[str] = None, 8947 type_handler_version: Optional[str] = None, 8948 auto_upgrade_minor_version: Optional[bool] = None, 8949 enable_automatic_upgrade: Optional[bool] = None, 8950 settings: Optional[Any] = None, 8951 protected_settings: Optional[Any] = None, 8952 provision_after_extensions: Optional[List[str]] = None, 8953 **kwargs 8954 ): 8955 super(VirtualMachineScaleSetExtensionUpdate, self).__init__(**kwargs) 8956 self.name = None 8957 self.type = None 8958 self.force_update_tag = force_update_tag 8959 self.publisher = publisher 8960 self.type_properties_type = type_properties_type 8961 self.type_handler_version = type_handler_version 8962 self.auto_upgrade_minor_version = auto_upgrade_minor_version 8963 self.enable_automatic_upgrade = enable_automatic_upgrade 8964 self.settings = settings 8965 self.protected_settings = protected_settings 8966 self.provisioning_state = None 8967 self.provision_after_extensions = provision_after_extensions 8968 8969 8970class VirtualMachineScaleSetIdentity(msrest.serialization.Model): 8971 """Identity for the virtual machine scale set. 8972 8973 Variables are only populated by the server, and will be ignored when sending a request. 8974 8975 :ivar principal_id: The principal id of virtual machine scale set identity. This property will 8976 only be provided for a system assigned identity. 8977 :vartype principal_id: str 8978 :ivar tenant_id: The tenant id associated with the virtual machine scale set. This property 8979 will only be provided for a system assigned identity. 8980 :vartype tenant_id: str 8981 :param type: The type of identity used for the virtual machine scale set. The type 8982 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user 8983 assigned identities. The type 'None' will remove any identities from the virtual machine scale 8984 set. Possible values include: "SystemAssigned", "UserAssigned", "SystemAssigned, UserAssigned", 8985 "None". 8986 :type type: str or ~azure.mgmt.compute.v2020_12_01.models.ResourceIdentityType 8987 :param user_assigned_identities: The list of user identities associated with the virtual 8988 machine scale set. The user identity dictionary key references will be ARM resource ids in the 8989 form: 8990 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. 8991 :type user_assigned_identities: dict[str, 8992 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue] 8993 """ 8994 8995 _validation = { 8996 'principal_id': {'readonly': True}, 8997 'tenant_id': {'readonly': True}, 8998 } 8999 9000 _attribute_map = { 9001 'principal_id': {'key': 'principalId', 'type': 'str'}, 9002 'tenant_id': {'key': 'tenantId', 'type': 'str'}, 9003 'type': {'key': 'type', 'type': 'str'}, 9004 'user_assigned_identities': {'key': 'userAssignedIdentities', 'type': '{VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue}'}, 9005 } 9006 9007 def __init__( 9008 self, 9009 *, 9010 type: Optional[Union[str, "ResourceIdentityType"]] = None, 9011 user_assigned_identities: Optional[Dict[str, "VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue"]] = None, 9012 **kwargs 9013 ): 9014 super(VirtualMachineScaleSetIdentity, self).__init__(**kwargs) 9015 self.principal_id = None 9016 self.tenant_id = None 9017 self.type = type 9018 self.user_assigned_identities = user_assigned_identities 9019 9020 9021class VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue(msrest.serialization.Model): 9022 """VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue. 9023 9024 Variables are only populated by the server, and will be ignored when sending a request. 9025 9026 :ivar principal_id: The principal id of user assigned identity. 9027 :vartype principal_id: str 9028 :ivar client_id: The client id of user assigned identity. 9029 :vartype client_id: str 9030 """ 9031 9032 _validation = { 9033 'principal_id': {'readonly': True}, 9034 'client_id': {'readonly': True}, 9035 } 9036 9037 _attribute_map = { 9038 'principal_id': {'key': 'principalId', 'type': 'str'}, 9039 'client_id': {'key': 'clientId', 'type': 'str'}, 9040 } 9041 9042 def __init__( 9043 self, 9044 **kwargs 9045 ): 9046 super(VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue, self).__init__(**kwargs) 9047 self.principal_id = None 9048 self.client_id = None 9049 9050 9051class VirtualMachineScaleSetInstanceView(msrest.serialization.Model): 9052 """The instance view of a virtual machine scale set. 9053 9054 Variables are only populated by the server, and will be ignored when sending a request. 9055 9056 :ivar virtual_machine: The instance view status summary for the virtual machine scale set. 9057 :vartype virtual_machine: 9058 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetInstanceViewStatusesSummary 9059 :ivar extensions: The extensions information. 9060 :vartype extensions: 9061 list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetVMExtensionsSummary] 9062 :param statuses: The resource status information. 9063 :type statuses: list[~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus] 9064 :ivar orchestration_services: The orchestration services information. 9065 :vartype orchestration_services: 9066 list[~azure.mgmt.compute.v2020_12_01.models.OrchestrationServiceSummary] 9067 """ 9068 9069 _validation = { 9070 'virtual_machine': {'readonly': True}, 9071 'extensions': {'readonly': True}, 9072 'orchestration_services': {'readonly': True}, 9073 } 9074 9075 _attribute_map = { 9076 'virtual_machine': {'key': 'virtualMachine', 'type': 'VirtualMachineScaleSetInstanceViewStatusesSummary'}, 9077 'extensions': {'key': 'extensions', 'type': '[VirtualMachineScaleSetVMExtensionsSummary]'}, 9078 'statuses': {'key': 'statuses', 'type': '[InstanceViewStatus]'}, 9079 'orchestration_services': {'key': 'orchestrationServices', 'type': '[OrchestrationServiceSummary]'}, 9080 } 9081 9082 def __init__( 9083 self, 9084 *, 9085 statuses: Optional[List["InstanceViewStatus"]] = None, 9086 **kwargs 9087 ): 9088 super(VirtualMachineScaleSetInstanceView, self).__init__(**kwargs) 9089 self.virtual_machine = None 9090 self.extensions = None 9091 self.statuses = statuses 9092 self.orchestration_services = None 9093 9094 9095class VirtualMachineScaleSetInstanceViewStatusesSummary(msrest.serialization.Model): 9096 """Instance view statuses summary for virtual machines of a virtual machine scale set. 9097 9098 Variables are only populated by the server, and will be ignored when sending a request. 9099 9100 :ivar statuses_summary: The extensions information. 9101 :vartype statuses_summary: 9102 list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineStatusCodeCount] 9103 """ 9104 9105 _validation = { 9106 'statuses_summary': {'readonly': True}, 9107 } 9108 9109 _attribute_map = { 9110 'statuses_summary': {'key': 'statusesSummary', 'type': '[VirtualMachineStatusCodeCount]'}, 9111 } 9112 9113 def __init__( 9114 self, 9115 **kwargs 9116 ): 9117 super(VirtualMachineScaleSetInstanceViewStatusesSummary, self).__init__(**kwargs) 9118 self.statuses_summary = None 9119 9120 9121class VirtualMachineScaleSetIPConfiguration(SubResource): 9122 """Describes a virtual machine scale set network profile's IP configuration. 9123 9124 All required parameters must be populated in order to send to Azure. 9125 9126 :param id: Resource Id. 9127 :type id: str 9128 :param name: Required. The IP configuration name. 9129 :type name: str 9130 :param subnet: Specifies the identifier of the subnet. 9131 :type subnet: ~azure.mgmt.compute.v2020_12_01.models.ApiEntityReference 9132 :param primary: Specifies the primary network interface in case the virtual machine has more 9133 than 1 network interface. 9134 :type primary: bool 9135 :param public_ip_address_configuration: The publicIPAddressConfiguration. 9136 :type public_ip_address_configuration: 9137 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetPublicIPAddressConfiguration 9138 :param private_ip_address_version: Available from Api-Version 2017-03-30 onwards, it represents 9139 whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible 9140 values are: 'IPv4' and 'IPv6'. Possible values include: "IPv4", "IPv6". 9141 :type private_ip_address_version: str or ~azure.mgmt.compute.v2020_12_01.models.IPVersion 9142 :param application_gateway_backend_address_pools: Specifies an array of references to backend 9143 address pools of application gateways. A scale set can reference backend address pools of 9144 multiple application gateways. Multiple scale sets cannot use the same application gateway. 9145 :type application_gateway_backend_address_pools: 9146 list[~azure.mgmt.compute.v2020_12_01.models.SubResource] 9147 :param application_security_groups: Specifies an array of references to application security 9148 group. 9149 :type application_security_groups: list[~azure.mgmt.compute.v2020_12_01.models.SubResource] 9150 :param load_balancer_backend_address_pools: Specifies an array of references to backend address 9151 pools of load balancers. A scale set can reference backend address pools of one public and one 9152 internal load balancer. Multiple scale sets cannot use the same basic sku load balancer. 9153 :type load_balancer_backend_address_pools: 9154 list[~azure.mgmt.compute.v2020_12_01.models.SubResource] 9155 :param load_balancer_inbound_nat_pools: Specifies an array of references to inbound Nat pools 9156 of the load balancers. A scale set can reference inbound nat pools of one public and one 9157 internal load balancer. Multiple scale sets cannot use the same basic sku load balancer. 9158 :type load_balancer_inbound_nat_pools: list[~azure.mgmt.compute.v2020_12_01.models.SubResource] 9159 """ 9160 9161 _validation = { 9162 'name': {'required': True}, 9163 } 9164 9165 _attribute_map = { 9166 'id': {'key': 'id', 'type': 'str'}, 9167 'name': {'key': 'name', 'type': 'str'}, 9168 'subnet': {'key': 'properties.subnet', 'type': 'ApiEntityReference'}, 9169 'primary': {'key': 'properties.primary', 'type': 'bool'}, 9170 'public_ip_address_configuration': {'key': 'properties.publicIPAddressConfiguration', 'type': 'VirtualMachineScaleSetPublicIPAddressConfiguration'}, 9171 'private_ip_address_version': {'key': 'properties.privateIPAddressVersion', 'type': 'str'}, 9172 'application_gateway_backend_address_pools': {'key': 'properties.applicationGatewayBackendAddressPools', 'type': '[SubResource]'}, 9173 'application_security_groups': {'key': 'properties.applicationSecurityGroups', 'type': '[SubResource]'}, 9174 'load_balancer_backend_address_pools': {'key': 'properties.loadBalancerBackendAddressPools', 'type': '[SubResource]'}, 9175 'load_balancer_inbound_nat_pools': {'key': 'properties.loadBalancerInboundNatPools', 'type': '[SubResource]'}, 9176 } 9177 9178 def __init__( 9179 self, 9180 *, 9181 name: str, 9182 id: Optional[str] = None, 9183 subnet: Optional["ApiEntityReference"] = None, 9184 primary: Optional[bool] = None, 9185 public_ip_address_configuration: Optional["VirtualMachineScaleSetPublicIPAddressConfiguration"] = None, 9186 private_ip_address_version: Optional[Union[str, "IPVersion"]] = None, 9187 application_gateway_backend_address_pools: Optional[List["SubResource"]] = None, 9188 application_security_groups: Optional[List["SubResource"]] = None, 9189 load_balancer_backend_address_pools: Optional[List["SubResource"]] = None, 9190 load_balancer_inbound_nat_pools: Optional[List["SubResource"]] = None, 9191 **kwargs 9192 ): 9193 super(VirtualMachineScaleSetIPConfiguration, self).__init__(id=id, **kwargs) 9194 self.name = name 9195 self.subnet = subnet 9196 self.primary = primary 9197 self.public_ip_address_configuration = public_ip_address_configuration 9198 self.private_ip_address_version = private_ip_address_version 9199 self.application_gateway_backend_address_pools = application_gateway_backend_address_pools 9200 self.application_security_groups = application_security_groups 9201 self.load_balancer_backend_address_pools = load_balancer_backend_address_pools 9202 self.load_balancer_inbound_nat_pools = load_balancer_inbound_nat_pools 9203 9204 9205class VirtualMachineScaleSetIpTag(msrest.serialization.Model): 9206 """Contains the IP tag associated with the public IP address. 9207 9208 :param ip_tag_type: IP tag type. Example: FirstPartyUsage. 9209 :type ip_tag_type: str 9210 :param tag: IP tag associated with the public IP. Example: SQL, Storage etc. 9211 :type tag: str 9212 """ 9213 9214 _attribute_map = { 9215 'ip_tag_type': {'key': 'ipTagType', 'type': 'str'}, 9216 'tag': {'key': 'tag', 'type': 'str'}, 9217 } 9218 9219 def __init__( 9220 self, 9221 *, 9222 ip_tag_type: Optional[str] = None, 9223 tag: Optional[str] = None, 9224 **kwargs 9225 ): 9226 super(VirtualMachineScaleSetIpTag, self).__init__(**kwargs) 9227 self.ip_tag_type = ip_tag_type 9228 self.tag = tag 9229 9230 9231class VirtualMachineScaleSetListOSUpgradeHistory(msrest.serialization.Model): 9232 """List of Virtual Machine Scale Set OS Upgrade History operation response. 9233 9234 All required parameters must be populated in order to send to Azure. 9235 9236 :param value: Required. The list of OS upgrades performed on the virtual machine scale set. 9237 :type value: list[~azure.mgmt.compute.v2020_12_01.models.UpgradeOperationHistoricalStatusInfo] 9238 :param next_link: The uri to fetch the next page of OS Upgrade History. Call ListNext() with 9239 this to fetch the next page of history of upgrades. 9240 :type next_link: str 9241 """ 9242 9243 _validation = { 9244 'value': {'required': True}, 9245 } 9246 9247 _attribute_map = { 9248 'value': {'key': 'value', 'type': '[UpgradeOperationHistoricalStatusInfo]'}, 9249 'next_link': {'key': 'nextLink', 'type': 'str'}, 9250 } 9251 9252 def __init__( 9253 self, 9254 *, 9255 value: List["UpgradeOperationHistoricalStatusInfo"], 9256 next_link: Optional[str] = None, 9257 **kwargs 9258 ): 9259 super(VirtualMachineScaleSetListOSUpgradeHistory, self).__init__(**kwargs) 9260 self.value = value 9261 self.next_link = next_link 9262 9263 9264class VirtualMachineScaleSetListResult(msrest.serialization.Model): 9265 """The List Virtual Machine operation response. 9266 9267 All required parameters must be populated in order to send to Azure. 9268 9269 :param value: Required. The list of virtual machine scale sets. 9270 :type value: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSet] 9271 :param next_link: The uri to fetch the next page of Virtual Machine Scale Sets. Call ListNext() 9272 with this to fetch the next page of VMSS. 9273 :type next_link: str 9274 """ 9275 9276 _validation = { 9277 'value': {'required': True}, 9278 } 9279 9280 _attribute_map = { 9281 'value': {'key': 'value', 'type': '[VirtualMachineScaleSet]'}, 9282 'next_link': {'key': 'nextLink', 'type': 'str'}, 9283 } 9284 9285 def __init__( 9286 self, 9287 *, 9288 value: List["VirtualMachineScaleSet"], 9289 next_link: Optional[str] = None, 9290 **kwargs 9291 ): 9292 super(VirtualMachineScaleSetListResult, self).__init__(**kwargs) 9293 self.value = value 9294 self.next_link = next_link 9295 9296 9297class VirtualMachineScaleSetListSkusResult(msrest.serialization.Model): 9298 """The Virtual Machine Scale Set List Skus operation response. 9299 9300 All required parameters must be populated in order to send to Azure. 9301 9302 :param value: Required. The list of skus available for the virtual machine scale set. 9303 :type value: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetSku] 9304 :param next_link: The uri to fetch the next page of Virtual Machine Scale Set Skus. Call 9305 ListNext() with this to fetch the next page of VMSS Skus. 9306 :type next_link: str 9307 """ 9308 9309 _validation = { 9310 'value': {'required': True}, 9311 } 9312 9313 _attribute_map = { 9314 'value': {'key': 'value', 'type': '[VirtualMachineScaleSetSku]'}, 9315 'next_link': {'key': 'nextLink', 'type': 'str'}, 9316 } 9317 9318 def __init__( 9319 self, 9320 *, 9321 value: List["VirtualMachineScaleSetSku"], 9322 next_link: Optional[str] = None, 9323 **kwargs 9324 ): 9325 super(VirtualMachineScaleSetListSkusResult, self).__init__(**kwargs) 9326 self.value = value 9327 self.next_link = next_link 9328 9329 9330class VirtualMachineScaleSetListWithLinkResult(msrest.serialization.Model): 9331 """The List Virtual Machine operation response. 9332 9333 All required parameters must be populated in order to send to Azure. 9334 9335 :param value: Required. The list of virtual machine scale sets. 9336 :type value: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSet] 9337 :param next_link: The uri to fetch the next page of Virtual Machine Scale Sets. Call ListNext() 9338 with this to fetch the next page of Virtual Machine Scale Sets. 9339 :type next_link: str 9340 """ 9341 9342 _validation = { 9343 'value': {'required': True}, 9344 } 9345 9346 _attribute_map = { 9347 'value': {'key': 'value', 'type': '[VirtualMachineScaleSet]'}, 9348 'next_link': {'key': 'nextLink', 'type': 'str'}, 9349 } 9350 9351 def __init__( 9352 self, 9353 *, 9354 value: List["VirtualMachineScaleSet"], 9355 next_link: Optional[str] = None, 9356 **kwargs 9357 ): 9358 super(VirtualMachineScaleSetListWithLinkResult, self).__init__(**kwargs) 9359 self.value = value 9360 self.next_link = next_link 9361 9362 9363class VirtualMachineScaleSetManagedDiskParameters(msrest.serialization.Model): 9364 """Describes the parameters of a ScaleSet managed disk. 9365 9366 :param storage_account_type: Specifies the storage account type for the managed disk. NOTE: 9367 UltraSSD_LRS can only be used with data disks, it cannot be used with OS Disk. Possible values 9368 include: "Standard_LRS", "Premium_LRS", "StandardSSD_LRS", "UltraSSD_LRS", "Premium_ZRS", 9369 "StandardSSD_ZRS". 9370 :type storage_account_type: str or ~azure.mgmt.compute.v2020_12_01.models.StorageAccountTypes 9371 :param disk_encryption_set: Specifies the customer managed disk encryption set resource id for 9372 the managed disk. 9373 :type disk_encryption_set: ~azure.mgmt.compute.v2020_12_01.models.DiskEncryptionSetParameters 9374 """ 9375 9376 _attribute_map = { 9377 'storage_account_type': {'key': 'storageAccountType', 'type': 'str'}, 9378 'disk_encryption_set': {'key': 'diskEncryptionSet', 'type': 'DiskEncryptionSetParameters'}, 9379 } 9380 9381 def __init__( 9382 self, 9383 *, 9384 storage_account_type: Optional[Union[str, "StorageAccountTypes"]] = None, 9385 disk_encryption_set: Optional["DiskEncryptionSetParameters"] = None, 9386 **kwargs 9387 ): 9388 super(VirtualMachineScaleSetManagedDiskParameters, self).__init__(**kwargs) 9389 self.storage_account_type = storage_account_type 9390 self.disk_encryption_set = disk_encryption_set 9391 9392 9393class VirtualMachineScaleSetNetworkConfiguration(SubResource): 9394 """Describes a virtual machine scale set network profile's network configurations. 9395 9396 All required parameters must be populated in order to send to Azure. 9397 9398 :param id: Resource Id. 9399 :type id: str 9400 :param name: Required. The network configuration name. 9401 :type name: str 9402 :param primary: Specifies the primary network interface in case the virtual machine has more 9403 than 1 network interface. 9404 :type primary: bool 9405 :param enable_accelerated_networking: Specifies whether the network interface is accelerated 9406 networking-enabled. 9407 :type enable_accelerated_networking: bool 9408 :param enable_fpga: Specifies whether the network interface is FPGA networking-enabled. 9409 :type enable_fpga: bool 9410 :param network_security_group: The network security group. 9411 :type network_security_group: ~azure.mgmt.compute.v2020_12_01.models.SubResource 9412 :param dns_settings: The dns settings to be applied on the network interfaces. 9413 :type dns_settings: 9414 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetNetworkConfigurationDnsSettings 9415 :param ip_configurations: Specifies the IP configurations of the network interface. 9416 :type ip_configurations: 9417 list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetIPConfiguration] 9418 :param enable_ip_forwarding: Whether IP forwarding enabled on this NIC. 9419 :type enable_ip_forwarding: bool 9420 """ 9421 9422 _validation = { 9423 'name': {'required': True}, 9424 } 9425 9426 _attribute_map = { 9427 'id': {'key': 'id', 'type': 'str'}, 9428 'name': {'key': 'name', 'type': 'str'}, 9429 'primary': {'key': 'properties.primary', 'type': 'bool'}, 9430 'enable_accelerated_networking': {'key': 'properties.enableAcceleratedNetworking', 'type': 'bool'}, 9431 'enable_fpga': {'key': 'properties.enableFpga', 'type': 'bool'}, 9432 'network_security_group': {'key': 'properties.networkSecurityGroup', 'type': 'SubResource'}, 9433 'dns_settings': {'key': 'properties.dnsSettings', 'type': 'VirtualMachineScaleSetNetworkConfigurationDnsSettings'}, 9434 'ip_configurations': {'key': 'properties.ipConfigurations', 'type': '[VirtualMachineScaleSetIPConfiguration]'}, 9435 'enable_ip_forwarding': {'key': 'properties.enableIPForwarding', 'type': 'bool'}, 9436 } 9437 9438 def __init__( 9439 self, 9440 *, 9441 name: str, 9442 id: Optional[str] = None, 9443 primary: Optional[bool] = None, 9444 enable_accelerated_networking: Optional[bool] = None, 9445 enable_fpga: Optional[bool] = None, 9446 network_security_group: Optional["SubResource"] = None, 9447 dns_settings: Optional["VirtualMachineScaleSetNetworkConfigurationDnsSettings"] = None, 9448 ip_configurations: Optional[List["VirtualMachineScaleSetIPConfiguration"]] = None, 9449 enable_ip_forwarding: Optional[bool] = None, 9450 **kwargs 9451 ): 9452 super(VirtualMachineScaleSetNetworkConfiguration, self).__init__(id=id, **kwargs) 9453 self.name = name 9454 self.primary = primary 9455 self.enable_accelerated_networking = enable_accelerated_networking 9456 self.enable_fpga = enable_fpga 9457 self.network_security_group = network_security_group 9458 self.dns_settings = dns_settings 9459 self.ip_configurations = ip_configurations 9460 self.enable_ip_forwarding = enable_ip_forwarding 9461 9462 9463class VirtualMachineScaleSetNetworkConfigurationDnsSettings(msrest.serialization.Model): 9464 """Describes a virtual machines scale sets network configuration's DNS settings. 9465 9466 :param dns_servers: List of DNS servers IP addresses. 9467 :type dns_servers: list[str] 9468 """ 9469 9470 _attribute_map = { 9471 'dns_servers': {'key': 'dnsServers', 'type': '[str]'}, 9472 } 9473 9474 def __init__( 9475 self, 9476 *, 9477 dns_servers: Optional[List[str]] = None, 9478 **kwargs 9479 ): 9480 super(VirtualMachineScaleSetNetworkConfigurationDnsSettings, self).__init__(**kwargs) 9481 self.dns_servers = dns_servers 9482 9483 9484class VirtualMachineScaleSetNetworkProfile(msrest.serialization.Model): 9485 """Describes a virtual machine scale set network profile. 9486 9487 :param health_probe: A reference to a load balancer probe used to determine the health of an 9488 instance in the virtual machine scale set. The reference will be in the form: 9489 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'. 9490 :type health_probe: ~azure.mgmt.compute.v2020_12_01.models.ApiEntityReference 9491 :param network_interface_configurations: The list of network configurations. 9492 :type network_interface_configurations: 9493 list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetNetworkConfiguration] 9494 """ 9495 9496 _attribute_map = { 9497 'health_probe': {'key': 'healthProbe', 'type': 'ApiEntityReference'}, 9498 'network_interface_configurations': {'key': 'networkInterfaceConfigurations', 'type': '[VirtualMachineScaleSetNetworkConfiguration]'}, 9499 } 9500 9501 def __init__( 9502 self, 9503 *, 9504 health_probe: Optional["ApiEntityReference"] = None, 9505 network_interface_configurations: Optional[List["VirtualMachineScaleSetNetworkConfiguration"]] = None, 9506 **kwargs 9507 ): 9508 super(VirtualMachineScaleSetNetworkProfile, self).__init__(**kwargs) 9509 self.health_probe = health_probe 9510 self.network_interface_configurations = network_interface_configurations 9511 9512 9513class VirtualMachineScaleSetOSDisk(msrest.serialization.Model): 9514 """Describes a virtual machine scale set operating system disk. 9515 9516 All required parameters must be populated in order to send to Azure. 9517 9518 :param name: The disk name. 9519 :type name: str 9520 :param caching: Specifies the caching requirements. :code:`<br>`:code:`<br>` Possible values 9521 are: :code:`<br>`:code:`<br>` **None** :code:`<br>`:code:`<br>` **ReadOnly** 9522 :code:`<br>`:code:`<br>` **ReadWrite** :code:`<br>`:code:`<br>` Default: **None for Standard 9523 storage. ReadOnly for Premium storage**. Possible values include: "None", "ReadOnly", 9524 "ReadWrite". 9525 :type caching: str or ~azure.mgmt.compute.v2020_12_01.models.CachingTypes 9526 :param write_accelerator_enabled: Specifies whether writeAccelerator should be enabled or 9527 disabled on the disk. 9528 :type write_accelerator_enabled: bool 9529 :param create_option: Required. Specifies how the virtual machines in the scale set should be 9530 created.:code:`<br>`:code:`<br>` The only allowed value is: **FromImage** \u2013 This value is 9531 used when you are using an image to create the virtual machine. If you are using a platform 9532 image, you also use the imageReference element described above. If you are using a marketplace 9533 image, you also use the plan element previously described. Possible values include: 9534 "FromImage", "Empty", "Attach". 9535 :type create_option: str or ~azure.mgmt.compute.v2020_12_01.models.DiskCreateOptionTypes 9536 :param diff_disk_settings: Specifies the ephemeral disk Settings for the operating system disk 9537 used by the virtual machine scale set. 9538 :type diff_disk_settings: ~azure.mgmt.compute.v2020_12_01.models.DiffDiskSettings 9539 :param disk_size_gb: Specifies the size of the operating system disk in gigabytes. This element 9540 can be used to overwrite the size of the disk in a virtual machine image. 9541 :code:`<br>`:code:`<br>` This value cannot be larger than 1023 GB. 9542 :type disk_size_gb: int 9543 :param os_type: This property allows you to specify the type of the OS that is included in the 9544 disk if creating a VM from user-image or a specialized VHD. :code:`<br>`:code:`<br>` Possible 9545 values are: :code:`<br>`:code:`<br>` **Windows** :code:`<br>`:code:`<br>` **Linux**. Possible 9546 values include: "Windows", "Linux". 9547 :type os_type: str or ~azure.mgmt.compute.v2020_12_01.models.OperatingSystemTypes 9548 :param image: Specifies information about the unmanaged user image to base the scale set on. 9549 :type image: ~azure.mgmt.compute.v2020_12_01.models.VirtualHardDisk 9550 :param vhd_containers: Specifies the container urls that are used to store operating system 9551 disks for the scale set. 9552 :type vhd_containers: list[str] 9553 :param managed_disk: The managed disk parameters. 9554 :type managed_disk: 9555 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetManagedDiskParameters 9556 """ 9557 9558 _validation = { 9559 'create_option': {'required': True}, 9560 } 9561 9562 _attribute_map = { 9563 'name': {'key': 'name', 'type': 'str'}, 9564 'caching': {'key': 'caching', 'type': 'str'}, 9565 'write_accelerator_enabled': {'key': 'writeAcceleratorEnabled', 'type': 'bool'}, 9566 'create_option': {'key': 'createOption', 'type': 'str'}, 9567 'diff_disk_settings': {'key': 'diffDiskSettings', 'type': 'DiffDiskSettings'}, 9568 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, 9569 'os_type': {'key': 'osType', 'type': 'str'}, 9570 'image': {'key': 'image', 'type': 'VirtualHardDisk'}, 9571 'vhd_containers': {'key': 'vhdContainers', 'type': '[str]'}, 9572 'managed_disk': {'key': 'managedDisk', 'type': 'VirtualMachineScaleSetManagedDiskParameters'}, 9573 } 9574 9575 def __init__( 9576 self, 9577 *, 9578 create_option: Union[str, "DiskCreateOptionTypes"], 9579 name: Optional[str] = None, 9580 caching: Optional[Union[str, "CachingTypes"]] = None, 9581 write_accelerator_enabled: Optional[bool] = None, 9582 diff_disk_settings: Optional["DiffDiskSettings"] = None, 9583 disk_size_gb: Optional[int] = None, 9584 os_type: Optional[Union[str, "OperatingSystemTypes"]] = None, 9585 image: Optional["VirtualHardDisk"] = None, 9586 vhd_containers: Optional[List[str]] = None, 9587 managed_disk: Optional["VirtualMachineScaleSetManagedDiskParameters"] = None, 9588 **kwargs 9589 ): 9590 super(VirtualMachineScaleSetOSDisk, self).__init__(**kwargs) 9591 self.name = name 9592 self.caching = caching 9593 self.write_accelerator_enabled = write_accelerator_enabled 9594 self.create_option = create_option 9595 self.diff_disk_settings = diff_disk_settings 9596 self.disk_size_gb = disk_size_gb 9597 self.os_type = os_type 9598 self.image = image 9599 self.vhd_containers = vhd_containers 9600 self.managed_disk = managed_disk 9601 9602 9603class VirtualMachineScaleSetOSProfile(msrest.serialization.Model): 9604 """Describes a virtual machine scale set OS profile. 9605 9606 :param computer_name_prefix: Specifies the computer name prefix for all of the virtual machines 9607 in the scale set. Computer name prefixes must be 1 to 15 characters long. 9608 :type computer_name_prefix: str 9609 :param admin_username: Specifies the name of the administrator account. 9610 :code:`<br>`:code:`<br>` **Windows-only restriction:** Cannot end in "." 9611 :code:`<br>`:code:`<br>` **Disallowed values:** "administrator", "admin", "user", "user1", 9612 "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", 9613 "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", 9614 "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". 9615 :code:`<br>`:code:`<br>` **Minimum-length (Linux):** 1 character :code:`<br>`:code:`<br>` 9616 **Max-length (Linux):** 64 characters :code:`<br>`:code:`<br>` **Max-length (Windows):** 20 9617 characters :code:`<br>`:code:`<br>`:code:`<li>` For root access to the Linux VM, see `Using 9618 root privileges on Linux virtual machines in Azure 9619 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-use-root-privileges?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_\ 9620 :code:`<br>`:code:`<li>` For a list of built-in system users on Linux that should not be used 9621 in this field, see `Selecting User Names for Linux on Azure 9622 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-usernames?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_. 9623 :type admin_username: str 9624 :param admin_password: Specifies the password of the administrator account. 9625 :code:`<br>`:code:`<br>` **Minimum-length (Windows):** 8 characters :code:`<br>`:code:`<br>` 9626 **Minimum-length (Linux):** 6 characters :code:`<br>`:code:`<br>` **Max-length (Windows):** 123 9627 characters :code:`<br>`:code:`<br>` **Max-length (Linux):** 72 characters 9628 :code:`<br>`:code:`<br>` **Complexity requirements:** 3 out of 4 conditions below need to be 9629 fulfilled :code:`<br>` Has lower characters :code:`<br>`Has upper characters :code:`<br>` Has a 9630 digit :code:`<br>` Has a special character (Regex match [\W_]) :code:`<br>`:code:`<br>` 9631 **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", 9632 "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" :code:`<br>`:code:`<br>` For 9633 resetting the password, see `How to reset the Remote Desktop service or its login password in a 9634 Windows VM 9635 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-reset-rdp?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_ 9636 :code:`<br>`:code:`<br>` For resetting root password, see `Manage users, SSH, and check or 9637 repair disks on Azure Linux VMs using the VMAccess Extension 9638 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-vmaccess-extension?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#reset-root-password>`_. 9639 :type admin_password: str 9640 :param custom_data: Specifies a base-64 encoded string of custom data. The base-64 encoded 9641 string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum 9642 length of the binary array is 65535 bytes. :code:`<br>`:code:`<br>` For using cloud-init for 9643 your VM, see `Using cloud-init to customize a Linux VM during creation 9644 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-using-cloud-init?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_. 9645 :type custom_data: str 9646 :param windows_configuration: Specifies Windows operating system settings on the virtual 9647 machine. 9648 :type windows_configuration: ~azure.mgmt.compute.v2020_12_01.models.WindowsConfiguration 9649 :param linux_configuration: Specifies the Linux operating system settings on the virtual 9650 machine. :code:`<br>`:code:`<br>`For a list of supported Linux distributions, see `Linux on 9651 Azure-Endorsed Distributions 9652 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-endorsed-distros?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_ 9653 :code:`<br>`:code:`<br>` For running non-endorsed distributions, see `Information for 9654 Non-Endorsed Distributions 9655 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-linux-create-upload-generic?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json>`_. 9656 :type linux_configuration: ~azure.mgmt.compute.v2020_12_01.models.LinuxConfiguration 9657 :param secrets: Specifies set of certificates that should be installed onto the virtual 9658 machines in the scale set. 9659 :type secrets: list[~azure.mgmt.compute.v2020_12_01.models.VaultSecretGroup] 9660 """ 9661 9662 _attribute_map = { 9663 'computer_name_prefix': {'key': 'computerNamePrefix', 'type': 'str'}, 9664 'admin_username': {'key': 'adminUsername', 'type': 'str'}, 9665 'admin_password': {'key': 'adminPassword', 'type': 'str'}, 9666 'custom_data': {'key': 'customData', 'type': 'str'}, 9667 'windows_configuration': {'key': 'windowsConfiguration', 'type': 'WindowsConfiguration'}, 9668 'linux_configuration': {'key': 'linuxConfiguration', 'type': 'LinuxConfiguration'}, 9669 'secrets': {'key': 'secrets', 'type': '[VaultSecretGroup]'}, 9670 } 9671 9672 def __init__( 9673 self, 9674 *, 9675 computer_name_prefix: Optional[str] = None, 9676 admin_username: Optional[str] = None, 9677 admin_password: Optional[str] = None, 9678 custom_data: Optional[str] = None, 9679 windows_configuration: Optional["WindowsConfiguration"] = None, 9680 linux_configuration: Optional["LinuxConfiguration"] = None, 9681 secrets: Optional[List["VaultSecretGroup"]] = None, 9682 **kwargs 9683 ): 9684 super(VirtualMachineScaleSetOSProfile, self).__init__(**kwargs) 9685 self.computer_name_prefix = computer_name_prefix 9686 self.admin_username = admin_username 9687 self.admin_password = admin_password 9688 self.custom_data = custom_data 9689 self.windows_configuration = windows_configuration 9690 self.linux_configuration = linux_configuration 9691 self.secrets = secrets 9692 9693 9694class VirtualMachineScaleSetPublicIPAddressConfiguration(msrest.serialization.Model): 9695 """Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration. 9696 9697 All required parameters must be populated in order to send to Azure. 9698 9699 :param name: Required. The publicIP address configuration name. 9700 :type name: str 9701 :param idle_timeout_in_minutes: The idle timeout of the public IP address. 9702 :type idle_timeout_in_minutes: int 9703 :param dns_settings: The dns settings to be applied on the publicIP addresses . 9704 :type dns_settings: 9705 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings 9706 :param ip_tags: The list of IP tags associated with the public IP address. 9707 :type ip_tags: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetIpTag] 9708 :param public_ip_prefix: The PublicIPPrefix from which to allocate publicIP addresses. 9709 :type public_ip_prefix: ~azure.mgmt.compute.v2020_12_01.models.SubResource 9710 :param public_ip_address_version: Available from Api-Version 2019-07-01 onwards, it represents 9711 whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values 9712 are: 'IPv4' and 'IPv6'. Possible values include: "IPv4", "IPv6". 9713 :type public_ip_address_version: str or ~azure.mgmt.compute.v2020_12_01.models.IPVersion 9714 """ 9715 9716 _validation = { 9717 'name': {'required': True}, 9718 } 9719 9720 _attribute_map = { 9721 'name': {'key': 'name', 'type': 'str'}, 9722 'idle_timeout_in_minutes': {'key': 'properties.idleTimeoutInMinutes', 'type': 'int'}, 9723 'dns_settings': {'key': 'properties.dnsSettings', 'type': 'VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings'}, 9724 'ip_tags': {'key': 'properties.ipTags', 'type': '[VirtualMachineScaleSetIpTag]'}, 9725 'public_ip_prefix': {'key': 'properties.publicIPPrefix', 'type': 'SubResource'}, 9726 'public_ip_address_version': {'key': 'properties.publicIPAddressVersion', 'type': 'str'}, 9727 } 9728 9729 def __init__( 9730 self, 9731 *, 9732 name: str, 9733 idle_timeout_in_minutes: Optional[int] = None, 9734 dns_settings: Optional["VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings"] = None, 9735 ip_tags: Optional[List["VirtualMachineScaleSetIpTag"]] = None, 9736 public_ip_prefix: Optional["SubResource"] = None, 9737 public_ip_address_version: Optional[Union[str, "IPVersion"]] = None, 9738 **kwargs 9739 ): 9740 super(VirtualMachineScaleSetPublicIPAddressConfiguration, self).__init__(**kwargs) 9741 self.name = name 9742 self.idle_timeout_in_minutes = idle_timeout_in_minutes 9743 self.dns_settings = dns_settings 9744 self.ip_tags = ip_tags 9745 self.public_ip_prefix = public_ip_prefix 9746 self.public_ip_address_version = public_ip_address_version 9747 9748 9749class VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings(msrest.serialization.Model): 9750 """Describes a virtual machines scale sets network configuration's DNS settings. 9751 9752 All required parameters must be populated in order to send to Azure. 9753 9754 :param domain_name_label: Required. The Domain name label.The concatenation of the domain name 9755 label and vm index will be the domain name labels of the PublicIPAddress resources that will be 9756 created. 9757 :type domain_name_label: str 9758 """ 9759 9760 _validation = { 9761 'domain_name_label': {'required': True}, 9762 } 9763 9764 _attribute_map = { 9765 'domain_name_label': {'key': 'domainNameLabel', 'type': 'str'}, 9766 } 9767 9768 def __init__( 9769 self, 9770 *, 9771 domain_name_label: str, 9772 **kwargs 9773 ): 9774 super(VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings, self).__init__(**kwargs) 9775 self.domain_name_label = domain_name_label 9776 9777 9778class VirtualMachineScaleSetVMReimageParameters(VirtualMachineReimageParameters): 9779 """Describes a Virtual Machine Scale Set VM Reimage Parameters. 9780 9781 :param temp_disk: Specifies whether to reimage temp disk. Default value: false. Note: This temp 9782 disk reimage parameter is only supported for VM/VMSS with Ephemeral OS disk. 9783 :type temp_disk: bool 9784 """ 9785 9786 _attribute_map = { 9787 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, 9788 } 9789 9790 def __init__( 9791 self, 9792 *, 9793 temp_disk: Optional[bool] = None, 9794 **kwargs 9795 ): 9796 super(VirtualMachineScaleSetVMReimageParameters, self).__init__(temp_disk=temp_disk, **kwargs) 9797 9798 9799class VirtualMachineScaleSetReimageParameters(VirtualMachineScaleSetVMReimageParameters): 9800 """Describes a Virtual Machine Scale Set VM Reimage Parameters. 9801 9802 :param temp_disk: Specifies whether to reimage temp disk. Default value: false. Note: This temp 9803 disk reimage parameter is only supported for VM/VMSS with Ephemeral OS disk. 9804 :type temp_disk: bool 9805 :param instance_ids: The virtual machine scale set instance ids. Omitting the virtual machine 9806 scale set instance ids will result in the operation being performed on all virtual machines in 9807 the virtual machine scale set. 9808 :type instance_ids: list[str] 9809 """ 9810 9811 _attribute_map = { 9812 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, 9813 'instance_ids': {'key': 'instanceIds', 'type': '[str]'}, 9814 } 9815 9816 def __init__( 9817 self, 9818 *, 9819 temp_disk: Optional[bool] = None, 9820 instance_ids: Optional[List[str]] = None, 9821 **kwargs 9822 ): 9823 super(VirtualMachineScaleSetReimageParameters, self).__init__(temp_disk=temp_disk, **kwargs) 9824 self.instance_ids = instance_ids 9825 9826 9827class VirtualMachineScaleSetSku(msrest.serialization.Model): 9828 """Describes an available virtual machine scale set sku. 9829 9830 Variables are only populated by the server, and will be ignored when sending a request. 9831 9832 :ivar resource_type: The type of resource the sku applies to. 9833 :vartype resource_type: str 9834 :ivar sku: The Sku. 9835 :vartype sku: ~azure.mgmt.compute.v2020_12_01.models.Sku 9836 :ivar capacity: Specifies the number of virtual machines in the scale set. 9837 :vartype capacity: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetSkuCapacity 9838 """ 9839 9840 _validation = { 9841 'resource_type': {'readonly': True}, 9842 'sku': {'readonly': True}, 9843 'capacity': {'readonly': True}, 9844 } 9845 9846 _attribute_map = { 9847 'resource_type': {'key': 'resourceType', 'type': 'str'}, 9848 'sku': {'key': 'sku', 'type': 'Sku'}, 9849 'capacity': {'key': 'capacity', 'type': 'VirtualMachineScaleSetSkuCapacity'}, 9850 } 9851 9852 def __init__( 9853 self, 9854 **kwargs 9855 ): 9856 super(VirtualMachineScaleSetSku, self).__init__(**kwargs) 9857 self.resource_type = None 9858 self.sku = None 9859 self.capacity = None 9860 9861 9862class VirtualMachineScaleSetSkuCapacity(msrest.serialization.Model): 9863 """Describes scaling information of a sku. 9864 9865 Variables are only populated by the server, and will be ignored when sending a request. 9866 9867 :ivar minimum: The minimum capacity. 9868 :vartype minimum: long 9869 :ivar maximum: The maximum capacity that can be set. 9870 :vartype maximum: long 9871 :ivar default_capacity: The default capacity. 9872 :vartype default_capacity: long 9873 :ivar scale_type: The scale type applicable to the sku. Possible values include: "Automatic", 9874 "None". 9875 :vartype scale_type: str or 9876 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetSkuScaleType 9877 """ 9878 9879 _validation = { 9880 'minimum': {'readonly': True}, 9881 'maximum': {'readonly': True}, 9882 'default_capacity': {'readonly': True}, 9883 'scale_type': {'readonly': True}, 9884 } 9885 9886 _attribute_map = { 9887 'minimum': {'key': 'minimum', 'type': 'long'}, 9888 'maximum': {'key': 'maximum', 'type': 'long'}, 9889 'default_capacity': {'key': 'defaultCapacity', 'type': 'long'}, 9890 'scale_type': {'key': 'scaleType', 'type': 'str'}, 9891 } 9892 9893 def __init__( 9894 self, 9895 **kwargs 9896 ): 9897 super(VirtualMachineScaleSetSkuCapacity, self).__init__(**kwargs) 9898 self.minimum = None 9899 self.maximum = None 9900 self.default_capacity = None 9901 self.scale_type = None 9902 9903 9904class VirtualMachineScaleSetStorageProfile(msrest.serialization.Model): 9905 """Describes a virtual machine scale set storage profile. 9906 9907 :param image_reference: Specifies information about the image to use. You can specify 9908 information about platform images, marketplace images, or virtual machine images. This element 9909 is required when you want to use a platform image, marketplace image, or virtual machine image, 9910 but is not used in other creation operations. 9911 :type image_reference: ~azure.mgmt.compute.v2020_12_01.models.ImageReference 9912 :param os_disk: Specifies information about the operating system disk used by the virtual 9913 machines in the scale set. :code:`<br>`:code:`<br>` For more information about disks, see 9914 `About disks and VHDs for Azure virtual machines 9915 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 9916 :type os_disk: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetOSDisk 9917 :param data_disks: Specifies the parameters that are used to add data disks to the virtual 9918 machines in the scale set. :code:`<br>`:code:`<br>` For more information about disks, see 9919 `About disks and VHDs for Azure virtual machines 9920 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-about-disks-vhds?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 9921 :type data_disks: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetDataDisk] 9922 """ 9923 9924 _attribute_map = { 9925 'image_reference': {'key': 'imageReference', 'type': 'ImageReference'}, 9926 'os_disk': {'key': 'osDisk', 'type': 'VirtualMachineScaleSetOSDisk'}, 9927 'data_disks': {'key': 'dataDisks', 'type': '[VirtualMachineScaleSetDataDisk]'}, 9928 } 9929 9930 def __init__( 9931 self, 9932 *, 9933 image_reference: Optional["ImageReference"] = None, 9934 os_disk: Optional["VirtualMachineScaleSetOSDisk"] = None, 9935 data_disks: Optional[List["VirtualMachineScaleSetDataDisk"]] = None, 9936 **kwargs 9937 ): 9938 super(VirtualMachineScaleSetStorageProfile, self).__init__(**kwargs) 9939 self.image_reference = image_reference 9940 self.os_disk = os_disk 9941 self.data_disks = data_disks 9942 9943 9944class VirtualMachineScaleSetUpdate(UpdateResource): 9945 """Describes a Virtual Machine Scale Set. 9946 9947 :param tags: A set of tags. Resource tags. 9948 :type tags: dict[str, str] 9949 :param sku: The virtual machine scale set sku. 9950 :type sku: ~azure.mgmt.compute.v2020_12_01.models.Sku 9951 :param plan: The purchase plan when deploying a virtual machine scale set from VM Marketplace 9952 images. 9953 :type plan: ~azure.mgmt.compute.v2020_12_01.models.Plan 9954 :param identity: The identity of the virtual machine scale set, if configured. 9955 :type identity: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetIdentity 9956 :param upgrade_policy: The upgrade policy. 9957 :type upgrade_policy: ~azure.mgmt.compute.v2020_12_01.models.UpgradePolicy 9958 :param automatic_repairs_policy: Policy for automatic repairs. 9959 :type automatic_repairs_policy: ~azure.mgmt.compute.v2020_12_01.models.AutomaticRepairsPolicy 9960 :param virtual_machine_profile: The virtual machine profile. 9961 :type virtual_machine_profile: 9962 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetUpdateVMProfile 9963 :param overprovision: Specifies whether the Virtual Machine Scale Set should be 9964 overprovisioned. 9965 :type overprovision: bool 9966 :param do_not_run_extensions_on_overprovisioned_v_ms: When Overprovision is enabled, extensions 9967 are launched only on the requested number of VMs which are finally kept. This property will 9968 hence ensure that the extensions do not run on the extra overprovisioned VMs. 9969 :type do_not_run_extensions_on_overprovisioned_v_ms: bool 9970 :param single_placement_group: When true this limits the scale set to a single placement group, 9971 of max size 100 virtual machines. NOTE: If singlePlacementGroup is true, it may be modified to 9972 false. However, if singlePlacementGroup is false, it may not be modified to true. 9973 :type single_placement_group: bool 9974 :param additional_capabilities: Specifies additional capabilities enabled or disabled on the 9975 Virtual Machines in the Virtual Machine Scale Set. For instance: whether the Virtual Machines 9976 have the capability to support attaching managed data disks with UltraSSD_LRS storage account 9977 type. 9978 :type additional_capabilities: ~azure.mgmt.compute.v2020_12_01.models.AdditionalCapabilities 9979 :param scale_in_policy: Specifies the scale-in policy that decides which virtual machines are 9980 chosen for removal when a Virtual Machine Scale Set is scaled-in. 9981 :type scale_in_policy: ~azure.mgmt.compute.v2020_12_01.models.ScaleInPolicy 9982 :param proximity_placement_group: Specifies information about the proximity placement group 9983 that the virtual machine scale set should be assigned to. :code:`<br>`:code:`<br>`Minimum 9984 api-version: 2018-04-01. 9985 :type proximity_placement_group: ~azure.mgmt.compute.v2020_12_01.models.SubResource 9986 """ 9987 9988 _attribute_map = { 9989 'tags': {'key': 'tags', 'type': '{str}'}, 9990 'sku': {'key': 'sku', 'type': 'Sku'}, 9991 'plan': {'key': 'plan', 'type': 'Plan'}, 9992 'identity': {'key': 'identity', 'type': 'VirtualMachineScaleSetIdentity'}, 9993 'upgrade_policy': {'key': 'properties.upgradePolicy', 'type': 'UpgradePolicy'}, 9994 'automatic_repairs_policy': {'key': 'properties.automaticRepairsPolicy', 'type': 'AutomaticRepairsPolicy'}, 9995 'virtual_machine_profile': {'key': 'properties.virtualMachineProfile', 'type': 'VirtualMachineScaleSetUpdateVMProfile'}, 9996 'overprovision': {'key': 'properties.overprovision', 'type': 'bool'}, 9997 'do_not_run_extensions_on_overprovisioned_v_ms': {'key': 'properties.doNotRunExtensionsOnOverprovisionedVMs', 'type': 'bool'}, 9998 'single_placement_group': {'key': 'properties.singlePlacementGroup', 'type': 'bool'}, 9999 'additional_capabilities': {'key': 'properties.additionalCapabilities', 'type': 'AdditionalCapabilities'}, 10000 'scale_in_policy': {'key': 'properties.scaleInPolicy', 'type': 'ScaleInPolicy'}, 10001 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, 10002 } 10003 10004 def __init__( 10005 self, 10006 *, 10007 tags: Optional[Dict[str, str]] = None, 10008 sku: Optional["Sku"] = None, 10009 plan: Optional["Plan"] = None, 10010 identity: Optional["VirtualMachineScaleSetIdentity"] = None, 10011 upgrade_policy: Optional["UpgradePolicy"] = None, 10012 automatic_repairs_policy: Optional["AutomaticRepairsPolicy"] = None, 10013 virtual_machine_profile: Optional["VirtualMachineScaleSetUpdateVMProfile"] = None, 10014 overprovision: Optional[bool] = None, 10015 do_not_run_extensions_on_overprovisioned_v_ms: Optional[bool] = None, 10016 single_placement_group: Optional[bool] = None, 10017 additional_capabilities: Optional["AdditionalCapabilities"] = None, 10018 scale_in_policy: Optional["ScaleInPolicy"] = None, 10019 proximity_placement_group: Optional["SubResource"] = None, 10020 **kwargs 10021 ): 10022 super(VirtualMachineScaleSetUpdate, self).__init__(tags=tags, **kwargs) 10023 self.sku = sku 10024 self.plan = plan 10025 self.identity = identity 10026 self.upgrade_policy = upgrade_policy 10027 self.automatic_repairs_policy = automatic_repairs_policy 10028 self.virtual_machine_profile = virtual_machine_profile 10029 self.overprovision = overprovision 10030 self.do_not_run_extensions_on_overprovisioned_v_ms = do_not_run_extensions_on_overprovisioned_v_ms 10031 self.single_placement_group = single_placement_group 10032 self.additional_capabilities = additional_capabilities 10033 self.scale_in_policy = scale_in_policy 10034 self.proximity_placement_group = proximity_placement_group 10035 10036 10037class VirtualMachineScaleSetUpdateIPConfiguration(SubResource): 10038 """Describes a virtual machine scale set network profile's IP configuration. NOTE: The subnet of a scale set may be modified as long as the original subnet and the new subnet are in the same virtual network. 10039 10040 :param id: Resource Id. 10041 :type id: str 10042 :param name: The IP configuration name. 10043 :type name: str 10044 :param subnet: The subnet. 10045 :type subnet: ~azure.mgmt.compute.v2020_12_01.models.ApiEntityReference 10046 :param primary: Specifies the primary IP Configuration in case the network interface has more 10047 than one IP Configuration. 10048 :type primary: bool 10049 :param public_ip_address_configuration: The publicIPAddressConfiguration. 10050 :type public_ip_address_configuration: 10051 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetUpdatePublicIPAddressConfiguration 10052 :param private_ip_address_version: Available from Api-Version 2017-03-30 onwards, it represents 10053 whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible 10054 values are: 'IPv4' and 'IPv6'. Possible values include: "IPv4", "IPv6". 10055 :type private_ip_address_version: str or ~azure.mgmt.compute.v2020_12_01.models.IPVersion 10056 :param application_gateway_backend_address_pools: The application gateway backend address 10057 pools. 10058 :type application_gateway_backend_address_pools: 10059 list[~azure.mgmt.compute.v2020_12_01.models.SubResource] 10060 :param application_security_groups: Specifies an array of references to application security 10061 group. 10062 :type application_security_groups: list[~azure.mgmt.compute.v2020_12_01.models.SubResource] 10063 :param load_balancer_backend_address_pools: The load balancer backend address pools. 10064 :type load_balancer_backend_address_pools: 10065 list[~azure.mgmt.compute.v2020_12_01.models.SubResource] 10066 :param load_balancer_inbound_nat_pools: The load balancer inbound nat pools. 10067 :type load_balancer_inbound_nat_pools: list[~azure.mgmt.compute.v2020_12_01.models.SubResource] 10068 """ 10069 10070 _attribute_map = { 10071 'id': {'key': 'id', 'type': 'str'}, 10072 'name': {'key': 'name', 'type': 'str'}, 10073 'subnet': {'key': 'properties.subnet', 'type': 'ApiEntityReference'}, 10074 'primary': {'key': 'properties.primary', 'type': 'bool'}, 10075 'public_ip_address_configuration': {'key': 'properties.publicIPAddressConfiguration', 'type': 'VirtualMachineScaleSetUpdatePublicIPAddressConfiguration'}, 10076 'private_ip_address_version': {'key': 'properties.privateIPAddressVersion', 'type': 'str'}, 10077 'application_gateway_backend_address_pools': {'key': 'properties.applicationGatewayBackendAddressPools', 'type': '[SubResource]'}, 10078 'application_security_groups': {'key': 'properties.applicationSecurityGroups', 'type': '[SubResource]'}, 10079 'load_balancer_backend_address_pools': {'key': 'properties.loadBalancerBackendAddressPools', 'type': '[SubResource]'}, 10080 'load_balancer_inbound_nat_pools': {'key': 'properties.loadBalancerInboundNatPools', 'type': '[SubResource]'}, 10081 } 10082 10083 def __init__( 10084 self, 10085 *, 10086 id: Optional[str] = None, 10087 name: Optional[str] = None, 10088 subnet: Optional["ApiEntityReference"] = None, 10089 primary: Optional[bool] = None, 10090 public_ip_address_configuration: Optional["VirtualMachineScaleSetUpdatePublicIPAddressConfiguration"] = None, 10091 private_ip_address_version: Optional[Union[str, "IPVersion"]] = None, 10092 application_gateway_backend_address_pools: Optional[List["SubResource"]] = None, 10093 application_security_groups: Optional[List["SubResource"]] = None, 10094 load_balancer_backend_address_pools: Optional[List["SubResource"]] = None, 10095 load_balancer_inbound_nat_pools: Optional[List["SubResource"]] = None, 10096 **kwargs 10097 ): 10098 super(VirtualMachineScaleSetUpdateIPConfiguration, self).__init__(id=id, **kwargs) 10099 self.name = name 10100 self.subnet = subnet 10101 self.primary = primary 10102 self.public_ip_address_configuration = public_ip_address_configuration 10103 self.private_ip_address_version = private_ip_address_version 10104 self.application_gateway_backend_address_pools = application_gateway_backend_address_pools 10105 self.application_security_groups = application_security_groups 10106 self.load_balancer_backend_address_pools = load_balancer_backend_address_pools 10107 self.load_balancer_inbound_nat_pools = load_balancer_inbound_nat_pools 10108 10109 10110class VirtualMachineScaleSetUpdateNetworkConfiguration(SubResource): 10111 """Describes a virtual machine scale set network profile's network configurations. 10112 10113 :param id: Resource Id. 10114 :type id: str 10115 :param name: The network configuration name. 10116 :type name: str 10117 :param primary: Whether this is a primary NIC on a virtual machine. 10118 :type primary: bool 10119 :param enable_accelerated_networking: Specifies whether the network interface is accelerated 10120 networking-enabled. 10121 :type enable_accelerated_networking: bool 10122 :param enable_fpga: Specifies whether the network interface is FPGA networking-enabled. 10123 :type enable_fpga: bool 10124 :param network_security_group: The network security group. 10125 :type network_security_group: ~azure.mgmt.compute.v2020_12_01.models.SubResource 10126 :param dns_settings: The dns settings to be applied on the network interfaces. 10127 :type dns_settings: 10128 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetNetworkConfigurationDnsSettings 10129 :param ip_configurations: The virtual machine scale set IP Configuration. 10130 :type ip_configurations: 10131 list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetUpdateIPConfiguration] 10132 :param enable_ip_forwarding: Whether IP forwarding enabled on this NIC. 10133 :type enable_ip_forwarding: bool 10134 """ 10135 10136 _attribute_map = { 10137 'id': {'key': 'id', 'type': 'str'}, 10138 'name': {'key': 'name', 'type': 'str'}, 10139 'primary': {'key': 'properties.primary', 'type': 'bool'}, 10140 'enable_accelerated_networking': {'key': 'properties.enableAcceleratedNetworking', 'type': 'bool'}, 10141 'enable_fpga': {'key': 'properties.enableFpga', 'type': 'bool'}, 10142 'network_security_group': {'key': 'properties.networkSecurityGroup', 'type': 'SubResource'}, 10143 'dns_settings': {'key': 'properties.dnsSettings', 'type': 'VirtualMachineScaleSetNetworkConfigurationDnsSettings'}, 10144 'ip_configurations': {'key': 'properties.ipConfigurations', 'type': '[VirtualMachineScaleSetUpdateIPConfiguration]'}, 10145 'enable_ip_forwarding': {'key': 'properties.enableIPForwarding', 'type': 'bool'}, 10146 } 10147 10148 def __init__( 10149 self, 10150 *, 10151 id: Optional[str] = None, 10152 name: Optional[str] = None, 10153 primary: Optional[bool] = None, 10154 enable_accelerated_networking: Optional[bool] = None, 10155 enable_fpga: Optional[bool] = None, 10156 network_security_group: Optional["SubResource"] = None, 10157 dns_settings: Optional["VirtualMachineScaleSetNetworkConfigurationDnsSettings"] = None, 10158 ip_configurations: Optional[List["VirtualMachineScaleSetUpdateIPConfiguration"]] = None, 10159 enable_ip_forwarding: Optional[bool] = None, 10160 **kwargs 10161 ): 10162 super(VirtualMachineScaleSetUpdateNetworkConfiguration, self).__init__(id=id, **kwargs) 10163 self.name = name 10164 self.primary = primary 10165 self.enable_accelerated_networking = enable_accelerated_networking 10166 self.enable_fpga = enable_fpga 10167 self.network_security_group = network_security_group 10168 self.dns_settings = dns_settings 10169 self.ip_configurations = ip_configurations 10170 self.enable_ip_forwarding = enable_ip_forwarding 10171 10172 10173class VirtualMachineScaleSetUpdateNetworkProfile(msrest.serialization.Model): 10174 """Describes a virtual machine scale set network profile. 10175 10176 :param health_probe: A reference to a load balancer probe used to determine the health of an 10177 instance in the virtual machine scale set. The reference will be in the form: 10178 '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'. 10179 :type health_probe: ~azure.mgmt.compute.v2020_12_01.models.ApiEntityReference 10180 :param network_interface_configurations: The list of network configurations. 10181 :type network_interface_configurations: 10182 list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetUpdateNetworkConfiguration] 10183 """ 10184 10185 _attribute_map = { 10186 'health_probe': {'key': 'healthProbe', 'type': 'ApiEntityReference'}, 10187 'network_interface_configurations': {'key': 'networkInterfaceConfigurations', 'type': '[VirtualMachineScaleSetUpdateNetworkConfiguration]'}, 10188 } 10189 10190 def __init__( 10191 self, 10192 *, 10193 health_probe: Optional["ApiEntityReference"] = None, 10194 network_interface_configurations: Optional[List["VirtualMachineScaleSetUpdateNetworkConfiguration"]] = None, 10195 **kwargs 10196 ): 10197 super(VirtualMachineScaleSetUpdateNetworkProfile, self).__init__(**kwargs) 10198 self.health_probe = health_probe 10199 self.network_interface_configurations = network_interface_configurations 10200 10201 10202class VirtualMachineScaleSetUpdateOSDisk(msrest.serialization.Model): 10203 """Describes virtual machine scale set operating system disk Update Object. This should be used for Updating VMSS OS Disk. 10204 10205 :param caching: The caching type. Possible values include: "None", "ReadOnly", "ReadWrite". 10206 :type caching: str or ~azure.mgmt.compute.v2020_12_01.models.CachingTypes 10207 :param write_accelerator_enabled: Specifies whether writeAccelerator should be enabled or 10208 disabled on the disk. 10209 :type write_accelerator_enabled: bool 10210 :param disk_size_gb: Specifies the size of the operating system disk in gigabytes. This element 10211 can be used to overwrite the size of the disk in a virtual machine image. 10212 :code:`<br>`:code:`<br>` This value cannot be larger than 1023 GB. 10213 :type disk_size_gb: int 10214 :param image: The Source User Image VirtualHardDisk. This VirtualHardDisk will be copied before 10215 using it to attach to the Virtual Machine. If SourceImage is provided, the destination 10216 VirtualHardDisk should not exist. 10217 :type image: ~azure.mgmt.compute.v2020_12_01.models.VirtualHardDisk 10218 :param vhd_containers: The list of virtual hard disk container uris. 10219 :type vhd_containers: list[str] 10220 :param managed_disk: The managed disk parameters. 10221 :type managed_disk: 10222 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetManagedDiskParameters 10223 """ 10224 10225 _attribute_map = { 10226 'caching': {'key': 'caching', 'type': 'str'}, 10227 'write_accelerator_enabled': {'key': 'writeAcceleratorEnabled', 'type': 'bool'}, 10228 'disk_size_gb': {'key': 'diskSizeGB', 'type': 'int'}, 10229 'image': {'key': 'image', 'type': 'VirtualHardDisk'}, 10230 'vhd_containers': {'key': 'vhdContainers', 'type': '[str]'}, 10231 'managed_disk': {'key': 'managedDisk', 'type': 'VirtualMachineScaleSetManagedDiskParameters'}, 10232 } 10233 10234 def __init__( 10235 self, 10236 *, 10237 caching: Optional[Union[str, "CachingTypes"]] = None, 10238 write_accelerator_enabled: Optional[bool] = None, 10239 disk_size_gb: Optional[int] = None, 10240 image: Optional["VirtualHardDisk"] = None, 10241 vhd_containers: Optional[List[str]] = None, 10242 managed_disk: Optional["VirtualMachineScaleSetManagedDiskParameters"] = None, 10243 **kwargs 10244 ): 10245 super(VirtualMachineScaleSetUpdateOSDisk, self).__init__(**kwargs) 10246 self.caching = caching 10247 self.write_accelerator_enabled = write_accelerator_enabled 10248 self.disk_size_gb = disk_size_gb 10249 self.image = image 10250 self.vhd_containers = vhd_containers 10251 self.managed_disk = managed_disk 10252 10253 10254class VirtualMachineScaleSetUpdateOSProfile(msrest.serialization.Model): 10255 """Describes a virtual machine scale set OS profile. 10256 10257 :param custom_data: A base-64 encoded string of custom data. 10258 :type custom_data: str 10259 :param windows_configuration: The Windows Configuration of the OS profile. 10260 :type windows_configuration: ~azure.mgmt.compute.v2020_12_01.models.WindowsConfiguration 10261 :param linux_configuration: The Linux Configuration of the OS profile. 10262 :type linux_configuration: ~azure.mgmt.compute.v2020_12_01.models.LinuxConfiguration 10263 :param secrets: The List of certificates for addition to the VM. 10264 :type secrets: list[~azure.mgmt.compute.v2020_12_01.models.VaultSecretGroup] 10265 """ 10266 10267 _attribute_map = { 10268 'custom_data': {'key': 'customData', 'type': 'str'}, 10269 'windows_configuration': {'key': 'windowsConfiguration', 'type': 'WindowsConfiguration'}, 10270 'linux_configuration': {'key': 'linuxConfiguration', 'type': 'LinuxConfiguration'}, 10271 'secrets': {'key': 'secrets', 'type': '[VaultSecretGroup]'}, 10272 } 10273 10274 def __init__( 10275 self, 10276 *, 10277 custom_data: Optional[str] = None, 10278 windows_configuration: Optional["WindowsConfiguration"] = None, 10279 linux_configuration: Optional["LinuxConfiguration"] = None, 10280 secrets: Optional[List["VaultSecretGroup"]] = None, 10281 **kwargs 10282 ): 10283 super(VirtualMachineScaleSetUpdateOSProfile, self).__init__(**kwargs) 10284 self.custom_data = custom_data 10285 self.windows_configuration = windows_configuration 10286 self.linux_configuration = linux_configuration 10287 self.secrets = secrets 10288 10289 10290class VirtualMachineScaleSetUpdatePublicIPAddressConfiguration(msrest.serialization.Model): 10291 """Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration. 10292 10293 :param name: The publicIP address configuration name. 10294 :type name: str 10295 :param idle_timeout_in_minutes: The idle timeout of the public IP address. 10296 :type idle_timeout_in_minutes: int 10297 :param dns_settings: The dns settings to be applied on the publicIP addresses . 10298 :type dns_settings: 10299 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings 10300 """ 10301 10302 _attribute_map = { 10303 'name': {'key': 'name', 'type': 'str'}, 10304 'idle_timeout_in_minutes': {'key': 'properties.idleTimeoutInMinutes', 'type': 'int'}, 10305 'dns_settings': {'key': 'properties.dnsSettings', 'type': 'VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings'}, 10306 } 10307 10308 def __init__( 10309 self, 10310 *, 10311 name: Optional[str] = None, 10312 idle_timeout_in_minutes: Optional[int] = None, 10313 dns_settings: Optional["VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings"] = None, 10314 **kwargs 10315 ): 10316 super(VirtualMachineScaleSetUpdatePublicIPAddressConfiguration, self).__init__(**kwargs) 10317 self.name = name 10318 self.idle_timeout_in_minutes = idle_timeout_in_minutes 10319 self.dns_settings = dns_settings 10320 10321 10322class VirtualMachineScaleSetUpdateStorageProfile(msrest.serialization.Model): 10323 """Describes a virtual machine scale set storage profile. 10324 10325 :param image_reference: The image reference. 10326 :type image_reference: ~azure.mgmt.compute.v2020_12_01.models.ImageReference 10327 :param os_disk: The OS disk. 10328 :type os_disk: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetUpdateOSDisk 10329 :param data_disks: The data disks. 10330 :type data_disks: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetDataDisk] 10331 """ 10332 10333 _attribute_map = { 10334 'image_reference': {'key': 'imageReference', 'type': 'ImageReference'}, 10335 'os_disk': {'key': 'osDisk', 'type': 'VirtualMachineScaleSetUpdateOSDisk'}, 10336 'data_disks': {'key': 'dataDisks', 'type': '[VirtualMachineScaleSetDataDisk]'}, 10337 } 10338 10339 def __init__( 10340 self, 10341 *, 10342 image_reference: Optional["ImageReference"] = None, 10343 os_disk: Optional["VirtualMachineScaleSetUpdateOSDisk"] = None, 10344 data_disks: Optional[List["VirtualMachineScaleSetDataDisk"]] = None, 10345 **kwargs 10346 ): 10347 super(VirtualMachineScaleSetUpdateStorageProfile, self).__init__(**kwargs) 10348 self.image_reference = image_reference 10349 self.os_disk = os_disk 10350 self.data_disks = data_disks 10351 10352 10353class VirtualMachineScaleSetUpdateVMProfile(msrest.serialization.Model): 10354 """Describes a virtual machine scale set virtual machine profile. 10355 10356 :param os_profile: The virtual machine scale set OS profile. 10357 :type os_profile: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetUpdateOSProfile 10358 :param storage_profile: The virtual machine scale set storage profile. 10359 :type storage_profile: 10360 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetUpdateStorageProfile 10361 :param network_profile: The virtual machine scale set network profile. 10362 :type network_profile: 10363 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetUpdateNetworkProfile 10364 :param security_profile: The virtual machine scale set Security profile. 10365 :type security_profile: ~azure.mgmt.compute.v2020_12_01.models.SecurityProfile 10366 :param diagnostics_profile: The virtual machine scale set diagnostics profile. 10367 :type diagnostics_profile: ~azure.mgmt.compute.v2020_12_01.models.DiagnosticsProfile 10368 :param extension_profile: The virtual machine scale set extension profile. 10369 :type extension_profile: 10370 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetExtensionProfile 10371 :param license_type: The license type, which is for bring your own license scenario. 10372 :type license_type: str 10373 :param billing_profile: Specifies the billing related details of a Azure Spot VMSS. 10374 :code:`<br>`:code:`<br>`Minimum api-version: 2019-03-01. 10375 :type billing_profile: ~azure.mgmt.compute.v2020_12_01.models.BillingProfile 10376 :param scheduled_events_profile: Specifies Scheduled Event related configurations. 10377 :type scheduled_events_profile: ~azure.mgmt.compute.v2020_12_01.models.ScheduledEventsProfile 10378 """ 10379 10380 _attribute_map = { 10381 'os_profile': {'key': 'osProfile', 'type': 'VirtualMachineScaleSetUpdateOSProfile'}, 10382 'storage_profile': {'key': 'storageProfile', 'type': 'VirtualMachineScaleSetUpdateStorageProfile'}, 10383 'network_profile': {'key': 'networkProfile', 'type': 'VirtualMachineScaleSetUpdateNetworkProfile'}, 10384 'security_profile': {'key': 'securityProfile', 'type': 'SecurityProfile'}, 10385 'diagnostics_profile': {'key': 'diagnosticsProfile', 'type': 'DiagnosticsProfile'}, 10386 'extension_profile': {'key': 'extensionProfile', 'type': 'VirtualMachineScaleSetExtensionProfile'}, 10387 'license_type': {'key': 'licenseType', 'type': 'str'}, 10388 'billing_profile': {'key': 'billingProfile', 'type': 'BillingProfile'}, 10389 'scheduled_events_profile': {'key': 'scheduledEventsProfile', 'type': 'ScheduledEventsProfile'}, 10390 } 10391 10392 def __init__( 10393 self, 10394 *, 10395 os_profile: Optional["VirtualMachineScaleSetUpdateOSProfile"] = None, 10396 storage_profile: Optional["VirtualMachineScaleSetUpdateStorageProfile"] = None, 10397 network_profile: Optional["VirtualMachineScaleSetUpdateNetworkProfile"] = None, 10398 security_profile: Optional["SecurityProfile"] = None, 10399 diagnostics_profile: Optional["DiagnosticsProfile"] = None, 10400 extension_profile: Optional["VirtualMachineScaleSetExtensionProfile"] = None, 10401 license_type: Optional[str] = None, 10402 billing_profile: Optional["BillingProfile"] = None, 10403 scheduled_events_profile: Optional["ScheduledEventsProfile"] = None, 10404 **kwargs 10405 ): 10406 super(VirtualMachineScaleSetUpdateVMProfile, self).__init__(**kwargs) 10407 self.os_profile = os_profile 10408 self.storage_profile = storage_profile 10409 self.network_profile = network_profile 10410 self.security_profile = security_profile 10411 self.diagnostics_profile = diagnostics_profile 10412 self.extension_profile = extension_profile 10413 self.license_type = license_type 10414 self.billing_profile = billing_profile 10415 self.scheduled_events_profile = scheduled_events_profile 10416 10417 10418class VirtualMachineScaleSetVM(Resource): 10419 """Describes a virtual machine scale set virtual machine. 10420 10421 Variables are only populated by the server, and will be ignored when sending a request. 10422 10423 All required parameters must be populated in order to send to Azure. 10424 10425 :ivar id: Resource Id. 10426 :vartype id: str 10427 :ivar name: Resource name. 10428 :vartype name: str 10429 :ivar type: Resource type. 10430 :vartype type: str 10431 :param location: Required. Resource location. 10432 :type location: str 10433 :param tags: A set of tags. Resource tags. 10434 :type tags: dict[str, str] 10435 :ivar instance_id: The virtual machine instance ID. 10436 :vartype instance_id: str 10437 :ivar sku: The virtual machine SKU. 10438 :vartype sku: ~azure.mgmt.compute.v2020_12_01.models.Sku 10439 :param plan: Specifies information about the marketplace image used to create the virtual 10440 machine. This element is only used for marketplace images. Before you can use a marketplace 10441 image from an API, you must enable the image for programmatic use. In the Azure portal, find 10442 the marketplace image that you want to use and then click **Want to deploy programmatically, 10443 Get Started ->**. Enter any required information and then click **Save**. 10444 :type plan: ~azure.mgmt.compute.v2020_12_01.models.Plan 10445 :ivar resources: The virtual machine child extension resources. 10446 :vartype resources: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineExtension] 10447 :ivar zones: The virtual machine zones. 10448 :vartype zones: list[str] 10449 :ivar latest_model_applied: Specifies whether the latest model has been applied to the virtual 10450 machine. 10451 :vartype latest_model_applied: bool 10452 :ivar vm_id: Azure VM unique ID. 10453 :vartype vm_id: str 10454 :ivar instance_view: The virtual machine instance view. 10455 :vartype instance_view: 10456 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetVMInstanceView 10457 :param hardware_profile: Specifies the hardware settings for the virtual machine. 10458 :type hardware_profile: ~azure.mgmt.compute.v2020_12_01.models.HardwareProfile 10459 :param storage_profile: Specifies the storage settings for the virtual machine disks. 10460 :type storage_profile: ~azure.mgmt.compute.v2020_12_01.models.StorageProfile 10461 :param additional_capabilities: Specifies additional capabilities enabled or disabled on the 10462 virtual machine in the scale set. For instance: whether the virtual machine has the capability 10463 to support attaching managed data disks with UltraSSD_LRS storage account type. 10464 :type additional_capabilities: ~azure.mgmt.compute.v2020_12_01.models.AdditionalCapabilities 10465 :param os_profile: Specifies the operating system settings for the virtual machine. 10466 :type os_profile: ~azure.mgmt.compute.v2020_12_01.models.OSProfile 10467 :param security_profile: Specifies the Security related profile settings for the virtual 10468 machine. 10469 :type security_profile: ~azure.mgmt.compute.v2020_12_01.models.SecurityProfile 10470 :param network_profile: Specifies the network interfaces of the virtual machine. 10471 :type network_profile: ~azure.mgmt.compute.v2020_12_01.models.NetworkProfile 10472 :param network_profile_configuration: Specifies the network profile configuration of the 10473 virtual machine. 10474 :type network_profile_configuration: 10475 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetVMNetworkProfileConfiguration 10476 :param diagnostics_profile: Specifies the boot diagnostic settings state. 10477 :code:`<br>`:code:`<br>`Minimum api-version: 2015-06-15. 10478 :type diagnostics_profile: ~azure.mgmt.compute.v2020_12_01.models.DiagnosticsProfile 10479 :param availability_set: Specifies information about the availability set that the virtual 10480 machine should be assigned to. Virtual machines specified in the same availability set are 10481 allocated to different nodes to maximize availability. For more information about availability 10482 sets, see `Manage the availability of virtual machines 10483 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 10484 :code:`<br>`:code:`<br>` For more information on Azure planned maintenance, see `Planned 10485 maintenance for virtual machines in Azure 10486 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_ 10487 :code:`<br>`:code:`<br>` Currently, a VM can only be added to availability set at creation 10488 time. An existing VM cannot be added to an availability set. 10489 :type availability_set: ~azure.mgmt.compute.v2020_12_01.models.SubResource 10490 :ivar provisioning_state: The provisioning state, which only appears in the response. 10491 :vartype provisioning_state: str 10492 :param license_type: Specifies that the image or disk that is being used was licensed 10493 on-premises. :code:`<br>`:code:`<br>` Possible values for Windows Server operating system are: 10494 :code:`<br>`:code:`<br>` Windows_Client :code:`<br>`:code:`<br>` Windows_Server 10495 :code:`<br>`:code:`<br>` Possible values for Linux Server operating system are: 10496 :code:`<br>`:code:`<br>` RHEL_BYOS (for RHEL) :code:`<br>`:code:`<br>` SLES_BYOS (for SUSE) 10497 :code:`<br>`:code:`<br>` For more information, see `Azure Hybrid Use Benefit for Windows Server 10498 <https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing>`_ 10499 :code:`<br>`:code:`<br>` `Azure Hybrid Use Benefit for Linux Server 10500 <https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux>`_ 10501 :code:`<br>`:code:`<br>` Minimum api-version: 2015-06-15. 10502 :type license_type: str 10503 :ivar model_definition_applied: Specifies whether the model applied to the virtual machine is 10504 the model of the virtual machine scale set or the customized model for the virtual machine. 10505 :vartype model_definition_applied: str 10506 :param protection_policy: Specifies the protection policy of the virtual machine. 10507 :type protection_policy: 10508 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetVMProtectionPolicy 10509 """ 10510 10511 _validation = { 10512 'id': {'readonly': True}, 10513 'name': {'readonly': True}, 10514 'type': {'readonly': True}, 10515 'location': {'required': True}, 10516 'instance_id': {'readonly': True}, 10517 'sku': {'readonly': True}, 10518 'resources': {'readonly': True}, 10519 'zones': {'readonly': True}, 10520 'latest_model_applied': {'readonly': True}, 10521 'vm_id': {'readonly': True}, 10522 'instance_view': {'readonly': True}, 10523 'provisioning_state': {'readonly': True}, 10524 'model_definition_applied': {'readonly': True}, 10525 } 10526 10527 _attribute_map = { 10528 'id': {'key': 'id', 'type': 'str'}, 10529 'name': {'key': 'name', 'type': 'str'}, 10530 'type': {'key': 'type', 'type': 'str'}, 10531 'location': {'key': 'location', 'type': 'str'}, 10532 'tags': {'key': 'tags', 'type': '{str}'}, 10533 'instance_id': {'key': 'instanceId', 'type': 'str'}, 10534 'sku': {'key': 'sku', 'type': 'Sku'}, 10535 'plan': {'key': 'plan', 'type': 'Plan'}, 10536 'resources': {'key': 'resources', 'type': '[VirtualMachineExtension]'}, 10537 'zones': {'key': 'zones', 'type': '[str]'}, 10538 'latest_model_applied': {'key': 'properties.latestModelApplied', 'type': 'bool'}, 10539 'vm_id': {'key': 'properties.vmId', 'type': 'str'}, 10540 'instance_view': {'key': 'properties.instanceView', 'type': 'VirtualMachineScaleSetVMInstanceView'}, 10541 'hardware_profile': {'key': 'properties.hardwareProfile', 'type': 'HardwareProfile'}, 10542 'storage_profile': {'key': 'properties.storageProfile', 'type': 'StorageProfile'}, 10543 'additional_capabilities': {'key': 'properties.additionalCapabilities', 'type': 'AdditionalCapabilities'}, 10544 'os_profile': {'key': 'properties.osProfile', 'type': 'OSProfile'}, 10545 'security_profile': {'key': 'properties.securityProfile', 'type': 'SecurityProfile'}, 10546 'network_profile': {'key': 'properties.networkProfile', 'type': 'NetworkProfile'}, 10547 'network_profile_configuration': {'key': 'properties.networkProfileConfiguration', 'type': 'VirtualMachineScaleSetVMNetworkProfileConfiguration'}, 10548 'diagnostics_profile': {'key': 'properties.diagnosticsProfile', 'type': 'DiagnosticsProfile'}, 10549 'availability_set': {'key': 'properties.availabilitySet', 'type': 'SubResource'}, 10550 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 10551 'license_type': {'key': 'properties.licenseType', 'type': 'str'}, 10552 'model_definition_applied': {'key': 'properties.modelDefinitionApplied', 'type': 'str'}, 10553 'protection_policy': {'key': 'properties.protectionPolicy', 'type': 'VirtualMachineScaleSetVMProtectionPolicy'}, 10554 } 10555 10556 def __init__( 10557 self, 10558 *, 10559 location: str, 10560 tags: Optional[Dict[str, str]] = None, 10561 plan: Optional["Plan"] = None, 10562 hardware_profile: Optional["HardwareProfile"] = None, 10563 storage_profile: Optional["StorageProfile"] = None, 10564 additional_capabilities: Optional["AdditionalCapabilities"] = None, 10565 os_profile: Optional["OSProfile"] = None, 10566 security_profile: Optional["SecurityProfile"] = None, 10567 network_profile: Optional["NetworkProfile"] = None, 10568 network_profile_configuration: Optional["VirtualMachineScaleSetVMNetworkProfileConfiguration"] = None, 10569 diagnostics_profile: Optional["DiagnosticsProfile"] = None, 10570 availability_set: Optional["SubResource"] = None, 10571 license_type: Optional[str] = None, 10572 protection_policy: Optional["VirtualMachineScaleSetVMProtectionPolicy"] = None, 10573 **kwargs 10574 ): 10575 super(VirtualMachineScaleSetVM, self).__init__(location=location, tags=tags, **kwargs) 10576 self.instance_id = None 10577 self.sku = None 10578 self.plan = plan 10579 self.resources = None 10580 self.zones = None 10581 self.latest_model_applied = None 10582 self.vm_id = None 10583 self.instance_view = None 10584 self.hardware_profile = hardware_profile 10585 self.storage_profile = storage_profile 10586 self.additional_capabilities = additional_capabilities 10587 self.os_profile = os_profile 10588 self.security_profile = security_profile 10589 self.network_profile = network_profile 10590 self.network_profile_configuration = network_profile_configuration 10591 self.diagnostics_profile = diagnostics_profile 10592 self.availability_set = availability_set 10593 self.provisioning_state = None 10594 self.license_type = license_type 10595 self.model_definition_applied = None 10596 self.protection_policy = protection_policy 10597 10598 10599class VirtualMachineScaleSetVMExtension(SubResourceReadOnly): 10600 """Describes a VMSS VM Extension. 10601 10602 Variables are only populated by the server, and will be ignored when sending a request. 10603 10604 :ivar id: Resource Id. 10605 :vartype id: str 10606 :ivar name: The name of the extension. 10607 :vartype name: str 10608 :ivar type: Resource type. 10609 :vartype type: str 10610 :param force_update_tag: How the extension handler should be forced to update even if the 10611 extension configuration has not changed. 10612 :type force_update_tag: str 10613 :param publisher: The name of the extension handler publisher. 10614 :type publisher: str 10615 :param type_properties_type: Specifies the type of the extension; an example is 10616 "CustomScriptExtension". 10617 :type type_properties_type: str 10618 :param type_handler_version: Specifies the version of the script handler. 10619 :type type_handler_version: str 10620 :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor 10621 version if one is available at deployment time. Once deployed, however, the extension will not 10622 upgrade minor versions unless redeployed, even with this property set to true. 10623 :type auto_upgrade_minor_version: bool 10624 :param enable_automatic_upgrade: Indicates whether the extension should be automatically 10625 upgraded by the platform if there is a newer version of the extension available. 10626 :type enable_automatic_upgrade: bool 10627 :param settings: Json formatted public settings for the extension. 10628 :type settings: any 10629 :param protected_settings: The extension can contain either protectedSettings or 10630 protectedSettingsFromKeyVault or no protected settings at all. 10631 :type protected_settings: any 10632 :ivar provisioning_state: The provisioning state, which only appears in the response. 10633 :vartype provisioning_state: str 10634 :param instance_view: The virtual machine extension instance view. 10635 :type instance_view: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineExtensionInstanceView 10636 """ 10637 10638 _validation = { 10639 'id': {'readonly': True}, 10640 'name': {'readonly': True}, 10641 'type': {'readonly': True}, 10642 'provisioning_state': {'readonly': True}, 10643 } 10644 10645 _attribute_map = { 10646 'id': {'key': 'id', 'type': 'str'}, 10647 'name': {'key': 'name', 'type': 'str'}, 10648 'type': {'key': 'type', 'type': 'str'}, 10649 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, 10650 'publisher': {'key': 'properties.publisher', 'type': 'str'}, 10651 'type_properties_type': {'key': 'properties.type', 'type': 'str'}, 10652 'type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, 10653 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, 10654 'enable_automatic_upgrade': {'key': 'properties.enableAutomaticUpgrade', 'type': 'bool'}, 10655 'settings': {'key': 'properties.settings', 'type': 'object'}, 10656 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, 10657 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 10658 'instance_view': {'key': 'properties.instanceView', 'type': 'VirtualMachineExtensionInstanceView'}, 10659 } 10660 10661 def __init__( 10662 self, 10663 *, 10664 force_update_tag: Optional[str] = None, 10665 publisher: Optional[str] = None, 10666 type_properties_type: Optional[str] = None, 10667 type_handler_version: Optional[str] = None, 10668 auto_upgrade_minor_version: Optional[bool] = None, 10669 enable_automatic_upgrade: Optional[bool] = None, 10670 settings: Optional[Any] = None, 10671 protected_settings: Optional[Any] = None, 10672 instance_view: Optional["VirtualMachineExtensionInstanceView"] = None, 10673 **kwargs 10674 ): 10675 super(VirtualMachineScaleSetVMExtension, self).__init__(**kwargs) 10676 self.name = None 10677 self.type = None 10678 self.force_update_tag = force_update_tag 10679 self.publisher = publisher 10680 self.type_properties_type = type_properties_type 10681 self.type_handler_version = type_handler_version 10682 self.auto_upgrade_minor_version = auto_upgrade_minor_version 10683 self.enable_automatic_upgrade = enable_automatic_upgrade 10684 self.settings = settings 10685 self.protected_settings = protected_settings 10686 self.provisioning_state = None 10687 self.instance_view = instance_view 10688 10689 10690class VirtualMachineScaleSetVMExtensionsListResult(msrest.serialization.Model): 10691 """The List VMSS VM Extension operation response. 10692 10693 :param value: The list of VMSS VM extensions. 10694 :type value: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetVMExtension] 10695 """ 10696 10697 _attribute_map = { 10698 'value': {'key': 'value', 'type': '[VirtualMachineScaleSetVMExtension]'}, 10699 } 10700 10701 def __init__( 10702 self, 10703 *, 10704 value: Optional[List["VirtualMachineScaleSetVMExtension"]] = None, 10705 **kwargs 10706 ): 10707 super(VirtualMachineScaleSetVMExtensionsListResult, self).__init__(**kwargs) 10708 self.value = value 10709 10710 10711class VirtualMachineScaleSetVMExtensionsSummary(msrest.serialization.Model): 10712 """Extensions summary for virtual machines of a virtual machine scale set. 10713 10714 Variables are only populated by the server, and will be ignored when sending a request. 10715 10716 :ivar name: The extension name. 10717 :vartype name: str 10718 :ivar statuses_summary: The extensions information. 10719 :vartype statuses_summary: 10720 list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineStatusCodeCount] 10721 """ 10722 10723 _validation = { 10724 'name': {'readonly': True}, 10725 'statuses_summary': {'readonly': True}, 10726 } 10727 10728 _attribute_map = { 10729 'name': {'key': 'name', 'type': 'str'}, 10730 'statuses_summary': {'key': 'statusesSummary', 'type': '[VirtualMachineStatusCodeCount]'}, 10731 } 10732 10733 def __init__( 10734 self, 10735 **kwargs 10736 ): 10737 super(VirtualMachineScaleSetVMExtensionsSummary, self).__init__(**kwargs) 10738 self.name = None 10739 self.statuses_summary = None 10740 10741 10742class VirtualMachineScaleSetVMExtensionUpdate(SubResourceReadOnly): 10743 """Describes a VMSS VM Extension. 10744 10745 Variables are only populated by the server, and will be ignored when sending a request. 10746 10747 :ivar id: Resource Id. 10748 :vartype id: str 10749 :ivar name: The name of the extension. 10750 :vartype name: str 10751 :ivar type: Resource type. 10752 :vartype type: str 10753 :param force_update_tag: How the extension handler should be forced to update even if the 10754 extension configuration has not changed. 10755 :type force_update_tag: str 10756 :param publisher: The name of the extension handler publisher. 10757 :type publisher: str 10758 :param type_properties_type: Specifies the type of the extension; an example is 10759 "CustomScriptExtension". 10760 :type type_properties_type: str 10761 :param type_handler_version: Specifies the version of the script handler. 10762 :type type_handler_version: str 10763 :param auto_upgrade_minor_version: Indicates whether the extension should use a newer minor 10764 version if one is available at deployment time. Once deployed, however, the extension will not 10765 upgrade minor versions unless redeployed, even with this property set to true. 10766 :type auto_upgrade_minor_version: bool 10767 :param enable_automatic_upgrade: Indicates whether the extension should be automatically 10768 upgraded by the platform if there is a newer version of the extension available. 10769 :type enable_automatic_upgrade: bool 10770 :param settings: Json formatted public settings for the extension. 10771 :type settings: any 10772 :param protected_settings: The extension can contain either protectedSettings or 10773 protectedSettingsFromKeyVault or no protected settings at all. 10774 :type protected_settings: any 10775 """ 10776 10777 _validation = { 10778 'id': {'readonly': True}, 10779 'name': {'readonly': True}, 10780 'type': {'readonly': True}, 10781 } 10782 10783 _attribute_map = { 10784 'id': {'key': 'id', 'type': 'str'}, 10785 'name': {'key': 'name', 'type': 'str'}, 10786 'type': {'key': 'type', 'type': 'str'}, 10787 'force_update_tag': {'key': 'properties.forceUpdateTag', 'type': 'str'}, 10788 'publisher': {'key': 'properties.publisher', 'type': 'str'}, 10789 'type_properties_type': {'key': 'properties.type', 'type': 'str'}, 10790 'type_handler_version': {'key': 'properties.typeHandlerVersion', 'type': 'str'}, 10791 'auto_upgrade_minor_version': {'key': 'properties.autoUpgradeMinorVersion', 'type': 'bool'}, 10792 'enable_automatic_upgrade': {'key': 'properties.enableAutomaticUpgrade', 'type': 'bool'}, 10793 'settings': {'key': 'properties.settings', 'type': 'object'}, 10794 'protected_settings': {'key': 'properties.protectedSettings', 'type': 'object'}, 10795 } 10796 10797 def __init__( 10798 self, 10799 *, 10800 force_update_tag: Optional[str] = None, 10801 publisher: Optional[str] = None, 10802 type_properties_type: Optional[str] = None, 10803 type_handler_version: Optional[str] = None, 10804 auto_upgrade_minor_version: Optional[bool] = None, 10805 enable_automatic_upgrade: Optional[bool] = None, 10806 settings: Optional[Any] = None, 10807 protected_settings: Optional[Any] = None, 10808 **kwargs 10809 ): 10810 super(VirtualMachineScaleSetVMExtensionUpdate, self).__init__(**kwargs) 10811 self.name = None 10812 self.type = None 10813 self.force_update_tag = force_update_tag 10814 self.publisher = publisher 10815 self.type_properties_type = type_properties_type 10816 self.type_handler_version = type_handler_version 10817 self.auto_upgrade_minor_version = auto_upgrade_minor_version 10818 self.enable_automatic_upgrade = enable_automatic_upgrade 10819 self.settings = settings 10820 self.protected_settings = protected_settings 10821 10822 10823class VirtualMachineScaleSetVMInstanceIDs(msrest.serialization.Model): 10824 """Specifies a list of virtual machine instance IDs from the VM scale set. 10825 10826 :param instance_ids: The virtual machine scale set instance ids. Omitting the virtual machine 10827 scale set instance ids will result in the operation being performed on all virtual machines in 10828 the virtual machine scale set. 10829 :type instance_ids: list[str] 10830 """ 10831 10832 _attribute_map = { 10833 'instance_ids': {'key': 'instanceIds', 'type': '[str]'}, 10834 } 10835 10836 def __init__( 10837 self, 10838 *, 10839 instance_ids: Optional[List[str]] = None, 10840 **kwargs 10841 ): 10842 super(VirtualMachineScaleSetVMInstanceIDs, self).__init__(**kwargs) 10843 self.instance_ids = instance_ids 10844 10845 10846class VirtualMachineScaleSetVMInstanceRequiredIDs(msrest.serialization.Model): 10847 """Specifies a list of virtual machine instance IDs from the VM scale set. 10848 10849 All required parameters must be populated in order to send to Azure. 10850 10851 :param instance_ids: Required. The virtual machine scale set instance ids. 10852 :type instance_ids: list[str] 10853 """ 10854 10855 _validation = { 10856 'instance_ids': {'required': True}, 10857 } 10858 10859 _attribute_map = { 10860 'instance_ids': {'key': 'instanceIds', 'type': '[str]'}, 10861 } 10862 10863 def __init__( 10864 self, 10865 *, 10866 instance_ids: List[str], 10867 **kwargs 10868 ): 10869 super(VirtualMachineScaleSetVMInstanceRequiredIDs, self).__init__(**kwargs) 10870 self.instance_ids = instance_ids 10871 10872 10873class VirtualMachineScaleSetVMInstanceView(msrest.serialization.Model): 10874 """The instance view of a virtual machine scale set VM. 10875 10876 Variables are only populated by the server, and will be ignored when sending a request. 10877 10878 :param platform_update_domain: The Update Domain count. 10879 :type platform_update_domain: int 10880 :param platform_fault_domain: The Fault Domain count. 10881 :type platform_fault_domain: int 10882 :param rdp_thumb_print: The Remote desktop certificate thumbprint. 10883 :type rdp_thumb_print: str 10884 :param vm_agent: The VM Agent running on the virtual machine. 10885 :type vm_agent: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineAgentInstanceView 10886 :param maintenance_redeploy_status: The Maintenance Operation status on the virtual machine. 10887 :type maintenance_redeploy_status: 10888 ~azure.mgmt.compute.v2020_12_01.models.MaintenanceRedeployStatus 10889 :param disks: The disks information. 10890 :type disks: list[~azure.mgmt.compute.v2020_12_01.models.DiskInstanceView] 10891 :param extensions: The extensions information. 10892 :type extensions: 10893 list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineExtensionInstanceView] 10894 :ivar vm_health: The health status for the VM. 10895 :vartype vm_health: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineHealthStatus 10896 :param boot_diagnostics: Boot Diagnostics is a debugging feature which allows you to view 10897 Console Output and Screenshot to diagnose VM status. :code:`<br>`:code:`<br>` You can easily 10898 view the output of your console log. :code:`<br>`:code:`<br>` Azure also enables you to see a 10899 screenshot of the VM from the hypervisor. 10900 :type boot_diagnostics: ~azure.mgmt.compute.v2020_12_01.models.BootDiagnosticsInstanceView 10901 :param statuses: The resource status information. 10902 :type statuses: list[~azure.mgmt.compute.v2020_12_01.models.InstanceViewStatus] 10903 :ivar assigned_host: Resource id of the dedicated host, on which the virtual machine is 10904 allocated through automatic placement, when the virtual machine is associated with a dedicated 10905 host group that has automatic placement enabled. :code:`<br>`:code:`<br>`Minimum api-version: 10906 2020-06-01. 10907 :vartype assigned_host: str 10908 :param placement_group_id: The placement group in which the VM is running. If the VM is 10909 deallocated it will not have a placementGroupId. 10910 :type placement_group_id: str 10911 """ 10912 10913 _validation = { 10914 'vm_health': {'readonly': True}, 10915 'assigned_host': {'readonly': True}, 10916 } 10917 10918 _attribute_map = { 10919 'platform_update_domain': {'key': 'platformUpdateDomain', 'type': 'int'}, 10920 'platform_fault_domain': {'key': 'platformFaultDomain', 'type': 'int'}, 10921 'rdp_thumb_print': {'key': 'rdpThumbPrint', 'type': 'str'}, 10922 'vm_agent': {'key': 'vmAgent', 'type': 'VirtualMachineAgentInstanceView'}, 10923 'maintenance_redeploy_status': {'key': 'maintenanceRedeployStatus', 'type': 'MaintenanceRedeployStatus'}, 10924 'disks': {'key': 'disks', 'type': '[DiskInstanceView]'}, 10925 'extensions': {'key': 'extensions', 'type': '[VirtualMachineExtensionInstanceView]'}, 10926 'vm_health': {'key': 'vmHealth', 'type': 'VirtualMachineHealthStatus'}, 10927 'boot_diagnostics': {'key': 'bootDiagnostics', 'type': 'BootDiagnosticsInstanceView'}, 10928 'statuses': {'key': 'statuses', 'type': '[InstanceViewStatus]'}, 10929 'assigned_host': {'key': 'assignedHost', 'type': 'str'}, 10930 'placement_group_id': {'key': 'placementGroupId', 'type': 'str'}, 10931 } 10932 10933 def __init__( 10934 self, 10935 *, 10936 platform_update_domain: Optional[int] = None, 10937 platform_fault_domain: Optional[int] = None, 10938 rdp_thumb_print: Optional[str] = None, 10939 vm_agent: Optional["VirtualMachineAgentInstanceView"] = None, 10940 maintenance_redeploy_status: Optional["MaintenanceRedeployStatus"] = None, 10941 disks: Optional[List["DiskInstanceView"]] = None, 10942 extensions: Optional[List["VirtualMachineExtensionInstanceView"]] = None, 10943 boot_diagnostics: Optional["BootDiagnosticsInstanceView"] = None, 10944 statuses: Optional[List["InstanceViewStatus"]] = None, 10945 placement_group_id: Optional[str] = None, 10946 **kwargs 10947 ): 10948 super(VirtualMachineScaleSetVMInstanceView, self).__init__(**kwargs) 10949 self.platform_update_domain = platform_update_domain 10950 self.platform_fault_domain = platform_fault_domain 10951 self.rdp_thumb_print = rdp_thumb_print 10952 self.vm_agent = vm_agent 10953 self.maintenance_redeploy_status = maintenance_redeploy_status 10954 self.disks = disks 10955 self.extensions = extensions 10956 self.vm_health = None 10957 self.boot_diagnostics = boot_diagnostics 10958 self.statuses = statuses 10959 self.assigned_host = None 10960 self.placement_group_id = placement_group_id 10961 10962 10963class VirtualMachineScaleSetVMListResult(msrest.serialization.Model): 10964 """The List Virtual Machine Scale Set VMs operation response. 10965 10966 All required parameters must be populated in order to send to Azure. 10967 10968 :param value: Required. The list of virtual machine scale sets VMs. 10969 :type value: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetVM] 10970 :param next_link: The uri to fetch the next page of Virtual Machine Scale Set VMs. Call 10971 ListNext() with this to fetch the next page of VMSS VMs. 10972 :type next_link: str 10973 """ 10974 10975 _validation = { 10976 'value': {'required': True}, 10977 } 10978 10979 _attribute_map = { 10980 'value': {'key': 'value', 'type': '[VirtualMachineScaleSetVM]'}, 10981 'next_link': {'key': 'nextLink', 'type': 'str'}, 10982 } 10983 10984 def __init__( 10985 self, 10986 *, 10987 value: List["VirtualMachineScaleSetVM"], 10988 next_link: Optional[str] = None, 10989 **kwargs 10990 ): 10991 super(VirtualMachineScaleSetVMListResult, self).__init__(**kwargs) 10992 self.value = value 10993 self.next_link = next_link 10994 10995 10996class VirtualMachineScaleSetVMNetworkProfileConfiguration(msrest.serialization.Model): 10997 """Describes a virtual machine scale set VM network profile. 10998 10999 :param network_interface_configurations: The list of network configurations. 11000 :type network_interface_configurations: 11001 list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetNetworkConfiguration] 11002 """ 11003 11004 _attribute_map = { 11005 'network_interface_configurations': {'key': 'networkInterfaceConfigurations', 'type': '[VirtualMachineScaleSetNetworkConfiguration]'}, 11006 } 11007 11008 def __init__( 11009 self, 11010 *, 11011 network_interface_configurations: Optional[List["VirtualMachineScaleSetNetworkConfiguration"]] = None, 11012 **kwargs 11013 ): 11014 super(VirtualMachineScaleSetVMNetworkProfileConfiguration, self).__init__(**kwargs) 11015 self.network_interface_configurations = network_interface_configurations 11016 11017 11018class VirtualMachineScaleSetVMProfile(msrest.serialization.Model): 11019 """Describes a virtual machine scale set virtual machine profile. 11020 11021 :param os_profile: Specifies the operating system settings for the virtual machines in the 11022 scale set. 11023 :type os_profile: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetOSProfile 11024 :param storage_profile: Specifies the storage settings for the virtual machine disks. 11025 :type storage_profile: 11026 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetStorageProfile 11027 :param network_profile: Specifies properties of the network interfaces of the virtual machines 11028 in the scale set. 11029 :type network_profile: 11030 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetNetworkProfile 11031 :param security_profile: Specifies the Security related profile settings for the virtual 11032 machines in the scale set. 11033 :type security_profile: ~azure.mgmt.compute.v2020_12_01.models.SecurityProfile 11034 :param diagnostics_profile: Specifies the boot diagnostic settings state. 11035 :code:`<br>`:code:`<br>`Minimum api-version: 2015-06-15. 11036 :type diagnostics_profile: ~azure.mgmt.compute.v2020_12_01.models.DiagnosticsProfile 11037 :param extension_profile: Specifies a collection of settings for extensions installed on 11038 virtual machines in the scale set. 11039 :type extension_profile: 11040 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineScaleSetExtensionProfile 11041 :param license_type: Specifies that the image or disk that is being used was licensed 11042 on-premises. :code:`<br>`:code:`<br>` Possible values for Windows Server operating system are: 11043 :code:`<br>`:code:`<br>` Windows_Client :code:`<br>`:code:`<br>` Windows_Server 11044 :code:`<br>`:code:`<br>` Possible values for Linux Server operating system are: 11045 :code:`<br>`:code:`<br>` RHEL_BYOS (for RHEL) :code:`<br>`:code:`<br>` SLES_BYOS (for SUSE) 11046 :code:`<br>`:code:`<br>` For more information, see `Azure Hybrid Use Benefit for Windows Server 11047 <https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing>`_ 11048 :code:`<br>`:code:`<br>` `Azure Hybrid Use Benefit for Linux Server 11049 <https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux>`_ 11050 :code:`<br>`:code:`<br>` Minimum api-version: 2015-06-15. 11051 :type license_type: str 11052 :param priority: Specifies the priority for the virtual machines in the scale set. 11053 :code:`<br>`:code:`<br>`Minimum api-version: 2017-10-30-preview. Possible values include: 11054 "Regular", "Low", "Spot". 11055 :type priority: str or ~azure.mgmt.compute.v2020_12_01.models.VirtualMachinePriorityTypes 11056 :param eviction_policy: Specifies the eviction policy for the Azure Spot virtual machine and 11057 Azure Spot scale set. :code:`<br>`:code:`<br>`For Azure Spot virtual machines, both 11058 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. 11059 :code:`<br>`:code:`<br>`For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported 11060 and the minimum api-version is 2017-10-30-preview. Possible values include: "Deallocate", 11061 "Delete". 11062 :type eviction_policy: str or 11063 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineEvictionPolicyTypes 11064 :param billing_profile: Specifies the billing related details of a Azure Spot VMSS. 11065 :code:`<br>`:code:`<br>`Minimum api-version: 2019-03-01. 11066 :type billing_profile: ~azure.mgmt.compute.v2020_12_01.models.BillingProfile 11067 :param scheduled_events_profile: Specifies Scheduled Event related configurations. 11068 :type scheduled_events_profile: ~azure.mgmt.compute.v2020_12_01.models.ScheduledEventsProfile 11069 """ 11070 11071 _attribute_map = { 11072 'os_profile': {'key': 'osProfile', 'type': 'VirtualMachineScaleSetOSProfile'}, 11073 'storage_profile': {'key': 'storageProfile', 'type': 'VirtualMachineScaleSetStorageProfile'}, 11074 'network_profile': {'key': 'networkProfile', 'type': 'VirtualMachineScaleSetNetworkProfile'}, 11075 'security_profile': {'key': 'securityProfile', 'type': 'SecurityProfile'}, 11076 'diagnostics_profile': {'key': 'diagnosticsProfile', 'type': 'DiagnosticsProfile'}, 11077 'extension_profile': {'key': 'extensionProfile', 'type': 'VirtualMachineScaleSetExtensionProfile'}, 11078 'license_type': {'key': 'licenseType', 'type': 'str'}, 11079 'priority': {'key': 'priority', 'type': 'str'}, 11080 'eviction_policy': {'key': 'evictionPolicy', 'type': 'str'}, 11081 'billing_profile': {'key': 'billingProfile', 'type': 'BillingProfile'}, 11082 'scheduled_events_profile': {'key': 'scheduledEventsProfile', 'type': 'ScheduledEventsProfile'}, 11083 } 11084 11085 def __init__( 11086 self, 11087 *, 11088 os_profile: Optional["VirtualMachineScaleSetOSProfile"] = None, 11089 storage_profile: Optional["VirtualMachineScaleSetStorageProfile"] = None, 11090 network_profile: Optional["VirtualMachineScaleSetNetworkProfile"] = None, 11091 security_profile: Optional["SecurityProfile"] = None, 11092 diagnostics_profile: Optional["DiagnosticsProfile"] = None, 11093 extension_profile: Optional["VirtualMachineScaleSetExtensionProfile"] = None, 11094 license_type: Optional[str] = None, 11095 priority: Optional[Union[str, "VirtualMachinePriorityTypes"]] = None, 11096 eviction_policy: Optional[Union[str, "VirtualMachineEvictionPolicyTypes"]] = None, 11097 billing_profile: Optional["BillingProfile"] = None, 11098 scheduled_events_profile: Optional["ScheduledEventsProfile"] = None, 11099 **kwargs 11100 ): 11101 super(VirtualMachineScaleSetVMProfile, self).__init__(**kwargs) 11102 self.os_profile = os_profile 11103 self.storage_profile = storage_profile 11104 self.network_profile = network_profile 11105 self.security_profile = security_profile 11106 self.diagnostics_profile = diagnostics_profile 11107 self.extension_profile = extension_profile 11108 self.license_type = license_type 11109 self.priority = priority 11110 self.eviction_policy = eviction_policy 11111 self.billing_profile = billing_profile 11112 self.scheduled_events_profile = scheduled_events_profile 11113 11114 11115class VirtualMachineScaleSetVMProtectionPolicy(msrest.serialization.Model): 11116 """The protection policy of a virtual machine scale set VM. 11117 11118 :param protect_from_scale_in: Indicates that the virtual machine scale set VM shouldn't be 11119 considered for deletion during a scale-in operation. 11120 :type protect_from_scale_in: bool 11121 :param protect_from_scale_set_actions: Indicates that model updates or actions (including 11122 scale-in) initiated on the virtual machine scale set should not be applied to the virtual 11123 machine scale set VM. 11124 :type protect_from_scale_set_actions: bool 11125 """ 11126 11127 _attribute_map = { 11128 'protect_from_scale_in': {'key': 'protectFromScaleIn', 'type': 'bool'}, 11129 'protect_from_scale_set_actions': {'key': 'protectFromScaleSetActions', 'type': 'bool'}, 11130 } 11131 11132 def __init__( 11133 self, 11134 *, 11135 protect_from_scale_in: Optional[bool] = None, 11136 protect_from_scale_set_actions: Optional[bool] = None, 11137 **kwargs 11138 ): 11139 super(VirtualMachineScaleSetVMProtectionPolicy, self).__init__(**kwargs) 11140 self.protect_from_scale_in = protect_from_scale_in 11141 self.protect_from_scale_set_actions = protect_from_scale_set_actions 11142 11143 11144class VirtualMachineSize(msrest.serialization.Model): 11145 """Describes the properties of a VM size. 11146 11147 :param name: The name of the virtual machine size. 11148 :type name: str 11149 :param number_of_cores: The number of cores supported by the virtual machine size. 11150 :type number_of_cores: int 11151 :param os_disk_size_in_mb: The OS disk size, in MB, allowed by the virtual machine size. 11152 :type os_disk_size_in_mb: int 11153 :param resource_disk_size_in_mb: The resource disk size, in MB, allowed by the virtual machine 11154 size. 11155 :type resource_disk_size_in_mb: int 11156 :param memory_in_mb: The amount of memory, in MB, supported by the virtual machine size. 11157 :type memory_in_mb: int 11158 :param max_data_disk_count: The maximum number of data disks that can be attached to the 11159 virtual machine size. 11160 :type max_data_disk_count: int 11161 """ 11162 11163 _attribute_map = { 11164 'name': {'key': 'name', 'type': 'str'}, 11165 'number_of_cores': {'key': 'numberOfCores', 'type': 'int'}, 11166 'os_disk_size_in_mb': {'key': 'osDiskSizeInMB', 'type': 'int'}, 11167 'resource_disk_size_in_mb': {'key': 'resourceDiskSizeInMB', 'type': 'int'}, 11168 'memory_in_mb': {'key': 'memoryInMB', 'type': 'int'}, 11169 'max_data_disk_count': {'key': 'maxDataDiskCount', 'type': 'int'}, 11170 } 11171 11172 def __init__( 11173 self, 11174 *, 11175 name: Optional[str] = None, 11176 number_of_cores: Optional[int] = None, 11177 os_disk_size_in_mb: Optional[int] = None, 11178 resource_disk_size_in_mb: Optional[int] = None, 11179 memory_in_mb: Optional[int] = None, 11180 max_data_disk_count: Optional[int] = None, 11181 **kwargs 11182 ): 11183 super(VirtualMachineSize, self).__init__(**kwargs) 11184 self.name = name 11185 self.number_of_cores = number_of_cores 11186 self.os_disk_size_in_mb = os_disk_size_in_mb 11187 self.resource_disk_size_in_mb = resource_disk_size_in_mb 11188 self.memory_in_mb = memory_in_mb 11189 self.max_data_disk_count = max_data_disk_count 11190 11191 11192class VirtualMachineSizeListResult(msrest.serialization.Model): 11193 """The List Virtual Machine operation response. 11194 11195 :param value: The list of virtual machine sizes. 11196 :type value: list[~azure.mgmt.compute.v2020_12_01.models.VirtualMachineSize] 11197 """ 11198 11199 _attribute_map = { 11200 'value': {'key': 'value', 'type': '[VirtualMachineSize]'}, 11201 } 11202 11203 def __init__( 11204 self, 11205 *, 11206 value: Optional[List["VirtualMachineSize"]] = None, 11207 **kwargs 11208 ): 11209 super(VirtualMachineSizeListResult, self).__init__(**kwargs) 11210 self.value = value 11211 11212 11213class VirtualMachineSoftwarePatchProperties(msrest.serialization.Model): 11214 """Describes the properties of a Virtual Machine software patch. 11215 11216 Variables are only populated by the server, and will be ignored when sending a request. 11217 11218 :ivar patch_id: A unique identifier for the patch. 11219 :vartype patch_id: str 11220 :ivar name: The friendly name of the patch. 11221 :vartype name: str 11222 :ivar version: The version number of the patch. This property applies only to Linux patches. 11223 :vartype version: str 11224 :ivar kb_id: The KBID of the patch. Only applies to Windows patches. 11225 :vartype kb_id: str 11226 :ivar classifications: The classification(s) of the patch as provided by the patch publisher. 11227 :vartype classifications: list[str] 11228 :ivar reboot_behavior: Describes the reboot requirements of the patch. Possible values include: 11229 "Unknown", "NeverReboots", "AlwaysRequiresReboot", "CanRequestReboot". 11230 :vartype reboot_behavior: str or 11231 ~azure.mgmt.compute.v2020_12_01.models.VMGuestPatchRebootBehavior 11232 :ivar activity_id: The activity ID of the operation that produced this result. It is used to 11233 correlate across CRP and extension logs. 11234 :vartype activity_id: str 11235 :ivar published_date: The UTC timestamp when the repository published this patch. 11236 :vartype published_date: ~datetime.datetime 11237 :ivar last_modified_date_time: The UTC timestamp of the last update to this patch record. 11238 :vartype last_modified_date_time: ~datetime.datetime 11239 :ivar assessment_state: Describes the availability of a given patch. Possible values include: 11240 "Unknown", "Available". 11241 :vartype assessment_state: str or ~azure.mgmt.compute.v2020_12_01.models.PatchAssessmentState 11242 """ 11243 11244 _validation = { 11245 'patch_id': {'readonly': True}, 11246 'name': {'readonly': True}, 11247 'version': {'readonly': True}, 11248 'kb_id': {'readonly': True}, 11249 'classifications': {'readonly': True}, 11250 'reboot_behavior': {'readonly': True}, 11251 'activity_id': {'readonly': True}, 11252 'published_date': {'readonly': True}, 11253 'last_modified_date_time': {'readonly': True}, 11254 'assessment_state': {'readonly': True}, 11255 } 11256 11257 _attribute_map = { 11258 'patch_id': {'key': 'patchId', 'type': 'str'}, 11259 'name': {'key': 'name', 'type': 'str'}, 11260 'version': {'key': 'version', 'type': 'str'}, 11261 'kb_id': {'key': 'kbId', 'type': 'str'}, 11262 'classifications': {'key': 'classifications', 'type': '[str]'}, 11263 'reboot_behavior': {'key': 'rebootBehavior', 'type': 'str'}, 11264 'activity_id': {'key': 'activityId', 'type': 'str'}, 11265 'published_date': {'key': 'publishedDate', 'type': 'iso-8601'}, 11266 'last_modified_date_time': {'key': 'lastModifiedDateTime', 'type': 'iso-8601'}, 11267 'assessment_state': {'key': 'assessmentState', 'type': 'str'}, 11268 } 11269 11270 def __init__( 11271 self, 11272 **kwargs 11273 ): 11274 super(VirtualMachineSoftwarePatchProperties, self).__init__(**kwargs) 11275 self.patch_id = None 11276 self.name = None 11277 self.version = None 11278 self.kb_id = None 11279 self.classifications = None 11280 self.reboot_behavior = None 11281 self.activity_id = None 11282 self.published_date = None 11283 self.last_modified_date_time = None 11284 self.assessment_state = None 11285 11286 11287class VirtualMachineStatusCodeCount(msrest.serialization.Model): 11288 """The status code and count of the virtual machine scale set instance view status summary. 11289 11290 Variables are only populated by the server, and will be ignored when sending a request. 11291 11292 :ivar code: The instance view status code. 11293 :vartype code: str 11294 :ivar count: The number of instances having a particular status code. 11295 :vartype count: int 11296 """ 11297 11298 _validation = { 11299 'code': {'readonly': True}, 11300 'count': {'readonly': True}, 11301 } 11302 11303 _attribute_map = { 11304 'code': {'key': 'code', 'type': 'str'}, 11305 'count': {'key': 'count', 'type': 'int'}, 11306 } 11307 11308 def __init__( 11309 self, 11310 **kwargs 11311 ): 11312 super(VirtualMachineStatusCodeCount, self).__init__(**kwargs) 11313 self.code = None 11314 self.count = None 11315 11316 11317class VirtualMachineUpdate(UpdateResource): 11318 """Describes a Virtual Machine Update. 11319 11320 Variables are only populated by the server, and will be ignored when sending a request. 11321 11322 :param tags: A set of tags. Resource tags. 11323 :type tags: dict[str, str] 11324 :param plan: Specifies information about the marketplace image used to create the virtual 11325 machine. This element is only used for marketplace images. Before you can use a marketplace 11326 image from an API, you must enable the image for programmatic use. In the Azure portal, find 11327 the marketplace image that you want to use and then click **Want to deploy programmatically, 11328 Get Started ->**. Enter any required information and then click **Save**. 11329 :type plan: ~azure.mgmt.compute.v2020_12_01.models.Plan 11330 :param identity: The identity of the virtual machine, if configured. 11331 :type identity: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineIdentity 11332 :param zones: The virtual machine zones. 11333 :type zones: list[str] 11334 :param hardware_profile: Specifies the hardware settings for the virtual machine. 11335 :type hardware_profile: ~azure.mgmt.compute.v2020_12_01.models.HardwareProfile 11336 :param storage_profile: Specifies the storage settings for the virtual machine disks. 11337 :type storage_profile: ~azure.mgmt.compute.v2020_12_01.models.StorageProfile 11338 :param additional_capabilities: Specifies additional capabilities enabled or disabled on the 11339 virtual machine. 11340 :type additional_capabilities: ~azure.mgmt.compute.v2020_12_01.models.AdditionalCapabilities 11341 :param os_profile: Specifies the operating system settings used while creating the virtual 11342 machine. Some of the settings cannot be changed once VM is provisioned. 11343 :type os_profile: ~azure.mgmt.compute.v2020_12_01.models.OSProfile 11344 :param network_profile: Specifies the network interfaces of the virtual machine. 11345 :type network_profile: ~azure.mgmt.compute.v2020_12_01.models.NetworkProfile 11346 :param security_profile: Specifies the Security related profile settings for the virtual 11347 machine. 11348 :type security_profile: ~azure.mgmt.compute.v2020_12_01.models.SecurityProfile 11349 :param diagnostics_profile: Specifies the boot diagnostic settings state. 11350 :code:`<br>`:code:`<br>`Minimum api-version: 2015-06-15. 11351 :type diagnostics_profile: ~azure.mgmt.compute.v2020_12_01.models.DiagnosticsProfile 11352 :param availability_set: Specifies information about the availability set that the virtual 11353 machine should be assigned to. Virtual machines specified in the same availability set are 11354 allocated to different nodes to maximize availability. For more information about availability 11355 sets, see `Manage the availability of virtual machines 11356 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-manage-availability?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_. 11357 :code:`<br>`:code:`<br>` For more information on Azure planned maintenance, see `Planned 11358 maintenance for virtual machines in Azure 11359 <https://docs.microsoft.com/azure/virtual-machines/virtual-machines-windows-planned-maintenance?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json>`_ 11360 :code:`<br>`:code:`<br>` Currently, a VM can only be added to availability set at creation 11361 time. The availability set to which the VM is being added should be under the same resource 11362 group as the availability set resource. An existing VM cannot be added to an availability set. 11363 :code:`<br>`:code:`<br>`This property cannot exist along with a non-null 11364 properties.virtualMachineScaleSet reference. 11365 :type availability_set: ~azure.mgmt.compute.v2020_12_01.models.SubResource 11366 :param virtual_machine_scale_set: Specifies information about the virtual machine scale set 11367 that the virtual machine should be assigned to. Virtual machines specified in the same virtual 11368 machine scale set are allocated to different nodes to maximize availability. Currently, a VM 11369 can only be added to virtual machine scale set at creation time. An existing VM cannot be added 11370 to a virtual machine scale set. :code:`<br>`:code:`<br>`This property cannot exist along with a 11371 non-null properties.availabilitySet reference. :code:`<br>`:code:`<br>`Minimum api‐version: 11372 2019‐03‐01. 11373 :type virtual_machine_scale_set: ~azure.mgmt.compute.v2020_12_01.models.SubResource 11374 :param proximity_placement_group: Specifies information about the proximity placement group 11375 that the virtual machine should be assigned to. :code:`<br>`:code:`<br>`Minimum api-version: 11376 2018-04-01. 11377 :type proximity_placement_group: ~azure.mgmt.compute.v2020_12_01.models.SubResource 11378 :param priority: Specifies the priority for the virtual machine. 11379 :code:`<br>`:code:`<br>`Minimum api-version: 2019-03-01. Possible values include: "Regular", 11380 "Low", "Spot". 11381 :type priority: str or ~azure.mgmt.compute.v2020_12_01.models.VirtualMachinePriorityTypes 11382 :param eviction_policy: Specifies the eviction policy for the Azure Spot virtual machine and 11383 Azure Spot scale set. :code:`<br>`:code:`<br>`For Azure Spot virtual machines, both 11384 'Deallocate' and 'Delete' are supported and the minimum api-version is 2019-03-01. 11385 :code:`<br>`:code:`<br>`For Azure Spot scale sets, both 'Deallocate' and 'Delete' are supported 11386 and the minimum api-version is 2017-10-30-preview. Possible values include: "Deallocate", 11387 "Delete". 11388 :type eviction_policy: str or 11389 ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineEvictionPolicyTypes 11390 :param billing_profile: Specifies the billing related details of a Azure Spot virtual machine. 11391 :code:`<br>`:code:`<br>`Minimum api-version: 2019-03-01. 11392 :type billing_profile: ~azure.mgmt.compute.v2020_12_01.models.BillingProfile 11393 :param host: Specifies information about the dedicated host that the virtual machine resides 11394 in. :code:`<br>`:code:`<br>`Minimum api-version: 2018-10-01. 11395 :type host: ~azure.mgmt.compute.v2020_12_01.models.SubResource 11396 :param host_group: Specifies information about the dedicated host group that the virtual 11397 machine resides in. :code:`<br>`:code:`<br>`Minimum api-version: 2020-06-01. 11398 :code:`<br>`:code:`<br>`NOTE: User cannot specify both host and hostGroup properties. 11399 :type host_group: ~azure.mgmt.compute.v2020_12_01.models.SubResource 11400 :ivar provisioning_state: The provisioning state, which only appears in the response. 11401 :vartype provisioning_state: str 11402 :ivar instance_view: The virtual machine instance view. 11403 :vartype instance_view: ~azure.mgmt.compute.v2020_12_01.models.VirtualMachineInstanceView 11404 :param license_type: Specifies that the image or disk that is being used was licensed 11405 on-premises. :code:`<br>`:code:`<br>` Possible values for Windows Server operating system are: 11406 :code:`<br>`:code:`<br>` Windows_Client :code:`<br>`:code:`<br>` Windows_Server 11407 :code:`<br>`:code:`<br>` Possible values for Linux Server operating system are: 11408 :code:`<br>`:code:`<br>` RHEL_BYOS (for RHEL) :code:`<br>`:code:`<br>` SLES_BYOS (for SUSE) 11409 :code:`<br>`:code:`<br>` For more information, see `Azure Hybrid Use Benefit for Windows Server 11410 <https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing>`_ 11411 :code:`<br>`:code:`<br>` `Azure Hybrid Use Benefit for Linux Server 11412 <https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux>`_ 11413 :code:`<br>`:code:`<br>` Minimum api-version: 2015-06-15. 11414 :type license_type: str 11415 :ivar vm_id: Specifies the VM unique ID which is a 128-bits identifier that is encoded and 11416 stored in all Azure IaaS VMs SMBIOS and can be read using platform BIOS commands. 11417 :vartype vm_id: str 11418 :param extensions_time_budget: Specifies the time alloted for all extensions to start. The time 11419 duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in 11420 ISO 8601 format. The default value is 90 minutes (PT1H30M). :code:`<br>`:code:`<br>` Minimum 11421 api-version: 2020-06-01. 11422 :type extensions_time_budget: str 11423 :param platform_fault_domain: Specifies the scale set logical fault domain into which the 11424 Virtual Machine will be created. By default, the Virtual Machine will by automatically assigned 11425 to a fault domain that best maintains balance across available fault 11426 domains.:code:`<br>`:code:`<li>`This is applicable only if the 'virtualMachineScaleSet' 11427 property of this Virtual Machine is set.:code:`<li>`The Virtual Machine Scale Set that is 11428 referenced, must have 'platformFaultDomainCount' > 1.:code:`<li>`This property cannot be 11429 updated once the Virtual Machine is created.:code:`<li>`Fault domain assignment can be viewed 11430 in the Virtual Machine Instance View.:code:`<br>`:code:`<br>`Minimum api‐version: 2020‐12‐01. 11431 :type platform_fault_domain: int 11432 """ 11433 11434 _validation = { 11435 'provisioning_state': {'readonly': True}, 11436 'instance_view': {'readonly': True}, 11437 'vm_id': {'readonly': True}, 11438 } 11439 11440 _attribute_map = { 11441 'tags': {'key': 'tags', 'type': '{str}'}, 11442 'plan': {'key': 'plan', 'type': 'Plan'}, 11443 'identity': {'key': 'identity', 'type': 'VirtualMachineIdentity'}, 11444 'zones': {'key': 'zones', 'type': '[str]'}, 11445 'hardware_profile': {'key': 'properties.hardwareProfile', 'type': 'HardwareProfile'}, 11446 'storage_profile': {'key': 'properties.storageProfile', 'type': 'StorageProfile'}, 11447 'additional_capabilities': {'key': 'properties.additionalCapabilities', 'type': 'AdditionalCapabilities'}, 11448 'os_profile': {'key': 'properties.osProfile', 'type': 'OSProfile'}, 11449 'network_profile': {'key': 'properties.networkProfile', 'type': 'NetworkProfile'}, 11450 'security_profile': {'key': 'properties.securityProfile', 'type': 'SecurityProfile'}, 11451 'diagnostics_profile': {'key': 'properties.diagnosticsProfile', 'type': 'DiagnosticsProfile'}, 11452 'availability_set': {'key': 'properties.availabilitySet', 'type': 'SubResource'}, 11453 'virtual_machine_scale_set': {'key': 'properties.virtualMachineScaleSet', 'type': 'SubResource'}, 11454 'proximity_placement_group': {'key': 'properties.proximityPlacementGroup', 'type': 'SubResource'}, 11455 'priority': {'key': 'properties.priority', 'type': 'str'}, 11456 'eviction_policy': {'key': 'properties.evictionPolicy', 'type': 'str'}, 11457 'billing_profile': {'key': 'properties.billingProfile', 'type': 'BillingProfile'}, 11458 'host': {'key': 'properties.host', 'type': 'SubResource'}, 11459 'host_group': {'key': 'properties.hostGroup', 'type': 'SubResource'}, 11460 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 11461 'instance_view': {'key': 'properties.instanceView', 'type': 'VirtualMachineInstanceView'}, 11462 'license_type': {'key': 'properties.licenseType', 'type': 'str'}, 11463 'vm_id': {'key': 'properties.vmId', 'type': 'str'}, 11464 'extensions_time_budget': {'key': 'properties.extensionsTimeBudget', 'type': 'str'}, 11465 'platform_fault_domain': {'key': 'properties.platformFaultDomain', 'type': 'int'}, 11466 } 11467 11468 def __init__( 11469 self, 11470 *, 11471 tags: Optional[Dict[str, str]] = None, 11472 plan: Optional["Plan"] = None, 11473 identity: Optional["VirtualMachineIdentity"] = None, 11474 zones: Optional[List[str]] = None, 11475 hardware_profile: Optional["HardwareProfile"] = None, 11476 storage_profile: Optional["StorageProfile"] = None, 11477 additional_capabilities: Optional["AdditionalCapabilities"] = None, 11478 os_profile: Optional["OSProfile"] = None, 11479 network_profile: Optional["NetworkProfile"] = None, 11480 security_profile: Optional["SecurityProfile"] = None, 11481 diagnostics_profile: Optional["DiagnosticsProfile"] = None, 11482 availability_set: Optional["SubResource"] = None, 11483 virtual_machine_scale_set: Optional["SubResource"] = None, 11484 proximity_placement_group: Optional["SubResource"] = None, 11485 priority: Optional[Union[str, "VirtualMachinePriorityTypes"]] = None, 11486 eviction_policy: Optional[Union[str, "VirtualMachineEvictionPolicyTypes"]] = None, 11487 billing_profile: Optional["BillingProfile"] = None, 11488 host: Optional["SubResource"] = None, 11489 host_group: Optional["SubResource"] = None, 11490 license_type: Optional[str] = None, 11491 extensions_time_budget: Optional[str] = None, 11492 platform_fault_domain: Optional[int] = None, 11493 **kwargs 11494 ): 11495 super(VirtualMachineUpdate, self).__init__(tags=tags, **kwargs) 11496 self.plan = plan 11497 self.identity = identity 11498 self.zones = zones 11499 self.hardware_profile = hardware_profile 11500 self.storage_profile = storage_profile 11501 self.additional_capabilities = additional_capabilities 11502 self.os_profile = os_profile 11503 self.network_profile = network_profile 11504 self.security_profile = security_profile 11505 self.diagnostics_profile = diagnostics_profile 11506 self.availability_set = availability_set 11507 self.virtual_machine_scale_set = virtual_machine_scale_set 11508 self.proximity_placement_group = proximity_placement_group 11509 self.priority = priority 11510 self.eviction_policy = eviction_policy 11511 self.billing_profile = billing_profile 11512 self.host = host 11513 self.host_group = host_group 11514 self.provisioning_state = None 11515 self.instance_view = None 11516 self.license_type = license_type 11517 self.vm_id = None 11518 self.extensions_time_budget = extensions_time_budget 11519 self.platform_fault_domain = platform_fault_domain 11520 11521 11522class VMScaleSetConvertToSinglePlacementGroupInput(msrest.serialization.Model): 11523 """VMScaleSetConvertToSinglePlacementGroupInput. 11524 11525 :param active_placement_group_id: Id of the placement group in which you want future virtual 11526 machine instances to be placed. To query placement group Id, please use Virtual Machine Scale 11527 Set VMs - Get API. If not provided, the platform will choose one with maximum number of virtual 11528 machine instances. 11529 :type active_placement_group_id: str 11530 """ 11531 11532 _attribute_map = { 11533 'active_placement_group_id': {'key': 'activePlacementGroupId', 'type': 'str'}, 11534 } 11535 11536 def __init__( 11537 self, 11538 *, 11539 active_placement_group_id: Optional[str] = None, 11540 **kwargs 11541 ): 11542 super(VMScaleSetConvertToSinglePlacementGroupInput, self).__init__(**kwargs) 11543 self.active_placement_group_id = active_placement_group_id 11544 11545 11546class WindowsConfiguration(msrest.serialization.Model): 11547 """Specifies Windows operating system settings on the virtual machine. 11548 11549 :param provision_vm_agent: Indicates whether virtual machine agent should be provisioned on the 11550 virtual machine. :code:`<br>`:code:`<br>` When this property is not specified in the request 11551 body, default behavior is to set it to true. This will ensure that VM Agent is installed on 11552 the VM so that extensions can be added to the VM later. 11553 :type provision_vm_agent: bool 11554 :param enable_automatic_updates: Indicates whether Automatic Updates is enabled for the Windows 11555 virtual machine. Default value is true. :code:`<br>`:code:`<br>` For virtual machine scale 11556 sets, this property can be updated and updates will take effect on OS reprovisioning. 11557 :type enable_automatic_updates: bool 11558 :param time_zone: Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". 11559 :code:`<br>`:code:`<br>` Possible values can be `TimeZoneInfo.Id 11560 <https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id>`_ 11561 value from time zones returned by `TimeZoneInfo.GetSystemTimeZones 11562 <https://docs.microsoft.com/en-us/dotnet/api/system.timezoneinfo.getsystemtimezones>`_. 11563 :type time_zone: str 11564 :param additional_unattend_content: Specifies additional base-64 encoded XML formatted 11565 information that can be included in the Unattend.xml file, which is used by Windows Setup. 11566 :type additional_unattend_content: 11567 list[~azure.mgmt.compute.v2020_12_01.models.AdditionalUnattendContent] 11568 :param patch_settings: [Preview Feature] Specifies settings related to VM Guest Patching on 11569 Windows. 11570 :type patch_settings: ~azure.mgmt.compute.v2020_12_01.models.PatchSettings 11571 :param win_rm: Specifies the Windows Remote Management listeners. This enables remote Windows 11572 PowerShell. 11573 :type win_rm: ~azure.mgmt.compute.v2020_12_01.models.WinRMConfiguration 11574 """ 11575 11576 _attribute_map = { 11577 'provision_vm_agent': {'key': 'provisionVMAgent', 'type': 'bool'}, 11578 'enable_automatic_updates': {'key': 'enableAutomaticUpdates', 'type': 'bool'}, 11579 'time_zone': {'key': 'timeZone', 'type': 'str'}, 11580 'additional_unattend_content': {'key': 'additionalUnattendContent', 'type': '[AdditionalUnattendContent]'}, 11581 'patch_settings': {'key': 'patchSettings', 'type': 'PatchSettings'}, 11582 'win_rm': {'key': 'winRM', 'type': 'WinRMConfiguration'}, 11583 } 11584 11585 def __init__( 11586 self, 11587 *, 11588 provision_vm_agent: Optional[bool] = None, 11589 enable_automatic_updates: Optional[bool] = None, 11590 time_zone: Optional[str] = None, 11591 additional_unattend_content: Optional[List["AdditionalUnattendContent"]] = None, 11592 patch_settings: Optional["PatchSettings"] = None, 11593 win_rm: Optional["WinRMConfiguration"] = None, 11594 **kwargs 11595 ): 11596 super(WindowsConfiguration, self).__init__(**kwargs) 11597 self.provision_vm_agent = provision_vm_agent 11598 self.enable_automatic_updates = enable_automatic_updates 11599 self.time_zone = time_zone 11600 self.additional_unattend_content = additional_unattend_content 11601 self.patch_settings = patch_settings 11602 self.win_rm = win_rm 11603 11604 11605class WindowsParameters(msrest.serialization.Model): 11606 """Input for InstallPatches on a Windows VM, as directly received by the API. 11607 11608 :param classifications_to_include: The update classifications to select when installing patches 11609 for Windows. 11610 :type classifications_to_include: list[str or 11611 ~azure.mgmt.compute.v2020_12_01.models.VMGuestPatchClassificationWindows] 11612 :param kb_numbers_to_include: Kbs to include in the patch operation. 11613 :type kb_numbers_to_include: list[str] 11614 :param kb_numbers_to_exclude: Kbs to exclude in the patch operation. 11615 :type kb_numbers_to_exclude: list[str] 11616 :param exclude_kbs_requiring_reboot: Filters out Kbs that don't have an 11617 InstallationRebootBehavior of 'NeverReboots' when this is set to true. 11618 :type exclude_kbs_requiring_reboot: bool 11619 :param max_patch_publish_date: This is used to install patches that were published on or before 11620 this given max published date. 11621 :type max_patch_publish_date: ~datetime.datetime 11622 """ 11623 11624 _attribute_map = { 11625 'classifications_to_include': {'key': 'classificationsToInclude', 'type': '[str]'}, 11626 'kb_numbers_to_include': {'key': 'kbNumbersToInclude', 'type': '[str]'}, 11627 'kb_numbers_to_exclude': {'key': 'kbNumbersToExclude', 'type': '[str]'}, 11628 'exclude_kbs_requiring_reboot': {'key': 'excludeKbsRequiringReboot', 'type': 'bool'}, 11629 'max_patch_publish_date': {'key': 'maxPatchPublishDate', 'type': 'iso-8601'}, 11630 } 11631 11632 def __init__( 11633 self, 11634 *, 11635 classifications_to_include: Optional[List[Union[str, "VMGuestPatchClassificationWindows"]]] = None, 11636 kb_numbers_to_include: Optional[List[str]] = None, 11637 kb_numbers_to_exclude: Optional[List[str]] = None, 11638 exclude_kbs_requiring_reboot: Optional[bool] = None, 11639 max_patch_publish_date: Optional[datetime.datetime] = None, 11640 **kwargs 11641 ): 11642 super(WindowsParameters, self).__init__(**kwargs) 11643 self.classifications_to_include = classifications_to_include 11644 self.kb_numbers_to_include = kb_numbers_to_include 11645 self.kb_numbers_to_exclude = kb_numbers_to_exclude 11646 self.exclude_kbs_requiring_reboot = exclude_kbs_requiring_reboot 11647 self.max_patch_publish_date = max_patch_publish_date 11648 11649 11650class WinRMConfiguration(msrest.serialization.Model): 11651 """Describes Windows Remote Management configuration of the VM. 11652 11653 :param listeners: The list of Windows Remote Management listeners. 11654 :type listeners: list[~azure.mgmt.compute.v2020_12_01.models.WinRMListener] 11655 """ 11656 11657 _attribute_map = { 11658 'listeners': {'key': 'listeners', 'type': '[WinRMListener]'}, 11659 } 11660 11661 def __init__( 11662 self, 11663 *, 11664 listeners: Optional[List["WinRMListener"]] = None, 11665 **kwargs 11666 ): 11667 super(WinRMConfiguration, self).__init__(**kwargs) 11668 self.listeners = listeners 11669 11670 11671class WinRMListener(msrest.serialization.Model): 11672 """Describes Protocol and thumbprint of Windows Remote Management listener. 11673 11674 :param protocol: Specifies the protocol of WinRM listener. :code:`<br>`:code:`<br>` Possible 11675 values are: :code:`<br>`\ **http** :code:`<br>`:code:`<br>` **https**. Possible values include: 11676 "Http", "Https". 11677 :type protocol: str or ~azure.mgmt.compute.v2020_12_01.models.ProtocolTypes 11678 :param certificate_url: This is the URL of a certificate that has been uploaded to Key Vault as 11679 a secret. For adding a secret to the Key Vault, see `Add a key or secret to the key vault 11680 <https://docs.microsoft.com/azure/key-vault/key-vault-get-started/#add>`_. In this case, your 11681 certificate needs to be It is the Base64 encoding of the following JSON Object which is encoded 11682 in UTF-8: :code:`<br>`:code:`<br>` {:code:`<br>` 11683 "data":":code:`<Base64-encoded-certificate>`",:code:`<br>` "dataType":"pfx",:code:`<br>` 11684 "password":":code:`<pfx-file-password>`":code:`<br>`}. 11685 :type certificate_url: str 11686 """ 11687 11688 _attribute_map = { 11689 'protocol': {'key': 'protocol', 'type': 'str'}, 11690 'certificate_url': {'key': 'certificateUrl', 'type': 'str'}, 11691 } 11692 11693 def __init__( 11694 self, 11695 *, 11696 protocol: Optional[Union[str, "ProtocolTypes"]] = None, 11697 certificate_url: Optional[str] = None, 11698 **kwargs 11699 ): 11700 super(WinRMListener, self).__init__(**kwargs) 11701 self.protocol = protocol 11702 self.certificate_url = certificate_url 11703