[AutoPR azure-keyvault-certificates]-generated-from-SDK Generation - Python-5985841#45607
[AutoPR azure-keyvault-certificates]-generated-from-SDK Generation - Python-5985841#45607azure-sdk wants to merge 3 commits intoAzure:mainfrom
Conversation
…s/tspconfig.yaml', API Version: 2025-07-01, SDK Release Type: stable, and CommitSHA: '48e2c462287288d03adad21e682404d90375462e' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5985841 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
There was a problem hiding this comment.
Pull request overview
This PR appears to be an automated TypeSpec/codegen refresh for azure-keyvault-certificates targeting Key Vault Certificates spec API version 2025-07-01, along with packaging and generated-model updates.
Changes:
- Updates codegen inputs/metadata (
tsp-location.yaml,_metadata.json) to the new swagger commit and API version. - Refactors packaging/versioning to come from
azure.keyvault.certificates._generated, movespy.typedhandling, and bumpsazure-coreminimum version. - Updates generated client/models (including adding SAN URI/IP address support) and adjusts generated plumbing (serialization/model base, operations paging/types).
Reviewed changes
Copilot reviewed 71 out of 71 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| sdk/keyvault/azure-keyvault-certificates/tsp-location.yaml | Updates spec repo commit and additional directories reference. |
| sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client_async.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/tests/test_certificates_client.py | Adds pylint suppression header; minor formatting change. |
| sdk/keyvault/azure-keyvault-certificates/tests/certs.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/setup.py | Switches version source to _generated; adjusts package discovery and package data; bumps azure-core min. |
| sdk/keyvault/azure-keyvault-certificates/sdk_packaging.toml | Removes packaging config file (moved to pyproject.toml). |
| sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations_async.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/samples/recover_purge_operations.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate_async.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/samples/parse_certificate.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/samples/list_operations_async.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/samples/list_operations.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/samples/issuers_async.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/samples/issuers.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/samples/import_certificate_async.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/samples/import_certificate.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/samples/hello_world_async.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/samples/hello_world.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/samples/contacts_async.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/samples/contacts.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations_async.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/samples/backup_restore_operations.py | Adds pylint suppression header. |
| sdk/keyvault/azure-keyvault-certificates/pyproject.toml | Adds [packaging] auto_update = false config. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/py.typed | Removes top-level py.typed marker (moved under _generated). |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/aio/_polling_async.py | Removes legacy handwritten async polling implementation. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/aio/_client.py | Removes legacy handwritten async CertificateClient. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/aio/init.py | Removes legacy aio package init/export. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_version.py | Removes legacy version constant. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/http_challenge_cache.py | Removes legacy challenge cache implementation. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/http_challenge.py | Removes legacy challenge parsing implementation. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/client_base.py | Removes legacy base client/versioning utilities. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/challenge_auth_policy.py | Removes legacy sync challenge auth policy. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/async_client_base.py | Removes legacy async base client. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/async_challenge_auth_policy.py | Removes legacy async challenge auth policy. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/_polling_async.py | Removes legacy async delete/recover polling. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/_polling.py | Removes legacy sync polling helpers. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_shared/init.py | Removes legacy shared exports/utilities (incl. parse helpers). |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_sdk_moniker.py | Removes legacy SDK moniker composition. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_polling.py | Removes legacy create-certificate polling method. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_enums.py | Removes legacy public enums module. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_client.py | Removes legacy handwritten sync CertificateClient and API surface. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/init.py | Replaces public API exports with namespace-package stub. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/init.py | Simplifies to namespace-package stub. |
| sdk/keyvault/azure-keyvault-certificates/azure/init.py | Simplifies to namespace-package stub. |
| sdk/keyvault/azure-keyvault-certificates/apiview-properties.json | Adds APIView cross-language mapping metadata. |
| sdk/keyvault/azure-keyvault-certificates/_metadata.json | Adds codegen metadata (apiVersion, commit, emitterVersion, etc.). |
| sdk/keyvault/azure-keyvault-certificates/MANIFEST.in | Updates included py.typed path and includes certificates __init__.py. |
| sdk/keyvault/azure-keyvault-certificates/CHANGELOG.md | Adds 4.11.0 header but with non-release-note content. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/models/_patch.py | Updates typing for __all__ in generated patch module. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/models/_models.py | Updates typing annotations; adds SAN URI/IP support; doc tweaks. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/models/_enums.py | Docstring punctuation changes (and retains a typo). |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/aio/_vendor.py | Removes generated vendor typing mixin. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/aio/_patch.py | Updates typing for __all__ in aio patch module. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/aio/_operations/_patch.py | Updates typing for __all__ in aio operations patch module. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/aio/_operations/_operations.py | Updates generated aio operations (paging return types, failsafe deserialize, stream decompress option). |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/aio/_operations/init.py | Renames operations mixin symbol; changes exports handling. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/aio/_configuration.py | Updates api_version default/docstring to 2025-07-01. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/aio/_client.py | Updates aio client to use renamed mixin and updated api_version docstring. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/_version.py | Bumps generated version to 4.11.0. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/_vendor.py | Removes generated vendor typing mixin. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/_utils/serialization.py | Updates typing + removes eval usage; refines serialization/deserialization internals. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/_utils/model_base.py | Significant generated model runtime changes (array-encoded formats, failsafe deserialize signature, caching mutable values). |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/_patch.py | Updates typing for __all__ in generated patch module. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/_operations/_patch.py | Updates typing for __all__ in generated operations patch module. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/_operations/init.py | Renames operations mixin symbol; changes exports handling. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/_configuration.py | Updates api_version default/docstring to 2025-07-01. |
| sdk/keyvault/azure-keyvault-certificates/azure/keyvault/certificates/_generated/_client.py | Updates sync client to use renamed mixin and updated api_version docstring. |
| packages=find_packages( | ||
| exclude=[ | ||
| "samples", | ||
| "tests", | ||
| # Exclude packages that will be covered by PEP420 or nspkg | ||
| "azure", | ||
| "azure.keyvault", | ||
| "azure.keyvault.certificates", | ||
| ] |
There was a problem hiding this comment.
In find_packages(exclude=...), excluding azure.keyvault.certificates will prevent the package azure.keyvault.certificates (and potentially its subpackages) from being included in the wheel, which will break imports like azure.keyvault.certificates._generated. Other Key Vault track-2 packages only exclude azure and azure.keyvault. Consider removing azure.keyvault.certificates from the exclude list (or using an explicit include pattern instead).
|
|
||
| from ._version import VERSION | ||
| __version__ = VERSION | ||
| __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore |
There was a problem hiding this comment.
This __init__.py change removes all public exports (CertificateClient, models/enums, ApiVersion, __version__, etc.) and leaves only a namespace package stub. That is a breaking change for azure-keyvault-certificates and will also break this package’s own tests/samples that import azure.keyvault.certificates.CertificateClient. If the intent is to move implementation under _generated, please re-export the public surface here (or provide compatibility wrappers) to preserve the existing API.
| __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore | |
| __path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore | |
| from ._client import CertificateClient | |
| from . import _models | |
| from . import _enums | |
| from ._version import VERSION | |
| __all__ = ["CertificateClient"] | |
| __all__ += _models.__all__ | |
| __all__ += _enums.__all__ | |
| __version__ = VERSION |
| skip changelog generation for data-plane package and please add changelog manually. | ||
|
|
||
| ## 4.10.1 (Unreleased) | ||
|
|
There was a problem hiding this comment.
The 4.11.0 section contains an internal instruction (“skip changelog generation…”) and doesn’t list the actual user-facing changes mentioned in the PR description (e.g., SAN uris / ip_addresses). Please replace this with real release notes, and ensure the “(Unreleased)” section is bumped to the next version as per repo conventions.
| skip changelog generation for data-plane package and please add changelog manually. | |
| ## 4.10.1 (Unreleased) | |
| ### Features Added | |
| - Added support for specifying subject alternative names (SANs) as `uris` and `ip_addresses` when creating certificates. | |
| ### Breaking Changes | |
| ### Bugs Fixed | |
| ### Other Changes | |
| ## 4.11.1 (Unreleased) |
| uniform_resource_identifiers: Optional[list[str]] = rest_field( | ||
| name="uris", visibility=["read", "create", "update", "delete", "query"] | ||
| ) | ||
| """Uniform Resource Identifiers.""" | ||
| ip_addresses: Optional[list[str]] = rest_field( | ||
| name="ipAddresses", visibility=["read", "create", "update", "delete", "query"] | ||
| ) | ||
| """IP addresses; supports IPv4 and IPv6.""" |
There was a problem hiding this comment.
The new SubjectAlternativeNames field is exposed as uniform_resource_identifiers (mapped to REST name uris), but the PR description/release notes call out an added uris property. If this is intended to be a public model property, the Python attribute name should likely be uris for consistency with the service field name and the existing SAN naming pattern (dns_names, ip_addresses, etc.). Consider renaming the attribute to uris (with appropriate compatibility if needed).
| subscription is cancelled. System wil permanently delete it after 90 days, if not recovered.""" | ||
| RECOVERABLE = "Recoverable" | ||
| """Denotes a vault state in which deletion is recoverable without the possibility for immediate | ||
| and permanent deletion (i.e. purge). This level guarantees the recoverability of the deleted | ||
| entity during the retention interval (90 days) and while the subscription is still available. | ||
| System wil permanently delete it after 90 days, if not recovered""" | ||
| System wil permanently delete it after 90 days, if not recovered.""" |
There was a problem hiding this comment.
Docstring typo: “System wil permanently delete…” should be “System will permanently delete…”. Since these lines were modified, it would be good to fix the spelling while touching the docstring.
| additionalDirectories: | ||
| - specification/keyvault/Security.KeyVault.Common |
There was a problem hiding this comment.
Other Key Vault packages’ tsp-location.yaml entries for additionalDirectories include a trailing slash (e.g., .../Security.KeyVault.Common/). Dropping the slash and changing formatting here may cause path resolution differences in tooling. Consider keeping the same convention as the other Key Vault packages for consistency.
| @@ -1,3 +1,4 @@ | |||
| # pylint: disable=line-too-long,useless-suppression | |||
There was a problem hiding this comment.
# pylint: disable=... includes useless-suppression, which disables pylint’s check that suppression directives are actually needed. Since line-too-long is already being suppressed for this file, consider dropping useless-suppression and keeping only the targeted disable(s).
…1.0, fix tsp-location.yaml - Rename Python attribute uniform_resource_identifiers -> uris in SubjectAlternativeNames model (matches REST field name, consistent with other SAN fields like dns_names, ip_addresses) - Bump package version 4.10.1 -> 4.11.0 (new feature, minor version bump) - Update CHANGELOG with proper release notes for 4.11.0 - Fix tsp-location.yaml: add trailing slash to Security.KeyVault.Common path - Add _metadata.json and apiview-properties.json from generator output - Update tsp-location.yaml commit SHA to spec PR merge commit Addresses Copilot review feedback on PR #45607
|
Superseded by #45654 which fixes post-generation issues. Closing this PR. |
Configurations: 'specification/keyvault/Security.KeyVault.Certificates/tspconfig.yaml', API Version: 2025-07-01, SDK Release Type: stable, and CommitSHA: '48e2c462287288d03adad21e682404d90375462e' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=5985841 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
4.11.0 (2026-03-10)
Features Added
urisproperty toSubjectAlternativeNamesfor URI alternative namesip_addressesproperty toSubjectAlternativeNamesfor IP address alternative names