1313
1414if TYPE_CHECKING :
1515 # pylint:disable=unused-import
16- from typing import Any , Dict , Optional
16+ from typing import Any , Dict , Optional , List
1717 from datetime import datetime
1818 from ._generated .v7_0 import models as _models
19- from ._enums import KeyOperation
19+ from ._enums import KeyOperation , KeyType
2020
2121KeyOperationResult = namedtuple ("KeyOperationResult" , ["id" , "value" ])
2222
@@ -83,13 +83,15 @@ def _from_key_bundle(cls, key_bundle):
8383 """Construct a KeyProperties from an autorest-generated KeyBundle"""
8484 # release_policy was added in 7.3-preview
8585 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]
8788 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]
8991 )
9092
9193 return cls (
92- key_bundle .key .kid ,
94+ key_bundle .key .kid , # type: ignore
9395 attributes = key_bundle .attributes ,
9496 managed = key_bundle .managed ,
9597 tags = key_bundle .tags ,
@@ -100,7 +102,12 @@ def _from_key_bundle(cls, key_bundle):
100102 def _from_key_item (cls , key_item ):
101103 # type: (_models.KeyItem) -> KeyProperties
102104 """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+ )
104111
105112 @property
106113 def id (self ):
@@ -122,57 +129,57 @@ def name(self):
122129
123130 @property
124131 def version (self ):
125- # type: () -> str
132+ # type: () -> Optional[ str]
126133 """The key's version
127134
128- :rtype: str
135+ :rtype: str or None
129136 """
130137 return self ._vault_id .version
131138
132139 @property
133140 def enabled (self ):
134- # type: () -> bool
141+ # type: () -> Optional[ bool]
135142 """Whether the key is enabled for use
136143
137- :rtype: bool
144+ :rtype: bool or None
138145 """
139- return self ._attributes .enabled
146+ return self ._attributes .enabled if self . _attributes else None
140147
141148 @property
142149 def not_before (self ):
143- # type: () -> datetime
150+ # type: () -> Optional[ datetime]
144151 """The time before which the key can not be used, in UTC
145152
146- :rtype: ~datetime.datetime
153+ :rtype: ~datetime.datetime or None
147154 """
148- return self ._attributes .not_before
155+ return self ._attributes .not_before if self . _attributes else None
149156
150157 @property
151158 def expires_on (self ):
152- # type: () -> datetime
159+ # type: () -> Optional[ datetime]
153160 """When the key will expire, in UTC
154161
155- :rtype: ~datetime.datetime
162+ :rtype: ~datetime.datetime or None
156163 """
157- return self ._attributes .expires
164+ return self ._attributes .expires if self . _attributes else None
158165
159166 @property
160167 def created_on (self ):
161- # type: () -> datetime
168+ # type: () -> Optional[ datetime]
162169 """When the key was created, in UTC
163170
164- :rtype: ~datetime.datetime
171+ :rtype: ~datetime.datetime or None
165172 """
166- return self ._attributes .created
173+ return self ._attributes .created if self . _attributes else None
167174
168175 @property
169176 def updated_on (self ):
170- # type: () -> datetime
177+ # type: () -> Optional[ datetime]
171178 """When the key was last updated, in UTC
172179
173- :rtype: ~datetime.datetime
180+ :rtype: ~datetime.datetime or None
174181 """
175- return self ._attributes .updated
182+ return self ._attributes .updated if self . _attributes else None
176183
177184 @property
178185 def vault_url (self ):
@@ -188,7 +195,7 @@ def recoverable_days(self):
188195 # type: () -> Optional[int]
189196 """The number of days the key is retained before being deleted from a soft-delete enabled Key Vault.
190197
191- :rtype: int
198+ :rtype: int or None
192199 """
193200 # recoverable_days was added in 7.1-preview
194201 if self ._attributes :
@@ -197,12 +204,12 @@ def recoverable_days(self):
197204
198205 @property
199206 def recovery_level (self ):
200- # type: () -> str
207+ # type: () -> Optional[ str]
201208 """The vault's deletion recovery level for keys
202209
203- :rtype: str
210+ :rtype: str or None
204211 """
205- return self ._attributes .recovery_level
212+ return self ._attributes .recovery_level if self . _attributes else None
206213
207214 @property
208215 def tags (self ):
@@ -326,7 +333,7 @@ def _from_key_bundle(cls, key_bundle):
326333 """Construct a KeyVaultKey from an autorest-generated KeyBundle"""
327334 # pylint:disable=protected-access
328335 return cls (
329- key_id = key_bundle .key .kid ,
336+ key_id = key_bundle .key .kid , # type: ignore
330337 jwk = {field : getattr (key_bundle .key , field , None ) for field in JsonWebKey ._FIELDS },
331338 properties = KeyProperties ._from_key_bundle (key_bundle ),
332339 )
@@ -369,21 +376,23 @@ def key(self):
369376
370377 @property
371378 def key_type (self ):
372- # type: () -> str
379+ # type: () -> KeyType
373380 """The key's type. See :class:`~azure.keyvault.keys.KeyType` for possible values.
374381
375382 :rtype: ~azure.keyvault.keys.KeyType or str
376383 """
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]
378386
379387 @property
380388 def key_operations (self ):
381- # type: () -> list [KeyOperation]
389+ # type: () -> List [KeyOperation]
382390 """Permitted operations. See :class:`~azure.keyvault.keys.KeyOperation` for possible values.
383391
384392 :rtype: list[~azure.keyvault.keys.KeyOperation or str]
385393 """
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]
387396
388397
389398class KeyVaultKeyIdentifier (object ):
@@ -454,7 +463,7 @@ def _from_deleted_key_bundle(cls, deleted_key_bundle):
454463 # pylint:disable=protected-access
455464 return cls (
456465 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
458467 jwk = {field : getattr (deleted_key_bundle .key , field , None ) for field in JsonWebKey ._FIELDS },
459468 deleted_date = deleted_key_bundle .deleted_date ,
460469 recovery_id = deleted_key_bundle .recovery_id ,
@@ -475,28 +484,28 @@ def _from_deleted_key_item(cls, deleted_key_item):
475484
476485 @property
477486 def deleted_date (self ):
478- # type: () -> datetime
487+ # type: () -> Optional[ datetime]
479488 """When the key was deleted, in UTC
480489
481- :rtype: ~datetime.datetime
490+ :rtype: ~datetime.datetime or None
482491 """
483492 return self ._deleted_date
484493
485494 @property
486495 def recovery_id (self ):
487- # type: () -> str
496+ # type: () -> Optional[ str]
488497 """An identifier used to recover the deleted key. Returns ``None`` if soft-delete is disabled.
489498
490- :rtype: str
499+ :rtype: str or None
491500 """
492501 return self ._recovery_id
493502
494503 @property
495504 def scheduled_purge_date (self ):
496- # type: () -> datetime
505+ # type: () -> Optional[ datetime]
497506 """When the key is scheduled to be purged, in UTC. Returns ``None`` if soft-delete is disabled.
498507
499- :rtype: ~datetime.datetime
508+ :rtype: ~datetime.datetime or None
500509 """
501510 return self ._scheduled_purge_date
502511
0 commit comments