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 enum import Enum, EnumMeta
10from six import with_metaclass
11
12class _CaseInsensitiveEnumMeta(EnumMeta):
13    def __getitem__(self, name):
14        return super().__getitem__(name.upper())
15
16    def __getattr__(cls, name):
17        """Return the enum member matching `name`
18        We use __getattr__ instead of descriptors or inserting into the enum
19        class' __dict__ in order to support `name` and `value` being both
20        properties for enum members (which live in the class' __dict__) and
21        enum members themselves.
22        """
23        try:
24            return cls._member_map_[name.upper()]
25        except KeyError:
26            raise AttributeError(name)
27
28
29class AccessLevel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
30
31    NONE = "None"
32    READ = "Read"
33    WRITE = "Write"
34
35class DiskCreateOption(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
36    """This enumerates the possible sources of a disk's creation.
37    """
38
39    #: Create an empty data disk of a size given by diskSizeGB.
40    EMPTY = "Empty"
41    #: Disk will be attached to a VM.
42    ATTACH = "Attach"
43    #: Create a new disk from a platform image specified by the given imageReference or
44    #: galleryImageReference.
45    FROM_IMAGE = "FromImage"
46    #: Create a disk by importing from a blob specified by a sourceUri in a storage account specified
47    #: by storageAccountId.
48    IMPORT_ENUM = "Import"
49    #: Create a new disk or snapshot by copying from a disk or snapshot specified by the given
50    #: sourceResourceId.
51    COPY = "Copy"
52    #: Create a new disk by copying from a backup recovery point.
53    RESTORE = "Restore"
54    #: Create a new disk by obtaining a write token and using it to directly upload the contents of
55    #: the disk.
56    UPLOAD = "Upload"
57
58class DiskEncryptionSetIdentityType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
59    """The type of Managed Identity used by the DiskEncryptionSet. Only SystemAssigned is supported.
60    """
61
62    SYSTEM_ASSIGNED = "SystemAssigned"
63
64class DiskEncryptionSetType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
65    """The type of key used to encrypt the data of the disk.
66    """
67
68    #: Resource using diskEncryptionSet would be encrypted at rest with Customer managed key that can
69    #: be changed and revoked by a customer.
70    ENCRYPTION_AT_REST_WITH_CUSTOMER_KEY = "EncryptionAtRestWithCustomerKey"
71    #: Resource using diskEncryptionSet would be encrypted at rest with two layers of encryption. One
72    #: of the keys is Customer managed and the other key is Platform managed.
73    ENCRYPTION_AT_REST_WITH_PLATFORM_AND_CUSTOMER_KEYS = "EncryptionAtRestWithPlatformAndCustomerKeys"
74
75class DiskState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
76    """This enumerates the possible state of the disk.
77    """
78
79    #: The disk is not being used and can be attached to a VM.
80    UNATTACHED = "Unattached"
81    #: The disk is currently mounted to a running VM.
82    ATTACHED = "Attached"
83    #: The disk is mounted to a stopped-deallocated VM.
84    RESERVED = "Reserved"
85    #: The disk currently has an Active SAS Uri associated with it.
86    ACTIVE_SAS = "ActiveSAS"
87    #: A disk is ready to be created by upload by requesting a write token.
88    READY_TO_UPLOAD = "ReadyToUpload"
89    #: A disk is created for upload and a write token has been issued for uploading to it.
90    ACTIVE_UPLOAD = "ActiveUpload"
91
92class DiskStorageAccountTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
93    """The sku name.
94    """
95
96    #: Standard HDD locally redundant storage. Best for backup, non-critical, and infrequent access.
97    STANDARD_LRS = "Standard_LRS"
98    #: Premium SSD locally redundant storage. Best for production and performance sensitive workloads.
99    PREMIUM_LRS = "Premium_LRS"
100    #: Standard SSD locally redundant storage. Best for web servers, lightly used enterprise
101    #: applications and dev/test.
102    STANDARD_SSD_LRS = "StandardSSD_LRS"
103    #: Ultra SSD locally redundant storage. Best for IO-intensive workloads such as SAP HANA, top tier
104    #: databases (for example, SQL, Oracle), and other transaction-heavy workloads.
105    ULTRA_SSD_LRS = "UltraSSD_LRS"
106
107class EncryptionType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
108    """The type of key used to encrypt the data of the disk.
109    """
110
111    #: Disk is encrypted at rest with Platform managed key. It is the default encryption type. This is
112    #: not a valid encryption type for disk encryption sets.
113    ENCRYPTION_AT_REST_WITH_PLATFORM_KEY = "EncryptionAtRestWithPlatformKey"
114    #: Disk is encrypted at rest with Customer managed key that can be changed and revoked by a
115    #: customer.
116    ENCRYPTION_AT_REST_WITH_CUSTOMER_KEY = "EncryptionAtRestWithCustomerKey"
117    #: Disk is encrypted at rest with 2 layers of encryption. One of the keys is Customer managed and
118    #: the other key is Platform managed.
119    ENCRYPTION_AT_REST_WITH_PLATFORM_AND_CUSTOMER_KEYS = "EncryptionAtRestWithPlatformAndCustomerKeys"
120
121class HyperVGeneration(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
122    """The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
123    """
124
125    V1 = "V1"
126    V2 = "V2"
127
128class NetworkAccessPolicy(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
129    """Policy for accessing the disk via network.
130    """
131
132    #: The disk can be exported or uploaded to from any network.
133    ALLOW_ALL = "AllowAll"
134    #: The disk can be exported or uploaded to using a DiskAccess resource's private endpoints.
135    ALLOW_PRIVATE = "AllowPrivate"
136    #: The disk cannot be exported.
137    DENY_ALL = "DenyAll"
138
139class OperatingSystemTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
140    """The Operating System type.
141    """
142
143    WINDOWS = "Windows"
144    LINUX = "Linux"
145
146class PrivateEndpointConnectionProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
147    """The current provisioning state.
148    """
149
150    SUCCEEDED = "Succeeded"
151    CREATING = "Creating"
152    DELETING = "Deleting"
153    FAILED = "Failed"
154
155class PrivateEndpointServiceConnectionStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
156    """The private endpoint connection status.
157    """
158
159    PENDING = "Pending"
160    APPROVED = "Approved"
161    REJECTED = "Rejected"
162
163class SnapshotStorageAccountTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
164    """The sku name.
165    """
166
167    #: Standard HDD locally redundant storage.
168    STANDARD_LRS = "Standard_LRS"
169    #: Premium SSD locally redundant storage.
170    PREMIUM_LRS = "Premium_LRS"
171    #: Standard zone redundant storage.
172    STANDARD_ZRS = "Standard_ZRS"
173