Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,38 @@ twilio-python Changelog

Here you can see the full list of changes between each twilio-python release.

[2026-08-21] Version 9.11.1
---------------------------
**Library - Fix**
- [PR #954](https://github.com/twilio/twilio-python/pull/954): Fix tag validation regex in deploy.yml. Thanks to [@kridai](https://github.com/kridai)!

**Destinations**
- ## 2026-08-12
- Minor updates (formatting, metadata)
- ## 2026-08-12
- **Content updates**:
- Added properties to `DestinationType`: releaseStatus
- Removed properties from `DestinationType`: maturity

**Memory**
- No path changes (updated metadata only)
- `DataMappingType` gains `INGRESS`, `DATASET_CLOUDAPP`, and `DATASET_WAREHOUSE`.
- `CSV` and `DATASET` remain valid and unchanged; they are deprecated aliases and
- will be removed in a follow-up change.
- `DataMappingFromTypes` gains three `oneOf` members and three discriminator keys:
- `DataMappingFromIngress` (renames `DataMappingFromCSV`),
- `DataMappingFromCloudAppDataSet` and `DataMappingFromWarehouseDataSet`
- (both split from `DataMappingFromDataSet`, distinguishing a cloud-app-backed
- TDI dataset from a warehouse-backed one).
- Additive and backwards compatible: existing `CSV` and `DATASET` payloads are
- unaffected.
- ## 2026-08-10

**Voice**
- ## 2026-08-05
- Added GET /v3/Transcriptions to list and filter transcriptions (status, sourceId, languageCode, createdAfter/createdBefore) with pageSize/pageToken pagination. createdAfter is inclusive and createdBefore exclusive. Returns 422 (error code 17535) when a sourceId's historical item count exceeds the service scan cap


[2026-08-11] Version 9.11.0
---------------------------
**Library - Fix**
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

setup(
name="twilio",
version="9.11.0",
version="9.11.1",
description="Twilio API client and TwiML generator",
author="Twilio",
help_center="https://www.twilio.com/help/contact",
Expand Down
2 changes: 1 addition & 1 deletion twilio/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
__version_info__ = ("9", "11", "0")
__version_info__ = ("9", "11", "1")
__version__ = ".".join(__version_info__)
8 changes: 8 additions & 0 deletions twilio/rest/content/v1/content/approval_create.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,20 @@ class ContentApprovalRequest(object):
"""
:ivar name: Name of the template.
:ivar category: A WhatsApp recognized template category.
:ivar send_ttl_seconds: Time-to-live in seconds for attempting to send a message with this Content
"""

def __init__(self, payload: Dict[str, Any]):

self.name: Optional[str] = payload.get("name")
self.category: Optional[str] = payload.get("category")
self.send_ttl_seconds: Optional[int] = payload.get("send_ttl_seconds")

def to_dict(self):
return {
"name": self.name,
"category": self.category,
"send_ttl_seconds": self.send_ttl_seconds,
}

"""
Expand All @@ -47,6 +50,7 @@ def to_dict(self):
:ivar status:
:ivar rejection_reason:
:ivar allow_category_change:
:ivar send_ttl_seconds: Time-to-live in seconds for attempting to send a message with this Content
"""

def __init__(self, version: Version, payload: Dict[str, Any], content_sid: str):
Expand All @@ -60,6 +64,7 @@ def __init__(self, version: Version, payload: Dict[str, Any], content_sid: str):
self.allow_category_change: Optional[bool] = payload.get(
"allow_category_change"
)
self.send_ttl_seconds: Optional[int] = payload.get("send_ttl_seconds")

self._solution = {
"content_sid": content_sid,
Expand All @@ -81,17 +86,20 @@ class ContentApprovalRequest(object):
"""
:ivar name: Name of the template.
:ivar category: A WhatsApp recognized template category.
:ivar send_ttl_seconds: Time-to-live in seconds for attempting to send a message with this Content
"""

def __init__(self, payload: Dict[str, Any]):

self.name: Optional[str] = payload.get("name")
self.category: Optional[str] = payload.get("category")
self.send_ttl_seconds: Optional[int] = payload.get("send_ttl_seconds")

def to_dict(self):
return {
"name": self.name,
"category": self.category,
"send_ttl_seconds": self.send_ttl_seconds,
}

def __init__(self, version: Version, content_sid: str):
Expand Down
8 changes: 0 additions & 8 deletions twilio/rest/insights/v3/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
from twilio.base.domain import Domain
from twilio.rest.insights.v3.metadata import MetadataList
from twilio.rest.insights.v3.query import QueryList
from twilio.rest.insights.v3.query_job import QueryJobList


class V3(Version):
Expand All @@ -31,7 +30,6 @@ def __init__(self, domain: Domain):
super().__init__(domain, "v3")
self._metadata: Optional[MetadataList] = None
self._query: Optional[QueryList] = None
self._query_jobs: Optional[QueryJobList] = None

@property
def metadata(self) -> MetadataList:
Expand All @@ -45,12 +43,6 @@ def query(self) -> QueryList:
self._query = QueryList(self)
return self._query

@property
def query_jobs(self) -> QueryJobList:
if self._query_jobs is None:
self._query_jobs = QueryJobList(self)
return self._query_jobs

def __repr__(self) -> str:
"""
Provide a friendly representation
Expand Down
Loading