Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
baf498e
chore: use Object for anyType (#873)
tiwarishubham635 Jul 2, 2025
e348355
chore: Handle List<Object> serialization (#874)
tiwarishubham635 Jul 2, 2025
b737594
chore: prepare for RC release (#875)
tiwarishubham635 Jul 3, 2025
953e73e
[Librarian] Regenerated @ d122b05026327019e18cb5763c557a68138cc2c8 0e…
twilio-dx Jul 3, 2025
04f1e08
Release 11.0.0-rc.1
twilio-dx Jul 3, 2025
c469b61
[Librarian] Regenerated @ 39bbd47c92a659f8a7464cedcc75b92c7ba69773 f5…
twilio-dx Jul 10, 2025
3ba6d3c
Release 11.0.0-rc.2
twilio-dx Jul 10, 2025
5845dc3
[Librarian] Regenerated @ 4b32678e9d8859e19f1feb1af566eea8533a36c9 51…
twilio-dx Jul 24, 2025
0810ce5
Release 11.0.0-rc.3
twilio-dx Jul 24, 2025
4daff06
[Librarian] Regenerated @ 3fba30a1b1e7c6460438ce1ca58c8ea68ad7b236 61…
twilio-dx Aug 18, 2025
54629b0
Release 11.0.0-rc.4
twilio-dx Aug 18, 2025
4d0f1fa
[Librarian] Regenerated @ 741a326a48cb7081b6b7e1de11dfd3e942a09979 c6…
twilio-dx Aug 28, 2025
2b01bb6
Release 11.0.0-rc.5
twilio-dx Aug 28, 2025
ce29d45
[Librarian] Regenerated @ 42495c0486390f490dfedfd73999e2c259cdb011 f3…
twilio-dx Sep 4, 2025
6533f63
Release 11.0.0-rc.6
twilio-dx Sep 4, 2025
2d81ceb
chore: sync with main (#884)
tiwarishubham635 Sep 9, 2025
519b65a
created centralized serialization and added tests (#894)
sbansla Sep 9, 2025
0f88d7a
feat: Http5 upgrade multipart form (#877)
manisha1997 Sep 12, 2025
468bbb7
chore: custom deserialisation (#895)
sbansla Sep 12, 2025
f0aa2cb
fix: Reuse twiliorestclient for orgs api (#896)
sbansla Sep 16, 2025
15ca860
chore: Revert "fix: Reuse twiliorestclient for orgs api" (#898)
tiwarishubham635 Sep 16, 2025
303bf6d
chore: Reuse twiliorestclient for orgs api (#900)
sbansla Sep 18, 2025
7e98bc3
fix: removed noauth flow (#899)
sbansla Sep 18, 2025
8fdf86b
chore: Add comprehensive test cases for RequestValidator to improve c…
manisha1997 Sep 18, 2025
b7718a2
[Librarian] Regenerated @ 556cffc21d7318f27d71e40146d324df61aba54f 0d…
sbansla Sep 18, 2025
0bace85
Release 11.0.0-rc.7
sbansla Sep 18, 2025
99db81f
chore: update readme
manisha1997 Sep 23, 2025
7d085ac
Added App Endpoint and its test (#905)
sbansla Sep 29, 2025
4622f76
chore: change oauth token endpoint (#906)
tiwarishubham635 Sep 29, 2025
01cc2c5
chore: changes.md and upgrade guide (#907)
sbansla Sep 30, 2025
6296d02
featMVR Release preperation
sbansla Sep 30, 2025
831783a
Merge branch '11.0.0-rc' of https://github.com/twilio/twilio-java int…
sbansla Sep 30, 2025
4705036
changed maven footer
sbansla Sep 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/test-and-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ jobs:
with:
distribution: 'zulu'
java-version: '17'

- name: SonarCloud Scan
if: ${{ (github.event_name == 'pull_request' || github.ref_type == 'branch') && matrix.java == 11 && !github.event.pull_request.head.repo.fork }}
env:
Expand Down
70 changes: 70 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,76 @@
twilio-java changelog
=====================

[2025-09-30] Version 11.0.0
------------------------------------

**Library - Breaking Changes**
- Refer [Upgrade.md](https://github.com/twilio/twilio-java/blob/main/UPGRADE.md) for detailed migration notes and list of Breaking Changes.

**Accounts**
- Update beta feature flag for consent and contact bulk upsert APIs

**Api**
- Add `date_created` property to media resource and date_created filtering parameters for read action
- Updated the Recordings Resource `channels` property to clarify channels = # of channels in the recording resource and how to specify the # of channels in recording download
- Remove usage category enum from usage record and usage triggers API **(breaking change)**
- Add multiple missing usage categories to usage records and usage triggers api
- Add `channels-whatsapp-template-marketing` and `channels-whatsapp-template-utility` to usage categories

**Bulkexports**
- Changed the type of 'details' field to be a list of objects instead of a single object

**Conversations**
- Fix `state` spelling for `initializing` enum value
- Update `state` to include `intializing` for ServiceConversationWithParticipants and ConversationWithParticipants
- Updates to `method` casing for ConfgurationAddress, ConversationScopedWebhook, and ServiceConversationScopedWebhook for RestProxy compatibility

**Events**
- Remove `SinkSid` parameter when updating subscriptions. **(breaking change)**

**Intelligence**
- Add encryption_credential_sid field in transcripts and services in v2

**Flex**
- Adding new optional parameter `identity` to `web_channels` API in version `v2`
- update team name for web_channel, webchat_init_token, webchat_refresh_token

**Verify**
- Add passkeys support to Verify API creating and updating services.
- Update `ienum` type for Factor creation
- Add passkeys as challenge and factor type

**Proxy**
- remove shortcodes resource as its no longer used

**Studio**
- Add `type` to Step resource APIs

**Serverless**
- Change log field level from type `ienum` to `string` in Logs api

**Taskrouter**
- Remove `URL-encoded` from attributes param definition in tasks

**Trunking**
- Added `symmetric_rtp_enabled` property on Trunks.-

**Trusthub**
- Remove beta feature flag for all TH APIs
- Remove beta feature flag for ComplianceInquiries API to support OneConsole traffic
- Add required Permissions to the ComplianceInquiries API

**Twiml**
- Add new noun `<AiSession>`
- Remove Duplicates.
- Add Polly Generative voices.
- Add Latest Google (Chirp3-HD) voices.
- Add support for `<WhatsApp>` noun under `<Dial>` verb

**Verify**
- Allow to update all passkeys parameters in the service update


[2025-06-12] Version 10.9.2
---------------------------
**Library - Chore**
Expand Down
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,15 +62,15 @@ Use the following dependency in your project to grab via Maven:
<dependency>
<groupId>com.twilio.sdk</groupId>
<artifactId>twilio</artifactId>
<version>10.X.X</version>
<version>11.X.X</version>
<scope>compile</scope>
</dependency>
```

or Gradle:

```groovy
implementation "com.twilio.sdk:twilio:10.X.X"
implementation "com.twilio.sdk:twilio:11.X.X"
```

If you want to compile it yourself, here's how:
Expand Down Expand Up @@ -221,8 +221,8 @@ public class Example {
We are introducing Client Credentials Flow-based OAuth 2.0 authentication.
This feature is currently in `beta` and its implementation is subject to change.

- API examples [here](https://github.com/twilio/twilio-java/blob/main/examples/FetchMessageUsingOAuth.md)
- Organisation API examples [here](https://github.com/twilio/twilio-java/blob/main/examples/BearerTokenAuthentication.md)
- API examples [here](https://github.com/twilio/twilio-java/blob/main/examples/PublicOAuthExample.md)
- Organisation API examples [here](https://github.com/twilio/twilio-java/blob/main/examples/OrgsAPIExample.md)

### Iterate through records

Expand Down Expand Up @@ -366,3 +366,5 @@ If you've instead found a bug in the library or would like new features added, g
[apidocs]: https://www.twilio.com/docs/api
[twiml]: https://www.twilio.com/docs/api/twiml
[libdocs]: https://twilio.github.io/twilio-java


26 changes: 26 additions & 0 deletions UPGRADE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,33 @@

_`MAJOR` version bumps will have upgrade notes posted here._

[2025-09-30] 10.x.x to 11.x.x
-----------------------------
### Overview
##### Twilio Java Helper Library’s major version 11.0.0 is now available. 11.0.0 version contains breaking changes

##### Breaking Changes
###### 1. NetworkHttpClient upgraded from HttpClient4 → HttpClient5
Who are impacted:
Users who override NetworkHttpClient.

###### 2. Bug Fix: Enum suffix removed (StatusEnum → Status)
This was a bug in Account resource in Organisation API

###### 3. Organisation API — Organisation API init authentication mechanism has been changed.
Who are impacted:
Users calling the Organisation API. Refer Examples
Organisation API examples [here](https://github.com/twilio/twilio-java/blob/main/examples/OrgsAPIExample.md)

###### 4. Bug Fix: Using Object data type for [anyType](https://swagger.io/docs/specification/v3_0/data-models/data-types/#any-type) fields in open-api specifications
Who are impacted:
Properties/Parameters defined as [anyType](https://swagger.io/docs/specification/v3_0/data-models/data-types/#any-type) in open-api specifications will be represented using `Object` now.
Previous data type: `Map<String,Object>`
New data type: `Object`


[2024-02-08] 9.x.x to 10.x.x
-----------------------------
### Overview

##### Twilio Java Helper Library’s major version 10.0.0 is now available. We ensured that you can upgrade to Java helper Library 10.0.0 version without any breaking changes of existing apis
Expand Down
11 changes: 5 additions & 6 deletions advanced-examples/custom-http-client.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,10 @@ Now that we understand how all the components fit together, we can create our ow
import com.twilio.http.HttpClient;
import com.twilio.http.NetworkHttpClient;
import com.twilio.http.TwilioRestClient;
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.hc.client5.http.config.RequestConfig;
import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
import org.apache.hc.core5.http.HttpHost;

public class ProxiedTwilioClientCreator {

Expand Down Expand Up @@ -120,8 +120,7 @@ public class ProxiedTwilioClientCreator {
private void createHttpClient() {
RequestConfig config = RequestConfig
.custom()
.setConnectTimeout(10000)
.setSocketTimeout(30500)
.setConnectTimeout(Timeout.ofMilliseconds(10000))
.build();

PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
Expand Down
26 changes: 0 additions & 26 deletions examples/BearerTokenAuthentication.md

This file was deleted.

21 changes: 0 additions & 21 deletions examples/FetchMessageUsingOAuth.md

This file was deleted.

34 changes: 34 additions & 0 deletions examples/OrgsAPIExample.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
class OrgsAPIExample {
public static void main {

private static final String GRANT_TYPE = "grant_type_to_be_used";
private static final String CLIENT_SID =
"client_id_of_the_organization";
private static final String CLIENT_SECRET = "client_secret_of_organization";
private static final String ORGANISATION_ID = "id_of_the_organization";

//Getting access token - Method #1
Twilio.init(new OrgsClientCredentialProvider(CLIENT_SID, CLIENT_SECRET));
fetchAccountDetails();


//Scenario: 2 If in case one doesn't want to change the existing stored credential
// Pass Custom TwilioRestClient
// TokenManager tokenManager = new OrgsTokenManager(GRANT_TYPE, CLIENT_SID, CLIENT_SECRET);
// TokenAuthStrategy tokenAuthStrategy = new TokenAuthStrategy(tokenManager);
// TwilioRestClient client = new TwilioRestClient.Builder(tokenAuthStrategy).build();
// fetchAccountDetailsWithClient(client);
}

private static void fetchAccountDetails() {
ResourceSet<Account> accountSet = Account.reader(ORGANISATION_ID).read();
String accountSid = accountSet.iterator().next().getAccountSid();
System.out.println(accountSid);
}

private static void fetchAccountDetailsWithClient(TwilioRestClient client) {
ResourceSet<Account> accountSet = Account.reader(ORGANISATION_ID).read(client);
String accountSid = accountSet.iterator().next().getAccountSid();
System.out.println(accountSid);
}
}
35 changes: 35 additions & 0 deletions examples/PublicOAuthExample.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
```
class PublicOAuthExample {
public static void main {

private static final String GRANT_TYPE = "grant_type_to_be_used";
private static final String OAUTH_CLIENT_SID = "client_id";
private static final String OAUTH_CLIENT_SECRET = "client_secret";
private static final String ACCOUNT_SID = "account_sid";
private static final String MESSAGE_SID = "message_sid";

//Getting access token - Method #1
Twilio.init(new ClientCredentialProvider(OAUTH_CLIENT_SID, OAUTH_CLIENT_SECRET), ACCOUNT_SID);
fetchMessage(MESSAGE_SID);


//Scenario: 2 If in case one doesn't want to change the existing stored credential
// Pass Custom TwilioRestClient
// TokenManager tokenManager = new ApiTokenManager(GRANT_TYPE, OAUTH_CLIENT_SID, OAUTH_CLIENT_SECRET);
// TokenAuthStrategy tokenAuthStrategy = new TokenAuthStrategy(tokenManager);
// TwilioRestClient client = new TwilioRestClient.Builder(tokenAuthStrategy).accountSid(ACCOUNT_SID).build();
// fetchMessageWithClient(MESSAGE_SID, client);
}

public static void fetchMessage(String sid) {
Message message = Message.fetcher(sid).fetch();
System.out.println("Fetched Message SID: " + message.getSid());
}

public static void fetchMessageWithClient(String sid, TwilioRestClient client) {
Message message = Message.fetcher(sid).fetch(client);
System.out.println("Fetched Message SID: " + message.getSid());
}
}
```

Loading