diff --git a/.chronus/changes/add-test-alternate-initial-verb-post-2026-3-18-22-38-49.md b/.chronus/changes/add-test-alternate-initial-verb-post-2026-3-18-22-38-49.md new file mode 100644 index 0000000000..ef8c528137 --- /dev/null +++ b/.chronus/changes/add-test-alternate-initial-verb-post-2026-3-18-22-38-49.md @@ -0,0 +1,8 @@ +--- +changeKind: internal +packages: + - "@autorest/python" + - "@azure-tools/typespec-python" +--- + +Add mock API test case for the `AlternateInitialVerb` POST pagination scenario where the initial request uses POST with a filter body and subsequent next link requests use GET. diff --git a/.chronus/changes/skip-client-structure-tests-pending-tcgc-upgrade-2026-3-18.md b/.chronus/changes/skip-client-structure-tests-pending-tcgc-upgrade-2026-3-18.md new file mode 100644 index 0000000000..bf8a54e932 --- /dev/null +++ b/.chronus/changes/skip-client-structure-tests-pending-tcgc-upgrade-2026-3-18.md @@ -0,0 +1,8 @@ +--- +changeKind: internal +packages: + - "@autorest/python" + - "@azure-tools/typespec-python" +--- + +Skip 8 failing client structure test cases pending `@azure-tools/typespec-client-generator-core` upgrade to 0.67.0 diff --git a/packages/autorest.python/package.json b/packages/autorest.python/package.json index 1a132553bd..8d44652bbf 100644 --- a/packages/autorest.python/package.json +++ b/packages/autorest.python/package.json @@ -29,7 +29,7 @@ }, "homepage": "https://github.com/Azure/autorest.python/blob/main/README.md", "dependencies": { - "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAyMDkyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz", + "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAzMjIxMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz", "@autorest/system-requirements": "~1.0.2", "fs-extra": "~11.2.0", "tsx": "^4.21.0" diff --git a/packages/typespec-python/package.json b/packages/typespec-python/package.json index 8b9ca9b36b..92171a080e 100644 --- a/packages/typespec-python/package.json +++ b/packages/typespec-python/package.json @@ -60,14 +60,14 @@ "@azure-tools/typespec-azure-core": ">=0.66.0 <1.0.0", "@azure-tools/typespec-azure-resource-manager": ">=0.66.0 <1.0.0", "@azure-tools/typespec-autorest": ">=0.66.0 <1.0.0", - "@azure-tools/typespec-azure-rulesets": ">=0.65.1 <1.0.0", - "@azure-tools/typespec-client-generator-core": ">=0.66.1 <1.0.0" + "@azure-tools/typespec-azure-rulesets": ">=0.66.0 <1.0.0", + "@azure-tools/typespec-client-generator-core": ">=0.66.2 <1.0.0" }, "dependencies": { "js-yaml": "~4.1.0", "semver": "~7.6.2", "tsx": "^4.21.0", - "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAyMDkyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz", + "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAzMjIxMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz", "fs-extra": "~11.2.0" }, "devDependencies": { @@ -83,11 +83,11 @@ "@typespec/xml": "~0.80.0", "@azure-tools/typespec-azure-resource-manager": "~0.66.0", "@azure-tools/typespec-azure-core": "~0.66.0", - "@azure-tools/typespec-azure-rulesets": "~0.65.1", + "@azure-tools/typespec-azure-rulesets": "~0.66.0", "@azure-tools/typespec-autorest": "~0.66.0", - "@azure-tools/typespec-client-generator-core": "~0.66.1", - "@azure-tools/azure-http-specs": "0.1.0-alpha.39-dev.3", - "@typespec/http-specs": "0.1.0-alpha.35-dev.1", + "@azure-tools/typespec-client-generator-core": "~0.66.2", + "@azure-tools/azure-http-specs": "0.1.0-alpha.39-dev.4", + "@typespec/http-specs": "0.1.0-alpha.35-dev.4", "@typespec/spector": "0.1.0-alpha.24", "@typespec/spec-api": "0.1.0-alpha.14-dev.1", "@types/js-yaml": "~4.0.5", diff --git a/packages/typespec-python/test/azure/generated/payload-pageable/apiview-properties.json b/packages/typespec-python/test/azure/generated/payload-pageable/apiview-properties.json index 4758f8b27f..c68ff20197 100644 --- a/packages/typespec-python/test/azure/generated/payload-pageable/apiview-properties.json +++ b/packages/typespec-python/test/azure/generated/payload-pageable/apiview-properties.json @@ -1,6 +1,7 @@ { "CrossLanguagePackageId": "Payload.Pageable", "CrossLanguageDefinitionId": { + "payload.pageable.serverdrivenpagination.alternateinitialverb.models.Filter": "Payload.Pageable.ServerDrivenPagination.AlternateInitialVerb.Filter", "payload.pageable.serverdrivenpagination.models.NestedLinkResponseNestedItems": "Payload.Pageable.ServerDrivenPagination.nestedLink.Response.nestedItems.anonymous", "payload.pageable.serverdrivenpagination.models.NestedLinkResponseNestedNext": "Payload.Pageable.ServerDrivenPagination.nestedLink.Response.nestedNext.anonymous", "payload.pageable.models.Pet": "Payload.Pageable.Pet", diff --git a/packages/typespec-python/test/azure/generated/payload-pageable/generated_tests/test_pageable_server_driven_pagination_operations.py b/packages/typespec-python/test/azure/generated/payload-pageable/generated_tests/test_pageable_server_driven_pagination_operations.py index 6975068930..0a09586b0b 100644 --- a/packages/typespec-python/test/azure/generated/payload-pageable/generated_tests/test_pageable_server_driven_pagination_operations.py +++ b/packages/typespec-python/test/azure/generated/payload-pageable/generated_tests/test_pageable_server_driven_pagination_operations.py @@ -39,6 +39,17 @@ def test_server_driven_pagination_nested_link(self, pageable_endpoint): # please add some check logic here by yourself # ... + @PageablePreparer() + @recorded_by_proxy + def test_server_driven_pagination_alternate_initial_verb_post(self, pageable_endpoint): + client = self.create_client(endpoint=pageable_endpoint) + response = client.server_driven_pagination.alternate_initial_verb.post( + body={"filter": "str"}, + ) + result = [r for r in response] + # please add some check logic here by yourself + # ... + @PageablePreparer() @recorded_by_proxy def test_server_driven_pagination_continuation_token_request_query_response_body(self, pageable_endpoint): diff --git a/packages/typespec-python/test/azure/generated/payload-pageable/generated_tests/test_pageable_server_driven_pagination_operations_async.py b/packages/typespec-python/test/azure/generated/payload-pageable/generated_tests/test_pageable_server_driven_pagination_operations_async.py index 45fbe9023f..67fc576791 100644 --- a/packages/typespec-python/test/azure/generated/payload-pageable/generated_tests/test_pageable_server_driven_pagination_operations_async.py +++ b/packages/typespec-python/test/azure/generated/payload-pageable/generated_tests/test_pageable_server_driven_pagination_operations_async.py @@ -40,6 +40,17 @@ async def test_server_driven_pagination_nested_link(self, pageable_endpoint): # please add some check logic here by yourself # ... + @PageablePreparer() + @recorded_by_proxy_async + async def test_server_driven_pagination_alternate_initial_verb_post(self, pageable_endpoint): + client = self.create_async_client(endpoint=pageable_endpoint) + response = client.server_driven_pagination.alternate_initial_verb.post( + body={"filter": "str"}, + ) + result = [r async for r in response] + # please add some check logic here by yourself + # ... + @PageablePreparer() @recorded_by_proxy_async async def test_server_driven_pagination_continuation_token_request_query_response_body(self, pageable_endpoint): diff --git a/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/aio/operations/_operations.py b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/aio/operations/_operations.py index 2a8f7399c3..0e09818364 100644 --- a/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/aio/operations/_operations.py +++ b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/aio/operations/_operations.py @@ -26,6 +26,7 @@ from ...._utils.model_base import _deserialize from ...._utils.serialization import Deserializer, Serializer from ....aio._configuration import PageableClientConfiguration +from ...alternateinitialverb.aio.operations._operations import ServerDrivenPaginationAlternateInitialVerbOperations from ...continuationtoken.aio.operations._operations import ServerDrivenPaginationContinuationTokenOperations from ...operations._operations import ( build_server_driven_pagination_link_request, @@ -54,6 +55,9 @@ def __init__(self, *args, **kwargs) -> None: self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self.alternate_initial_verb = ServerDrivenPaginationAlternateInitialVerbOperations( + self._client, self._config, self._serialize, self._deserialize + ) self.continuation_token = ServerDrivenPaginationContinuationTokenOperations( self._client, self._config, self._serialize, self._deserialize ) diff --git a/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/__init__.py b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/__init__.py new file mode 100644 index 0000000000..d55ccad1f5 --- /dev/null +++ b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/__init__.py @@ -0,0 +1 @@ +__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore diff --git a/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/__init__.py b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/__init__.py new file mode 100644 index 0000000000..d55ccad1f5 --- /dev/null +++ b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/__init__.py @@ -0,0 +1 @@ +__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore diff --git a/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/__init__.py b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/__init__.py new file mode 100644 index 0000000000..933fcd7d1b --- /dev/null +++ b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/__init__.py @@ -0,0 +1,22 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=wrong-import-position + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + + +from ._patch import __all__ as _patch_all +from ._patch import * +from ._patch import patch_sdk as _patch_sdk + +__all__ = [] +__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore +_patch_sdk() diff --git a/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/_operations.py b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/_operations.py new file mode 100644 index 0000000000..1f61fe837c --- /dev/null +++ b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/_operations.py @@ -0,0 +1,188 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from collections.abc import MutableMapping +from io import IOBase +import json +from typing import Any, Callable, IO, Optional, TypeVar, Union, overload + +from azure.core import AsyncPipelineClient +from azure.core.async_paging import AsyncItemPaged, AsyncList +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + map_error, +) +from azure.core.pipeline import PipelineResponse +from azure.core.rest import AsyncHttpResponse, HttpRequest +from azure.core.tracing.decorator import distributed_trace +from azure.core.utils import case_insensitive_dict + +from ... import models as _models2 +from ..... import models as _models4 +from ....._utils.model_base import SdkJSONEncoder, _deserialize +from ....._utils.serialization import Deserializer, Serializer +from .....aio._configuration import PageableClientConfiguration +from ...operations._operations import build_server_driven_pagination_alternate_initial_verb_post_request + +JSON = MutableMapping[str, Any] +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, dict[str, Any]], Any]] + + +class ServerDrivenPaginationAlternateInitialVerbOperations: # pylint: disable=name-too-long + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~payload.pageable.aio.PageableClient`'s + :attr:`alternate_initial_verb` attribute. + """ + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: PageableClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config") + self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @overload + def post( + self, body: _models2.Filter, *, content_type: str = "application/json", **kwargs: Any + ) -> AsyncItemPaged["_models4.Pet"]: + """post. + + :param body: Required. + :type body: ~payload.pageable.serverdrivenpagination.alternateinitialverb.models.Filter + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An iterator like instance of Pet + :rtype: ~azure.core.async_paging.AsyncItemPaged[~payload.pageable.models.Pet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def post( + self, body: JSON, *, content_type: str = "application/json", **kwargs: Any + ) -> AsyncItemPaged["_models4.Pet"]: + """post. + + :param body: Required. + :type body: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An iterator like instance of Pet + :rtype: ~azure.core.async_paging.AsyncItemPaged[~payload.pageable.models.Pet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def post( + self, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> AsyncItemPaged["_models4.Pet"]: + """post. + + :param body: Required. + :type body: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An iterator like instance of Pet + :rtype: ~azure.core.async_paging.AsyncItemPaged[~payload.pageable.models.Pet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def post(self, body: Union[_models2.Filter, JSON, IO[bytes]], **kwargs: Any) -> AsyncItemPaged["_models4.Pet"]: + """post. + + :param body: Is one of the following types: Filter, JSON, IO[bytes] Required. + :type body: ~payload.pageable.serverdrivenpagination.alternateinitialverb.models.Filter or JSON + or IO[bytes] + :return: An iterator like instance of Pet + :rtype: ~azure.core.async_paging.AsyncItemPaged[~payload.pageable.models.Pet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[list[_models4.Pet]] = kwargs.pop("cls", None) + + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + content_type = content_type or "application/json" + _content = None + if isinstance(body, (IOBase, bytes)): + _content = body + else: + _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + def prepare_request(next_link=None): + if not next_link: + + _request = build_server_driven_pagination_alternate_initial_verb_post_request( + content_type=content_type, + content=_content, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + else: + _request = HttpRequest("GET", next_link) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + return _request + + async def extract_data(pipeline_response): + deserialized = pipeline_response.http_response.json() + list_of_elem = _deserialize( + list[_models4.Pet], + deserialized.get("pets", []), + ) + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.get("next") or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) diff --git a/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/_patch.py b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/_patch.py new file mode 100644 index 0000000000..87676c65a8 --- /dev/null +++ b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/_patch.py @@ -0,0 +1,21 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------- +"""Customize generated code here. + +Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize +""" + + +__all__: list[str] = [] # Add all objects you want publicly available to users at this package level + + +def patch_sdk(): + """Do not remove from this file. + + `patch_sdk` is a last resort escape hatch that allows you to do customizations + you can't accomplish using the techniques described in + https://aka.ms/azsdk/python/dpcodegen/python/customize + """ diff --git a/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/__init__.py b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/__init__.py new file mode 100644 index 0000000000..adc4d23e7e --- /dev/null +++ b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/__init__.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=wrong-import-position + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + + +from ._models import ( # type: ignore + Filter, +) +from ._patch import __all__ as _patch_all +from ._patch import * +from ._patch import patch_sdk as _patch_sdk + +__all__ = [ + "Filter", +] +__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore +_patch_sdk() diff --git a/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/_models.py b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/_models.py new file mode 100644 index 0000000000..d8b5b518a0 --- /dev/null +++ b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/_models.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=useless-super-delegation + +from typing import Any, Mapping, overload + +from ...._utils.model_base import Model as _Model, rest_field + + +class Filter(_Model): + """Filter. + + :ivar filter: Required. + :vartype filter: str + """ + + filter: str = rest_field(visibility=["read", "create", "update", "delete", "query"]) + """Required.""" + + @overload + def __init__( + self, + *, + filter: str, # pylint: disable=redefined-builtin + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: + """ + :param mapping: raw JSON to initialize the model. + :type mapping: Mapping[str, Any] + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) diff --git a/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/_patch.py b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/_patch.py new file mode 100644 index 0000000000..87676c65a8 --- /dev/null +++ b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/_patch.py @@ -0,0 +1,21 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------- +"""Customize generated code here. + +Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize +""" + + +__all__: list[str] = [] # Add all objects you want publicly available to users at this package level + + +def patch_sdk(): + """Do not remove from this file. + + `patch_sdk` is a last resort escape hatch that allows you to do customizations + you can't accomplish using the techniques described in + https://aka.ms/azsdk/python/dpcodegen/python/customize + """ diff --git a/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/__init__.py b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/__init__.py new file mode 100644 index 0000000000..933fcd7d1b --- /dev/null +++ b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/__init__.py @@ -0,0 +1,22 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=wrong-import-position + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + + +from ._patch import __all__ as _patch_all +from ._patch import * +from ._patch import patch_sdk as _patch_sdk + +__all__ = [] +__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore +_patch_sdk() diff --git a/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/_operations.py b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/_operations.py new file mode 100644 index 0000000000..1f1c166bb3 --- /dev/null +++ b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/_operations.py @@ -0,0 +1,207 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +from collections.abc import MutableMapping +from io import IOBase +import json +from typing import Any, Callable, IO, Optional, TypeVar, Union, overload + +from azure.core import PipelineClient +from azure.core.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + map_error, +) +from azure.core.paging import ItemPaged +from azure.core.pipeline import PipelineResponse +from azure.core.rest import HttpRequest, HttpResponse +from azure.core.tracing.decorator import distributed_trace +from azure.core.utils import case_insensitive_dict + +from .. import models as _models1 +from .... import models as _models3 +from ...._configuration import PageableClientConfiguration +from ...._utils.model_base import SdkJSONEncoder, _deserialize +from ...._utils.serialization import Deserializer, Serializer + +JSON = MutableMapping[str, Any] +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, dict[str, Any]], Any]] + +_SERIALIZER = Serializer() +_SERIALIZER.client_side_validation = False + + +def build_server_driven_pagination_alternate_initial_verb_post_request( # pylint: disable=name-too-long + **kwargs: Any, +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = "/payload/pageable/server-driven-pagination/link/initial-post" + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="POST", url=_url, headers=_headers, **kwargs) + + +class ServerDrivenPaginationAlternateInitialVerbOperations: # pylint: disable=name-too-long + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~payload.pageable.PageableClient`'s + :attr:`alternate_initial_verb` attribute. + """ + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: PageableClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config") + self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @overload + def post( + self, body: _models1.Filter, *, content_type: str = "application/json", **kwargs: Any + ) -> ItemPaged["_models3.Pet"]: + """post. + + :param body: Required. + :type body: ~payload.pageable.serverdrivenpagination.alternateinitialverb.models.Filter + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An iterator like instance of Pet + :rtype: ~azure.core.paging.ItemPaged[~payload.pageable.models.Pet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def post(self, body: JSON, *, content_type: str = "application/json", **kwargs: Any) -> ItemPaged["_models3.Pet"]: + """post. + + :param body: Required. + :type body: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An iterator like instance of Pet + :rtype: ~azure.core.paging.ItemPaged[~payload.pageable.models.Pet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @overload + def post( + self, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> ItemPaged["_models3.Pet"]: + """post. + + :param body: Required. + :type body: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An iterator like instance of Pet + :rtype: ~azure.core.paging.ItemPaged[~payload.pageable.models.Pet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + + @distributed_trace + def post(self, body: Union[_models1.Filter, JSON, IO[bytes]], **kwargs: Any) -> ItemPaged["_models3.Pet"]: + """post. + + :param body: Is one of the following types: Filter, JSON, IO[bytes] Required. + :type body: ~payload.pageable.serverdrivenpagination.alternateinitialverb.models.Filter or JSON + or IO[bytes] + :return: An iterator like instance of Pet + :rtype: ~azure.core.paging.ItemPaged[~payload.pageable.models.Pet] + :raises ~azure.core.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[list[_models3.Pet]] = kwargs.pop("cls", None) + + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + content_type = content_type or "application/json" + _content = None + if isinstance(body, (IOBase, bytes)): + _content = body + else: + _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + def prepare_request(next_link=None): + if not next_link: + + _request = build_server_driven_pagination_alternate_initial_verb_post_request( + content_type=content_type, + content=_content, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + else: + _request = HttpRequest("GET", next_link) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + return _request + + def extract_data(pipeline_response): + deserialized = pipeline_response.http_response.json() + list_of_elem = _deserialize( + list[_models3.Pet], + deserialized.get("pets", []), + ) + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.get("next") or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response) + + return pipeline_response + + return ItemPaged(get_next, extract_data) diff --git a/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/_patch.py b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/_patch.py new file mode 100644 index 0000000000..87676c65a8 --- /dev/null +++ b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/_patch.py @@ -0,0 +1,21 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------- +"""Customize generated code here. + +Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize +""" + + +__all__: list[str] = [] # Add all objects you want publicly available to users at this package level + + +def patch_sdk(): + """Do not remove from this file. + + `patch_sdk` is a last resort escape hatch that allows you to do customizations + you can't accomplish using the techniques described in + https://aka.ms/azsdk/python/dpcodegen/python/customize + """ diff --git a/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/operations/_operations.py b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/operations/_operations.py index 4106fbbd4a..05c21a6afc 100644 --- a/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/operations/_operations.py +++ b/packages/typespec-python/test/azure/generated/payload-pageable/payload/pageable/serverdrivenpagination/operations/_operations.py @@ -27,6 +27,7 @@ from ..._configuration import PageableClientConfiguration from ..._utils.model_base import _deserialize from ..._utils.serialization import Deserializer, Serializer +from ..alternateinitialverb.operations._operations import ServerDrivenPaginationAlternateInitialVerbOperations from ..continuationtoken.operations._operations import ServerDrivenPaginationContinuationTokenOperations T = TypeVar("T") @@ -95,6 +96,9 @@ def __init__(self, *args, **kwargs) -> None: self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self.alternate_initial_verb = ServerDrivenPaginationAlternateInitialVerbOperations( + self._client, self._config, self._serialize, self._deserialize + ) self.continuation_token = ServerDrivenPaginationContinuationTokenOperations( self._client, self._config, self._serialize, self._deserialize ) diff --git a/packages/typespec-python/test/azure/mock_api_tests/asynctests/test_client_structure_async.py b/packages/typespec-python/test/azure/mock_api_tests/asynctests/test_client_structure_async.py index 0dd3cf01cf..fa58bd0f75 100644 --- a/packages/typespec-python/test/azure/mock_api_tests/asynctests/test_client_structure_async.py +++ b/packages/typespec-python/test/azure/mock_api_tests/asynctests/test_client_structure_async.py @@ -38,6 +38,7 @@ async def test_structure_multiclient(): await client_b.renamed_six() +@pytest.mark.skip(reason="will reopen the cases after upgrade `@azure-tools/typespec-client-generator-core` to 0.67.0") @pytest.mark.asyncio async def test_structure_renamed_operation(): client = RenamedOperationClient(endpoint="http://localhost:3000", client=ClientType.RENAMED_OPERATION) @@ -50,6 +51,7 @@ async def test_structure_renamed_operation(): await client.renamed_six() +@pytest.mark.skip(reason="will reopen the cases after upgrade `@azure-tools/typespec-client-generator-core` to 0.67.0") @pytest.mark.asyncio async def test_structure_two_operation_group(): client = TwoOperationGroupClient(endpoint="http://localhost:3000", client=ClientType.TWO_OPERATION_GROUP) diff --git a/packages/typespec-python/test/azure/mock_api_tests/asynctests/test_client_structure_clientoperationgroup_async.py b/packages/typespec-python/test/azure/mock_api_tests/asynctests/test_client_structure_clientoperationgroup_async.py index 5e3edcfa80..0b3ba88d30 100644 --- a/packages/typespec-python/test/azure/mock_api_tests/asynctests/test_client_structure_clientoperationgroup_async.py +++ b/packages/typespec-python/test/azure/mock_api_tests/asynctests/test_client_structure_clientoperationgroup_async.py @@ -8,6 +8,7 @@ from client.structure.clientoperationgroup.aio import FirstClient, SecondClient +@pytest.mark.skip(reason="will reopen the cases after upgrade `@azure-tools/typespec-client-generator-core` to 0.67.0") @pytest.mark.asyncio async def test_first_client_operations(): client = FirstClient(endpoint="http://localhost:3000", client=ClientType.CLIENT_OPERATION_GROUP) @@ -20,6 +21,7 @@ async def test_first_client_operations(): await client.four() +@pytest.mark.skip(reason="will reopen the cases after upgrade `@azure-tools/typespec-client-generator-core` to 0.67.0") @pytest.mark.asyncio async def test_second_client_operations(): client = SecondClient(endpoint="http://localhost:3000", client=ClientType.CLIENT_OPERATION_GROUP) diff --git a/packages/typespec-python/test/azure/mock_api_tests/test_client_structure.py b/packages/typespec-python/test/azure/mock_api_tests/test_client_structure.py index b3328454a2..e83d1ce6d6 100644 --- a/packages/typespec-python/test/azure/mock_api_tests/test_client_structure.py +++ b/packages/typespec-python/test/azure/mock_api_tests/test_client_structure.py @@ -3,6 +3,7 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +import pytest from client.structure.service.models import ClientType from client.structure.service import ServiceClient from client.structure.multiclient import ClientAClient, ClientBClient @@ -35,6 +36,7 @@ def test_structure_multiclient(): client_b.renamed_six() +@pytest.mark.skip(reason="will reopen the cases after upgrade `@azure-tools/typespec-client-generator-core` to 0.67.0") def test_structure_renamed_operation(): client = RenamedOperationClient(endpoint="http://localhost:3000", client=ClientType.RENAMED_OPERATION) client.renamed_one() @@ -46,6 +48,7 @@ def test_structure_renamed_operation(): client.renamed_six() +@pytest.mark.skip(reason="will reopen the cases after upgrade `@azure-tools/typespec-client-generator-core` to 0.67.0") def test_structure_two_operation_group(): client = TwoOperationGroupClient(endpoint="http://localhost:3000", client=ClientType.TWO_OPERATION_GROUP) client.one() diff --git a/packages/typespec-python/test/azure/mock_api_tests/test_client_structure_clientoperationgroup.py b/packages/typespec-python/test/azure/mock_api_tests/test_client_structure_clientoperationgroup.py index 9cad78e78b..aa6d3c8a90 100644 --- a/packages/typespec-python/test/azure/mock_api_tests/test_client_structure_clientoperationgroup.py +++ b/packages/typespec-python/test/azure/mock_api_tests/test_client_structure_clientoperationgroup.py @@ -3,10 +3,12 @@ # Licensed under the MIT License. See License.txt in the project root for # license information. # -------------------------------------------------------------------------- +import pytest from client.structure.clientoperationgroup.models import ClientType from client.structure.clientoperationgroup import FirstClient, SecondClient +@pytest.mark.skip(reason="will reopen the cases after upgrade `@azure-tools/typespec-client-generator-core` to 0.67.0") def test_first_client_operations(): client = FirstClient(endpoint="http://localhost:3000", client=ClientType.CLIENT_OPERATION_GROUP) @@ -18,6 +20,7 @@ def test_first_client_operations(): client.four() +@pytest.mark.skip(reason="will reopen the cases after upgrade `@azure-tools/typespec-client-generator-core` to 0.67.0") def test_second_client_operations(): client = SecondClient(endpoint="http://localhost:3000", client=ClientType.CLIENT_OPERATION_GROUP) diff --git a/packages/typespec-python/test/generic_mock_api_tests/asynctests/test_payload_pageable_async.py b/packages/typespec-python/test/generic_mock_api_tests/asynctests/test_payload_pageable_async.py index c14800bb7d..f0994df97b 100644 --- a/packages/typespec-python/test/generic_mock_api_tests/asynctests/test_payload_pageable_async.py +++ b/packages/typespec-python/test/generic_mock_api_tests/asynctests/test_payload_pageable_async.py @@ -5,6 +5,7 @@ # -------------------------------------------------------------------------- import pytest from payload.pageable.aio import PageableClient +from payload.pageable.serverdrivenpagination.alternateinitialverb.models import Filter @pytest.fixture @@ -125,3 +126,9 @@ async def test_xml_pagination_list_with_continuation(client: PageableClient): async def test_xml_pagination_list_with_next_link(client: PageableClient): result = [p async for p in client.xml_pagination.list_with_next_link()] assert_result(result) + + +@pytest.mark.asyncio +async def test_alternate_initial_verb_post(client: PageableClient): + result = [p async for p in client.server_driven_pagination.alternate_initial_verb.post(Filter(filter="foo eq bar"))] + assert_result(result) diff --git a/packages/typespec-python/test/generic_mock_api_tests/test_payload_pageable.py b/packages/typespec-python/test/generic_mock_api_tests/test_payload_pageable.py index 66cc77022d..7aaf8e0ce3 100644 --- a/packages/typespec-python/test/generic_mock_api_tests/test_payload_pageable.py +++ b/packages/typespec-python/test/generic_mock_api_tests/test_payload_pageable.py @@ -5,6 +5,7 @@ # -------------------------------------------------------------------------- import pytest from payload.pageable import PageableClient +from payload.pageable.serverdrivenpagination.alternateinitialverb.models import Filter @pytest.fixture @@ -91,3 +92,8 @@ def test_xml_pagination_list_with_continuation(client: PageableClient): def test_xml_pagination_list_with_next_link(client: PageableClient): result = list(client.xml_pagination.list_with_next_link()) assert_result(result) + + +def test_alternate_initial_verb_post(client: PageableClient): + result = list(client.server_driven_pagination.alternate_initial_verb.post(Filter(filter="foo eq bar"))) + assert_result(result) diff --git a/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/aio/operations/_operations.py b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/aio/operations/_operations.py index f5fdd1d1f7..1794da06e3 100644 --- a/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/aio/operations/_operations.py +++ b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/aio/operations/_operations.py @@ -19,6 +19,7 @@ from ...._utils.model_base import _deserialize from ...._utils.serialization import Deserializer, Serializer from ....aio._configuration import PageableClientConfiguration +from ...alternateinitialverb.aio.operations._operations import ServerDrivenPaginationAlternateInitialVerbOperations from ...continuationtoken.aio.operations._operations import ServerDrivenPaginationContinuationTokenOperations from ...operations._operations import ( build_server_driven_pagination_link_request, @@ -47,6 +48,9 @@ def __init__(self, *args, **kwargs) -> None: self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self.alternate_initial_verb = ServerDrivenPaginationAlternateInitialVerbOperations( + self._client, self._config, self._serialize, self._deserialize + ) self.continuation_token = ServerDrivenPaginationContinuationTokenOperations( self._client, self._config, self._serialize, self._deserialize ) diff --git a/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/__init__.py b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/__init__.py new file mode 100644 index 0000000000..d55ccad1f5 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/__init__.py @@ -0,0 +1 @@ +__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore diff --git a/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/__init__.py b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/__init__.py new file mode 100644 index 0000000000..d55ccad1f5 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/__init__.py @@ -0,0 +1 @@ +__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore diff --git a/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/__init__.py b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/__init__.py new file mode 100644 index 0000000000..0d033db47c --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/__init__.py @@ -0,0 +1,16 @@ +# coding=utf-8 +# pylint: disable=wrong-import-position + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + + +from ._patch import __all__ as _patch_all +from ._patch import * +from ._patch import patch_sdk as _patch_sdk + +__all__ = [] +__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore +_patch_sdk() diff --git a/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/_operations.py b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/_operations.py new file mode 100644 index 0000000000..4f9b440032 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/_operations.py @@ -0,0 +1,178 @@ +# coding=utf-8 +from collections.abc import MutableMapping +from io import IOBase +import json +from typing import Any, Callable, IO, Optional, TypeVar, Union, overload + +from corehttp.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + map_error, +) +from corehttp.paging import AsyncItemPaged, AsyncList +from corehttp.rest import AsyncHttpResponse, HttpRequest +from corehttp.runtime import AsyncPipelineClient +from corehttp.runtime.pipeline import PipelineResponse +from corehttp.utils import case_insensitive_dict + +from ... import models as _models2 +from ..... import models as _models4 +from ....._utils.model_base import SdkJSONEncoder, _deserialize +from ....._utils.serialization import Deserializer, Serializer +from .....aio._configuration import PageableClientConfiguration +from ...operations._operations import build_server_driven_pagination_alternate_initial_verb_post_request + +JSON = MutableMapping[str, Any] +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, dict[str, Any]], Any]] + + +class ServerDrivenPaginationAlternateInitialVerbOperations: # pylint: disable=name-too-long + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~payload.pageable.aio.PageableClient`'s + :attr:`alternate_initial_verb` attribute. + """ + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: PageableClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config") + self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @overload + def post( + self, body: _models2.Filter, *, content_type: str = "application/json", **kwargs: Any + ) -> AsyncItemPaged["_models4.Pet"]: + """post. + + :param body: Required. + :type body: ~payload.pageable.serverdrivenpagination.alternateinitialverb.models.Filter + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An iterator like instance of Pet + :rtype: ~corehttp.paging.AsyncItemPaged[~payload.pageable.models.Pet] + :raises ~corehttp.exceptions.HttpResponseError: + """ + + @overload + def post( + self, body: JSON, *, content_type: str = "application/json", **kwargs: Any + ) -> AsyncItemPaged["_models4.Pet"]: + """post. + + :param body: Required. + :type body: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An iterator like instance of Pet + :rtype: ~corehttp.paging.AsyncItemPaged[~payload.pageable.models.Pet] + :raises ~corehttp.exceptions.HttpResponseError: + """ + + @overload + def post( + self, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> AsyncItemPaged["_models4.Pet"]: + """post. + + :param body: Required. + :type body: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An iterator like instance of Pet + :rtype: ~corehttp.paging.AsyncItemPaged[~payload.pageable.models.Pet] + :raises ~corehttp.exceptions.HttpResponseError: + """ + + def post(self, body: Union[_models2.Filter, JSON, IO[bytes]], **kwargs: Any) -> AsyncItemPaged["_models4.Pet"]: + """post. + + :param body: Is one of the following types: Filter, JSON, IO[bytes] Required. + :type body: ~payload.pageable.serverdrivenpagination.alternateinitialverb.models.Filter or JSON + or IO[bytes] + :return: An iterator like instance of Pet + :rtype: ~corehttp.paging.AsyncItemPaged[~payload.pageable.models.Pet] + :raises ~corehttp.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[list[_models4.Pet]] = kwargs.pop("cls", None) + + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + content_type = content_type or "application/json" + _content = None + if isinstance(body, (IOBase, bytes)): + _content = body + else: + _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + def prepare_request(next_link=None): + if not next_link: + + _request = build_server_driven_pagination_alternate_initial_verb_post_request( + content_type=content_type, + content=_content, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + else: + _request = HttpRequest("GET", next_link) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + return _request + + async def extract_data(pipeline_response): + deserialized = pipeline_response.http_response.json() + list_of_elem = _deserialize( + list[_models4.Pet], + deserialized.get("pets", []), + ) + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.get("next") or None, AsyncList(list_of_elem) + + async def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = await self._client.pipeline.run(_request, stream=_stream, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response) + + return pipeline_response + + return AsyncItemPaged(get_next, extract_data) diff --git a/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/_patch.py b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/_patch.py new file mode 100644 index 0000000000..bbe39eaf69 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/aio/operations/_patch.py @@ -0,0 +1,18 @@ +# coding=utf-8 + +"""Customize generated code here. + +Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize +""" + + +__all__: list[str] = [] # Add all objects you want publicly available to users at this package level + + +def patch_sdk(): + """Do not remove from this file. + + `patch_sdk` is a last resort escape hatch that allows you to do customizations + you can't accomplish using the techniques described in + https://aka.ms/azsdk/python/dpcodegen/python/customize + """ diff --git a/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/__init__.py b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/__init__.py new file mode 100644 index 0000000000..3c9aff415f --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/__init__.py @@ -0,0 +1,21 @@ +# coding=utf-8 +# pylint: disable=wrong-import-position + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + + +from ._models import ( # type: ignore + Filter, +) +from ._patch import __all__ as _patch_all +from ._patch import * +from ._patch import patch_sdk as _patch_sdk + +__all__ = [ + "Filter", +] +__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore +_patch_sdk() diff --git a/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/_models.py b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/_models.py new file mode 100644 index 0000000000..7f85e2ae01 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/_models.py @@ -0,0 +1,34 @@ +# coding=utf-8 +# pylint: disable=useless-super-delegation + +from typing import Any, Mapping, overload + +from ...._utils.model_base import Model as _Model, rest_field + + +class Filter(_Model): + """Filter. + + :ivar filter: Required. + :vartype filter: str + """ + + filter: str = rest_field(visibility=["read", "create", "update", "delete", "query"]) + """Required.""" + + @overload + def __init__( + self, + *, + filter: str, # pylint: disable=redefined-builtin + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: + """ + :param mapping: raw JSON to initialize the model. + :type mapping: Mapping[str, Any] + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) diff --git a/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/_patch.py b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/_patch.py new file mode 100644 index 0000000000..bbe39eaf69 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/models/_patch.py @@ -0,0 +1,18 @@ +# coding=utf-8 + +"""Customize generated code here. + +Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize +""" + + +__all__: list[str] = [] # Add all objects you want publicly available to users at this package level + + +def patch_sdk(): + """Do not remove from this file. + + `patch_sdk` is a last resort escape hatch that allows you to do customizations + you can't accomplish using the techniques described in + https://aka.ms/azsdk/python/dpcodegen/python/customize + """ diff --git a/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/__init__.py b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/__init__.py new file mode 100644 index 0000000000..0d033db47c --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/__init__.py @@ -0,0 +1,16 @@ +# coding=utf-8 +# pylint: disable=wrong-import-position + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + + +from ._patch import __all__ as _patch_all +from ._patch import * +from ._patch import patch_sdk as _patch_sdk + +__all__ = [] +__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore +_patch_sdk() diff --git a/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/_operations.py b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/_operations.py new file mode 100644 index 0000000000..24be6b0671 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/_operations.py @@ -0,0 +1,197 @@ +# coding=utf-8 +from collections.abc import MutableMapping +from io import IOBase +import json +from typing import Any, Callable, IO, Optional, TypeVar, Union, overload + +from corehttp.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + map_error, +) +from corehttp.paging import ItemPaged +from corehttp.rest import HttpRequest, HttpResponse +from corehttp.runtime import PipelineClient +from corehttp.runtime.pipeline import PipelineResponse +from corehttp.utils import case_insensitive_dict + +from .. import models as _models1 +from .... import models as _models3 +from ...._configuration import PageableClientConfiguration +from ...._utils.model_base import SdkJSONEncoder, _deserialize +from ...._utils.serialization import Deserializer, Serializer + +JSON = MutableMapping[str, Any] +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, dict[str, Any]], Any]] + +_SERIALIZER = Serializer() +_SERIALIZER.client_side_validation = False + + +def build_server_driven_pagination_alternate_initial_verb_post_request( # pylint: disable=name-too-long + **kwargs: Any, +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = "/payload/pageable/server-driven-pagination/link/initial-post" + + # Construct headers + if content_type is not None: + _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="POST", url=_url, headers=_headers, **kwargs) + + +class ServerDrivenPaginationAlternateInitialVerbOperations: # pylint: disable=name-too-long + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~payload.pageable.PageableClient`'s + :attr:`alternate_initial_verb` attribute. + """ + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: PageableClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config") + self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @overload + def post( + self, body: _models1.Filter, *, content_type: str = "application/json", **kwargs: Any + ) -> ItemPaged["_models3.Pet"]: + """post. + + :param body: Required. + :type body: ~payload.pageable.serverdrivenpagination.alternateinitialverb.models.Filter + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An iterator like instance of Pet + :rtype: ~corehttp.paging.ItemPaged[~payload.pageable.models.Pet] + :raises ~corehttp.exceptions.HttpResponseError: + """ + + @overload + def post(self, body: JSON, *, content_type: str = "application/json", **kwargs: Any) -> ItemPaged["_models3.Pet"]: + """post. + + :param body: Required. + :type body: JSON + :keyword content_type: Body Parameter content-type. Content type parameter for JSON body. + Default value is "application/json". + :paramtype content_type: str + :return: An iterator like instance of Pet + :rtype: ~corehttp.paging.ItemPaged[~payload.pageable.models.Pet] + :raises ~corehttp.exceptions.HttpResponseError: + """ + + @overload + def post( + self, body: IO[bytes], *, content_type: str = "application/json", **kwargs: Any + ) -> ItemPaged["_models3.Pet"]: + """post. + + :param body: Required. + :type body: IO[bytes] + :keyword content_type: Body Parameter content-type. Content type parameter for binary body. + Default value is "application/json". + :paramtype content_type: str + :return: An iterator like instance of Pet + :rtype: ~corehttp.paging.ItemPaged[~payload.pageable.models.Pet] + :raises ~corehttp.exceptions.HttpResponseError: + """ + + def post(self, body: Union[_models1.Filter, JSON, IO[bytes]], **kwargs: Any) -> ItemPaged["_models3.Pet"]: + """post. + + :param body: Is one of the following types: Filter, JSON, IO[bytes] Required. + :type body: ~payload.pageable.serverdrivenpagination.alternateinitialverb.models.Filter or JSON + or IO[bytes] + :return: An iterator like instance of Pet + :rtype: ~corehttp.paging.ItemPaged[~payload.pageable.models.Pet] + :raises ~corehttp.exceptions.HttpResponseError: + """ + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None)) + cls: ClsType[list[_models3.Pet]] = kwargs.pop("cls", None) + + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + content_type = content_type or "application/json" + _content = None + if isinstance(body, (IOBase, bytes)): + _content = body + else: + _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + def prepare_request(next_link=None): + if not next_link: + + _request = build_server_driven_pagination_alternate_initial_verb_post_request( + content_type=content_type, + content=_content, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + else: + _request = HttpRequest("GET", next_link) + path_format_arguments = { + "endpoint": self._serialize.url( + "self._config.endpoint", self._config.endpoint, "str", skip_quote=True + ), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + return _request + + def extract_data(pipeline_response): + deserialized = pipeline_response.http_response.json() + list_of_elem = _deserialize( + list[_models3.Pet], + deserialized.get("pets", []), + ) + if cls: + list_of_elem = cls(list_of_elem) # type: ignore + return deserialized.get("next") or None, iter(list_of_elem) + + def get_next(next_link=None): + _request = prepare_request(next_link) + + _stream = False + pipeline_response: PipelineResponse = self._client.pipeline.run(_request, stream=_stream, **kwargs) + response = pipeline_response.http_response + + if response.status_code not in [200]: + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response) + + return pipeline_response + + return ItemPaged(get_next, extract_data) diff --git a/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/_patch.py b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/_patch.py new file mode 100644 index 0000000000..bbe39eaf69 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/alternateinitialverb/operations/_patch.py @@ -0,0 +1,18 @@ +# coding=utf-8 + +"""Customize generated code here. + +Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize +""" + + +__all__: list[str] = [] # Add all objects you want publicly available to users at this package level + + +def patch_sdk(): + """Do not remove from this file. + + `patch_sdk` is a last resort escape hatch that allows you to do customizations + you can't accomplish using the techniques described in + https://aka.ms/azsdk/python/dpcodegen/python/customize + """ diff --git a/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/operations/_operations.py b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/operations/_operations.py index 56df9ca9e9..54a8f44be6 100644 --- a/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/operations/_operations.py +++ b/packages/typespec-python/test/unbranded/generated/payload-pageable/payload/pageable/serverdrivenpagination/operations/_operations.py @@ -20,6 +20,7 @@ from ..._configuration import PageableClientConfiguration from ..._utils.model_base import _deserialize from ..._utils.serialization import Deserializer, Serializer +from ..alternateinitialverb.operations._operations import ServerDrivenPaginationAlternateInitialVerbOperations from ..continuationtoken.operations._operations import ServerDrivenPaginationContinuationTokenOperations T = TypeVar("T") @@ -88,6 +89,9 @@ def __init__(self, *args, **kwargs) -> None: self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + self.alternate_initial_verb = ServerDrivenPaginationAlternateInitialVerbOperations( + self._client, self._config, self._serialize, self._deserialize + ) self.continuation_token = ServerDrivenPaginationContinuationTokenOperations( self._client, self._config, self._serialize, self._deserialize ) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a6f3827abb..709c1d0be1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -60,8 +60,8 @@ importers: specifier: ~1.0.2 version: 1.0.2 '@typespec/http-client-python': - specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAyMDkyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz - version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAyMDkyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(cwqsfn7fm5tkg3lp77e4anpqz4) + specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAzMjIxMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz + version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAzMjIxMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(pisc6uv4zd7xvwrcrvtbcnjl6i) fs-extra: specifier: ~11.2.0 version: 11.2.0 @@ -82,8 +82,8 @@ importers: packages/typespec-python: dependencies: '@typespec/http-client-python': - specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAyMDkyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz - version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAyMDkyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(cwqsfn7fm5tkg3lp77e4anpqz4) + specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAzMjIxMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz + version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAzMjIxMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(pisc6uv4zd7xvwrcrvtbcnjl6i) fs-extra: specifier: ~11.2.0 version: 11.2.0 @@ -98,11 +98,11 @@ importers: version: 4.21.0 devDependencies: '@azure-tools/azure-http-specs': - specifier: 0.1.0-alpha.39-dev.3 - version: 0.1.0-alpha.39-dev.3(r74tij2xjffkelbxz776v3uwiq) + specifier: 0.1.0-alpha.39-dev.4 + version: 0.1.0-alpha.39-dev.4(r74tij2xjffkelbxz776v3uwiq) '@azure-tools/typespec-autorest': specifier: ~0.66.0 - version: 0.66.0(3lynfktgeabz5vvk7tfr76nhnu) + version: 0.66.0(7lmnrtcw3mexeptv5wn3xrpwpi) '@azure-tools/typespec-azure-core': specifier: ~0.66.0 version: 0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))) @@ -110,11 +110,11 @@ importers: specifier: ~0.66.0 version: 0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4) '@azure-tools/typespec-azure-rulesets': - specifier: ~0.65.1 - version: 0.65.1(@azure-tools/typespec-azure-core@0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))))(@azure-tools/typespec-azure-resource-manager@0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4))(@azure-tools/typespec-client-generator-core@0.66.1(ytghvnltyh5gcxrxscm6xki6su))(@typespec/compiler@1.10.0(@types/node@25.0.10)) + specifier: ~0.66.0 + version: 0.66.0(@azure-tools/typespec-azure-core@0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))))(@azure-tools/typespec-azure-resource-manager@0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4))(@azure-tools/typespec-client-generator-core@0.66.2(ytghvnltyh5gcxrxscm6xki6su))(@typespec/compiler@1.10.0(@types/node@25.0.10)) '@azure-tools/typespec-client-generator-core': - specifier: ~0.66.1 - version: 0.66.1(ytghvnltyh5gcxrxscm6xki6su) + specifier: ~0.66.2 + version: 0.66.2(ytghvnltyh5gcxrxscm6xki6su) '@types/fs-extra': specifier: 11.0.4 version: 11.0.4 @@ -140,8 +140,8 @@ importers: specifier: ^1.10.0 version: 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) '@typespec/http-specs': - specifier: 0.1.0-alpha.35-dev.1 - version: 0.1.0-alpha.35-dev.1(@types/node@25.0.10)(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))(@typespec/versioning@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))(@typespec/xml@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) + specifier: 0.1.0-alpha.35-dev.4 + version: 0.1.0-alpha.35-dev.4(@types/node@25.0.10)(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))(@typespec/versioning@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))(@typespec/xml@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) '@typespec/openapi': specifier: ^1.10.0 version: 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))) @@ -212,8 +212,8 @@ packages: resolution: {integrity: sha512-T21naRb6JDdjjn2s/zwr9iCIv/9jviL/PRtiWAhi+3UA2WKH2wrId2VqJa4uVD7iEV8BLkuGgFmMkaMBG26hFw==} engines: {node: '>=12.0.0'} - '@azure-tools/azure-http-specs@0.1.0-alpha.39-dev.3': - resolution: {integrity: sha512-YDKr1H7FJoWN8tWyFzVVOLV+mI5VlorxNdMNLmiHsiEJrycXy7EqV6FelDTq6/M0UWLmzUmM/axOWTkCqGS1Yw==} + '@azure-tools/azure-http-specs@0.1.0-alpha.39-dev.4': + resolution: {integrity: sha512-tWKw3X1Nbu4/itGRtdSv2/J7JIVjiwFZ+BmEu8/6ff0n09vBwtPtVYYnNb4IxSdUvl3V7yEiDrBrhSYK/kpuTg==} engines: {node: '>=20.0.0'} peerDependencies: '@azure-tools/typespec-azure-core': ^0.66.0 || >=0.67.0-dev <0.67.0 @@ -259,17 +259,17 @@ packages: '@typespec/rest': ^0.80.0 '@typespec/versioning': ^0.80.0 - '@azure-tools/typespec-azure-rulesets@0.65.1': - resolution: {integrity: sha512-iF9prvhrKX2ZTzUinyLdelfqmKsxla7hwEj/6l4hvgpXEnTckxlCwKqfBTOGwvJ4ofQ5L2DIJWWR2+X8yLWRBg==} + '@azure-tools/typespec-azure-rulesets@0.66.0': + resolution: {integrity: sha512-Wf0SpphmKDDzHgaqpxl68DpP65VUWjpD3mrnZ3Lw4Pdtt8BcZf7+LKgFF06gPRnh15hR0VbjAERCzxI/qGY4ag==} engines: {node: '>=20.0.0'} peerDependencies: '@azure-tools/typespec-azure-core': ^0.66.0 '@azure-tools/typespec-azure-resource-manager': ^0.66.0 - '@azure-tools/typespec-client-generator-core': ^0.66.0 + '@azure-tools/typespec-client-generator-core': ^0.66.1 '@typespec/compiler': ^1.10.0 - '@azure-tools/typespec-client-generator-core@0.66.1': - resolution: {integrity: sha512-aGxEeuk5fqeb9YfalNWTQtAVLIzPkbxObcmCH02XtHvd4Vd2u1hy4l714OB3rz0V+xR30IOSRGLfFnbEv3c1oA==} + '@azure-tools/typespec-client-generator-core@0.66.2': + resolution: {integrity: sha512-Qr5fstJ0yQiTYNvp/EuY3+mUBue2ri9qNZkT6aC+CsfBt5yjfdjo++3SuEsDQtELyS8pBoDOT3weLiB0N+/fSw==} engines: {node: '>=20.0.0'} peerDependencies: '@azure-tools/typespec-azure-core': ^0.66.0 @@ -1721,16 +1721,16 @@ packages: peerDependencies: '@typespec/compiler': ^1.10.0 - '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAyMDkyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz': - resolution: {tarball: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAyMDkyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz} + '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAzMjIxMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz': + resolution: {tarball: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAzMjIxMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz} version: 0.28.0 engines: {node: '>=20.0.0'} peerDependencies: '@azure-tools/typespec-autorest': '>=0.66.0 <1.0.0' '@azure-tools/typespec-azure-core': '>=0.66.0 <1.0.0' '@azure-tools/typespec-azure-resource-manager': '>=0.66.0 <1.0.0' - '@azure-tools/typespec-azure-rulesets': '>=0.65.1 <1.0.0' - '@azure-tools/typespec-client-generator-core': '>=0.66.1 <1.0.0' + '@azure-tools/typespec-azure-rulesets': '>=0.66.0 <1.0.0' + '@azure-tools/typespec-client-generator-core': '>=0.66.2 <1.0.0' '@typespec/compiler': ^1.10.0 '@typespec/events': '>=0.80.0 <1.0.0' '@typespec/http': ^1.10.0 @@ -1741,15 +1741,15 @@ packages: '@typespec/versioning': '>=0.80.0 <1.0.0' '@typespec/xml': '>=0.80.0 <1.0.0' - '@typespec/http-specs@0.1.0-alpha.35-dev.1': - resolution: {integrity: sha512-sL3Q9Nmgim1YdHiKTaO1bdaUdPIV+1o1HIT8VbTfgEPresdgxJSp2Mll5uehIoiDzGZ3M11Ka/Lrdijr5VRYiA==} + '@typespec/http-specs@0.1.0-alpha.35-dev.4': + resolution: {integrity: sha512-KI8b/wJDdWhNM8ypJEeOgl0Fj9xTxKqSQfmOUqgcQYqlaNeU+jpvqS/xD3wEOguh6YMrCUD9FG9h6mgp8409KA==} engines: {node: '>=16.0.0'} peerDependencies: - '@typespec/compiler': ^1.10.0 || >= 1.11.0-dev.0 - '@typespec/http': ^1.10.0 || >= 1.11.0-dev.0 - '@typespec/rest': ^0.80.0 || >= 0.81.0-dev.0 - '@typespec/versioning': ^0.80.0 || >= 0.81.0-dev.0 - '@typespec/xml': ^0.80.0 || >= 0.81.0-dev.0 + '@typespec/compiler': ^1.10.0 || >= 1.11.0-dev.4 + '@typespec/http': ^1.10.0 || >= 1.11.0-dev.2 + '@typespec/rest': ^0.80.0 || >= 0.81.0-dev.1 + '@typespec/versioning': ^0.80.0 || >= 0.81.0-dev.1 + '@typespec/xml': ^0.80.0 || >= 0.81.0-dev.1 '@typespec/http@1.10.0': resolution: {integrity: sha512-/fj55fmUj4m/FmNdfH0V52menVrmS2r5Xj9d1H+pnjQbxvvaxS906RSRcoF8kbg3PvlibP/Py5u82TAk53AyqA==} @@ -4991,7 +4991,7 @@ snapshots: command-exists: 1.2.9 semver: 7.6.3 - '@azure-tools/azure-http-specs@0.1.0-alpha.39-dev.3(r74tij2xjffkelbxz776v3uwiq)': + '@azure-tools/azure-http-specs@0.1.0-alpha.39-dev.4(r74tij2xjffkelbxz776v3uwiq)': dependencies: '@azure-tools/typespec-azure-core': 0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))) '@typespec/compiler': 1.10.0(@types/node@25.0.10) @@ -5006,11 +5006,11 @@ snapshots: - '@typespec/streams' - supports-color - '@azure-tools/typespec-autorest@0.66.0(3lynfktgeabz5vvk7tfr76nhnu)': + '@azure-tools/typespec-autorest@0.66.0(7lmnrtcw3mexeptv5wn3xrpwpi)': dependencies: '@azure-tools/typespec-azure-core': 0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))) '@azure-tools/typespec-azure-resource-manager': 0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4) - '@azure-tools/typespec-client-generator-core': 0.66.1(ytghvnltyh5gcxrxscm6xki6su) + '@azure-tools/typespec-client-generator-core': 0.66.2(ytghvnltyh5gcxrxscm6xki6su) '@typespec/compiler': 1.10.0(@types/node@25.0.10) '@typespec/http': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) '@typespec/openapi': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))) @@ -5036,14 +5036,14 @@ snapshots: change-case: 5.4.4 pluralize: 8.0.0 - '@azure-tools/typespec-azure-rulesets@0.65.1(@azure-tools/typespec-azure-core@0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))))(@azure-tools/typespec-azure-resource-manager@0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4))(@azure-tools/typespec-client-generator-core@0.66.1(ytghvnltyh5gcxrxscm6xki6su))(@typespec/compiler@1.10.0(@types/node@25.0.10))': + '@azure-tools/typespec-azure-rulesets@0.66.0(@azure-tools/typespec-azure-core@0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))))(@azure-tools/typespec-azure-resource-manager@0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4))(@azure-tools/typespec-client-generator-core@0.66.2(ytghvnltyh5gcxrxscm6xki6su))(@typespec/compiler@1.10.0(@types/node@25.0.10))': dependencies: '@azure-tools/typespec-azure-core': 0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))) '@azure-tools/typespec-azure-resource-manager': 0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4) - '@azure-tools/typespec-client-generator-core': 0.66.1(ytghvnltyh5gcxrxscm6xki6su) + '@azure-tools/typespec-client-generator-core': 0.66.2(ytghvnltyh5gcxrxscm6xki6su) '@typespec/compiler': 1.10.0(@types/node@25.0.10) - '@azure-tools/typespec-client-generator-core@0.66.1(ytghvnltyh5gcxrxscm6xki6su)': + '@azure-tools/typespec-client-generator-core@0.66.2(ytghvnltyh5gcxrxscm6xki6su)': dependencies: '@azure-tools/typespec-azure-core': 0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))) '@typespec/compiler': 1.10.0(@types/node@25.0.10) @@ -6699,13 +6699,13 @@ snapshots: dependencies: '@typespec/compiler': 1.10.0(@types/node@25.0.10) - '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAyMDkyMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(cwqsfn7fm5tkg3lp77e4anpqz4)': + '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNjAzMjIxMi9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(pisc6uv4zd7xvwrcrvtbcnjl6i)': dependencies: - '@azure-tools/typespec-autorest': 0.66.0(3lynfktgeabz5vvk7tfr76nhnu) + '@azure-tools/typespec-autorest': 0.66.0(7lmnrtcw3mexeptv5wn3xrpwpi) '@azure-tools/typespec-azure-core': 0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))) '@azure-tools/typespec-azure-resource-manager': 0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4) - '@azure-tools/typespec-azure-rulesets': 0.65.1(@azure-tools/typespec-azure-core@0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))))(@azure-tools/typespec-azure-resource-manager@0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4))(@azure-tools/typespec-client-generator-core@0.66.1(ytghvnltyh5gcxrxscm6xki6su))(@typespec/compiler@1.10.0(@types/node@25.0.10)) - '@azure-tools/typespec-client-generator-core': 0.66.1(ytghvnltyh5gcxrxscm6xki6su) + '@azure-tools/typespec-azure-rulesets': 0.66.0(@azure-tools/typespec-azure-core@0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))))(@azure-tools/typespec-azure-resource-manager@0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4))(@azure-tools/typespec-client-generator-core@0.66.2(ytghvnltyh5gcxrxscm6xki6su))(@typespec/compiler@1.10.0(@types/node@25.0.10)) + '@azure-tools/typespec-client-generator-core': 0.66.2(ytghvnltyh5gcxrxscm6xki6su) '@typespec/compiler': 1.10.0(@types/node@25.0.10) '@typespec/events': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) '@typespec/http': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) @@ -6724,7 +6724,7 @@ snapshots: - bufferutil - utf-8-validate - '@typespec/http-specs@0.1.0-alpha.35-dev.1(@types/node@25.0.10)(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))(@typespec/versioning@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))(@typespec/xml@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))': + '@typespec/http-specs@0.1.0-alpha.35-dev.4(@types/node@25.0.10)(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))(@typespec/versioning@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))(@typespec/xml@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))': dependencies: '@typespec/compiler': 1.10.0(@types/node@25.0.10) '@typespec/http': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))