From 912dccd78c9375204cfecf2d209220e7692ca114 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 12:25:37 +0000 Subject: [PATCH 1/3] codegen metadata --- .stats.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.stats.yml b/.stats.yml index 6eb74933..3d44f3ba 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 946 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/telnyx%2Ftelnyx-619f2e4cc820442ae564e2345323abd65d5049b428c5780cf9f14c56002a2ba3.yml openapi_spec_hash: 29de78582d8561745ff8f5f6c2474f1e -config_hash: 535b049bef73708a7530337b14fd0b84 +config_hash: 85e58f8caaa0e778e63db4898f9369e8 From ac454e818dfb625a7de8363d1e54e9c795093ca9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 12:34:55 +0000 Subject: [PATCH 2/3] feat(api): manual updates --- .stats.yml | 2 +- api.md | 9 ++--- src/telnyx/resources/queues/queues.py | 14 ++++---- src/telnyx/types/__init__.py | 2 +- .../{queue_list_response.py => queue.py} | 4 +-- src/telnyx/types/queue_create_response.py | 34 ++----------------- src/telnyx/types/queue_retrieve_response.py | 34 ++----------------- src/telnyx/types/queue_update_response.py | 34 ++----------------- tests/api_resources/test_queues.py | 18 +++++----- 9 files changed, 31 insertions(+), 120 deletions(-) rename src/telnyx/types/{queue_list_response.py => queue.py} (91%) diff --git a/.stats.yml b/.stats.yml index 3d44f3ba..bf7e7816 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 946 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/telnyx%2Ftelnyx-619f2e4cc820442ae564e2345323abd65d5049b428c5780cf9f14c56002a2ba3.yml openapi_spec_hash: 29de78582d8561745ff8f5f6c2474f1e -config_hash: 85e58f8caaa0e778e63db4898f9369e8 +config_hash: 33dae93fe380b8187d9ac4cead6e4b8f diff --git a/api.md b/api.md index 5902c352..1c0081a5 100644 --- a/api.md +++ b/api.md @@ -3544,12 +3544,7 @@ Methods: Types: ```python -from telnyx.types import ( - QueueCreateResponse, - QueueRetrieveResponse, - QueueUpdateResponse, - QueueListResponse, -) +from telnyx.types import Queue, QueueCreateResponse, QueueRetrieveResponse, QueueUpdateResponse ``` Methods: @@ -3557,7 +3552,7 @@ Methods: - client.queues.create(\*\*params) -> QueueCreateResponse - client.queues.retrieve(queue_name) -> QueueRetrieveResponse - client.queues.update(queue_name, \*\*params) -> QueueUpdateResponse -- client.queues.list(\*\*params) -> SyncDefaultFlatPagination[QueueListResponse] +- client.queues.list(\*\*params) -> SyncDefaultFlatPagination[Queue] - client.queues.delete(queue_name) -> None ## Calls diff --git a/src/telnyx/resources/queues/queues.py b/src/telnyx/resources/queues/queues.py index 2a62a667..648dd6e9 100644 --- a/src/telnyx/resources/queues/queues.py +++ b/src/telnyx/resources/queues/queues.py @@ -24,8 +24,8 @@ async_to_streamed_response_wrapper, ) from ...pagination import SyncDefaultFlatPagination, AsyncDefaultFlatPagination +from ...types.queue import Queue from ..._base_client import AsyncPaginator, make_request_options -from ...types.queue_list_response import QueueListResponse from ...types.queue_create_response import QueueCreateResponse from ...types.queue_update_response import QueueUpdateResponse from ...types.queue_retrieve_response import QueueRetrieveResponse @@ -182,7 +182,7 @@ def list( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> SyncDefaultFlatPagination[QueueListResponse]: + ) -> SyncDefaultFlatPagination[Queue]: """ List all queues for the authenticated user. @@ -201,7 +201,7 @@ def list( """ return self._get_api_list( "/queues", - page=SyncDefaultFlatPagination[QueueListResponse], + page=SyncDefaultFlatPagination[Queue], options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -215,7 +215,7 @@ def list( queue_list_params.QueueListParams, ), ), - model=QueueListResponse, + model=Queue, ) def delete( @@ -402,7 +402,7 @@ def list( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> AsyncPaginator[QueueListResponse, AsyncDefaultFlatPagination[QueueListResponse]]: + ) -> AsyncPaginator[Queue, AsyncDefaultFlatPagination[Queue]]: """ List all queues for the authenticated user. @@ -421,7 +421,7 @@ def list( """ return self._get_api_list( "/queues", - page=AsyncDefaultFlatPagination[QueueListResponse], + page=AsyncDefaultFlatPagination[Queue], options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -435,7 +435,7 @@ def list( queue_list_params.QueueListParams, ), ), - model=QueueListResponse, + model=Queue, ) async def delete( diff --git a/src/telnyx/types/__init__.py b/src/telnyx/types/__init__.py index 976846fe..d6801488 100644 --- a/src/telnyx/types/__init__.py +++ b/src/telnyx/types/__init__.py @@ -8,6 +8,7 @@ from .fax import Fax as Fax from .fqdn import Fqdn as Fqdn from .room import Room as Room +from .queue import Queue as Queue from .record import Record as Record from .shared import ( APIError as APIError, @@ -170,7 +171,6 @@ from .outbound_fqdn_param import OutboundFqdnParam as OutboundFqdnParam from .portout_list_params import PortoutListParams as PortoutListParams from .queue_create_params import QueueCreateParams as QueueCreateParams -from .queue_list_response import QueueListResponse as QueueListResponse from .queue_update_params import QueueUpdateParams as QueueUpdateParams from .replaced_link_click import ReplacedLinkClick as ReplacedLinkClick from .verify_profile_data import VerifyProfileData as VerifyProfileData diff --git a/src/telnyx/types/queue_list_response.py b/src/telnyx/types/queue.py similarity index 91% rename from src/telnyx/types/queue_list_response.py rename to src/telnyx/types/queue.py index 888ee525..24e4c6ce 100644 --- a/src/telnyx/types/queue_list_response.py +++ b/src/telnyx/types/queue.py @@ -4,10 +4,10 @@ from .._models import BaseModel -__all__ = ["QueueListResponse"] +__all__ = ["Queue"] -class QueueListResponse(BaseModel): +class Queue(BaseModel): id: str """Uniquely identifies the queue""" diff --git a/src/telnyx/types/queue_create_response.py b/src/telnyx/types/queue_create_response.py index 15bb5301..987b3918 100644 --- a/src/telnyx/types/queue_create_response.py +++ b/src/telnyx/types/queue_create_response.py @@ -1,40 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Optional -from typing_extensions import Literal +from .queue import Queue from .._models import BaseModel -__all__ = ["QueueCreateResponse", "Data"] - - -class Data(BaseModel): - id: str - """Uniquely identifies the queue""" - - average_wait_time_secs: int - """ - The average time that the calls currently in the queue have spent waiting, given - in seconds. - """ - - created_at: str - """ISO 8601 formatted date of when the queue was created""" - - current_size: int - """The number of calls currently in the queue""" - - max_size: int - """The maximum number of calls allowed in the queue""" - - name: str - """Name of the queue""" - - record_type: Literal["queue"] - - updated_at: str - """ISO 8601 formatted date of when the queue was last updated""" +__all__ = ["QueueCreateResponse"] class QueueCreateResponse(BaseModel): - data: Optional[Data] = None + data: Optional[Queue] = None diff --git a/src/telnyx/types/queue_retrieve_response.py b/src/telnyx/types/queue_retrieve_response.py index 2136e305..f51d426d 100644 --- a/src/telnyx/types/queue_retrieve_response.py +++ b/src/telnyx/types/queue_retrieve_response.py @@ -1,40 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Optional -from typing_extensions import Literal +from .queue import Queue from .._models import BaseModel -__all__ = ["QueueRetrieveResponse", "Data"] - - -class Data(BaseModel): - id: str - """Uniquely identifies the queue""" - - average_wait_time_secs: int - """ - The average time that the calls currently in the queue have spent waiting, given - in seconds. - """ - - created_at: str - """ISO 8601 formatted date of when the queue was created""" - - current_size: int - """The number of calls currently in the queue""" - - max_size: int - """The maximum number of calls allowed in the queue""" - - name: str - """Name of the queue""" - - record_type: Literal["queue"] - - updated_at: str - """ISO 8601 formatted date of when the queue was last updated""" +__all__ = ["QueueRetrieveResponse"] class QueueRetrieveResponse(BaseModel): - data: Optional[Data] = None + data: Optional[Queue] = None diff --git a/src/telnyx/types/queue_update_response.py b/src/telnyx/types/queue_update_response.py index ab97b4da..dee8a551 100644 --- a/src/telnyx/types/queue_update_response.py +++ b/src/telnyx/types/queue_update_response.py @@ -1,40 +1,12 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Optional -from typing_extensions import Literal +from .queue import Queue from .._models import BaseModel -__all__ = ["QueueUpdateResponse", "Data"] - - -class Data(BaseModel): - id: str - """Uniquely identifies the queue""" - - average_wait_time_secs: int - """ - The average time that the calls currently in the queue have spent waiting, given - in seconds. - """ - - created_at: str - """ISO 8601 formatted date of when the queue was created""" - - current_size: int - """The number of calls currently in the queue""" - - max_size: int - """The maximum number of calls allowed in the queue""" - - name: str - """Name of the queue""" - - record_type: Literal["queue"] - - updated_at: str - """ISO 8601 formatted date of when the queue was last updated""" +__all__ = ["QueueUpdateResponse"] class QueueUpdateResponse(BaseModel): - data: Optional[Data] = None + data: Optional[Queue] = None diff --git a/tests/api_resources/test_queues.py b/tests/api_resources/test_queues.py index 8caf76ab..ef672dcf 100644 --- a/tests/api_resources/test_queues.py +++ b/tests/api_resources/test_queues.py @@ -10,7 +10,7 @@ from telnyx import Telnyx, AsyncTelnyx from tests.utils import assert_matches_type from telnyx.types import ( - QueueListResponse, + Queue, QueueCreateResponse, QueueUpdateResponse, QueueRetrieveResponse, @@ -158,7 +158,7 @@ def test_path_params_update(self, client: Telnyx) -> None: @parametrize def test_method_list(self, client: Telnyx) -> None: queue = client.queues.list() - assert_matches_type(SyncDefaultFlatPagination[QueueListResponse], queue, path=["response"]) + assert_matches_type(SyncDefaultFlatPagination[Queue], queue, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize @@ -167,7 +167,7 @@ def test_method_list_with_all_params(self, client: Telnyx) -> None: page_number=1, page_size=1, ) - assert_matches_type(SyncDefaultFlatPagination[QueueListResponse], queue, path=["response"]) + assert_matches_type(SyncDefaultFlatPagination[Queue], queue, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize @@ -177,7 +177,7 @@ def test_raw_response_list(self, client: Telnyx) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" queue = response.parse() - assert_matches_type(SyncDefaultFlatPagination[QueueListResponse], queue, path=["response"]) + assert_matches_type(SyncDefaultFlatPagination[Queue], queue, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize @@ -187,7 +187,7 @@ def test_streaming_response_list(self, client: Telnyx) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" queue = response.parse() - assert_matches_type(SyncDefaultFlatPagination[QueueListResponse], queue, path=["response"]) + assert_matches_type(SyncDefaultFlatPagination[Queue], queue, path=["response"]) assert cast(Any, response.is_closed) is True @@ -374,7 +374,7 @@ async def test_path_params_update(self, async_client: AsyncTelnyx) -> None: @parametrize async def test_method_list(self, async_client: AsyncTelnyx) -> None: queue = await async_client.queues.list() - assert_matches_type(AsyncDefaultFlatPagination[QueueListResponse], queue, path=["response"]) + assert_matches_type(AsyncDefaultFlatPagination[Queue], queue, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize @@ -383,7 +383,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncTelnyx) -> N page_number=1, page_size=1, ) - assert_matches_type(AsyncDefaultFlatPagination[QueueListResponse], queue, path=["response"]) + assert_matches_type(AsyncDefaultFlatPagination[Queue], queue, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize @@ -393,7 +393,7 @@ async def test_raw_response_list(self, async_client: AsyncTelnyx) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" queue = await response.parse() - assert_matches_type(AsyncDefaultFlatPagination[QueueListResponse], queue, path=["response"]) + assert_matches_type(AsyncDefaultFlatPagination[Queue], queue, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize @@ -403,7 +403,7 @@ async def test_streaming_response_list(self, async_client: AsyncTelnyx) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" queue = await response.parse() - assert_matches_type(AsyncDefaultFlatPagination[QueueListResponse], queue, path=["response"]) + assert_matches_type(AsyncDefaultFlatPagination[Queue], queue, path=["response"]) assert cast(Any, response.is_closed) is True From bebb6587525560f4e87f85ff7a4257e238fc73c6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 12:35:21 +0000 Subject: [PATCH 3/3] release: 4.51.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 8 ++++++++ pyproject.toml | 2 +- src/telnyx/_version.py | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 2e339e66..1dfdd77f 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "4.50.0" + ".": "4.51.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index eff1182d..715f3c5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 4.51.0 (2026-02-26) + +Full Changelog: [v4.50.0...v4.51.0](https://github.com/team-telnyx/telnyx-python/compare/v4.50.0...v4.51.0) + +### Features + +* **api:** manual updates ([ac454e8](https://github.com/team-telnyx/telnyx-python/commit/ac454e818dfb625a7de8363d1e54e9c795093ca9)) + ## 4.50.0 (2026-02-26) Full Changelog: [v4.49.0...v4.50.0](https://github.com/team-telnyx/telnyx-python/compare/v4.49.0...v4.50.0) diff --git a/pyproject.toml b/pyproject.toml index 06480867..dbe863ae 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "telnyx" -version = "4.50.0" +version = "4.51.0" description = "Telnyx API SDK for global Voice, SMS, MMS, WhatsApp, Fax, Wireless IoT, SIP Trunking, and Call Control." dynamic = ["readme"] license = "MIT" diff --git a/src/telnyx/_version.py b/src/telnyx/_version.py index 576133ab..e5141513 100644 --- a/src/telnyx/_version.py +++ b/src/telnyx/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "telnyx" -__version__ = "4.50.0" # x-release-please-version +__version__ = "4.51.0" # x-release-please-version