13
13
14
14
if TYPE_CHECKING :
15
15
# pylint:disable=unused-import
16
- from typing import Any , Dict , Optional
16
+ from typing import Any , Dict , Optional , List
17
17
from datetime import datetime
18
18
from ._generated .v7_0 import models as _models
19
- from ._enums import KeyOperation
19
+ from ._enums import KeyOperation , KeyType
20
20
21
21
KeyOperationResult = namedtuple ("KeyOperationResult" , ["id" , "value" ])
22
22
@@ -83,13 +83,15 @@ def _from_key_bundle(cls, key_bundle):
83
83
"""Construct a KeyProperties from an autorest-generated KeyBundle"""
84
84
# release_policy was added in 7.3-preview
85
85
release_policy = None
86
- if hasattr (key_bundle , "release_policy" ) and key_bundle .release_policy is not None :
86
+ if (hasattr (key_bundle , "release_policy" ) and
87
+ key_bundle .release_policy is not None ): # type: ignore[attr-defined]
87
88
release_policy = KeyReleasePolicy (
88
- data = key_bundle .release_policy .data , content_type = key_bundle .release_policy .content_type
89
+ data = key_bundle .release_policy .data , # type: ignore[attr-defined]
90
+ content_type = key_bundle .release_policy .content_type # type: ignore[attr-defined]
89
91
)
90
92
91
93
return cls (
92
- key_bundle .key .kid ,
94
+ key_bundle .key .kid , # type: ignore
93
95
attributes = key_bundle .attributes ,
94
96
managed = key_bundle .managed ,
95
97
tags = key_bundle .tags ,
@@ -100,7 +102,12 @@ def _from_key_bundle(cls, key_bundle):
100
102
def _from_key_item (cls , key_item ):
101
103
# type: (_models.KeyItem) -> KeyProperties
102
104
"""Construct a KeyProperties from an autorest-generated KeyItem"""
103
- return cls (key_id = key_item .kid , attributes = key_item .attributes , managed = key_item .managed , tags = key_item .tags )
105
+ return cls (
106
+ key_id = key_item .kid , # type: ignore
107
+ attributes = key_item .attributes ,
108
+ managed = key_item .managed ,
109
+ tags = key_item .tags
110
+ )
104
111
105
112
@property
106
113
def id (self ):
@@ -122,57 +129,57 @@ def name(self):
122
129
123
130
@property
124
131
def version (self ):
125
- # type: () -> str
132
+ # type: () -> Optional[ str]
126
133
"""The key's version
127
134
128
- :rtype: str
135
+ :rtype: str or None
129
136
"""
130
137
return self ._vault_id .version
131
138
132
139
@property
133
140
def enabled (self ):
134
- # type: () -> bool
141
+ # type: () -> Optional[ bool]
135
142
"""Whether the key is enabled for use
136
143
137
- :rtype: bool
144
+ :rtype: bool or None
138
145
"""
139
- return self ._attributes .enabled
146
+ return self ._attributes .enabled if self . _attributes else None
140
147
141
148
@property
142
149
def not_before (self ):
143
- # type: () -> datetime
150
+ # type: () -> Optional[ datetime]
144
151
"""The time before which the key can not be used, in UTC
145
152
146
- :rtype: ~datetime.datetime
153
+ :rtype: ~datetime.datetime or None
147
154
"""
148
- return self ._attributes .not_before
155
+ return self ._attributes .not_before if self . _attributes else None
149
156
150
157
@property
151
158
def expires_on (self ):
152
- # type: () -> datetime
159
+ # type: () -> Optional[ datetime]
153
160
"""When the key will expire, in UTC
154
161
155
- :rtype: ~datetime.datetime
162
+ :rtype: ~datetime.datetime or None
156
163
"""
157
- return self ._attributes .expires
164
+ return self ._attributes .expires if self . _attributes else None
158
165
159
166
@property
160
167
def created_on (self ):
161
- # type: () -> datetime
168
+ # type: () -> Optional[ datetime]
162
169
"""When the key was created, in UTC
163
170
164
- :rtype: ~datetime.datetime
171
+ :rtype: ~datetime.datetime or None
165
172
"""
166
- return self ._attributes .created
173
+ return self ._attributes .created if self . _attributes else None
167
174
168
175
@property
169
176
def updated_on (self ):
170
- # type: () -> datetime
177
+ # type: () -> Optional[ datetime]
171
178
"""When the key was last updated, in UTC
172
179
173
- :rtype: ~datetime.datetime
180
+ :rtype: ~datetime.datetime or None
174
181
"""
175
- return self ._attributes .updated
182
+ return self ._attributes .updated if self . _attributes else None
176
183
177
184
@property
178
185
def vault_url (self ):
@@ -188,7 +195,7 @@ def recoverable_days(self):
188
195
# type: () -> Optional[int]
189
196
"""The number of days the key is retained before being deleted from a soft-delete enabled Key Vault.
190
197
191
- :rtype: int
198
+ :rtype: int or None
192
199
"""
193
200
# recoverable_days was added in 7.1-preview
194
201
if self ._attributes :
@@ -197,12 +204,12 @@ def recoverable_days(self):
197
204
198
205
@property
199
206
def recovery_level (self ):
200
- # type: () -> str
207
+ # type: () -> Optional[ str]
201
208
"""The vault's deletion recovery level for keys
202
209
203
- :rtype: str
210
+ :rtype: str or None
204
211
"""
205
- return self ._attributes .recovery_level
212
+ return self ._attributes .recovery_level if self . _attributes else None
206
213
207
214
@property
208
215
def tags (self ):
@@ -326,7 +333,7 @@ def _from_key_bundle(cls, key_bundle):
326
333
"""Construct a KeyVaultKey from an autorest-generated KeyBundle"""
327
334
# pylint:disable=protected-access
328
335
return cls (
329
- key_id = key_bundle .key .kid ,
336
+ key_id = key_bundle .key .kid , # type: ignore
330
337
jwk = {field : getattr (key_bundle .key , field , None ) for field in JsonWebKey ._FIELDS },
331
338
properties = KeyProperties ._from_key_bundle (key_bundle ),
332
339
)
@@ -369,21 +376,23 @@ def key(self):
369
376
370
377
@property
371
378
def key_type (self ):
372
- # type: () -> str
379
+ # type: () -> KeyType
373
380
"""The key's type. See :class:`~azure.keyvault.keys.KeyType` for possible values.
374
381
375
382
:rtype: ~azure.keyvault.keys.KeyType or str
376
383
"""
377
- return self ._key_material .kty # pylint:disable=no-member
384
+ # pylint:disable=no-member
385
+ return self ._key_material .kty # type: ignore[attr-defined]
378
386
379
387
@property
380
388
def key_operations (self ):
381
- # type: () -> list [KeyOperation]
389
+ # type: () -> List [KeyOperation]
382
390
"""Permitted operations. See :class:`~azure.keyvault.keys.KeyOperation` for possible values.
383
391
384
392
:rtype: list[~azure.keyvault.keys.KeyOperation or str]
385
393
"""
386
- return self ._key_material .key_ops # pylint:disable=no-member
394
+ # pylint:disable=no-member
395
+ return self ._key_material .key_ops # type: ignore[attr-defined]
387
396
388
397
389
398
class KeyVaultKeyIdentifier (object ):
@@ -454,7 +463,7 @@ def _from_deleted_key_bundle(cls, deleted_key_bundle):
454
463
# pylint:disable=protected-access
455
464
return cls (
456
465
properties = KeyProperties ._from_key_bundle (deleted_key_bundle ),
457
- key_id = deleted_key_bundle .key .kid ,
466
+ key_id = deleted_key_bundle .key .kid , # type: ignore
458
467
jwk = {field : getattr (deleted_key_bundle .key , field , None ) for field in JsonWebKey ._FIELDS },
459
468
deleted_date = deleted_key_bundle .deleted_date ,
460
469
recovery_id = deleted_key_bundle .recovery_id ,
@@ -475,28 +484,28 @@ def _from_deleted_key_item(cls, deleted_key_item):
475
484
476
485
@property
477
486
def deleted_date (self ):
478
- # type: () -> datetime
487
+ # type: () -> Optional[ datetime]
479
488
"""When the key was deleted, in UTC
480
489
481
- :rtype: ~datetime.datetime
490
+ :rtype: ~datetime.datetime or None
482
491
"""
483
492
return self ._deleted_date
484
493
485
494
@property
486
495
def recovery_id (self ):
487
- # type: () -> str
496
+ # type: () -> Optional[ str]
488
497
"""An identifier used to recover the deleted key. Returns ``None`` if soft-delete is disabled.
489
498
490
- :rtype: str
499
+ :rtype: str or None
491
500
"""
492
501
return self ._recovery_id
493
502
494
503
@property
495
504
def scheduled_purge_date (self ):
496
- # type: () -> datetime
505
+ # type: () -> Optional[ datetime]
497
506
"""When the key is scheduled to be purged, in UTC. Returns ``None`` if soft-delete is disabled.
498
507
499
- :rtype: ~datetime.datetime
508
+ :rtype: ~datetime.datetime or None
500
509
"""
501
510
return self ._scheduled_purge_date
502
511
0 commit comments