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 9from typing import Dict, List, Optional, Union 10 11import msrest.serialization 12 13from ._compute_management_client_enums import * 14 15 16class AccessUri(msrest.serialization.Model): 17 """A disk access SAS uri. 18 19 Variables are only populated by the server, and will be ignored when sending a request. 20 21 :ivar access_sas: A SAS uri for accessing a disk. 22 :vartype access_sas: str 23 """ 24 25 _validation = { 26 'access_sas': {'readonly': True}, 27 } 28 29 _attribute_map = { 30 'access_sas': {'key': 'accessSAS', 'type': 'str'}, 31 } 32 33 def __init__( 34 self, 35 **kwargs 36 ): 37 super(AccessUri, self).__init__(**kwargs) 38 self.access_sas = None 39 40 41class ApiError(msrest.serialization.Model): 42 """Api error. 43 44 :param details: The Api error details. 45 :type details: list[~azure.mgmt.compute.v2019_11_01.models.ApiErrorBase] 46 :param innererror: The Api inner error. 47 :type innererror: ~azure.mgmt.compute.v2019_11_01.models.InnerError 48 :param code: The error code. 49 :type code: str 50 :param target: The target of the particular error. 51 :type target: str 52 :param message: The error message. 53 :type message: str 54 """ 55 56 _attribute_map = { 57 'details': {'key': 'details', 'type': '[ApiErrorBase]'}, 58 'innererror': {'key': 'innererror', 'type': 'InnerError'}, 59 'code': {'key': 'code', 'type': 'str'}, 60 'target': {'key': 'target', 'type': 'str'}, 61 'message': {'key': 'message', 'type': 'str'}, 62 } 63 64 def __init__( 65 self, 66 *, 67 details: Optional[List["ApiErrorBase"]] = None, 68 innererror: Optional["InnerError"] = None, 69 code: Optional[str] = None, 70 target: Optional[str] = None, 71 message: Optional[str] = None, 72 **kwargs 73 ): 74 super(ApiError, self).__init__(**kwargs) 75 self.details = details 76 self.innererror = innererror 77 self.code = code 78 self.target = target 79 self.message = message 80 81 82class ApiErrorBase(msrest.serialization.Model): 83 """Api error base. 84 85 :param code: The error code. 86 :type code: str 87 :param target: The target of the particular error. 88 :type target: str 89 :param message: The error message. 90 :type message: str 91 """ 92 93 _attribute_map = { 94 'code': {'key': 'code', 'type': 'str'}, 95 'target': {'key': 'target', 'type': 'str'}, 96 'message': {'key': 'message', 'type': 'str'}, 97 } 98 99 def __init__( 100 self, 101 *, 102 code: Optional[str] = None, 103 target: Optional[str] = None, 104 message: Optional[str] = None, 105 **kwargs 106 ): 107 super(ApiErrorBase, self).__init__(**kwargs) 108 self.code = code 109 self.target = target 110 self.message = message 111 112 113class CreationData(msrest.serialization.Model): 114 """Data used when creating a disk. 115 116 Variables are only populated by the server, and will be ignored when sending a request. 117 118 All required parameters must be populated in order to send to Azure. 119 120 :param create_option: Required. This enumerates the possible sources of a disk's creation. 121 Possible values include: "Empty", "Attach", "FromImage", "Import", "Copy", "Restore", "Upload". 122 :type create_option: str or ~azure.mgmt.compute.v2019_11_01.models.DiskCreateOption 123 :param storage_account_id: Required if createOption is Import. The Azure Resource Manager 124 identifier of the storage account containing the blob to import as a disk. 125 :type storage_account_id: str 126 :param image_reference: Disk source information. 127 :type image_reference: ~azure.mgmt.compute.v2019_11_01.models.ImageDiskReference 128 :param gallery_image_reference: Required if creating from a Gallery Image. The id of the 129 ImageDiskReference will be the ARM id of the shared galley image version from which to create a 130 disk. 131 :type gallery_image_reference: ~azure.mgmt.compute.v2019_11_01.models.ImageDiskReference 132 :param source_uri: If createOption is Import, this is the URI of a blob to be imported into a 133 managed disk. 134 :type source_uri: str 135 :param source_resource_id: If createOption is Copy, this is the ARM id of the source snapshot 136 or disk. 137 :type source_resource_id: str 138 :ivar source_unique_id: If this field is set, this is the unique id identifying the source of 139 this resource. 140 :vartype source_unique_id: str 141 :param upload_size_bytes: If createOption is Upload, this is the size of the contents of the 142 upload including the VHD footer. This value should be between 20972032 (20 MiB + 512 bytes for 143 the VHD footer) and 35183298347520 bytes (32 TiB + 512 bytes for the VHD footer). 144 :type upload_size_bytes: long 145 """ 146 147 _validation = { 148 'create_option': {'required': True}, 149 'source_unique_id': {'readonly': True}, 150 } 151 152 _attribute_map = { 153 'create_option': {'key': 'createOption', 'type': 'str'}, 154 'storage_account_id': {'key': 'storageAccountId', 'type': 'str'}, 155 'image_reference': {'key': 'imageReference', 'type': 'ImageDiskReference'}, 156 'gallery_image_reference': {'key': 'galleryImageReference', 'type': 'ImageDiskReference'}, 157 'source_uri': {'key': 'sourceUri', 'type': 'str'}, 158 'source_resource_id': {'key': 'sourceResourceId', 'type': 'str'}, 159 'source_unique_id': {'key': 'sourceUniqueId', 'type': 'str'}, 160 'upload_size_bytes': {'key': 'uploadSizeBytes', 'type': 'long'}, 161 } 162 163 def __init__( 164 self, 165 *, 166 create_option: Union[str, "DiskCreateOption"], 167 storage_account_id: Optional[str] = None, 168 image_reference: Optional["ImageDiskReference"] = None, 169 gallery_image_reference: Optional["ImageDiskReference"] = None, 170 source_uri: Optional[str] = None, 171 source_resource_id: Optional[str] = None, 172 upload_size_bytes: Optional[int] = None, 173 **kwargs 174 ): 175 super(CreationData, self).__init__(**kwargs) 176 self.create_option = create_option 177 self.storage_account_id = storage_account_id 178 self.image_reference = image_reference 179 self.gallery_image_reference = gallery_image_reference 180 self.source_uri = source_uri 181 self.source_resource_id = source_resource_id 182 self.source_unique_id = None 183 self.upload_size_bytes = upload_size_bytes 184 185 186class Resource(msrest.serialization.Model): 187 """The Resource model definition. 188 189 Variables are only populated by the server, and will be ignored when sending a request. 190 191 All required parameters must be populated in order to send to Azure. 192 193 :ivar id: Resource Id. 194 :vartype id: str 195 :ivar name: Resource name. 196 :vartype name: str 197 :ivar type: Resource type. 198 :vartype type: str 199 :param location: Required. Resource location. 200 :type location: str 201 :param tags: A set of tags. Resource tags. 202 :type tags: dict[str, str] 203 """ 204 205 _validation = { 206 'id': {'readonly': True}, 207 'name': {'readonly': True}, 208 'type': {'readonly': True}, 209 'location': {'required': True}, 210 } 211 212 _attribute_map = { 213 'id': {'key': 'id', 'type': 'str'}, 214 'name': {'key': 'name', 'type': 'str'}, 215 'type': {'key': 'type', 'type': 'str'}, 216 'location': {'key': 'location', 'type': 'str'}, 217 'tags': {'key': 'tags', 'type': '{str}'}, 218 } 219 220 def __init__( 221 self, 222 *, 223 location: str, 224 tags: Optional[Dict[str, str]] = None, 225 **kwargs 226 ): 227 super(Resource, self).__init__(**kwargs) 228 self.id = None 229 self.name = None 230 self.type = None 231 self.location = location 232 self.tags = tags 233 234 235class Disk(Resource): 236 """Disk resource. 237 238 Variables are only populated by the server, and will be ignored when sending a request. 239 240 All required parameters must be populated in order to send to Azure. 241 242 :ivar id: Resource Id. 243 :vartype id: str 244 :ivar name: Resource name. 245 :vartype name: str 246 :ivar type: Resource type. 247 :vartype type: str 248 :param location: Required. Resource location. 249 :type location: str 250 :param tags: A set of tags. Resource tags. 251 :type tags: dict[str, str] 252 :ivar managed_by: A relative URI containing the ID of the VM that has the disk attached. 253 :vartype managed_by: str 254 :ivar managed_by_extended: List of relative URIs containing the IDs of the VMs that have the 255 disk attached. maxShares should be set to a value greater than one for disks to allow attaching 256 them to multiple VMs. 257 :vartype managed_by_extended: list[str] 258 :param sku: The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, or 259 UltraSSD_LRS. 260 :type sku: ~azure.mgmt.compute.v2019_11_01.models.DiskSku 261 :param zones: The Logical zone list for Disk. 262 :type zones: list[str] 263 :ivar time_created: The time when the disk was created. 264 :vartype time_created: ~datetime.datetime 265 :param os_type: The Operating System type. Possible values include: "Windows", "Linux". 266 :type os_type: str or ~azure.mgmt.compute.v2019_11_01.models.OperatingSystemTypes 267 :param hyper_v_generation: The hypervisor generation of the Virtual Machine. Applicable to OS 268 disks only. Possible values include: "V1", "V2". 269 :type hyper_v_generation: str or ~azure.mgmt.compute.v2019_11_01.models.HyperVGeneration 270 :param creation_data: Disk source information. CreationData information cannot be changed after 271 the disk has been created. 272 :type creation_data: ~azure.mgmt.compute.v2019_11_01.models.CreationData 273 :param disk_size_gb: If creationData.createOption is Empty, this field is mandatory and it 274 indicates the size of the disk to create. If this field is present for updates or creation with 275 other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a 276 running VM, and can only increase the disk's size. 277 :type disk_size_gb: int 278 :ivar disk_size_bytes: The size of the disk in bytes. This field is read only. 279 :vartype disk_size_bytes: long 280 :ivar unique_id: Unique Guid identifying the resource. 281 :vartype unique_id: str 282 :param encryption_settings_collection: Encryption settings collection used for Azure Disk 283 Encryption, can contain multiple encryption settings per disk or snapshot. 284 :type encryption_settings_collection: 285 ~azure.mgmt.compute.v2019_11_01.models.EncryptionSettingsCollection 286 :ivar provisioning_state: The disk provisioning state. 287 :vartype provisioning_state: str 288 :param disk_iops_read_write: The number of IOPS allowed for this disk; only settable for 289 UltraSSD disks. One operation can transfer between 4k and 256k bytes. 290 :type disk_iops_read_write: long 291 :param disk_m_bps_read_write: The bandwidth allowed for this disk; only settable for UltraSSD 292 disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 293 10. 294 :type disk_m_bps_read_write: long 295 :param disk_iops_read_only: The total number of IOPS that will be allowed across all VMs 296 mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes. 297 :type disk_iops_read_only: long 298 :param disk_m_bps_read_only: The total throughput (MBps) that will be allowed across all VMs 299 mounting the shared disk as ReadOnly. MBps means millions of bytes per second - MB here uses 300 the ISO notation, of powers of 10. 301 :type disk_m_bps_read_only: long 302 :ivar disk_state: The state of the disk. Possible values include: "Unattached", "Attached", 303 "Reserved", "ActiveSAS", "ReadyToUpload", "ActiveUpload". 304 :vartype disk_state: str or ~azure.mgmt.compute.v2019_11_01.models.DiskState 305 :param encryption: Encryption property can be used to encrypt data at rest with customer 306 managed keys or platform managed keys. 307 :type encryption: ~azure.mgmt.compute.v2019_11_01.models.Encryption 308 :param max_shares: The maximum number of VMs that can attach to the disk at the same time. 309 Value greater than one indicates a disk that can be mounted on multiple VMs at the same time. 310 :type max_shares: int 311 :ivar share_info: Details of the list of all VMs that have the disk attached. maxShares should 312 be set to a value greater than one for disks to allow attaching them to multiple VMs. 313 :vartype share_info: list[~azure.mgmt.compute.v2019_11_01.models.ShareInfoElement] 314 """ 315 316 _validation = { 317 'id': {'readonly': True}, 318 'name': {'readonly': True}, 319 'type': {'readonly': True}, 320 'location': {'required': True}, 321 'managed_by': {'readonly': True}, 322 'managed_by_extended': {'readonly': True}, 323 'time_created': {'readonly': True}, 324 'disk_size_bytes': {'readonly': True}, 325 'unique_id': {'readonly': True}, 326 'provisioning_state': {'readonly': True}, 327 'disk_state': {'readonly': True}, 328 'share_info': {'readonly': True}, 329 } 330 331 _attribute_map = { 332 'id': {'key': 'id', 'type': 'str'}, 333 'name': {'key': 'name', 'type': 'str'}, 334 'type': {'key': 'type', 'type': 'str'}, 335 'location': {'key': 'location', 'type': 'str'}, 336 'tags': {'key': 'tags', 'type': '{str}'}, 337 'managed_by': {'key': 'managedBy', 'type': 'str'}, 338 'managed_by_extended': {'key': 'managedByExtended', 'type': '[str]'}, 339 'sku': {'key': 'sku', 'type': 'DiskSku'}, 340 'zones': {'key': 'zones', 'type': '[str]'}, 341 'time_created': {'key': 'properties.timeCreated', 'type': 'iso-8601'}, 342 'os_type': {'key': 'properties.osType', 'type': 'str'}, 343 'hyper_v_generation': {'key': 'properties.hyperVGeneration', 'type': 'str'}, 344 'creation_data': {'key': 'properties.creationData', 'type': 'CreationData'}, 345 'disk_size_gb': {'key': 'properties.diskSizeGB', 'type': 'int'}, 346 'disk_size_bytes': {'key': 'properties.diskSizeBytes', 'type': 'long'}, 347 'unique_id': {'key': 'properties.uniqueId', 'type': 'str'}, 348 'encryption_settings_collection': {'key': 'properties.encryptionSettingsCollection', 'type': 'EncryptionSettingsCollection'}, 349 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 350 'disk_iops_read_write': {'key': 'properties.diskIOPSReadWrite', 'type': 'long'}, 351 'disk_m_bps_read_write': {'key': 'properties.diskMBpsReadWrite', 'type': 'long'}, 352 'disk_iops_read_only': {'key': 'properties.diskIOPSReadOnly', 'type': 'long'}, 353 'disk_m_bps_read_only': {'key': 'properties.diskMBpsReadOnly', 'type': 'long'}, 354 'disk_state': {'key': 'properties.diskState', 'type': 'str'}, 355 'encryption': {'key': 'properties.encryption', 'type': 'Encryption'}, 356 'max_shares': {'key': 'properties.maxShares', 'type': 'int'}, 357 'share_info': {'key': 'properties.shareInfo', 'type': '[ShareInfoElement]'}, 358 } 359 360 def __init__( 361 self, 362 *, 363 location: str, 364 tags: Optional[Dict[str, str]] = None, 365 sku: Optional["DiskSku"] = None, 366 zones: Optional[List[str]] = None, 367 os_type: Optional[Union[str, "OperatingSystemTypes"]] = None, 368 hyper_v_generation: Optional[Union[str, "HyperVGeneration"]] = None, 369 creation_data: Optional["CreationData"] = None, 370 disk_size_gb: Optional[int] = None, 371 encryption_settings_collection: Optional["EncryptionSettingsCollection"] = None, 372 disk_iops_read_write: Optional[int] = None, 373 disk_m_bps_read_write: Optional[int] = None, 374 disk_iops_read_only: Optional[int] = None, 375 disk_m_bps_read_only: Optional[int] = None, 376 encryption: Optional["Encryption"] = None, 377 max_shares: Optional[int] = None, 378 **kwargs 379 ): 380 super(Disk, self).__init__(location=location, tags=tags, **kwargs) 381 self.managed_by = None 382 self.managed_by_extended = None 383 self.sku = sku 384 self.zones = zones 385 self.time_created = None 386 self.os_type = os_type 387 self.hyper_v_generation = hyper_v_generation 388 self.creation_data = creation_data 389 self.disk_size_gb = disk_size_gb 390 self.disk_size_bytes = None 391 self.unique_id = None 392 self.encryption_settings_collection = encryption_settings_collection 393 self.provisioning_state = None 394 self.disk_iops_read_write = disk_iops_read_write 395 self.disk_m_bps_read_write = disk_m_bps_read_write 396 self.disk_iops_read_only = disk_iops_read_only 397 self.disk_m_bps_read_only = disk_m_bps_read_only 398 self.disk_state = None 399 self.encryption = encryption 400 self.max_shares = max_shares 401 self.share_info = None 402 403 404class DiskEncryptionSet(Resource): 405 """disk encryption set resource. 406 407 Variables are only populated by the server, and will be ignored when sending a request. 408 409 All required parameters must be populated in order to send to Azure. 410 411 :ivar id: Resource Id. 412 :vartype id: str 413 :ivar name: Resource name. 414 :vartype name: str 415 :ivar type: Resource type. 416 :vartype type: str 417 :param location: Required. Resource location. 418 :type location: str 419 :param tags: A set of tags. Resource tags. 420 :type tags: dict[str, str] 421 :param identity: The managed identity for the disk encryption set. It should be given 422 permission on the key vault before it can be used to encrypt disks. 423 :type identity: ~azure.mgmt.compute.v2019_11_01.models.EncryptionSetIdentity 424 :param active_key: The key vault key which is currently used by this disk encryption set. 425 :type active_key: ~azure.mgmt.compute.v2019_11_01.models.KeyVaultAndKeyReference 426 :ivar previous_keys: A readonly collection of key vault keys previously used by this disk 427 encryption set while a key rotation is in progress. It will be empty if there is no ongoing key 428 rotation. 429 :vartype previous_keys: list[~azure.mgmt.compute.v2019_11_01.models.KeyVaultAndKeyReference] 430 :ivar provisioning_state: The disk encryption set provisioning state. 431 :vartype provisioning_state: str 432 """ 433 434 _validation = { 435 'id': {'readonly': True}, 436 'name': {'readonly': True}, 437 'type': {'readonly': True}, 438 'location': {'required': True}, 439 'previous_keys': {'readonly': True}, 440 'provisioning_state': {'readonly': True}, 441 } 442 443 _attribute_map = { 444 'id': {'key': 'id', 'type': 'str'}, 445 'name': {'key': 'name', 'type': 'str'}, 446 'type': {'key': 'type', 'type': 'str'}, 447 'location': {'key': 'location', 'type': 'str'}, 448 'tags': {'key': 'tags', 'type': '{str}'}, 449 'identity': {'key': 'identity', 'type': 'EncryptionSetIdentity'}, 450 'active_key': {'key': 'properties.activeKey', 'type': 'KeyVaultAndKeyReference'}, 451 'previous_keys': {'key': 'properties.previousKeys', 'type': '[KeyVaultAndKeyReference]'}, 452 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 453 } 454 455 def __init__( 456 self, 457 *, 458 location: str, 459 tags: Optional[Dict[str, str]] = None, 460 identity: Optional["EncryptionSetIdentity"] = None, 461 active_key: Optional["KeyVaultAndKeyReference"] = None, 462 **kwargs 463 ): 464 super(DiskEncryptionSet, self).__init__(location=location, tags=tags, **kwargs) 465 self.identity = identity 466 self.active_key = active_key 467 self.previous_keys = None 468 self.provisioning_state = None 469 470 471class DiskEncryptionSetList(msrest.serialization.Model): 472 """The List disk encryption set operation response. 473 474 All required parameters must be populated in order to send to Azure. 475 476 :param value: Required. A list of disk encryption sets. 477 :type value: list[~azure.mgmt.compute.v2019_11_01.models.DiskEncryptionSet] 478 :param next_link: The uri to fetch the next page of disk encryption sets. Call ListNext() with 479 this to fetch the next page of disk encryption sets. 480 :type next_link: str 481 """ 482 483 _validation = { 484 'value': {'required': True}, 485 } 486 487 _attribute_map = { 488 'value': {'key': 'value', 'type': '[DiskEncryptionSet]'}, 489 'next_link': {'key': 'nextLink', 'type': 'str'}, 490 } 491 492 def __init__( 493 self, 494 *, 495 value: List["DiskEncryptionSet"], 496 next_link: Optional[str] = None, 497 **kwargs 498 ): 499 super(DiskEncryptionSetList, self).__init__(**kwargs) 500 self.value = value 501 self.next_link = next_link 502 503 504class DiskEncryptionSetUpdate(msrest.serialization.Model): 505 """disk encryption set update resource. 506 507 :param tags: A set of tags. Resource tags. 508 :type tags: dict[str, str] 509 :param active_key: Key Vault Key Url and vault id of KeK, KeK is optional and when provided is 510 used to unwrap the encryptionKey. 511 :type active_key: ~azure.mgmt.compute.v2019_11_01.models.KeyVaultAndKeyReference 512 """ 513 514 _attribute_map = { 515 'tags': {'key': 'tags', 'type': '{str}'}, 516 'active_key': {'key': 'properties.activeKey', 'type': 'KeyVaultAndKeyReference'}, 517 } 518 519 def __init__( 520 self, 521 *, 522 tags: Optional[Dict[str, str]] = None, 523 active_key: Optional["KeyVaultAndKeyReference"] = None, 524 **kwargs 525 ): 526 super(DiskEncryptionSetUpdate, self).__init__(**kwargs) 527 self.tags = tags 528 self.active_key = active_key 529 530 531class DiskList(msrest.serialization.Model): 532 """The List Disks operation response. 533 534 All required parameters must be populated in order to send to Azure. 535 536 :param value: Required. A list of disks. 537 :type value: list[~azure.mgmt.compute.v2019_11_01.models.Disk] 538 :param next_link: The uri to fetch the next page of disks. Call ListNext() with this to fetch 539 the next page of disks. 540 :type next_link: str 541 """ 542 543 _validation = { 544 'value': {'required': True}, 545 } 546 547 _attribute_map = { 548 'value': {'key': 'value', 'type': '[Disk]'}, 549 'next_link': {'key': 'nextLink', 'type': 'str'}, 550 } 551 552 def __init__( 553 self, 554 *, 555 value: List["Disk"], 556 next_link: Optional[str] = None, 557 **kwargs 558 ): 559 super(DiskList, self).__init__(**kwargs) 560 self.value = value 561 self.next_link = next_link 562 563 564class DiskSku(msrest.serialization.Model): 565 """The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, or UltraSSD_LRS. 566 567 Variables are only populated by the server, and will be ignored when sending a request. 568 569 :param name: The sku name. Possible values include: "Standard_LRS", "Premium_LRS", 570 "StandardSSD_LRS", "UltraSSD_LRS". 571 :type name: str or ~azure.mgmt.compute.v2019_11_01.models.DiskStorageAccountTypes 572 :ivar tier: The sku tier. 573 :vartype tier: str 574 """ 575 576 _validation = { 577 'tier': {'readonly': True}, 578 } 579 580 _attribute_map = { 581 'name': {'key': 'name', 'type': 'str'}, 582 'tier': {'key': 'tier', 'type': 'str'}, 583 } 584 585 def __init__( 586 self, 587 *, 588 name: Optional[Union[str, "DiskStorageAccountTypes"]] = None, 589 **kwargs 590 ): 591 super(DiskSku, self).__init__(**kwargs) 592 self.name = name 593 self.tier = None 594 595 596class DiskUpdate(msrest.serialization.Model): 597 """Disk update resource. 598 599 :param tags: A set of tags. Resource tags. 600 :type tags: dict[str, str] 601 :param sku: The disks sku name. Can be Standard_LRS, Premium_LRS, StandardSSD_LRS, or 602 UltraSSD_LRS. 603 :type sku: ~azure.mgmt.compute.v2019_11_01.models.DiskSku 604 :param os_type: the Operating System type. Possible values include: "Windows", "Linux". 605 :type os_type: str or ~azure.mgmt.compute.v2019_11_01.models.OperatingSystemTypes 606 :param disk_size_gb: If creationData.createOption is Empty, this field is mandatory and it 607 indicates the size of the disk to create. If this field is present for updates or creation with 608 other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a 609 running VM, and can only increase the disk's size. 610 :type disk_size_gb: int 611 :param encryption_settings_collection: Encryption settings collection used be Azure Disk 612 Encryption, can contain multiple encryption settings per disk or snapshot. 613 :type encryption_settings_collection: 614 ~azure.mgmt.compute.v2019_11_01.models.EncryptionSettingsCollection 615 :param disk_iops_read_write: The number of IOPS allowed for this disk; only settable for 616 UltraSSD disks. One operation can transfer between 4k and 256k bytes. 617 :type disk_iops_read_write: long 618 :param disk_m_bps_read_write: The bandwidth allowed for this disk; only settable for UltraSSD 619 disks. MBps means millions of bytes per second - MB here uses the ISO notation, of powers of 620 10. 621 :type disk_m_bps_read_write: long 622 :param disk_iops_read_only: The total number of IOPS that will be allowed across all VMs 623 mounting the shared disk as ReadOnly. One operation can transfer between 4k and 256k bytes. 624 :type disk_iops_read_only: long 625 :param disk_m_bps_read_only: The total throughput (MBps) that will be allowed across all VMs 626 mounting the shared disk as ReadOnly. MBps means millions of bytes per second - MB here uses 627 the ISO notation, of powers of 10. 628 :type disk_m_bps_read_only: long 629 :param max_shares: The maximum number of VMs that can attach to the disk at the same time. 630 Value greater than one indicates a disk that can be mounted on multiple VMs at the same time. 631 :type max_shares: int 632 :param encryption: Encryption property can be used to encrypt data at rest with customer 633 managed keys or platform managed keys. 634 :type encryption: ~azure.mgmt.compute.v2019_11_01.models.Encryption 635 """ 636 637 _attribute_map = { 638 'tags': {'key': 'tags', 'type': '{str}'}, 639 'sku': {'key': 'sku', 'type': 'DiskSku'}, 640 'os_type': {'key': 'properties.osType', 'type': 'str'}, 641 'disk_size_gb': {'key': 'properties.diskSizeGB', 'type': 'int'}, 642 'encryption_settings_collection': {'key': 'properties.encryptionSettingsCollection', 'type': 'EncryptionSettingsCollection'}, 643 'disk_iops_read_write': {'key': 'properties.diskIOPSReadWrite', 'type': 'long'}, 644 'disk_m_bps_read_write': {'key': 'properties.diskMBpsReadWrite', 'type': 'long'}, 645 'disk_iops_read_only': {'key': 'properties.diskIOPSReadOnly', 'type': 'long'}, 646 'disk_m_bps_read_only': {'key': 'properties.diskMBpsReadOnly', 'type': 'long'}, 647 'max_shares': {'key': 'properties.maxShares', 'type': 'int'}, 648 'encryption': {'key': 'properties.encryption', 'type': 'Encryption'}, 649 } 650 651 def __init__( 652 self, 653 *, 654 tags: Optional[Dict[str, str]] = None, 655 sku: Optional["DiskSku"] = None, 656 os_type: Optional[Union[str, "OperatingSystemTypes"]] = None, 657 disk_size_gb: Optional[int] = None, 658 encryption_settings_collection: Optional["EncryptionSettingsCollection"] = None, 659 disk_iops_read_write: Optional[int] = None, 660 disk_m_bps_read_write: Optional[int] = None, 661 disk_iops_read_only: Optional[int] = None, 662 disk_m_bps_read_only: Optional[int] = None, 663 max_shares: Optional[int] = None, 664 encryption: Optional["Encryption"] = None, 665 **kwargs 666 ): 667 super(DiskUpdate, self).__init__(**kwargs) 668 self.tags = tags 669 self.sku = sku 670 self.os_type = os_type 671 self.disk_size_gb = disk_size_gb 672 self.encryption_settings_collection = encryption_settings_collection 673 self.disk_iops_read_write = disk_iops_read_write 674 self.disk_m_bps_read_write = disk_m_bps_read_write 675 self.disk_iops_read_only = disk_iops_read_only 676 self.disk_m_bps_read_only = disk_m_bps_read_only 677 self.max_shares = max_shares 678 self.encryption = encryption 679 680 681class Encryption(msrest.serialization.Model): 682 """Encryption at rest settings for disk or snapshot. 683 684 :param disk_encryption_set_id: ResourceId of the disk encryption set to use for enabling 685 encryption at rest. 686 :type disk_encryption_set_id: str 687 :param type: The type of key used to encrypt the data of the disk. Possible values include: 688 "EncryptionAtRestWithPlatformKey", "EncryptionAtRestWithCustomerKey". 689 :type type: str or ~azure.mgmt.compute.v2019_11_01.models.EncryptionType 690 """ 691 692 _attribute_map = { 693 'disk_encryption_set_id': {'key': 'diskEncryptionSetId', 'type': 'str'}, 694 'type': {'key': 'type', 'type': 'str'}, 695 } 696 697 def __init__( 698 self, 699 *, 700 disk_encryption_set_id: Optional[str] = None, 701 type: Optional[Union[str, "EncryptionType"]] = None, 702 **kwargs 703 ): 704 super(Encryption, self).__init__(**kwargs) 705 self.disk_encryption_set_id = disk_encryption_set_id 706 self.type = type 707 708 709class EncryptionSetIdentity(msrest.serialization.Model): 710 """The managed identity for the disk encryption set. It should be given permission on the key vault before it can be used to encrypt disks. 711 712 Variables are only populated by the server, and will be ignored when sending a request. 713 714 :param type: The type of Managed Identity used by the DiskEncryptionSet. Only SystemAssigned is 715 supported. Possible values include: "SystemAssigned". 716 :type type: str or ~azure.mgmt.compute.v2019_11_01.models.DiskEncryptionSetIdentityType 717 :ivar principal_id: The object id of the Managed Identity Resource. This will be sent to the RP 718 from ARM via the x-ms-identity-principal-id header in the PUT request if the resource has a 719 systemAssigned(implicit) identity. 720 :vartype principal_id: str 721 :ivar tenant_id: The tenant id of the Managed Identity Resource. This will be sent to the RP 722 from ARM via the x-ms-client-tenant-id header in the PUT request if the resource has a 723 systemAssigned(implicit) identity. 724 :vartype tenant_id: str 725 """ 726 727 _validation = { 728 'principal_id': {'readonly': True}, 729 'tenant_id': {'readonly': True}, 730 } 731 732 _attribute_map = { 733 'type': {'key': 'type', 'type': 'str'}, 734 'principal_id': {'key': 'principalId', 'type': 'str'}, 735 'tenant_id': {'key': 'tenantId', 'type': 'str'}, 736 } 737 738 def __init__( 739 self, 740 *, 741 type: Optional[Union[str, "DiskEncryptionSetIdentityType"]] = None, 742 **kwargs 743 ): 744 super(EncryptionSetIdentity, self).__init__(**kwargs) 745 self.type = type 746 self.principal_id = None 747 self.tenant_id = None 748 749 750class EncryptionSettingsCollection(msrest.serialization.Model): 751 """Encryption settings for disk or snapshot. 752 753 All required parameters must be populated in order to send to Azure. 754 755 :param enabled: Required. Set this flag to true and provide DiskEncryptionKey and optional 756 KeyEncryptionKey to enable encryption. Set this flag to false and remove DiskEncryptionKey and 757 KeyEncryptionKey to disable encryption. If EncryptionSettings is null in the request object, 758 the existing settings remain unchanged. 759 :type enabled: bool 760 :param encryption_settings: A collection of encryption settings, one for each disk volume. 761 :type encryption_settings: 762 list[~azure.mgmt.compute.v2019_11_01.models.EncryptionSettingsElement] 763 :param encryption_settings_version: Describes what type of encryption is used for the disks. 764 Once this field is set, it cannot be overwritten. '1.0' corresponds to Azure Disk Encryption 765 with AAD app.'1.1' corresponds to Azure Disk Encryption. 766 :type encryption_settings_version: str 767 """ 768 769 _validation = { 770 'enabled': {'required': True}, 771 } 772 773 _attribute_map = { 774 'enabled': {'key': 'enabled', 'type': 'bool'}, 775 'encryption_settings': {'key': 'encryptionSettings', 'type': '[EncryptionSettingsElement]'}, 776 'encryption_settings_version': {'key': 'encryptionSettingsVersion', 'type': 'str'}, 777 } 778 779 def __init__( 780 self, 781 *, 782 enabled: bool, 783 encryption_settings: Optional[List["EncryptionSettingsElement"]] = None, 784 encryption_settings_version: Optional[str] = None, 785 **kwargs 786 ): 787 super(EncryptionSettingsCollection, self).__init__(**kwargs) 788 self.enabled = enabled 789 self.encryption_settings = encryption_settings 790 self.encryption_settings_version = encryption_settings_version 791 792 793class EncryptionSettingsElement(msrest.serialization.Model): 794 """Encryption settings for one disk volume. 795 796 :param disk_encryption_key: Key Vault Secret Url and vault id of the disk encryption key. 797 :type disk_encryption_key: ~azure.mgmt.compute.v2019_11_01.models.KeyVaultAndSecretReference 798 :param key_encryption_key: Key Vault Key Url and vault id of the key encryption key. 799 KeyEncryptionKey is optional and when provided is used to unwrap the disk encryption key. 800 :type key_encryption_key: ~azure.mgmt.compute.v2019_11_01.models.KeyVaultAndKeyReference 801 """ 802 803 _attribute_map = { 804 'disk_encryption_key': {'key': 'diskEncryptionKey', 'type': 'KeyVaultAndSecretReference'}, 805 'key_encryption_key': {'key': 'keyEncryptionKey', 'type': 'KeyVaultAndKeyReference'}, 806 } 807 808 def __init__( 809 self, 810 *, 811 disk_encryption_key: Optional["KeyVaultAndSecretReference"] = None, 812 key_encryption_key: Optional["KeyVaultAndKeyReference"] = None, 813 **kwargs 814 ): 815 super(EncryptionSettingsElement, self).__init__(**kwargs) 816 self.disk_encryption_key = disk_encryption_key 817 self.key_encryption_key = key_encryption_key 818 819 820class GrantAccessData(msrest.serialization.Model): 821 """Data used for requesting a SAS. 822 823 All required parameters must be populated in order to send to Azure. 824 825 :param access: Required. Possible values include: "None", "Read", "Write". 826 :type access: str or ~azure.mgmt.compute.v2019_11_01.models.AccessLevel 827 :param duration_in_seconds: Required. Time duration in seconds until the SAS access expires. 828 :type duration_in_seconds: int 829 """ 830 831 _validation = { 832 'access': {'required': True}, 833 'duration_in_seconds': {'required': True}, 834 } 835 836 _attribute_map = { 837 'access': {'key': 'access', 'type': 'str'}, 838 'duration_in_seconds': {'key': 'durationInSeconds', 'type': 'int'}, 839 } 840 841 def __init__( 842 self, 843 *, 844 access: Union[str, "AccessLevel"], 845 duration_in_seconds: int, 846 **kwargs 847 ): 848 super(GrantAccessData, self).__init__(**kwargs) 849 self.access = access 850 self.duration_in_seconds = duration_in_seconds 851 852 853class ImageDiskReference(msrest.serialization.Model): 854 """The source image used for creating the disk. 855 856 All required parameters must be populated in order to send to Azure. 857 858 :param id: Required. A relative uri containing either a Platform Image Repository or user image 859 reference. 860 :type id: str 861 :param lun: If the disk is created from an image's data disk, this is an index that indicates 862 which of the data disks in the image to use. For OS disks, this field is null. 863 :type lun: int 864 """ 865 866 _validation = { 867 'id': {'required': True}, 868 } 869 870 _attribute_map = { 871 'id': {'key': 'id', 'type': 'str'}, 872 'lun': {'key': 'lun', 'type': 'int'}, 873 } 874 875 def __init__( 876 self, 877 *, 878 id: str, 879 lun: Optional[int] = None, 880 **kwargs 881 ): 882 super(ImageDiskReference, self).__init__(**kwargs) 883 self.id = id 884 self.lun = lun 885 886 887class InnerError(msrest.serialization.Model): 888 """Inner error details. 889 890 :param exceptiontype: The exception type. 891 :type exceptiontype: str 892 :param errordetail: The internal error message or exception dump. 893 :type errordetail: str 894 """ 895 896 _attribute_map = { 897 'exceptiontype': {'key': 'exceptiontype', 'type': 'str'}, 898 'errordetail': {'key': 'errordetail', 'type': 'str'}, 899 } 900 901 def __init__( 902 self, 903 *, 904 exceptiontype: Optional[str] = None, 905 errordetail: Optional[str] = None, 906 **kwargs 907 ): 908 super(InnerError, self).__init__(**kwargs) 909 self.exceptiontype = exceptiontype 910 self.errordetail = errordetail 911 912 913class KeyVaultAndKeyReference(msrest.serialization.Model): 914 """Key Vault Key Url and vault id of KeK, KeK is optional and when provided is used to unwrap the encryptionKey. 915 916 All required parameters must be populated in order to send to Azure. 917 918 :param source_vault: Required. Resource id of the KeyVault containing the key or secret. 919 :type source_vault: ~azure.mgmt.compute.v2019_11_01.models.SourceVault 920 :param key_url: Required. Url pointing to a key or secret in KeyVault. 921 :type key_url: str 922 """ 923 924 _validation = { 925 'source_vault': {'required': True}, 926 'key_url': {'required': True}, 927 } 928 929 _attribute_map = { 930 'source_vault': {'key': 'sourceVault', 'type': 'SourceVault'}, 931 'key_url': {'key': 'keyUrl', 'type': 'str'}, 932 } 933 934 def __init__( 935 self, 936 *, 937 source_vault: "SourceVault", 938 key_url: str, 939 **kwargs 940 ): 941 super(KeyVaultAndKeyReference, self).__init__(**kwargs) 942 self.source_vault = source_vault 943 self.key_url = key_url 944 945 946class KeyVaultAndSecretReference(msrest.serialization.Model): 947 """Key Vault Secret Url and vault id of the encryption key. 948 949 All required parameters must be populated in order to send to Azure. 950 951 :param source_vault: Required. Resource id of the KeyVault containing the key or secret. 952 :type source_vault: ~azure.mgmt.compute.v2019_11_01.models.SourceVault 953 :param secret_url: Required. Url pointing to a key or secret in KeyVault. 954 :type secret_url: str 955 """ 956 957 _validation = { 958 'source_vault': {'required': True}, 959 'secret_url': {'required': True}, 960 } 961 962 _attribute_map = { 963 'source_vault': {'key': 'sourceVault', 'type': 'SourceVault'}, 964 'secret_url': {'key': 'secretUrl', 'type': 'str'}, 965 } 966 967 def __init__( 968 self, 969 *, 970 source_vault: "SourceVault", 971 secret_url: str, 972 **kwargs 973 ): 974 super(KeyVaultAndSecretReference, self).__init__(**kwargs) 975 self.source_vault = source_vault 976 self.secret_url = secret_url 977 978 979class ShareInfoElement(msrest.serialization.Model): 980 """ShareInfoElement. 981 982 Variables are only populated by the server, and will be ignored when sending a request. 983 984 :ivar vm_uri: A relative URI containing the ID of the VM that has the disk attached. 985 :vartype vm_uri: str 986 """ 987 988 _validation = { 989 'vm_uri': {'readonly': True}, 990 } 991 992 _attribute_map = { 993 'vm_uri': {'key': 'vmUri', 'type': 'str'}, 994 } 995 996 def __init__( 997 self, 998 **kwargs 999 ): 1000 super(ShareInfoElement, self).__init__(**kwargs) 1001 self.vm_uri = None 1002 1003 1004class Snapshot(Resource): 1005 """Snapshot resource. 1006 1007 Variables are only populated by the server, and will be ignored when sending a request. 1008 1009 All required parameters must be populated in order to send to Azure. 1010 1011 :ivar id: Resource Id. 1012 :vartype id: str 1013 :ivar name: Resource name. 1014 :vartype name: str 1015 :ivar type: Resource type. 1016 :vartype type: str 1017 :param location: Required. Resource location. 1018 :type location: str 1019 :param tags: A set of tags. Resource tags. 1020 :type tags: dict[str, str] 1021 :ivar managed_by: Unused. Always Null. 1022 :vartype managed_by: str 1023 :param sku: The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS. 1024 :type sku: ~azure.mgmt.compute.v2019_11_01.models.SnapshotSku 1025 :ivar time_created: The time when the disk was created. 1026 :vartype time_created: ~datetime.datetime 1027 :param os_type: The Operating System type. Possible values include: "Windows", "Linux". 1028 :type os_type: str or ~azure.mgmt.compute.v2019_11_01.models.OperatingSystemTypes 1029 :param hyper_v_generation: The hypervisor generation of the Virtual Machine. Applicable to OS 1030 disks only. Possible values include: "V1", "V2". 1031 :type hyper_v_generation: str or ~azure.mgmt.compute.v2019_11_01.models.HyperVGeneration 1032 :param creation_data: Disk source information. CreationData information cannot be changed after 1033 the disk has been created. 1034 :type creation_data: ~azure.mgmt.compute.v2019_11_01.models.CreationData 1035 :param disk_size_gb: If creationData.createOption is Empty, this field is mandatory and it 1036 indicates the size of the disk to create. If this field is present for updates or creation with 1037 other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a 1038 running VM, and can only increase the disk's size. 1039 :type disk_size_gb: int 1040 :ivar disk_size_bytes: The size of the disk in bytes. This field is read only. 1041 :vartype disk_size_bytes: long 1042 :ivar unique_id: Unique Guid identifying the resource. 1043 :vartype unique_id: str 1044 :param encryption_settings_collection: Encryption settings collection used be Azure Disk 1045 Encryption, can contain multiple encryption settings per disk or snapshot. 1046 :type encryption_settings_collection: 1047 ~azure.mgmt.compute.v2019_11_01.models.EncryptionSettingsCollection 1048 :ivar provisioning_state: The disk provisioning state. 1049 :vartype provisioning_state: str 1050 :param incremental: Whether a snapshot is incremental. Incremental snapshots on the same disk 1051 occupy less space than full snapshots and can be diffed. 1052 :type incremental: bool 1053 :param encryption: Encryption property can be used to encrypt data at rest with customer 1054 managed keys or platform managed keys. 1055 :type encryption: ~azure.mgmt.compute.v2019_11_01.models.Encryption 1056 """ 1057 1058 _validation = { 1059 'id': {'readonly': True}, 1060 'name': {'readonly': True}, 1061 'type': {'readonly': True}, 1062 'location': {'required': True}, 1063 'managed_by': {'readonly': True}, 1064 'time_created': {'readonly': True}, 1065 'disk_size_bytes': {'readonly': True}, 1066 'unique_id': {'readonly': True}, 1067 'provisioning_state': {'readonly': True}, 1068 } 1069 1070 _attribute_map = { 1071 'id': {'key': 'id', 'type': 'str'}, 1072 'name': {'key': 'name', 'type': 'str'}, 1073 'type': {'key': 'type', 'type': 'str'}, 1074 'location': {'key': 'location', 'type': 'str'}, 1075 'tags': {'key': 'tags', 'type': '{str}'}, 1076 'managed_by': {'key': 'managedBy', 'type': 'str'}, 1077 'sku': {'key': 'sku', 'type': 'SnapshotSku'}, 1078 'time_created': {'key': 'properties.timeCreated', 'type': 'iso-8601'}, 1079 'os_type': {'key': 'properties.osType', 'type': 'str'}, 1080 'hyper_v_generation': {'key': 'properties.hyperVGeneration', 'type': 'str'}, 1081 'creation_data': {'key': 'properties.creationData', 'type': 'CreationData'}, 1082 'disk_size_gb': {'key': 'properties.diskSizeGB', 'type': 'int'}, 1083 'disk_size_bytes': {'key': 'properties.diskSizeBytes', 'type': 'long'}, 1084 'unique_id': {'key': 'properties.uniqueId', 'type': 'str'}, 1085 'encryption_settings_collection': {'key': 'properties.encryptionSettingsCollection', 'type': 'EncryptionSettingsCollection'}, 1086 'provisioning_state': {'key': 'properties.provisioningState', 'type': 'str'}, 1087 'incremental': {'key': 'properties.incremental', 'type': 'bool'}, 1088 'encryption': {'key': 'properties.encryption', 'type': 'Encryption'}, 1089 } 1090 1091 def __init__( 1092 self, 1093 *, 1094 location: str, 1095 tags: Optional[Dict[str, str]] = None, 1096 sku: Optional["SnapshotSku"] = None, 1097 os_type: Optional[Union[str, "OperatingSystemTypes"]] = None, 1098 hyper_v_generation: Optional[Union[str, "HyperVGeneration"]] = None, 1099 creation_data: Optional["CreationData"] = None, 1100 disk_size_gb: Optional[int] = None, 1101 encryption_settings_collection: Optional["EncryptionSettingsCollection"] = None, 1102 incremental: Optional[bool] = None, 1103 encryption: Optional["Encryption"] = None, 1104 **kwargs 1105 ): 1106 super(Snapshot, self).__init__(location=location, tags=tags, **kwargs) 1107 self.managed_by = None 1108 self.sku = sku 1109 self.time_created = None 1110 self.os_type = os_type 1111 self.hyper_v_generation = hyper_v_generation 1112 self.creation_data = creation_data 1113 self.disk_size_gb = disk_size_gb 1114 self.disk_size_bytes = None 1115 self.unique_id = None 1116 self.encryption_settings_collection = encryption_settings_collection 1117 self.provisioning_state = None 1118 self.incremental = incremental 1119 self.encryption = encryption 1120 1121 1122class SnapshotList(msrest.serialization.Model): 1123 """The List Snapshots operation response. 1124 1125 All required parameters must be populated in order to send to Azure. 1126 1127 :param value: Required. A list of snapshots. 1128 :type value: list[~azure.mgmt.compute.v2019_11_01.models.Snapshot] 1129 :param next_link: The uri to fetch the next page of snapshots. Call ListNext() with this to 1130 fetch the next page of snapshots. 1131 :type next_link: str 1132 """ 1133 1134 _validation = { 1135 'value': {'required': True}, 1136 } 1137 1138 _attribute_map = { 1139 'value': {'key': 'value', 'type': '[Snapshot]'}, 1140 'next_link': {'key': 'nextLink', 'type': 'str'}, 1141 } 1142 1143 def __init__( 1144 self, 1145 *, 1146 value: List["Snapshot"], 1147 next_link: Optional[str] = None, 1148 **kwargs 1149 ): 1150 super(SnapshotList, self).__init__(**kwargs) 1151 self.value = value 1152 self.next_link = next_link 1153 1154 1155class SnapshotSku(msrest.serialization.Model): 1156 """The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS. 1157 1158 Variables are only populated by the server, and will be ignored when sending a request. 1159 1160 :param name: The sku name. Possible values include: "Standard_LRS", "Premium_LRS", 1161 "Standard_ZRS". 1162 :type name: str or ~azure.mgmt.compute.v2019_11_01.models.SnapshotStorageAccountTypes 1163 :ivar tier: The sku tier. 1164 :vartype tier: str 1165 """ 1166 1167 _validation = { 1168 'tier': {'readonly': True}, 1169 } 1170 1171 _attribute_map = { 1172 'name': {'key': 'name', 'type': 'str'}, 1173 'tier': {'key': 'tier', 'type': 'str'}, 1174 } 1175 1176 def __init__( 1177 self, 1178 *, 1179 name: Optional[Union[str, "SnapshotStorageAccountTypes"]] = None, 1180 **kwargs 1181 ): 1182 super(SnapshotSku, self).__init__(**kwargs) 1183 self.name = name 1184 self.tier = None 1185 1186 1187class SnapshotUpdate(msrest.serialization.Model): 1188 """Snapshot update resource. 1189 1190 :param tags: A set of tags. Resource tags. 1191 :type tags: dict[str, str] 1192 :param sku: The snapshots sku name. Can be Standard_LRS, Premium_LRS, or Standard_ZRS. 1193 :type sku: ~azure.mgmt.compute.v2019_11_01.models.SnapshotSku 1194 :param os_type: the Operating System type. Possible values include: "Windows", "Linux". 1195 :type os_type: str or ~azure.mgmt.compute.v2019_11_01.models.OperatingSystemTypes 1196 :param disk_size_gb: If creationData.createOption is Empty, this field is mandatory and it 1197 indicates the size of the disk to create. If this field is present for updates or creation with 1198 other options, it indicates a resize. Resizes are only allowed if the disk is not attached to a 1199 running VM, and can only increase the disk's size. 1200 :type disk_size_gb: int 1201 :param encryption_settings_collection: Encryption settings collection used be Azure Disk 1202 Encryption, can contain multiple encryption settings per disk or snapshot. 1203 :type encryption_settings_collection: 1204 ~azure.mgmt.compute.v2019_11_01.models.EncryptionSettingsCollection 1205 :param encryption: Encryption property can be used to encrypt data at rest with customer 1206 managed keys or platform managed keys. 1207 :type encryption: ~azure.mgmt.compute.v2019_11_01.models.Encryption 1208 """ 1209 1210 _attribute_map = { 1211 'tags': {'key': 'tags', 'type': '{str}'}, 1212 'sku': {'key': 'sku', 'type': 'SnapshotSku'}, 1213 'os_type': {'key': 'properties.osType', 'type': 'str'}, 1214 'disk_size_gb': {'key': 'properties.diskSizeGB', 'type': 'int'}, 1215 'encryption_settings_collection': {'key': 'properties.encryptionSettingsCollection', 'type': 'EncryptionSettingsCollection'}, 1216 'encryption': {'key': 'properties.encryption', 'type': 'Encryption'}, 1217 } 1218 1219 def __init__( 1220 self, 1221 *, 1222 tags: Optional[Dict[str, str]] = None, 1223 sku: Optional["SnapshotSku"] = None, 1224 os_type: Optional[Union[str, "OperatingSystemTypes"]] = None, 1225 disk_size_gb: Optional[int] = None, 1226 encryption_settings_collection: Optional["EncryptionSettingsCollection"] = None, 1227 encryption: Optional["Encryption"] = None, 1228 **kwargs 1229 ): 1230 super(SnapshotUpdate, self).__init__(**kwargs) 1231 self.tags = tags 1232 self.sku = sku 1233 self.os_type = os_type 1234 self.disk_size_gb = disk_size_gb 1235 self.encryption_settings_collection = encryption_settings_collection 1236 self.encryption = encryption 1237 1238 1239class SourceVault(msrest.serialization.Model): 1240 """The vault id is an Azure Resource Manager Resource id in the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KeyVault/vaults/{vaultName}. 1241 1242 :param id: Resource Id. 1243 :type id: str 1244 """ 1245 1246 _attribute_map = { 1247 'id': {'key': 'id', 'type': 'str'}, 1248 } 1249 1250 def __init__( 1251 self, 1252 *, 1253 id: Optional[str] = None, 1254 **kwargs 1255 ): 1256 super(SourceVault, self).__init__(**kwargs) 1257 self.id = id 1258