2
2
# Copyright (c) Microsoft Corporation.
3
3
# Licensed under the MIT License.
4
4
# ------------------------------------
5
+ from typing import Any , Optional , Union , TYPE_CHECKING
5
6
from functools import partial
6
7
from azure .core .tracing .decorator import distributed_trace
7
8
11
12
from ._shared ._polling import DeleteRecoverPollingMethod , KeyVaultOperationPoller
12
13
from ._models import DeletedKey , KeyVaultKey , KeyProperties , KeyRotationPolicy , ReleaseKeyResult
13
14
14
- try :
15
- from typing import TYPE_CHECKING
16
- except ImportError :
17
- TYPE_CHECKING = False
18
15
19
16
if TYPE_CHECKING :
20
17
# pylint:disable=unused-import
21
- from typing import Any , List , Optional , Union
22
18
from azure .core .paging import ItemPaged
23
19
from azure .core .polling import LROPoller
24
20
from ._models import JsonWebKey
@@ -61,8 +57,7 @@ def _get_attributes(self, enabled, not_before, expires_on, exportable=None):
61
57
)
62
58
return None
63
59
64
- def get_cryptography_client (self , key_name , ** kwargs ):
65
- # type: (str, **Any) -> CryptographyClient
60
+ def get_cryptography_client (self , key_name : str , ** kwargs : Any ) -> CryptographyClient :
66
61
"""Gets a :class:`~azure.keyvault.keys.crypto.CryptographyClient` for the given key.
67
62
68
63
:param str key_name: The name of the key used to perform cryptographic operations.
@@ -77,12 +72,11 @@ def get_cryptography_client(self, key_name, **kwargs):
77
72
78
73
# We provide a fake credential because the generated client already has the KeyClient's real credential
79
74
return CryptographyClient (
80
- key_id , object (), generated_client = self ._client , generated_models = self ._models # type: ignore
75
+ key_id , object (), generated_client = self ._client , generated_models = self ._models # type: ignore
81
76
)
82
77
83
78
@distributed_trace
84
- def create_key (self , name , key_type , ** kwargs ):
85
- # type: (str, Union[str, KeyType], **Any) -> KeyVaultKey
79
+ def create_key (self , name : str , key_type : Union [str , "KeyType" ], ** kwargs : Any ) -> KeyVaultKey :
86
80
"""Create a key or, if ``name`` is already in use, create a new version of the key.
87
81
88
82
Requires keys/create permission.
@@ -150,8 +144,7 @@ def create_key(self, name, key_type, **kwargs):
150
144
return KeyVaultKey ._from_key_bundle (bundle )
151
145
152
146
@distributed_trace
153
- def create_rsa_key (self , name , ** kwargs ):
154
- # type: (str, **Any) -> KeyVaultKey
147
+ def create_rsa_key (self , name : str , ** kwargs : Any ) -> KeyVaultKey :
155
148
"""Create a new RSA key or, if ``name`` is already in use, create a new version of the key
156
149
157
150
Requires the keys/create permission.
@@ -189,8 +182,7 @@ def create_rsa_key(self, name, **kwargs):
189
182
return self .create_key (name , key_type = "RSA-HSM" if hsm else "RSA" , ** kwargs )
190
183
191
184
@distributed_trace
192
- def create_ec_key (self , name , ** kwargs ):
193
- # type: (str, **Any) -> KeyVaultKey
185
+ def create_ec_key (self , name : str , ** kwargs : Any ) -> KeyVaultKey :
194
186
"""Create a new elliptic curve key or, if ``name`` is already in use, create a new version of the key.
195
187
196
188
Requires the keys/create permission.
@@ -228,8 +220,7 @@ def create_ec_key(self, name, **kwargs):
228
220
return self .create_key (name , key_type = "EC-HSM" if hsm else "EC" , ** kwargs )
229
221
230
222
@distributed_trace
231
- def create_oct_key (self , name , ** kwargs ):
232
- # type: (str, **Any) -> KeyVaultKey
223
+ def create_oct_key (self , name : str , ** kwargs : Any ) -> KeyVaultKey :
233
224
"""Create a new octet sequence (symmetric) key or, if ``name`` is in use, create a new version of the key.
234
225
235
226
Requires the keys/create permission.
@@ -266,8 +257,7 @@ def create_oct_key(self, name, **kwargs):
266
257
return self .create_key (name , key_type = "oct-HSM" if hsm else "oct" , ** kwargs )
267
258
268
259
@distributed_trace
269
- def begin_delete_key (self , name , ** kwargs ):
270
- # type: (str, **Any) -> LROPoller
260
+ def begin_delete_key (self , name :str , ** kwargs : Any ) -> "LROPoller" :
271
261
"""Delete all versions of a key and its cryptographic material.
272
262
273
263
Requires keys/delete permission. When this method returns Key Vault has begun deleting the key. Deletion may
@@ -312,8 +302,7 @@ def begin_delete_key(self, name, **kwargs):
312
302
return KeyVaultOperationPoller (polling_method )
313
303
314
304
@distributed_trace
315
- def get_key (self , name , version = None , ** kwargs ):
316
- # type: (str, Optional[str], **Any) -> KeyVaultKey
305
+ def get_key (self , name :str , version :Optional [str ]= None , ** kwargs : Any ) -> KeyVaultKey :
317
306
"""Get a key's attributes and, if it's an asymmetric key, its public material.
318
307
319
308
Requires keys/get permission.
@@ -339,8 +328,7 @@ def get_key(self, name, version=None, **kwargs):
339
328
return KeyVaultKey ._from_key_bundle (bundle )
340
329
341
330
@distributed_trace
342
- def get_deleted_key (self , name , ** kwargs ):
343
- # type: (str, **Any) -> DeletedKey
331
+ def get_deleted_key (self , name :str , ** kwargs :Any ):
344
332
"""Get a deleted key. Possible only in a vault with soft-delete enabled.
345
333
346
334
Requires keys/get permission.
@@ -365,8 +353,7 @@ def get_deleted_key(self, name, **kwargs):
365
353
return DeletedKey ._from_deleted_key_bundle (bundle )
366
354
367
355
@distributed_trace
368
- def list_deleted_keys (self , ** kwargs ):
369
- # type: (**Any) -> ItemPaged[DeletedKey]
356
+ def list_deleted_keys (self , ** kwargs : Any ) -> "ItemPaged[DeletedKey]" :
370
357
"""List all deleted keys, including the public part of each. Possible only in a vault with soft-delete enabled.
371
358
372
359
Requires keys/list permission.
@@ -391,8 +378,7 @@ def list_deleted_keys(self, **kwargs):
391
378
)
392
379
393
380
@distributed_trace
394
- def list_properties_of_keys (self , ** kwargs ):
395
- # type: (**Any) -> ItemPaged[KeyProperties]
381
+ def list_properties_of_keys (self , ** kwargs : Any ) -> "ItemPaged[KeyProperties]" :
396
382
"""List identifiers and properties of all keys in the vault.
397
383
398
384
Requires keys/list permission.
@@ -417,8 +403,7 @@ def list_properties_of_keys(self, **kwargs):
417
403
)
418
404
419
405
@distributed_trace
420
- def list_properties_of_key_versions (self , name , ** kwargs ):
421
- # type: (str, **Any) -> ItemPaged[KeyProperties]
406
+ def list_properties_of_key_versions (self , name : str , ** kwargs : Any ) -> "ItemPaged[KeyProperties]" :
422
407
"""List the identifiers and properties of a key's versions.
423
408
424
409
Requires keys/list permission.
@@ -446,8 +431,7 @@ def list_properties_of_key_versions(self, name, **kwargs):
446
431
)
447
432
448
433
@distributed_trace
449
- def purge_deleted_key (self , name , ** kwargs ):
450
- # type: (str, **Any) -> None
434
+ def purge_deleted_key (self , name :str , ** kwargs : Any ) -> None :
451
435
"""Permanently deletes a deleted key. Only possible in a vault with soft-delete enabled.
452
436
453
437
Performs an irreversible deletion of the specified key, without
@@ -474,8 +458,7 @@ def purge_deleted_key(self, name, **kwargs):
474
458
self ._client .purge_deleted_key (vault_base_url = self .vault_url , key_name = name , error_map = _error_map , ** kwargs )
475
459
476
460
@distributed_trace
477
- def begin_recover_deleted_key (self , name , ** kwargs ):
478
- # type: (str, **Any) -> LROPoller
461
+ def begin_recover_deleted_key (self , name : str , ** kwargs : Any ) -> "LROPoller" :
479
462
"""Recover a deleted key to its latest version. Possible only in a vault with soft-delete enabled.
480
463
481
464
Requires keys/recover permission.
@@ -520,8 +503,7 @@ def begin_recover_deleted_key(self, name, **kwargs):
520
503
return KeyVaultOperationPoller (polling_method )
521
504
522
505
@distributed_trace
523
- def update_key_properties (self , name , version = None , ** kwargs ):
524
- # type: (str, Optional[str], **Any) -> KeyVaultKey
506
+ def update_key_properties (self , name :str , version :Optional [str ]= None , ** kwargs : Any ) -> KeyVaultKey :
525
507
"""Change a key's properties (not its cryptographic material).
526
508
527
509
Requires keys/update permission.
@@ -576,8 +558,7 @@ def update_key_properties(self, name, version=None, **kwargs):
576
558
return KeyVaultKey ._from_key_bundle (bundle )
577
559
578
560
@distributed_trace
579
- def backup_key (self , name , ** kwargs ):
580
- # type: (str, **Any) -> bytes
561
+ def backup_key (self , name : str , ** kwargs : Any ) -> bytes :
581
562
"""Back up a key in a protected form useable only by Azure Key Vault.
582
563
583
564
Requires keys/backup permission.
@@ -605,8 +586,7 @@ def backup_key(self, name, **kwargs):
605
586
return backup_result .value
606
587
607
588
@distributed_trace
608
- def restore_key_backup (self , backup , ** kwargs ):
609
- # type: (bytes, **Any) -> KeyVaultKey
589
+ def restore_key_backup (self , backup : bytes , ** kwargs : Any ) -> KeyVaultKey :
610
590
"""Restore a key backup to the vault.
611
591
612
592
Requires keys/restore permission.
@@ -640,8 +620,7 @@ def restore_key_backup(self, backup, **kwargs):
640
620
return KeyVaultKey ._from_key_bundle (bundle )
641
621
642
622
@distributed_trace
643
- def import_key (self , name , key , ** kwargs ):
644
- # type: (str, JsonWebKey, **Any) -> KeyVaultKey
623
+ def import_key (self , name :str , key : "JsonWebKey" , ** kwargs : Any ) -> KeyVaultKey :
645
624
"""Import a key created externally.
646
625
647
626
Requires keys/import permission. If ``name`` is already in use, the key will be imported as a new version.
@@ -689,8 +668,7 @@ def import_key(self, name, key, **kwargs):
689
668
return KeyVaultKey ._from_key_bundle (bundle )
690
669
691
670
@distributed_trace
692
- def release_key (self , name , target_attestation_token , ** kwargs ):
693
- # type: (str, str, **Any) -> ReleaseKeyResult
671
+ def release_key (self , name :str , target_attestation_token :str , ** kwargs : Any ) -> ReleaseKeyResult :
694
672
"""Releases a key.
695
673
696
674
The release key operation is applicable to all key types. The target key must be marked
@@ -723,8 +701,7 @@ def release_key(self, name, target_attestation_token, **kwargs):
723
701
return ReleaseKeyResult (result .value )
724
702
725
703
@distributed_trace
726
- def get_random_bytes (self , count , ** kwargs ):
727
- # type: (int, **Any) -> bytes
704
+ def get_random_bytes (self , count : int , ** kwargs : Any ) -> bytes :
728
705
"""Get the requested number of random bytes from a managed HSM.
729
706
730
707
:param int count: The requested number of random bytes.
@@ -750,8 +727,7 @@ def get_random_bytes(self, count, **kwargs):
750
727
return result .value
751
728
752
729
@distributed_trace
753
- def get_key_rotation_policy (self , key_name , ** kwargs ):
754
- # type: (str, **Any) -> KeyRotationPolicy
730
+ def get_key_rotation_policy (self , key_name : str , ** kwargs : Any ) -> KeyRotationPolicy :
755
731
"""Get the rotation policy of a Key Vault key.
756
732
757
733
:param str key_name: The name of the key.
@@ -764,8 +740,7 @@ def get_key_rotation_policy(self, key_name, **kwargs):
764
740
return KeyRotationPolicy ._from_generated (policy )
765
741
766
742
@distributed_trace
767
- def rotate_key (self , name , ** kwargs ):
768
- # type: (str, **Any) -> KeyVaultKey
743
+ def rotate_key (self , name : str , ** kwargs : Any ) -> KeyVaultKey :
769
744
"""Rotate the key based on the key policy by generating a new version of the key.
770
745
771
746
This operation requires the keys/rotate permission.
@@ -780,8 +755,7 @@ def rotate_key(self, name, **kwargs):
780
755
return KeyVaultKey ._from_key_bundle (bundle )
781
756
782
757
@distributed_trace
783
- def update_key_rotation_policy (self , key_name , policy , ** kwargs ):
784
- # type: (str, KeyRotationPolicy, **Any) -> KeyRotationPolicy
758
+ def update_key_rotation_policy (self , key_name :str , policy : KeyRotationPolicy , ** kwargs : Any ) -> KeyRotationPolicy :
785
759
"""Updates the rotation policy of a Key Vault key.
786
760
787
761
This operation requires the keys/update permission.
0 commit comments