Skip to content

Commit 62288d7

Browse files
authored
6.1.0 release (#56)
* java 6.1.0 release
1 parent 9eba410 commit 62288d7

File tree

137 files changed

+6962
-2711
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

137 files changed

+6962
-2711
lines changed

CHANGELOG.md

Lines changed: 93 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,53 @@ All notable changes to the library will be documented in this file.
55
The format of the file is based on [Keep a Changelog](http://keepachangelog.com/)
66
and this library adheres to [Semantic Versioning](http://semver.org/) as mentioned in [README.md][readme] file.
77

8+
## [ [6.1.0](https://github.com/infobip/infobip-api-java-client/releases/tag/6.1.0) ] - 2025-04-09
9+
10+
⚠️ **IMPORTANT NOTE:** This release contains compile time breaking changes.
11+
All changes, including breaking changes, are addressed and explained in the list bellow.
12+
If you find out that something was not addressed properly, please submit an issue.
13+
14+
### Added
15+
* Most recent feature set for:
16+
* [Infobip Messages API](https://www.infobip.com/docs/api/platform/messages-api).
17+
* [Infobip Voice API](https://www.infobip.com/docs/api/channels/voice).
18+
* [Infobip SMS API](https://www.infobip.com/docs/api/channels/sms).
19+
* [Infobip 2FA API](https://www.infobip.com/docs/api/platform/2fa).
20+
* [Infobip Email API](https://www.infobip.com/docs/api/channels/email).
21+
* [Infobip WhatsApp API](https://www.infobip.com/docs/api/channels/whatsapp).
22+
* [Infobip Viber API](https://www.infobip.com/docs/api/channels/viber).
23+
* [Infobip WebRTC API](https://www.infobip.com/docs/api/channels/webrtc-calls).
24+
* [Infobip Moments](https://www.infobip.com/docs/api/customer-engagement/moments).
25+
* [Infobip MMS API](https://www.infobip.com/docs/api/channels/mms).
26+
* **Added** new Viber Outbound Content type: `LIST`.
27+
* **Added** new MessagesApi message body types: `PRODUCT` and `MIXED`.
28+
* **Added** new WhatsAppInteractive payment status and payment details type: `UPI_INTENT`.
29+
* **Added** support for `WEBSOCKET` option in call routing endpoint.
30+
* **Added** WhatsAppWebhookType support:
31+
* **Added** support for `INFECTED_CONTENT` and `INTERACTIVE_FLOW_REPLY` types in the `WhatsAppWebhookType` enum.
32+
33+
34+
### Changed
35+
* [WhatsAppWebhookPaymentTransactionNotification](src/main/java/com/infobip/model/WhatsAppWebhookPaymentTransactionNotification.java) model, previously nested enum 'type' and 'status' are now extracted to a separate class.
36+
* [WhatsAppWebhookPaymentNotification](src/main/java/com/infobip/model/WhatsAppWebhookPaymentNotification.java) model, previously nested enum 'currency' is now extracted to a separate class.
37+
* **Updated** `WhatsAppTemplateCardContent.buttons` field type from `List<WhatsAppTemplateButtonContent>``List<WhatsAppCardAllowedTemplateButtonContent>`.
38+
* **Updated** `WhatsAppTemplatePublicApiRequest.structure` field type from `WhatAppTemplateStructureApiData``Object`.
39+
* **Updated** `CallsUpdateScenarioResponse.lastUsageDate` field type from `String``LocalDate`.
40+
* **Updated** `CallsSearchResponse.lastUsageDate` field type from `String``LocalDate`.
41+
* **Removed** `EmailWebhookTrackReport` and `EmailWebhookTrackResponse` in favor of a unified class: `EmailWebhookTrackingPayload`.
42+
* **Updated** `FormsRequest.formType` field type from `FormType``String`.
43+
* **Removed** `CallSipTrunkLocation` enum class, now processed as a `String`.
44+
* **Updated** `WhatsAppTemplateEditPublicApiRequest` `category` field: `CategoryEnum` inner enum replaced by the existing `WhatsAppCategory` class enum value.
45+
* **Updated** `WhatsAppTemplatePublicApiRequest` `category` field: `CategoryEnum` inner enum replaced by the existing `WhatsAppCategory` class enum value.
46+
* **Replaced** `WhatsAppWebhookAddress` `type` enum with `String` to support more options.
47+
* **Fixed** `WhatsAppWebhookContact` `birthday` field type: changed from `OffsetDateTime` to `LocalDate`.
48+
* **Removed** `WhatsAppWebhookPaymentNotification` `CurrencyEnum` inner enum class, replaced by the existing `WhatsAppPaymentStatus` class.
49+
* **Removed** `WhatsAppTemplateAllowedOrderPaymentDetails` class, replaced by the unified `WhatsAppInteractiveAllowedOrderPaymentDetails` class.
50+
* Fixed Javadoc.
51+
52+
### Removed
53+
* **Removed** deviceDetails and networkId fields `MessagesApiDeliveryResult`.
54+
855
## [ [6.0.0](https://github.com/infobip/infobip-api-java-client/releases/tag/6.0.0) ] - 2025-02-17
956

1057
🎉 **NEW Major Version of `infobip-api-java-client`.**
@@ -16,24 +63,24 @@ If you find out that something was not addressed properly, please submit an issu
1663

1764
### Added
1865
* Most recent feature set for:
19-
* [Infobip Messages API](https://www.infobip.com/docs/api/platform/messages-api).
20-
* Footer support for Messages API Message. For additional details check Messages API documentation.
21-
* Add calendar event button support for Messages API Message. For additional details check Messages API documentation.
22-
* Card options for Carousel and Rich Link body types in Messages API Message. For additional details check Messages API documentation.
23-
* [Infobip Voice API](https://www.infobip.com/docs/api/channels/voice).
24-
* Support for Calls Configuration.
25-
* [Infobip SMS API](https://www.infobip.com/docs/api/channels/sms).
26-
* [Infobip 2FA API](https://www.infobip.com/docs/api/platform/2fa).
27-
* [Infobip Email API](https://www.infobip.com/docs/api/channels/email).
28-
* Support for Email IP Management instead of set of deprecated Email IP endpoints. Check [Email API documentation](https://www.infobip.com/docs/api/channels/email) for additional details.
29-
* [Infobip WhatsApp API](https://www.infobip.com/docs/api/channels/whatsapp).
30-
* [Infobip Viber API](https://www.infobip.com/docs/api/channels/viber).
31-
* [Infobip WebRTC API](https://www.infobip.com/docs/api/channels/webrtc-calls).
32-
* [Infobip Moments](https://www.infobip.com/docs/api/customer-engagement/moments).
33-
* [Infobip MMS API](https://www.infobip.com/docs/api/channels/mms).
34-
* Introduced `/mms/2/messages (V2)` replacing the `/mms/1/advanced (V1)` endpoint.
35-
* Introduced `/mms/2/reports (V2)` replacing `/mms/1/reports (V1)` endpoint.
36-
* Introduced `/mms/2/logs (V2)` replacing `/mms/1/logs (V1)` endpoint.
66+
* [Infobip Messages API](https://www.infobip.com/docs/api/platform/messages-api).
67+
* Footer support for Messages API Message. For additional details check Messages API documentation.
68+
* Add calendar event button support for Messages API Message. For additional details check Messages API documentation.
69+
* Card options for Carousel and Rich Link body types in Messages API Message. For additional details check Messages API documentation.
70+
* [Infobip Voice API](https://www.infobip.com/docs/api/channels/voice).
71+
* Support for Calls Configuration.
72+
* [Infobip SMS API](https://www.infobip.com/docs/api/channels/sms).
73+
* [Infobip 2FA API](https://www.infobip.com/docs/api/platform/2fa).
74+
* [Infobip Email API](https://www.infobip.com/docs/api/channels/email).
75+
* Support for Email IP Management instead of set of deprecated Email IP endpoints. Check [Email API documentation](https://www.infobip.com/docs/api/channels/email) for additional details.
76+
* [Infobip WhatsApp API](https://www.infobip.com/docs/api/channels/whatsapp).
77+
* [Infobip Viber API](https://www.infobip.com/docs/api/channels/viber).
78+
* [Infobip WebRTC API](https://www.infobip.com/docs/api/channels/webrtc-calls).
79+
* [Infobip Moments](https://www.infobip.com/docs/api/customer-engagement/moments).
80+
* [Infobip MMS API](https://www.infobip.com/docs/api/channels/mms).
81+
* Introduced `/mms/2/messages (V2)` replacing the `/mms/1/advanced (V1)` endpoint.
82+
* Introduced `/mms/2/reports (V2)` replacing `/mms/1/reports (V1)` endpoint.
83+
* Introduced `/mms/2/logs (V2)` replacing `/mms/1/logs (V1)` endpoint.
3784
* **Added** new Calls error code type: `MACHINE_DETECTED`.
3885
* **Added** support for `CallsProviderSipTrunkUpdateRequest`.
3986
* **Created** `RawJsonDeserializer` to handle raw JSON deserialization.
@@ -53,9 +100,9 @@ If you find out that something was not addressed properly, please submit an issu
53100

54101
- Voice API
55102
- Adjusted IVR models in script processing. Scenario scripting is now implemented as a raw string to increase usability of the feature. Scripts should be passed as strings to the IVR request model in all upcoming SDK versions.
56-
- **Updated** `CallsUpdateScenarioRequest.script` field type from `List<CallsScriptInner>``String`.
57-
- **Updated** `CallsSearchResponse.script` and `else` fields type from `List<Object>``String`.
58-
- **Updated** `CallsUpdateScenarioResponse.script` field type from `Object``String`.
103+
- **Updated** `CallsUpdateScenarioRequest.script` field type from `List<CallsScriptInner>``String`.
104+
- **Updated** `CallsSearchResponse.script` and `else` fields type from `List<Object>``String`.
105+
- **Updated** `CallsUpdateScenarioResponse.script` field type from `Object``String`.
59106
- **Updated** `CallsGetVoicesResponses.voices` field type from `List<CallsVoice>``List<CallsSynthesisVoice>`.
60107
- **Updated** `CallsSearchResponse.lastUsageDate` field type from `OffsetDateTime``String`.
61108
- **Updated** `CallsSpeechCaptureRequest.language` field type from `CallsLanguage``CallTranscriptionLanguage`.
@@ -123,31 +170,31 @@ If you find out that something was not addressed properly, please submit an issu
123170
- **Removed** `fcmServerKey` field from `WebRtcAndroidPushNotificationConfig`.
124171

125172
### Removed:
126-
- Deprecated functions for sending Viber `Image`, `File`, and `Text` messages have been removed. Use `ViberApi.sendViberMessages` to send messages.
127-
- All the Calls IVR script related class and from now on all the scripts are processed as `String`:
128-
- `CallsCallApi`
129-
- `CallsCapture`
130-
- `CallsCollect`
131-
- `CallsDial`
132-
- `CallsDialToMany`
133-
- `CallsDialToWebRTC`
134-
- `CallsDialToConversations`
135-
- `CallsForEach`
136-
- `CallsGoTo`
137-
- `CallsHangup`
138-
- `CallsIfThenElse`
139-
- `CallsMachineDetection`
140-
- `CallsPause`
141-
- `CallsPlay`
142-
- `CallsPlayFromRecording`
143-
- `CallsRecord`
144-
- `CallsRepeatUntil`
145-
- `CallsRepeatWhile`
146-
- `CallsSay`
147-
- `CallsSendSms`
148-
- `CallsSetVariable`
149-
- `CallsSwitchCase`
150-
- `CallsWhileDo`
173+
- Deprecated functions for sending Viber `Image`, `File`, and `Text` messages have been removed. Use `ViberApi.sendViberMessages` to send messages.
174+
- All the Calls IVR script related class and from now on all the scripts are processed as `String`:
175+
- `CallsCallApi`
176+
- `CallsCapture`
177+
- `CallsCollect`
178+
- `CallsDial`
179+
- `CallsDialToMany`
180+
- `CallsDialToWebRTC`
181+
- `CallsDialToConversations`
182+
- `CallsForEach`
183+
- `CallsGoTo`
184+
- `CallsHangup`
185+
- `CallsIfThenElse`
186+
- `CallsMachineDetection`
187+
- `CallsPause`
188+
- `CallsPlay`
189+
- `CallsPlayFromRecording`
190+
- `CallsRecord`
191+
- `CallsRepeatUntil`
192+
- `CallsRepeatWhile`
193+
- `CallsSay`
194+
- `CallsSendSms`
195+
- `CallsSetVariable`
196+
- `CallsSwitchCase`
197+
- `CallsWhileDo`
151198

152199
These changes align the SDK with the current API specification, ensuring consistency and reliability in future updates.
153200

CONTRIBUTING.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ please follow these guidelines to help us understand your proposal and evaluate
3838
* **Open a New Enhancement Issue** - if your suggestion is new, please open a new issue and prefix it with "ENHANCEMENT" or "SUGGESTION".
3939
Please try to title your issue as clearly as possible to summarize your enhancement idea.
4040
* **Provide a Detailed Description** - in your issue description, try to include as much of the following information:
41-
* **Problem:** What problem does this enhancement solve? Why is this feature needed?
42-
* **Proposed Solution:** Describe the enhancement or feature you’re suggesting. How should it work? Provide as much detail as possible.
43-
* **Alternatives Considered:** Have you thought of other ways to solve the problem? If so, briefly explain why your proposed solution is better.
44-
* **Additional Context:** Share any examples, mockups, screenshots, or links to similar implementations (if applicable).
41+
* **Problem:** What problem does this enhancement solve? Why is this feature needed?
42+
* **Proposed Solution:** Describe the enhancement or feature you’re suggesting. How should it work? Provide as much detail as possible.
43+
* **Alternatives Considered:** Have you thought of other ways to solve the problem? If so, briefly explain why your proposed solution is better.
44+
* **Additional Context:** Share any examples, mockups, screenshots, or links to similar implementations (if applicable).
4545
* **Stay Focused and Specific** - try to keep your enhancement idea focused on a single problem or feature. If you have multiple ideas, consider creating separate issues for each to make the discussion easier to follow.
4646
* **Be Open to Feedback** - we encourage healthy discussion about proposed enhancements. Be open to feedback, as maintainers and other contributors may have questions or alternative suggestions.
4747
* **Contribute the Enhancement** - if you want implement your suggestion or if you're interested in working on the other people's enhancements yourself, please check the [Pull request](#%EF%B8%8F-pull-request) section on how to do that.

README.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ The current version of this library includes this subset of Infobip products:
2727
* [SMS](https://www.infobip.com/docs/api/channels/sms)
2828
* [MMS](https://www.infobip.com/docs/api/channels/mms)
2929
* [Voice](https://www.infobip.com/docs/api/channels/voice)
30-
* [WebRTC](https://www.infobip.com/docs/api/channels/webrtc)
30+
* [WebRTC](https://www.infobip.com/docs/api/channels/webrtc-calls/webrtc)
3131
* [Email](https://www.infobip.com/docs/api/channels/email)
3232
* [WhatsApp](https://www.infobip.com/docs/api/channels/whatsapp)
3333
* [Viber](https://www.infobip.com/docs/api/channels/viber)
@@ -47,9 +47,9 @@ The library requires Java 11 and is compatible up to and including Java 19.
4747
Simply add the following in your project's POM file under `dependencies` tag:
4848
```xml
4949
<dependency>
50-
<groupId>com.infobip</groupId>
51-
<artifactId>infobip-api-java-client</artifactId>
52-
<version>6.0.0</version>
50+
<groupId>com.infobip</groupId>
51+
<artifactId>infobip-api-java-client</artifactId>
52+
<version>6.1.0</version>
5353
</dependency>
5454
```
5555

@@ -91,7 +91,7 @@ See below, a simple example of sending a single SMS message to a single recipien
9191
.sender("InfoSMS")
9292
.addDestinationsItem(new SmsDestination().to("41793026727"))
9393
.content(new SmsTextContent().text("Hello World from infobip-api-java-client!"));
94-
94+
9595
SmsRequest smsMessageRequest = new SmsRequest()
9696
.messages(List.of(message));
9797
```
@@ -146,22 +146,24 @@ Example of webhook implementation with Spring Web framework:
146146
@PostMapping("/delivery-reports")
147147
public void receiveDeliveryReports(HttpServletRequest request) throws IOException {
148148
SmsDeliveryResult reports = new JSON().deserialize(request.getInputStream(), SmsDeliveryResult.class);
149+
149150
for (SmsDeliveryReport report : reports.getResults()) {
150151
System.out.println(report.getMessageId() + " - " + report.getStatus().getName());
151152
}
152153
}
153154
```
154-
If you prefer to use your own serializer, make note of the supported [date format](https://www.infobip.com/docs/essentials/integration-best-practices#date-formats).
155+
If you prefer to use your own serializer, make note of the supported [date format](https://www.infobip.com/docs/essentials/api-essentials/integration-best-practices#date-formats).
155156
You can always take a look at our [implementation](https://github.com/infobip/infobip-api-java-client/blob/master/src/main/java/com/infobip/JSON.java).
156157

157158
#### Fetching delivery reports
158159
If you are for any reason unable to receive real-time delivery reports on your endpoint, you can use `messageId` or `bulkId` to fetch them.
159-
Each request will return a batch of delivery reports - only once. See [documentation](https://www.infobip.com/docs/api/channels/sms/sms-messaging/logs-and-status-reports/get-outbound-sms-message-delivery-reports) for more details.
160+
Each request will return a batch of delivery reports - only once. See [documentation](https://www.infobip.com/docs/api/channels/sms/logs-and-status-reports/get-outbound-sms-message-delivery-reports-v3) for more details.
160161

161162
```java
162163
SmsDeliveryResult deliveryResult = smsApi.getOutboundSmsMessageDeliveryReports()
163164
.bulkId("bulkId")
164165
.execute();
166+
165167
for (SmsDeliveryReport report : deliveryResult.getResults()) {
166168
System.out.println(report.getMessageId() + " - " + report.getStatus().getName());
167169
}
@@ -173,9 +175,11 @@ Infobip API supports Unicode characters and automatically detects encoding. Unic
173175
```java
174176
SmsPreviewRequest smsPreviewRequest = new SmsPreviewRequest()
175177
.text("Let's see how many characters will remain unused in this message.");
178+
176179
SmsPreviewResponse previewResponse = smsApi
177180
.previewSmsMessage(smsPreviewRequest)
178181
.execute();
182+
179183
System.out.println(previewResponse);
180184
```
181185

messages-api.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ The first step is to create an `ApiClient` instance with some configuration.
88

99
````java
1010
ApiClient apiClient = ApiClient.forApiKey(ApiKey.from(API_KEY))
11-
.withBaseUrl(BaseUrl.from(BASE_URL))
12-
.build();
11+
.withBaseUrl(BaseUrl.from(BASE_URL))
12+
.build();
1313
````
1414

1515
With that ready, you can now create an instance of `MessagesApi` which allows you to send messages using Messages API.
@@ -61,7 +61,7 @@ The easiest way to start with Messages API is to send a text message. First you
6161
Send the message invoking the appropriate send method and store the results in a new variable.
6262

6363
````java
64-
MessagesApiResponse messageInfo = null;
64+
MessageResponse messageInfo = null;
6565
try {
6666
messageInfo = messagesApi
6767
.sendMessagesApiMessage(messagesApiRequest)

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>com.infobip</groupId>
66
<artifactId>infobip-api-java-client</artifactId>
7-
<version>6.0.0</version>
7+
<version>6.1.0</version>
88
<packaging>jar</packaging>
99

1010
<name>infobip-api-java-client</name>

src/main/java/com/infobip/RequestFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
*/
2727
final class RequestFactory {
2828

29-
private static final String USER_AGENT_HEADER_VALUE = "infobip-api-client-java/6.0.0";
29+
private static final String USER_AGENT_HEADER_VALUE = "infobip-api-client-java/6.1.0";
3030

3131
private final ApiKey apiKey;
3232
private final BaseUrl baseUrl;

0 commit comments

Comments
 (0)