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