Skip to content

Commit ef180f1

Browse files
authored
[Key Vault] Generate Certificates with TypeSpec (Azure#36903)
1 parent de7adba commit ef180f1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+4366
-2806
lines changed

sdk/keyvault/azure-keyvault-certificates/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
### Bugs Fixed
1010

1111
### Other Changes
12+
- Updated minimum `typing-extensions` version to 4.6.0
1213

1314
## 4.9.0 (2024-10-17)
1415

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
include *.md
22
include LICENSE
3-
include azure/__init__.py
4-
include azure/keyvault/__init__.py
5-
recursive-include samples *.py
6-
recursive-include tests *.py
73
include azure/keyvault/certificates/py.typed
4+
recursive-include tests *.py
5+
recursive-include samples *.py *.md
6+
include azure/__init__.py
7+
include azure/keyvault/__init__.py

sdk/keyvault/azure-keyvault-certificates/assets.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
"AssetsRepo": "Azure/azure-sdk-assets",
33
"AssetsRepoPrefixPath": "python",
44
"TagPrefix": "python/keyvault/azure-keyvault-certificates",
5-
"Tag": "python/keyvault/azure-keyvault-certificates_1cf731dd01"
5+
"Tag": "python/keyvault/azure-keyvault-certificates_9d117c2e38"
66
}

sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_client.py

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,6 @@ def begin_create_certificate(
117117
)
118118

119119
pipeline_response, cert_bundle = self._client.create_certificate(
120-
vault_base_url=self.vault_url,
121120
certificate_name=certificate_name,
122121
parameters=parameters,
123122
cls=lambda pipeline_response, deserialized, _: (pipeline_response, deserialized),
@@ -165,7 +164,7 @@ def get_certificate(self, certificate_name: str, **kwargs: Any) -> KeyVaultCerti
165164
:dedent: 8
166165
"""
167166
bundle = self._client.get_certificate(
168-
vault_base_url=self.vault_url, certificate_name=certificate_name, certificate_version="", **kwargs
167+
certificate_name=certificate_name, certificate_version="", **kwargs
169168
)
170169
return KeyVaultCertificate._from_certificate_bundle(certificate_bundle=bundle)
171170

@@ -194,7 +193,7 @@ def get_certificate_version(self, certificate_name: str, version: str, **kwargs:
194193
:dedent: 8
195194
"""
196195
bundle = self._client.get_certificate(
197-
vault_base_url=self.vault_url, certificate_name=certificate_name, certificate_version=version, **kwargs
196+
certificate_name=certificate_name, certificate_version=version, **kwargs
198197
)
199198
return KeyVaultCertificate._from_certificate_bundle(certificate_bundle=bundle)
200199

@@ -230,7 +229,6 @@ def begin_delete_certificate(self, certificate_name: str, **kwargs: Any) -> LROP
230229
if polling_interval is None:
231230
polling_interval = 2
232231
pipeline_response, deleted_cert_bundle = self._client.delete_certificate(
233-
vault_base_url=self.vault_url,
234232
certificate_name=certificate_name,
235233
cls=lambda pipeline_response, deserialized, _: (pipeline_response, deserialized),
236234
**kwargs,
@@ -272,7 +270,7 @@ def get_deleted_certificate(self, certificate_name: str, **kwargs: Any) -> Delet
272270
:dedent: 8
273271
"""
274272
bundle = self._client.get_deleted_certificate(
275-
vault_base_url=self.vault_url, certificate_name=certificate_name, **kwargs
273+
certificate_name=certificate_name, **kwargs
276274
)
277275
return DeletedCertificate._from_deleted_certificate_bundle(deleted_certificate_bundle=bundle)
278276

@@ -294,7 +292,7 @@ def purge_deleted_certificate(self, certificate_name: str, **kwargs: Any) -> Non
294292
:raises ~azure.core.exceptions.HttpResponseError:
295293
"""
296294
self._client.purge_deleted_certificate(
297-
vault_base_url=self.vault_url, certificate_name=certificate_name, **kwargs
295+
certificate_name=certificate_name, **kwargs
298296
)
299297

300298
@distributed_trace
@@ -329,7 +327,6 @@ def begin_recover_deleted_certificate(self, certificate_name: str, **kwargs: Any
329327
polling_interval = 2
330328

331329
pipeline_response, recovered_cert_bundle = self._client.recover_deleted_certificate(
332-
vault_base_url=self.vault_url,
333330
certificate_name=certificate_name,
334331
cls=lambda pipeline_response, deserialized, _: (pipeline_response, deserialized),
335332
**kwargs,
@@ -401,7 +398,7 @@ def import_certificate(
401398
)
402399

403400
bundle = self._client.import_certificate(
404-
vault_base_url=self.vault_url, certificate_name=certificate_name, parameters=parameters, **kwargs
401+
certificate_name=certificate_name, parameters=parameters, **kwargs
405402
)
406403
return KeyVaultCertificate._from_certificate_bundle(certificate_bundle=bundle)
407404

@@ -419,7 +416,7 @@ def get_certificate_policy(self, certificate_name: str, **kwargs: Any) -> Certif
419416
:raises ~azure.core.exceptions.HttpResponseError:
420417
"""
421418
bundle = self._client.get_certificate_policy(
422-
vault_base_url=self.vault_url, certificate_name=certificate_name, **kwargs
419+
certificate_name=certificate_name, **kwargs
423420
)
424421
return CertificatePolicy._from_certificate_policy_bundle(certificate_policy_bundle=bundle)
425422

@@ -441,7 +438,6 @@ def update_certificate_policy(
441438
:raises ~azure.core.exceptions.HttpResponseError:
442439
"""
443440
bundle = self._client.update_certificate_policy(
444-
vault_base_url=self.vault_url,
445441
certificate_name=certificate_name,
446442
certificate_policy=policy._to_certificate_policy_bundle(),
447443
**kwargs
@@ -491,7 +487,6 @@ def update_certificate_properties(
491487
)
492488

493489
bundle = self._client.update_certificate(
494-
vault_base_url=self.vault_url,
495490
certificate_name=certificate_name,
496491
certificate_version=version or "",
497492
parameters=parameters,
@@ -525,7 +520,7 @@ def backup_certificate(self, certificate_name: str, **kwargs: Any) -> bytes:
525520
:dedent: 8
526521
"""
527522
backup_result = self._client.backup_certificate(
528-
vault_base_url=self.vault_url, certificate_name=certificate_name, **kwargs
523+
certificate_name=certificate_name, **kwargs
529524
)
530525
return backup_result.value
531526

@@ -553,7 +548,6 @@ def restore_certificate_backup(self, backup: bytes, **kwargs: Any) -> KeyVaultCe
553548
:dedent: 8
554549
"""
555550
bundle = self._client.restore_certificate(
556-
vault_base_url=self.vault_url,
557551
parameters=self._models.CertificateRestoreParameters(certificate_bundle_backup=backup),
558552
**kwargs
559553
)
@@ -597,7 +591,6 @@ def list_deleted_certificates(
597591
kwargs.update({"include_pending": include_pending})
598592

599593
return self._client.get_deleted_certificates(
600-
vault_base_url=self._vault_url,
601594
maxresults=max_page_size,
602595
cls=lambda objs: [
603596
DeletedCertificate._from_deleted_certificate_item(deleted_certificate_item=x) for x in objs
@@ -642,7 +635,6 @@ def list_properties_of_certificates(
642635
kwargs.update({"include_pending": include_pending})
643636

644637
return self._client.get_certificates(
645-
vault_base_url=self._vault_url,
646638
maxresults=max_page_size,
647639
cls=lambda objs: [CertificateProperties._from_certificate_item(certificate_item=x) for x in objs],
648640
**kwargs
@@ -673,7 +665,6 @@ def list_properties_of_certificate_versions(
673665
"""
674666
max_page_size = kwargs.pop("max_page_size", None)
675667
return self._client.get_certificate_versions(
676-
vault_base_url=self._vault_url,
677668
certificate_name=certificate_name,
678669
maxresults=max_page_size,
679670
cls=lambda objs: [CertificateProperties._from_certificate_item(certificate_item=x) for x in objs],
@@ -701,7 +692,6 @@ def set_contacts(self, contacts: "List[CertificateContact]", **kwargs: Any) -> "
701692
:dedent: 8
702693
"""
703694
new_contacts = self._client.set_certificate_contacts(
704-
vault_base_url=self.vault_url,
705695
contacts=self._models.Contacts(contact_list=[c._to_certificate_contacts_item() for c in contacts]),
706696
**kwargs
707697
)
@@ -726,7 +716,7 @@ def get_contacts(self, **kwargs: Any) -> "List[CertificateContact]":
726716
:caption: Get contacts
727717
:dedent: 8
728718
"""
729-
contacts = self._client.get_certificate_contacts(vault_base_url=self._vault_url, **kwargs)
719+
contacts = self._client.get_certificate_contacts(**kwargs)
730720
return [CertificateContact._from_certificate_contacts_item(contact_item=item) for item in contacts.contact_list]
731721

732722
@distributed_trace
@@ -746,7 +736,7 @@ def delete_contacts(self, **kwargs: Any) -> "List[CertificateContact]":
746736
:caption: Delete contacts
747737
:dedent: 8
748738
"""
749-
contacts = self._client.delete_certificate_contacts(vault_base_url=self.vault_url, **kwargs)
739+
contacts = self._client.delete_certificate_contacts(**kwargs)
750740
return [CertificateContact._from_certificate_contacts_item(contact_item=item) for item in contacts.contact_list]
751741

752742
@distributed_trace
@@ -763,7 +753,7 @@ def get_certificate_operation(self, certificate_name: str, **kwargs: Any) -> Cer
763753
"""
764754

765755
bundle = self._client.get_certificate_operation(
766-
vault_base_url=self.vault_url, certificate_name=certificate_name, **kwargs
756+
certificate_name=certificate_name, **kwargs
767757
)
768758
return CertificateOperation._from_certificate_operation_bundle(certificate_operation_bundle=bundle)
769759

@@ -781,7 +771,7 @@ def delete_certificate_operation(self, certificate_name: str, **kwargs: Any) ->
781771
:raises ~azure.core.exceptions.HttpResponseError:
782772
"""
783773
bundle = self._client.delete_certificate_operation(
784-
vault_base_url=self.vault_url, certificate_name=certificate_name, **kwargs
774+
certificate_name=certificate_name, **kwargs
785775
)
786776
return CertificateOperation._from_certificate_operation_bundle(certificate_operation_bundle=bundle)
787777

@@ -797,7 +787,6 @@ def cancel_certificate_operation(self, certificate_name: str, **kwargs: Any) ->
797787
:raises ~azure.core.exceptions.HttpResponseError:
798788
"""
799789
bundle = self._client.update_certificate_operation(
800-
vault_base_url=self.vault_url,
801790
certificate_name=certificate_name,
802791
certificate_operation=self._models.CertificateOperationUpdateParameter(cancellation_requested=True),
803792
**kwargs
@@ -846,7 +835,7 @@ def merge_certificate(
846835
)
847836

848837
bundle = self._client.merge_certificate(
849-
vault_base_url=self.vault_url, certificate_name=certificate_name, parameters=parameters, **kwargs
838+
certificate_name=certificate_name, parameters=parameters, **kwargs
850839
)
851840
return KeyVaultCertificate._from_certificate_bundle(certificate_bundle=bundle)
852841

@@ -871,7 +860,7 @@ def get_issuer(self, issuer_name: str, **kwargs: Any) -> CertificateIssuer:
871860
:dedent: 8
872861
"""
873862
issuer_bundle = self._client.get_certificate_issuer(
874-
vault_base_url=self.vault_url, issuer_name=issuer_name, **kwargs
863+
issuer_name=issuer_name, **kwargs
875864
)
876865
return CertificateIssuer._from_issuer_bundle(issuer_bundle=issuer_bundle)
877866

@@ -948,7 +937,7 @@ def create_issuer(
948937
)
949938

950939
issuer_bundle = self._client.set_certificate_issuer(
951-
vault_base_url=self.vault_url, issuer_name=issuer_name, parameter=parameters, **kwargs
940+
issuer_name=issuer_name, parameter=parameters, **kwargs
952941
)
953942
return CertificateIssuer._from_issuer_bundle(issuer_bundle=issuer_bundle)
954943

@@ -1016,7 +1005,7 @@ def update_issuer(
10161005
)
10171006

10181007
issuer_bundle = self._client.update_certificate_issuer(
1019-
vault_base_url=self.vault_url, issuer_name=issuer_name, parameter=parameters, **kwargs
1008+
issuer_name=issuer_name, parameter=parameters, **kwargs
10201009
)
10211010
return CertificateIssuer._from_issuer_bundle(issuer_bundle=issuer_bundle)
10221011

@@ -1042,7 +1031,7 @@ def delete_issuer(self, issuer_name: str, **kwargs: Any) -> CertificateIssuer:
10421031
:dedent: 8
10431032
"""
10441033
issuer_bundle = self._client.delete_certificate_issuer(
1045-
vault_base_url=self.vault_url, issuer_name=issuer_name, **kwargs
1034+
issuer_name=issuer_name, **kwargs
10461035
)
10471036
return CertificateIssuer._from_issuer_bundle(issuer_bundle=issuer_bundle)
10481037

@@ -1067,7 +1056,6 @@ def list_properties_of_issuers(self, **kwargs: Any) -> ItemPaged[IssuerPropertie
10671056
"""
10681057
max_page_size = kwargs.pop("max_page_size", None)
10691058
return self._client.get_certificate_issuers(
1070-
vault_base_url=self.vault_url,
10711059
maxresults=max_page_size,
10721060
cls=lambda objs: [IssuerProperties._from_issuer_item(issuer_item=x) for x in objs],
10731061
**kwargs

sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/__init__.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,31 @@
22
# --------------------------------------------------------------------------
33
# Copyright (c) Microsoft Corporation. All rights reserved.
44
# Licensed under the MIT License. See License.txt in the project root for license information.
5-
# Code generated by Microsoft (R) AutoRest Code Generator.
5+
# Code generated by Microsoft (R) Python Code Generator.
66
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
77
# --------------------------------------------------------------------------
8+
# pylint: disable=wrong-import-position
89

9-
from ._client import KeyVaultClient
10+
from typing import TYPE_CHECKING
11+
12+
if TYPE_CHECKING:
13+
from ._patch import * # pylint: disable=unused-wildcard-import
14+
15+
from ._client import KeyVaultClient # type: ignore
16+
from ._version import VERSION
17+
18+
__version__ = VERSION
1019

1120
try:
1221
from ._patch import __all__ as _patch_all
13-
from ._patch import * # pylint: disable=unused-wildcard-import
22+
from ._patch import *
1423
except ImportError:
1524
_patch_all = []
1625
from ._patch import patch_sdk as _patch_sdk
1726

1827
__all__ = [
1928
"KeyVaultClient",
2029
]
21-
__all__.extend([p for p in _patch_all if p not in __all__])
30+
__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore
2231

2332
_patch_sdk()

sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/_client.py

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,42 @@
22
# --------------------------------------------------------------------------
33
# Copyright (c) Microsoft Corporation. All rights reserved.
44
# Licensed under the MIT License. See License.txt in the project root for license information.
5-
# Code generated by Microsoft (R) AutoRest Code Generator.
5+
# Code generated by Microsoft (R) Python Code Generator.
66
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
77
# --------------------------------------------------------------------------
88

99
from copy import deepcopy
10-
from typing import Any
10+
from typing import Any, TYPE_CHECKING
11+
from typing_extensions import Self
1112

1213
from azure.core import PipelineClient
1314
from azure.core.pipeline import policies
1415
from azure.core.rest import HttpRequest, HttpResponse
1516

16-
from . import models as _models
1717
from ._configuration import KeyVaultClientConfiguration
1818
from ._operations import KeyVaultClientOperationsMixin
1919
from ._serialization import Deserializer, Serializer
2020

21+
if TYPE_CHECKING:
22+
from azure.core.credentials import TokenCredential
2123

22-
class KeyVaultClient(KeyVaultClientOperationsMixin): # pylint: disable=client-accepts-api-version-keyword
24+
25+
class KeyVaultClient(KeyVaultClientOperationsMixin):
2326
"""The key vault client performs cryptographic key operations and vault operations against the Key
2427
Vault service.
2528
26-
:keyword api_version: Api Version. Default value is "7.5". Note that overriding this default
27-
value may result in unsupported behavior.
29+
:param vault_base_url: Required.
30+
:type vault_base_url: str
31+
:param credential: Credential used to authenticate requests to the service. Required.
32+
:type credential: ~azure.core.credentials.TokenCredential
33+
:keyword api_version: The API version to use for this operation. Default value is
34+
"7.6-preview.2". Note that overriding this default value may result in unsupported behavior.
2835
:paramtype api_version: str
2936
"""
3037

31-
def __init__(self, **kwargs: Any) -> None: # pylint: disable=missing-client-constructor-parameter-credential
38+
def __init__(self, vault_base_url: str, credential: "TokenCredential", **kwargs: Any) -> None:
3239
_endpoint = "{vaultBaseUrl}"
33-
self._config = KeyVaultClientConfiguration(**kwargs)
40+
self._config = KeyVaultClientConfiguration(vault_base_url=vault_base_url, credential=credential, **kwargs)
3441
_policies = kwargs.pop("policies", None)
3542
if _policies is None:
3643
_policies = [
@@ -50,10 +57,8 @@ def __init__(self, **kwargs: Any) -> None: # pylint: disable=missing-client-con
5057
]
5158
self._client: PipelineClient = PipelineClient(base_url=_endpoint, policies=_policies, **kwargs)
5259

53-
client_models = {k: v for k, v in _models._models.__dict__.items() if isinstance(v, type)}
54-
client_models.update({k: v for k, v in _models.__dict__.items() if isinstance(v, type)})
55-
self._serialize = Serializer(client_models)
56-
self._deserialize = Deserializer(client_models)
60+
self._serialize = Serializer()
61+
self._deserialize = Deserializer()
5762
self._serialize.client_side_validation = False
5863

5964
def send_request(self, request: HttpRequest, *, stream: bool = False, **kwargs: Any) -> HttpResponse:
@@ -75,13 +80,19 @@ def send_request(self, request: HttpRequest, *, stream: bool = False, **kwargs:
7580
"""
7681

7782
request_copy = deepcopy(request)
78-
request_copy.url = self._client.format_url(request_copy.url)
83+
path_format_arguments = {
84+
"vaultBaseUrl": self._serialize.url(
85+
"self._config.vault_base_url", self._config.vault_base_url, "str", skip_quote=True
86+
),
87+
}
88+
89+
request_copy.url = self._client.format_url(request_copy.url, **path_format_arguments)
7990
return self._client.send_request(request_copy, stream=stream, **kwargs) # type: ignore
8091

8192
def close(self) -> None:
8293
self._client.close()
8394

84-
def __enter__(self) -> "KeyVaultClient":
95+
def __enter__(self) -> Self:
8596
self._client.__enter__()
8697
return self
8798

0 commit comments

Comments
 (0)