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 ActionType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
30    """The type of the action.
31    """
32
33    EMAIL_CONTACTS = "EmailContacts"
34    AUTO_RENEW = "AutoRenew"
35
36class DeletionRecoveryLevel(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
37    """Reflects the deletion recovery level currently in effect for certificates in the current vault.
38    If it contains 'Purgeable', the certificate can be permanently deleted by a privileged user;
39    otherwise, only the system can purge the certificate, at the end of the retention interval.
40    """
41
42    #: Denotes a vault state in which deletion is an irreversible operation, without the possibility
43    #: for recovery. This level corresponds to no protection being available against a Delete
44    #: operation; the data is irretrievably lost upon accepting a Delete operation at the entity level
45    #: or higher (vault, resource group, subscription etc.).
46    PURGEABLE = "Purgeable"
47    #: Denotes a vault state in which deletion is recoverable, and which also permits immediate and
48    #: permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted entity
49    #: during the retention interval (90 days), unless a Purge operation is requested, or the
50    #: subscription is cancelled. System wil permanently delete it after 90 days, if not recovered.
51    RECOVERABLE_PURGEABLE = "Recoverable+Purgeable"
52    #: Denotes a vault state in which deletion is recoverable without the possibility for immediate
53    #: and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted
54    #: entity during the retention interval(90 days) and while the subscription is still available.
55    #: System wil permanently delete it after 90 days, if not recovered.
56    RECOVERABLE = "Recoverable"
57    #: Denotes a vault and subscription state in which deletion is recoverable within retention
58    #: interval (90 days), immediate and permanent deletion (i.e. purge) is not permitted, and in
59    #: which the subscription itself  cannot be permanently canceled. System wil permanently delete it
60    #: after 90 days, if not recovered.
61    RECOVERABLE_PROTECTED_SUBSCRIPTION = "Recoverable+ProtectedSubscription"
62    #: Denotes a vault state in which deletion is recoverable, and which also permits immediate and
63    #: permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90). This level guarantees
64    #: the recoverability of the deleted entity during the retention interval, unless a Purge
65    #: operation is requested, or the subscription is cancelled.
66    CUSTOMIZED_RECOVERABLE_PURGEABLE = "CustomizedRecoverable+Purgeable"
67    #: Denotes a vault state in which deletion is recoverable without the possibility for immediate
68    #: and permanent deletion (i.e. purge when 7<= SoftDeleteRetentionInDays < 90).This level
69    #: guarantees the recoverability of the deleted entity during the retention interval and while the
70    #: subscription is still available.
71    CUSTOMIZED_RECOVERABLE = "CustomizedRecoverable"
72    #: Denotes a vault and subscription state in which deletion is recoverable, immediate and
73    #: permanent deletion (i.e. purge) is not permitted, and in which the subscription itself cannot
74    #: be permanently canceled when 7<= SoftDeleteRetentionInDays < 90. This level guarantees the
75    #: recoverability of the deleted entity during the retention interval, and also reflects the fact
76    #: that the subscription itself cannot be cancelled.
77    CUSTOMIZED_RECOVERABLE_PROTECTED_SUBSCRIPTION = "CustomizedRecoverable+ProtectedSubscription"
78
79class JsonWebKeyCurveName(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
80    """Elliptic curve name. For valid values, see JsonWebKeyCurveName.
81    """
82
83    P256 = "P-256"
84    P384 = "P-384"
85    P521 = "P-521"
86    P256_K = "P-256K"
87
88class JsonWebKeyType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
89    """The type of key pair to be used for the certificate.
90    """
91
92    EC = "EC"
93    EC_HSM = "EC-HSM"
94    RSA = "RSA"
95    RSA_HSM = "RSA-HSM"
96    OCT = "oct"
97    OCT_HSM = "oct-HSM"
98
99class KeyUsageType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)):
100
101    DIGITAL_SIGNATURE = "digitalSignature"
102    NON_REPUDIATION = "nonRepudiation"
103    KEY_ENCIPHERMENT = "keyEncipherment"
104    DATA_ENCIPHERMENT = "dataEncipherment"
105    KEY_AGREEMENT = "keyAgreement"
106    KEY_CERT_SIGN = "keyCertSign"
107    C_RL_SIGN = "cRLSign"
108    ENCIPHER_ONLY = "encipherOnly"
109    DECIPHER_ONLY = "decipherOnly"
110