Skip to content

Commit 2ee2486

Browse files
Merge branch 'main' into main
2 parents 288e3fb + ee0714c commit 2ee2486

40 files changed

+5005
-5592
lines changed

.github/workflows/test-and-deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
timeout-minutes: 20
1818
strategy:
1919
matrix:
20-
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12' ]
20+
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12', '3.13' ]
2121
steps:
2222
- name: Checkout twilio-python
2323
uses: actions/checkout@v3

CHANGES.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,41 @@ twilio-python Changelog
33

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

6+
[2025-06-12] Version 9.6.3
7+
--------------------------
8+
**Library - Chore**
9+
- [PR #869](https://github.com/twilio/twilio-python/pull/869): Remove knowledge files. Thanks to [@krishnakalluri](https://github.com/krishnakalluri)!
10+
11+
**Api**
12+
- Change DependentPhoneNumber `capabilities` type `object` and `date_created`, `date_updated` to `date_time<rfc2822>`
13+
- Updated the `Default` value from 0 to 1 in the Recordings Resource `channels` property
14+
15+
**Serverless**
16+
- Update `ienum` type level in Logs api
17+
18+
**Verify**
19+
- Update Channel list in Verify Attempst API
20+
- Update `ienum` type for Conversion_Status in Verify Attempts API
21+
22+
**Twiml**
23+
- Add `us2` to the list of supported values for the region attribute in the `<Conference>` TwiML noun.
24+
25+
26+
[2025-05-29] Version 9.6.2
27+
--------------------------
28+
**Library - Chore**
29+
- [PR #862](https://github.com/twilio/twilio-python/pull/862): update iam token endpoint. Thanks to [@manisha1997](https://github.com/manisha1997)!
30+
31+
**Api**
32+
- Added several usage category enums to `usage_record` API
33+
34+
**Numbers**
35+
- Update the porting documentation
36+
37+
**Verify**
38+
- Update `ienum` type for Channels in Verify Attempts API
39+
40+
641
[2025-05-13] Version 9.6.1
742
--------------------------
843
**Accounts**

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ This library supports the following Python implementations:
2424
- Python 3.9
2525
- Python 3.10
2626
- Python 3.11
27+
- Python 3.12
28+
- Python 3.13
2729

2830
## Installation
2931

setup.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
setup(
1515
name="twilio",
16-
version="9.6.1",
16+
version="9.6.3",
1717
description="Twilio API client and TwiML generator",
1818
author="Twilio",
1919
help_center="https://www.twilio.com/help/contact",
@@ -39,6 +39,8 @@
3939
"Programming Language :: Python :: 3.9",
4040
"Programming Language :: Python :: 3.10",
4141
"Programming Language :: Python :: 3.11",
42+
"Programming Language :: Python :: 3.12",
43+
"Programming Language :: Python :: 3.13",
4244
"Programming Language :: Python :: Implementation :: CPython",
4345
"Topic :: Software Development :: Libraries :: Python Modules",
4446
"Topic :: Communications :: Telephony",

twilio/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
__version_info__ = ("9", "6", "1")
1+
__version_info__ = ("9", "6", "3")
22
__version__ = ".".join(__version_info__)

twilio/http/client_token_manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def __init__(
2929
self.client = Client()
3030

3131
def fetch_access_token(self):
32-
token_instance = self.client.preview_iam.v1.token.create(
32+
token_instance = self.client.iam.v1.token.create(
3333
grant_type=self.grant_type,
3434
client_id=self.client_id,
3535
client_secret=self.client_secret,

twilio/http/orgs_token_manager.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def __init__(
2929
self.client = Client()
3030

3131
def fetch_access_token(self):
32-
token_instance = self.client.preview_iam.v1.token.create(
32+
token_instance = self.client.iam.v1.token.create(
3333
grant_type=self.grant_type,
3434
client_id=self.client_id,
3535
client_secret=self.client_secret,

twilio/rest/__init__.py

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,9 @@
2929
from twilio.rest.insights import Insights
3030
from twilio.rest.intelligence import Intelligence
3131
from twilio.rest.ip_messaging import IpMessaging
32-
from twilio.rest.knowledge import Knowledge
3332
from twilio.rest.lookups import Lookups
3433
from twilio.rest.marketplace import Marketplace
3534
from twilio.rest.messaging import Messaging
36-
from twilio.rest.microvisor import Microvisor
3735
from twilio.rest.monitor import Monitor
3836
from twilio.rest.notify import Notify
3937
from twilio.rest.numbers import Numbers
@@ -143,11 +141,9 @@ def __init__(
143141
self._insights: Optional["Insights"] = None
144142
self._intelligence: Optional["Intelligence"] = None
145143
self._ip_messaging: Optional["IpMessaging"] = None
146-
self._knowledge: Optional["Knowledge"] = None
147144
self._lookups: Optional["Lookups"] = None
148145
self._marketplace: Optional["Marketplace"] = None
149146
self._messaging: Optional["Messaging"] = None
150-
self._microvisor: Optional["Microvisor"] = None
151147
self._monitor: Optional["Monitor"] = None
152148
self._notify: Optional["Notify"] = None
153149
self._numbers: Optional["Numbers"] = None
@@ -363,19 +359,6 @@ def ip_messaging(self) -> "IpMessaging":
363359
self._ip_messaging = IpMessaging(self)
364360
return self._ip_messaging
365361

366-
@property
367-
def knowledge(self) -> "Knowledge":
368-
"""
369-
Access the Knowledge Twilio Domain
370-
371-
:returns: Knowledge Twilio Domain
372-
"""
373-
if self._knowledge is None:
374-
from twilio.rest.knowledge import Knowledge
375-
376-
self._knowledge = Knowledge(self)
377-
return self._knowledge
378-
379362
@property
380363
def lookups(self) -> "Lookups":
381364
"""
@@ -415,19 +398,6 @@ def messaging(self) -> "Messaging":
415398
self._messaging = Messaging(self)
416399
return self._messaging
417400

418-
@property
419-
def microvisor(self) -> "Microvisor":
420-
"""
421-
Access the Microvisor Twilio Domain
422-
423-
:returns: Microvisor Twilio Domain
424-
"""
425-
if self._microvisor is None:
426-
from twilio.rest.microvisor import Microvisor
427-
428-
self._microvisor = Microvisor(self)
429-
return self._microvisor
430-
431401
@property
432402
def monitor(self) -> "Monitor":
433403
"""

twilio/rest/api/v2010/account/address/dependent_phone_number.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@
1212
Do not edit the class manually.
1313
"""
1414

15+
from datetime import datetime
1516
from typing import Any, Dict, List, Optional, Union, Iterator, AsyncIterator
16-
from twilio.base import values
17+
from twilio.base import deserialize, values
1718

1819
from twilio.base.instance_resource import InstanceResource
1920
from twilio.base.list_resource import ListResource
@@ -50,7 +51,7 @@ class EmergencyStatus(object):
5051
:ivar sms_method: The HTTP method we use to call `sms_url`. Can be: `GET` or `POST`.
5152
:ivar sms_url: The URL we call when the phone number receives an incoming SMS message.
5253
:ivar address_requirements:
53-
:ivar capabilities:
54+
:ivar capabilities: The set of Boolean properties that indicates whether a phone number can receive calls or messages. Capabilities are `Voice`, `SMS`, and `MMS` and each capability can be: `true` or `false`.
5455
:ivar status_callback: The URL we call using the `status_callback_method` to send status information to your application.
5556
:ivar status_callback_method: The HTTP method we use to call `status_callback`. Can be: `GET` or `POST`.
5657
:ivar api_version: The API version used to start a new TwiML session.
@@ -82,16 +83,20 @@ def __init__(
8283
self.voice_caller_id_lookup: Optional[bool] = payload.get(
8384
"voice_caller_id_lookup"
8485
)
85-
self.date_created: Optional[str] = payload.get("date_created")
86-
self.date_updated: Optional[str] = payload.get("date_updated")
86+
self.date_created: Optional[datetime] = deserialize.rfc2822_datetime(
87+
payload.get("date_created")
88+
)
89+
self.date_updated: Optional[datetime] = deserialize.rfc2822_datetime(
90+
payload.get("date_updated")
91+
)
8792
self.sms_fallback_method: Optional[str] = payload.get("sms_fallback_method")
8893
self.sms_fallback_url: Optional[str] = payload.get("sms_fallback_url")
8994
self.sms_method: Optional[str] = payload.get("sms_method")
9095
self.sms_url: Optional[str] = payload.get("sms_url")
9196
self.address_requirements: Optional[
9297
"DependentPhoneNumberInstance.AddressRequirement"
9398
] = payload.get("address_requirements")
94-
self.capabilities: Optional[str] = payload.get("capabilities")
99+
self.capabilities: Optional[Dict[str, object]] = payload.get("capabilities")
95100
self.status_callback: Optional[str] = payload.get("status_callback")
96101
self.status_callback_method: Optional[str] = payload.get(
97102
"status_callback_method"

twilio/rest/api/v2010/account/recording/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class Status(object):
5757
:ivar price: The one-time cost of creating the recording in the `price_unit` currency.
5858
:ivar price_unit: The currency used in the `price` property. Example: `USD`.
5959
:ivar status:
60-
:ivar channels: The number of channels in the final recording file. Can be: `1` or `2`.
60+
:ivar channels: The number of channels in the final recording file. Can be: `1` or `2`. Default: `1`.
6161
:ivar source:
6262
:ivar error_code: The error code that describes why the recording is `absent`. The error code is described in our [Error Dictionary](https://www.twilio.com/docs/api/errors). This value is null if the recording `status` is not `absent`.
6363
:ivar uri: The URI of the resource, relative to `https://api.twilio.com`.

0 commit comments

Comments
 (0)