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