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
@@ -59,8 +55,7 @@ def _get_attributes(self, enabled, not_before, expires_on, exportable=None):
59
55
)
60
56
return None
61
57
62
- def get_cryptography_client (self , key_name , ** kwargs ):
63
- # type: (str, **Any) -> CryptographyClient
58
+ def get_cryptography_client (self , key_name : str , ** kwargs : Any ) -> CryptographyClient :
64
59
"""Gets a :class:`~azure.keyvault.keys.crypto.CryptographyClient` for the given key.
65
60
66
61
:param str key_name: The name of the key used to perform cryptographic operations.
@@ -75,12 +70,11 @@ def get_cryptography_client(self, key_name, **kwargs):
75
70
76
71
# We provide a fake credential because the generated client already has the KeyClient's real credential
77
72
return CryptographyClient (
78
- key_id , object (), generated_client = self ._client , generated_models = self ._models # type: ignore
73
+ key_id , object (), generated_client = self ._client , generated_models = self ._models # type: ignore
79
74
)
80
75
81
76
@distributed_trace
82
- def create_key (self , name , key_type , ** kwargs ):
83
- # type: (str, Union[str, KeyType], **Any) -> KeyVaultKey
77
+ def create_key (self , name : str , key_type : Union [str , "KeyType" ], ** kwargs : Any ) -> KeyVaultKey :
84
78
"""Create a key or, if ``name`` is already in use, create a new version of the key.
85
79
86
80
Requires keys/create permission.
@@ -148,8 +142,7 @@ def create_key(self, name, key_type, **kwargs):
148
142
return KeyVaultKey ._from_key_bundle (bundle )
149
143
150
144
@distributed_trace
151
- def create_rsa_key (self , name , ** kwargs ):
152
- # type: (str, **Any) -> KeyVaultKey
145
+ def create_rsa_key (self , name : str , ** kwargs : Any ) -> KeyVaultKey :
153
146
"""Create a new RSA key or, if ``name`` is already in use, create a new version of the key
154
147
155
148
Requires the keys/create permission.
@@ -187,8 +180,7 @@ def create_rsa_key(self, name, **kwargs):
187
180
return self .create_key (name , key_type = "RSA-HSM" if hsm else "RSA" , ** kwargs )
188
181
189
182
@distributed_trace
190
- def create_ec_key (self , name , ** kwargs ):
191
- # type: (str, **Any) -> KeyVaultKey
183
+ def create_ec_key (self , name : str , ** kwargs : Any ) -> KeyVaultKey :
192
184
"""Create a new elliptic curve key or, if ``name`` is already in use, create a new version of the key.
193
185
194
186
Requires the keys/create permission.
@@ -226,8 +218,7 @@ def create_ec_key(self, name, **kwargs):
226
218
return self .create_key (name , key_type = "EC-HSM" if hsm else "EC" , ** kwargs )
227
219
228
220
@distributed_trace
229
- def create_oct_key (self , name , ** kwargs ):
230
- # type: (str, **Any) -> KeyVaultKey
221
+ def create_oct_key (self , name : str , ** kwargs : Any ) -> KeyVaultKey :
231
222
"""Create a new octet sequence (symmetric) key or, if ``name`` is in use, create a new version of the key.
232
223
233
224
Requires the keys/create permission.
@@ -264,8 +255,7 @@ def create_oct_key(self, name, **kwargs):
264
255
return self .create_key (name , key_type = "oct-HSM" if hsm else "oct" , ** kwargs )
265
256
266
257
@distributed_trace
267
- def begin_delete_key (self , name , ** kwargs ):
268
- # type: (str, **Any) -> LROPoller
258
+ def begin_delete_key (self , name :str , ** kwargs : Any ) -> "LROPoller" :
269
259
"""Delete all versions of a key and its cryptographic material.
270
260
271
261
Requires keys/delete permission. When this method returns Key Vault has begun deleting the key. Deletion may
@@ -310,8 +300,7 @@ def begin_delete_key(self, name, **kwargs):
310
300
return KeyVaultOperationPoller (polling_method )
311
301
312
302
@distributed_trace
313
- def get_key (self , name , version = None , ** kwargs ):
314
- # type: (str, Optional[str], **Any) -> KeyVaultKey
303
+ def get_key (self , name :str , version :Optional [str ]= None , ** kwargs : Any ) -> KeyVaultKey :
315
304
"""Get a key's attributes and, if it's an asymmetric key, its public material.
316
305
317
306
Requires keys/get permission.
@@ -337,8 +326,7 @@ def get_key(self, name, version=None, **kwargs):
337
326
return KeyVaultKey ._from_key_bundle (bundle )
338
327
339
328
@distributed_trace
340
- def get_deleted_key (self , name , ** kwargs ):
341
- # type: (str, **Any) -> DeletedKey
329
+ def get_deleted_key (self , name :str , ** kwargs :Any ):
342
330
"""Get a deleted key. Possible only in a vault with soft-delete enabled.
343
331
344
332
Requires keys/get permission.
@@ -363,8 +351,7 @@ def get_deleted_key(self, name, **kwargs):
363
351
return DeletedKey ._from_deleted_key_bundle (bundle )
364
352
365
353
@distributed_trace
366
- def list_deleted_keys (self , ** kwargs ):
367
- # type: (**Any) -> ItemPaged[DeletedKey]
354
+ def list_deleted_keys (self , ** kwargs : Any ) -> "ItemPaged[DeletedKey]" :
368
355
"""List all deleted keys, including the public part of each. Possible only in a vault with soft-delete enabled.
369
356
370
357
Requires keys/list permission.
@@ -389,8 +376,7 @@ def list_deleted_keys(self, **kwargs):
389
376
)
390
377
391
378
@distributed_trace
392
- def list_properties_of_keys (self , ** kwargs ):
393
- # type: (**Any) -> ItemPaged[KeyProperties]
379
+ def list_properties_of_keys (self , ** kwargs : Any ) -> "ItemPaged[KeyProperties]" :
394
380
"""List identifiers and properties of all keys in the vault.
395
381
396
382
Requires keys/list permission.
@@ -415,8 +401,7 @@ def list_properties_of_keys(self, **kwargs):
415
401
)
416
402
417
403
@distributed_trace
418
- def list_properties_of_key_versions (self , name , ** kwargs ):
419
- # type: (str, **Any) -> ItemPaged[KeyProperties]
404
+ def list_properties_of_key_versions (self , name : str , ** kwargs : Any ) -> "ItemPaged[KeyProperties]" :
420
405
"""List the identifiers and properties of a key's versions.
421
406
422
407
Requires keys/list permission.
@@ -444,8 +429,7 @@ def list_properties_of_key_versions(self, name, **kwargs):
444
429
)
445
430
446
431
@distributed_trace
447
- def purge_deleted_key (self , name , ** kwargs ):
448
- # type: (str, **Any) -> None
432
+ def purge_deleted_key (self , name :str , ** kwargs : Any ) -> None :
449
433
"""Permanently deletes a deleted key. Only possible in a vault with soft-delete enabled.
450
434
451
435
Performs an irreversible deletion of the specified key, without
@@ -472,8 +456,7 @@ def purge_deleted_key(self, name, **kwargs):
472
456
self ._client .purge_deleted_key (vault_base_url = self .vault_url , key_name = name , error_map = _error_map , ** kwargs )
473
457
474
458
@distributed_trace
475
- def begin_recover_deleted_key (self , name , ** kwargs ):
476
- # type: (str, **Any) -> LROPoller
459
+ def begin_recover_deleted_key (self , name : str , ** kwargs : Any ) -> "LROPoller" :
477
460
"""Recover a deleted key to its latest version. Possible only in a vault with soft-delete enabled.
478
461
479
462
Requires keys/recover permission.
@@ -518,8 +501,7 @@ def begin_recover_deleted_key(self, name, **kwargs):
518
501
return KeyVaultOperationPoller (polling_method )
519
502
520
503
@distributed_trace
521
- def update_key_properties (self , name , version = None , ** kwargs ):
522
- # type: (str, Optional[str], **Any) -> KeyVaultKey
504
+ def update_key_properties (self , name :str , version :Optional [str ]= None , ** kwargs : Any ) -> KeyVaultKey :
523
505
"""Change a key's properties (not its cryptographic material).
524
506
525
507
Requires keys/update permission.
@@ -574,8 +556,7 @@ def update_key_properties(self, name, version=None, **kwargs):
574
556
return KeyVaultKey ._from_key_bundle (bundle )
575
557
576
558
@distributed_trace
577
- def backup_key (self , name , ** kwargs ):
578
- # type: (str, **Any) -> bytes
559
+ def backup_key (self , name : str , ** kwargs : Any ) -> bytes :
579
560
"""Back up a key in a protected form useable only by Azure Key Vault.
580
561
581
562
Requires keys/backup permission.
@@ -603,8 +584,7 @@ def backup_key(self, name, **kwargs):
603
584
return backup_result .value
604
585
605
586
@distributed_trace
606
- def restore_key_backup (self , backup , ** kwargs ):
607
- # type: (bytes, **Any) -> KeyVaultKey
587
+ def restore_key_backup (self , backup : bytes , ** kwargs : Any ) -> KeyVaultKey :
608
588
"""Restore a key backup to the vault.
609
589
610
590
Requires keys/restore permission.
@@ -638,8 +618,7 @@ def restore_key_backup(self, backup, **kwargs):
638
618
return KeyVaultKey ._from_key_bundle (bundle )
639
619
640
620
@distributed_trace
641
- def import_key (self , name , key , ** kwargs ):
642
- # type: (str, JsonWebKey, **Any) -> KeyVaultKey
621
+ def import_key (self , name :str , key : "JsonWebKey" , ** kwargs : Any ) -> KeyVaultKey :
643
622
"""Import a key created externally.
644
623
645
624
Requires keys/import permission. If ``name`` is already in use, the key will be imported as a new version.
@@ -687,8 +666,7 @@ def import_key(self, name, key, **kwargs):
687
666
return KeyVaultKey ._from_key_bundle (bundle )
688
667
689
668
@distributed_trace
690
- def release_key (self , name , target_attestation_token , ** kwargs ):
691
- # type: (str, str, **Any) -> ReleaseKeyResult
669
+ def release_key (self , name :str , target_attestation_token :str , ** kwargs : Any ) -> ReleaseKeyResult :
692
670
"""Releases a key.
693
671
694
672
The release key operation is applicable to all key types. The target key must be marked
@@ -721,8 +699,7 @@ def release_key(self, name, target_attestation_token, **kwargs):
721
699
return ReleaseKeyResult (result .value )
722
700
723
701
@distributed_trace
724
- def get_random_bytes (self , count , ** kwargs ):
725
- # type: (int, **Any) -> bytes
702
+ def get_random_bytes (self , count : int , ** kwargs : Any ) -> bytes :
726
703
"""Get the requested number of random bytes from a managed HSM.
727
704
728
705
:param int count: The requested number of random bytes.
@@ -748,8 +725,7 @@ def get_random_bytes(self, count, **kwargs):
748
725
return result .value
749
726
750
727
@distributed_trace
751
- def get_key_rotation_policy (self , key_name , ** kwargs ):
752
- # type: (str, **Any) -> KeyRotationPolicy
728
+ def get_key_rotation_policy (self , key_name : str , ** kwargs : Any ) -> KeyRotationPolicy :
753
729
"""Get the rotation policy of a Key Vault key.
754
730
755
731
:param str key_name: The name of the key.
@@ -762,8 +738,7 @@ def get_key_rotation_policy(self, key_name, **kwargs):
762
738
return KeyRotationPolicy ._from_generated (policy )
763
739
764
740
@distributed_trace
765
- def rotate_key (self , name , ** kwargs ):
766
- # type: (str, **Any) -> KeyVaultKey
741
+ def rotate_key (self , name : str , ** kwargs : Any ) -> KeyVaultKey :
767
742
"""Rotate the key based on the key policy by generating a new version of the key.
768
743
769
744
This operation requires the keys/rotate permission.
@@ -778,8 +753,7 @@ def rotate_key(self, name, **kwargs):
778
753
return KeyVaultKey ._from_key_bundle (bundle )
779
754
780
755
@distributed_trace
781
- def update_key_rotation_policy (self , key_name , policy , ** kwargs ):
782
- # type: (str, KeyRotationPolicy, **Any) -> KeyRotationPolicy
756
+ def update_key_rotation_policy (self , key_name :str , policy : KeyRotationPolicy , ** kwargs : Any ) -> KeyRotationPolicy :
783
757
"""Updates the rotation policy of a Key Vault key.
784
758
785
759
This operation requires the keys/update permission.
0 commit comments