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 AggregatedReplicationState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
36    """This is the aggregated replication status based on all the regional replication status flags.
37    """
38
39    UNKNOWN = "Unknown"
40    IN_PROGRESS = "InProgress"
41    COMPLETED = "Completed"
42    FAILED = "Failed"
43
44class DiskCreateOption(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
45    """This enumerates the possible sources of a disk's creation.
46    """
47
48    #: Create an empty data disk of a size given by diskSizeGB.
49    EMPTY = "Empty"
50    #: Disk will be attached to a VM.
51    ATTACH = "Attach"
52    #: Create a new disk from a platform image specified by the given imageReference or
53    #: galleryImageReference.
54    FROM_IMAGE = "FromImage"
55    #: Create a disk by importing from a blob specified by a sourceUri in a storage account specified
56    #: by storageAccountId.
57    IMPORT_ENUM = "Import"
58    #: Create a new disk or snapshot by copying from a disk or snapshot specified by the given
59    #: sourceResourceId.
60    COPY = "Copy"
61    #: Create a new disk by copying from a backup recovery point.
62    RESTORE = "Restore"
63    #: Create a new disk by obtaining a write token and using it to directly upload the contents of
64    #: the disk.
65    UPLOAD = "Upload"
66
67class DiskEncryptionSetIdentityType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
68    """The type of Managed Identity used by the DiskEncryptionSet. Only SystemAssigned is supported
69    for new creations. Disk Encryption Sets can be updated with Identity type None during migration
70    of subscription to a new Azure Active Directory tenant; it will cause the encrypted resources
71    to lose access to the keys.
72    """
73
74    SYSTEM_ASSIGNED = "SystemAssigned"
75    NONE = "None"
76
77class DiskEncryptionSetType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
78    """The type of key used to encrypt the data of the disk.
79    """
80
81    #: Resource using diskEncryptionSet would be encrypted at rest with Customer managed key that can
82    #: be changed and revoked by a customer.
83    ENCRYPTION_AT_REST_WITH_CUSTOMER_KEY = "EncryptionAtRestWithCustomerKey"
84    #: Resource using diskEncryptionSet would be encrypted at rest with two layers of encryption. One
85    #: of the keys is Customer managed and the other key is Platform managed.
86    ENCRYPTION_AT_REST_WITH_PLATFORM_AND_CUSTOMER_KEYS = "EncryptionAtRestWithPlatformAndCustomerKeys"
87
88class DiskState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
89    """This enumerates the possible state of the disk.
90    """
91
92    #: The disk is not being used and can be attached to a VM.
93    UNATTACHED = "Unattached"
94    #: The disk is currently mounted to a running VM.
95    ATTACHED = "Attached"
96    #: The disk is mounted to a stopped-deallocated VM.
97    RESERVED = "Reserved"
98    #: The disk currently has an Active SAS Uri associated with it.
99    ACTIVE_SAS = "ActiveSAS"
100    #: A disk is ready to be created by upload by requesting a write token.
101    READY_TO_UPLOAD = "ReadyToUpload"
102    #: A disk is created for upload and a write token has been issued for uploading to it.
103    ACTIVE_UPLOAD = "ActiveUpload"
104
105class DiskStorageAccountTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
106    """The sku name.
107    """
108
109    #: Standard HDD locally redundant storage. Best for backup, non-critical, and infrequent access.
110    STANDARD_LRS = "Standard_LRS"
111    #: Premium SSD locally redundant storage. Best for production and performance sensitive workloads.
112    PREMIUM_LRS = "Premium_LRS"
113    #: Standard SSD locally redundant storage. Best for web servers, lightly used enterprise
114    #: applications and dev/test.
115    STANDARD_SSD_LRS = "StandardSSD_LRS"
116    #: Ultra SSD locally redundant storage. Best for IO-intensive workloads such as SAP HANA, top tier
117    #: databases (for example, SQL, Oracle), and other transaction-heavy workloads.
118    ULTRA_SSD_LRS = "UltraSSD_LRS"
119
120class EncryptionType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
121    """The type of key used to encrypt the data of the disk.
122    """
123
124    #: Disk is encrypted at rest with Platform managed key. It is the default encryption type. This is
125    #: not a valid encryption type for disk encryption sets.
126    ENCRYPTION_AT_REST_WITH_PLATFORM_KEY = "EncryptionAtRestWithPlatformKey"
127    #: Disk is encrypted at rest with Customer managed key that can be changed and revoked by a
128    #: customer.
129    ENCRYPTION_AT_REST_WITH_CUSTOMER_KEY = "EncryptionAtRestWithCustomerKey"
130    #: Disk is encrypted at rest with 2 layers of encryption. One of the keys is Customer managed and
131    #: the other key is Platform managed.
132    ENCRYPTION_AT_REST_WITH_PLATFORM_AND_CUSTOMER_KEYS = "EncryptionAtRestWithPlatformAndCustomerKeys"
133
134class ExtendedLocationTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
135    """The type of extendedLocation.
136    """
137
138    EDGE_ZONE = "EdgeZone"
139
140class GalleryApplicationVersionPropertiesProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
141    """The provisioning state, which only appears in the response.
142    """
143
144    CREATING = "Creating"
145    UPDATING = "Updating"
146    FAILED = "Failed"
147    SUCCEEDED = "Succeeded"
148    DELETING = "Deleting"
149    MIGRATING = "Migrating"
150
151class GalleryImagePropertiesProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
152    """The provisioning state, which only appears in the response.
153    """
154
155    CREATING = "Creating"
156    UPDATING = "Updating"
157    FAILED = "Failed"
158    SUCCEEDED = "Succeeded"
159    DELETING = "Deleting"
160    MIGRATING = "Migrating"
161
162class GalleryImageVersionPropertiesProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
163    """The provisioning state, which only appears in the response.
164    """
165
166    CREATING = "Creating"
167    UPDATING = "Updating"
168    FAILED = "Failed"
169    SUCCEEDED = "Succeeded"
170    DELETING = "Deleting"
171    MIGRATING = "Migrating"
172
173class GalleryPropertiesProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
174    """The provisioning state, which only appears in the response.
175    """
176
177    CREATING = "Creating"
178    UPDATING = "Updating"
179    FAILED = "Failed"
180    SUCCEEDED = "Succeeded"
181    DELETING = "Deleting"
182    MIGRATING = "Migrating"
183
184class GallerySharingPermissionTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
185    """This property allows you to specify the permission of sharing gallery. :code:`<br>`:code:`<br>`
186    Possible values are: :code:`<br>`:code:`<br>` **Private** :code:`<br>`:code:`<br>` **Groups**
187    """
188
189    PRIVATE = "Private"
190    GROUPS = "Groups"
191
192class HostCaching(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
193    """The host caching of the disk. Valid values are 'None', 'ReadOnly', and 'ReadWrite'
194    """
195
196    NONE = "None"
197    READ_ONLY = "ReadOnly"
198    READ_WRITE = "ReadWrite"
199
200class HyperVGeneration(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
201    """The hypervisor generation of the Virtual Machine. Applicable to OS disks only.
202    """
203
204    V1 = "V1"
205    V2 = "V2"
206
207class NetworkAccessPolicy(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
208    """Policy for accessing the disk via network.
209    """
210
211    #: The disk can be exported or uploaded to from any network.
212    ALLOW_ALL = "AllowAll"
213    #: The disk can be exported or uploaded to using a DiskAccess resource's private endpoints.
214    ALLOW_PRIVATE = "AllowPrivate"
215    #: The disk cannot be exported.
216    DENY_ALL = "DenyAll"
217
218class OperatingSystemStateTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
219    """This property allows the user to specify whether the virtual machines created under this image
220    are 'Generalized' or 'Specialized'.
221    """
222
223    GENERALIZED = "Generalized"
224    SPECIALIZED = "Specialized"
225
226class OperatingSystemTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
227    """The Operating System type.
228    """
229
230    WINDOWS = "Windows"
231    LINUX = "Linux"
232
233class PrivateEndpointConnectionProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
234    """The current provisioning state.
235    """
236
237    SUCCEEDED = "Succeeded"
238    CREATING = "Creating"
239    DELETING = "Deleting"
240    FAILED = "Failed"
241
242class PrivateEndpointServiceConnectionStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
243    """The private endpoint connection status.
244    """
245
246    PENDING = "Pending"
247    APPROVED = "Approved"
248    REJECTED = "Rejected"
249
250class ReplicationState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
251    """This is the regional replication state.
252    """
253
254    UNKNOWN = "Unknown"
255    REPLICATING = "Replicating"
256    COMPLETED = "Completed"
257    FAILED = "Failed"
258
259class ReplicationStatusTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
260
261    REPLICATION_STATUS = "ReplicationStatus"
262
263class SelectPermissions(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
264
265    PERMISSIONS = "Permissions"
266
267class SharedToValues(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
268
269    TENANT = "tenant"
270
271class SharingProfileGroupTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
272    """This property allows you to specify the type of sharing group. :code:`<br>`:code:`<br>`
273    Possible values are: :code:`<br>`:code:`<br>` **Subscriptions** :code:`<br>`:code:`<br>`
274    **AADTenants**
275    """
276
277    SUBSCRIPTIONS = "Subscriptions"
278    AAD_TENANTS = "AADTenants"
279
280class SharingUpdateOperationTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
281    """This property allows you to specify the operation type of gallery sharing update.
282    :code:`<br>`:code:`<br>` Possible values are: :code:`<br>`:code:`<br>` **Add**
283    :code:`<br>`:code:`<br>` **Remove** :code:`<br>`:code:`<br>` **Reset**
284    """
285
286    ADD = "Add"
287    REMOVE = "Remove"
288    RESET = "Reset"
289
290class SnapshotStorageAccountTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
291    """The sku name.
292    """
293
294    #: Standard HDD locally redundant storage.
295    STANDARD_LRS = "Standard_LRS"
296    #: Premium SSD locally redundant storage.
297    PREMIUM_LRS = "Premium_LRS"
298    #: Standard zone redundant storage.
299    STANDARD_ZRS = "Standard_ZRS"
300
301class StorageAccountType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
302    """Specifies the storage account type to be used to store the image. This property is not
303    updatable.
304    """
305
306    STANDARD_LRS = "Standard_LRS"
307    STANDARD_ZRS = "Standard_ZRS"
308    PREMIUM_LRS = "Premium_LRS"
309