Skip to content
Merged
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
18 changes: 14 additions & 4 deletions MIGRATION-GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,15 @@ Use the new versioned API under `numbers().v1()` to get access to [NumbersServic

#### Deprecated fields
- Deprecated `MediaMessageBodyDetails.status` field of type `String` is replaced by `MediaMessageBodyDetails.status` of [StatusEnum](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/models/v1/inbounds/MediaMessageBodyDetails.StatusEnum.html) type
- [BinaryRequest.callbackUrl](https://www.javadoc.io/static/com.sinch.sdk/sinch-sdk-java/1.7.1/com/sinch/sdk/domains/sms/models/v1/batches/request/BinaryRequest.html#getCallbackUrl()) is replaced by [BinaryRequest.eventDestinationTarget](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/models/v1/batches/request/BinaryRequest.html#getEventDestinationTarget())
- [UpdateBinaryRequest.callbackUrl](https://www.javadoc.io/static/com.sinch.sdk/sinch-sdk-java/1.7.1/com/sinch/sdk/domains/sms/models/v1/batches/request/UpdateBinaryRequest.html#getCallbackUrl()) is replaced by [BinaryRequest.eventDestinationTarget](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/models/v1/batches/request/UpdateBinaryRequest.html#getEventDestinationTarget())
- [BinaryResponse.callbackUrl](https://www.javadoc.io/static/com.sinch.sdk/sinch-sdk-java/1.7.1/com/sinch/sdk/domains/sms/models/v1/batches/response/BinaryResponse.html#getCallbackUrl()) is replaced by [BinaryResponse.eventDestinationTarget](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/models/v1/batches/response/BinaryResponse.html#getEventDestinationTarget())
- [MediaRequest.callbackUrl](https://www.javadoc.io/static/com.sinch.sdk/sinch-sdk-java/1.7.1/com/sinch/sdk/domains/sms/models/v1/batches/request/MediaRequest.html#getCallbackUrl()) is replaced by [MediaRequest.eventDestinationTarget](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/models/v1/batches/request/MediaRequest.html#getEventDestinationTarget())
- [UpdateMediaRequest.callbackUrl](https://www.javadoc.io/static/com.sinch.sdk/sinch-sdk-java/1.7.1/com/sinch/sdk/domains/sms/models/v1/batches/request/UpdateMediaRequest.html#getCallbackUrl()) is replaced by [UpdateMediaRequest.eventDestinationTarget](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/models/v1/batches/request/UpdateMediaRequest.html#getEventDestinationTarget())
- [MediaResponse.callbackUrl](https://www.javadoc.io/static/com.sinch.sdk/sinch-sdk-java/1.7.1/com/sinch/sdk/domains/sms/models/v1/batches/response/MediaResponse.html#getCallbackUrl()) is replaced by [MediaResponse.eventDestinationTarget](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/models/v1/batches/response/MediaResponse.html#getEventDestinationTarget())
- [TextRequest.callbackUrl](https://www.javadoc.io/static/com.sinch.sdk/sinch-sdk-java/1.7.1/com/sinch/sdk/domains/sms/models/v1/batches/request/TextRequest.html#getCallbackUrl()) is replaced by [MediaRequest.eventDestinationTarget](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/models/v1/batches/request/TextRequest.html#getEventDestinationTarget())
- [UpdateTextRequest.callbackUrl](https://www.javadoc.io/static/com.sinch.sdk/sinch-sdk-java/1.7.1/com/sinch/sdk/domains/sms/models/v1/batches/request/UpdateTextRequest.html#getCallbackUrl()) is replaced by [UpdateTextRequest.eventDestinationTarget](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/models/v1/batches/request/UpdateTextRequest.html#getEventDestinationTarget())
- [TextResponse.callbackUrl](https://www.javadoc.io/static/com.sinch.sdk/sinch-sdk-java/1.7.1/com/sinch/sdk/domains/sms/models/v1/batches/response/TextResponse.html#getCallbackUrl()) is replaced by [TextResponse.eventDestinationTarget](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/models/v1/batches/response/TextResponse.html#getEventDestinationTarget())

#### Replacement models

Expand Down Expand Up @@ -261,9 +270,10 @@ Use the new versioned API under `numbers().v1()` to get access to [NumbersServic
| models/responses/InboundsListResponse | [com.sinch.sdk.domains.sms.models.v1.inbounds.response.ListInboundsResponse](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/models/v1/inbounds/response/ListInboundsResponse.html) |

##### Webhooks
| Old class | New class |
|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| models/webhooks/WebhooksEvent | [com.sinch.sdk.domains.sms.models.v1.webhooks.SmsEvent](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/models/v1/webhooks/SmsEvent.html) |
| Old class | New class |
|------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
| webhooks/WebhooksEvent | [sinchevents.SmsSinchEvent](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/models/v1/sinchevents/SmsSinchEvent.html) |
| WebHooksService | [SinchEventsService](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/api/v1/v1/SinchEventsService.html) |

#### Replacement APIs

Expand All @@ -275,7 +285,7 @@ Use the new versioned API under `sms().v1()` to get access to [SMSService](https
| deliveryReports() | [v1().deliveryReports()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/api/v1/DeliveryReportsService.html) |
| groups() | [v1().groups()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/api/v1/GroupsService.html) |
| inbounds() | [v1().inbounds()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/api/v1/InboundsService.html) |
| webHooks() | [v1().webhooks()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/api/v1/WebHooksService.html) |
| webHooks() | [v1().sinchEvent()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/sms/api/v1/SinchEventsService.html) |

### [`Voice`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/voice/package-summary.html)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,10 @@ public interface SMSService {
GroupsService groups();

/**
* WebHooksService Service instance
* Sinch Events helpers instance
*
* @return service instance for project
* @since 1.5
* @return instance service related to Sinch Events helpers
* @since 2.0
*/
WebHooksService webhooks();
SinchEventsService sinchEvents();
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.sinch.sdk.domains.sms.api.v1;

import com.sinch.sdk.core.exceptions.ApiMappingException;
import com.sinch.sdk.domains.sms.models.v1.webhooks.SmsEvent;
import com.sinch.sdk.domains.sms.models.v1.sinchevents.SmsSinchEvent;
import java.util.Map;

/**
* SMS WebHooks service
* SMS Sinch Events service
*
* <p><b>Callbacks</b>
*
Expand Down Expand Up @@ -36,11 +36,11 @@
*
* @see <a
* href="https://developers.sinch.com/docs/sms/api-reference/sms/tag/Webhooks/">https://developers.sinch.com/docs/sms/api-reference/sms/tag/Webhooks/</a>
* @since 1.5
* @since 2.0
*/
public interface WebHooksService {
public interface SinchEventsService {

SmsEvent parseEvent(String jsonPayload) throws ApiMappingException;
SmsSinchEvent parseEvent(String jsonPayload) throws ApiMappingException;

boolean validateAuthenticationHeader(
String secret, Map<String, String> headers, String jsonPayload);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public class SMSService implements com.sinch.sdk.domains.sms.api.v1.SMSService {
private volatile InboundsService inbounds;
private volatile DeliveryReportsService deliveryReports;
private volatile GroupsService groups;
private volatile WebHooksService webhooks;
private volatile SinchEventsService sinchEvents;

public SMSService(
UnifiedCredentials credentials,
Expand Down Expand Up @@ -124,11 +124,11 @@ public GroupsService groups() {
}

@Override
public WebHooksService webhooks() {
if (null == this.webhooks) {
this.webhooks = new WebHooksService(new HmacAuthenticationValidation());
public SinchEventsService sinchEvents() {
if (null == this.sinchEvents) {
this.sinchEvents = new SinchEventsService(new HmacAuthenticationValidation());
}
return this.webhooks;
return this.sinchEvents;
}

private void instanceLazyInit() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,21 @@
import com.sinch.sdk.auth.HmacAuthenticationValidation;
import com.sinch.sdk.core.exceptions.ApiMappingException;
import com.sinch.sdk.core.utils.databind.Mapper;
import com.sinch.sdk.domains.sms.models.v1.webhooks.SmsEvent;
import com.sinch.sdk.domains.sms.models.v1.sinchevents.SmsSinchEvent;
import java.util.Map;

public class WebHooksService implements com.sinch.sdk.domains.sms.api.v1.WebHooksService {
public class SinchEventsService implements com.sinch.sdk.domains.sms.api.v1.SinchEventsService {

private final HmacAuthenticationValidation authenticationChecker;

public WebHooksService(HmacAuthenticationValidation authenticationChecker) {
public SinchEventsService(HmacAuthenticationValidation authenticationChecker) {
this.authenticationChecker = authenticationChecker;
}

public SmsEvent parseEvent(String jsonPayload) throws ApiMappingException {
public SmsSinchEvent parseEvent(String jsonPayload) throws ApiMappingException {

try {
return Mapper.getInstance().readValue(jsonPayload, SmsEvent.class);
return Mapper.getInstance().readValue(jsonPayload, SmsSinchEvent.class);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.sinch.sdk.domains.sms.models.v1.deliveryreports;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.sinch.sdk.domains.sms.api.v1.SinchEventsService;
import com.sinch.sdk.domains.sms.models.v1.deliveryreports.internal.BatchDeliveryReportOneOfImpl;
import com.sinch.sdk.domains.sms.models.v1.deliveryreports.request.BatchDeliveryReportQueryParameters;

Expand All @@ -9,7 +10,7 @@
*
* @see com.sinch.sdk.domains.sms.api.v1.DeliveryReportsService#get(String,
* BatchDeliveryReportQueryParameters)
* @see com.sinch.sdk.domains.sms.api.v1.WebHooksService#parseEvent(String)
* @see SinchEventsService#parseEvent(String)
* @since 1.5
*/
@JsonDeserialize(using = BatchDeliveryReportOneOfImpl.Deserializer.class)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package com.sinch.sdk.domains.sms.models.v1.deliveryreports;

import com.sinch.sdk.domains.sms.models.v1.webhooks.SmsEvent;
import com.sinch.sdk.domains.sms.api.v1.SinchEventsService;
import com.sinch.sdk.domains.sms.models.v1.sinchevents.SmsSinchEvent;

/**
* Base class for all classes supporting DeliveryReport
*
* @see com.sinch.sdk.domains.sms.api.v1.WebHooksService#parseEvent(String)
* @see SinchEventsService#parseEvent(String)
* @since 1.5
*/
public interface DeliveryReport extends SmsEvent {}
public interface DeliveryReport extends SmsSinchEvent {}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.sinch.sdk.domains.sms.models.v1.deliveryreports;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.sinch.sdk.domains.sms.api.v1.SinchEventsService;
import com.sinch.sdk.domains.sms.models.v1.deliveryreports.internal.RecipientDeliveryReportOneOfImpl;
import com.sinch.sdk.domains.sms.models.v1.deliveryreports.request.ListDeliveryReportsQueryParameters;

Expand All @@ -10,7 +11,7 @@
* @see com.sinch.sdk.domains.sms.api.v1.DeliveryReportsService#getForNumber(String, String)
* @see
* com.sinch.sdk.domains.sms.api.v1.DeliveryReportsService#list(ListDeliveryReportsQueryParameters)
* @see com.sinch.sdk.domains.sms.api.v1.WebHooksService#parseEvent(String)
* @see SinchEventsService#parseEvent(String)
* @since 1.5
*/
@JsonDeserialize(using = RecipientDeliveryReportOneOfImpl.Deserializer.class)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
package com.sinch.sdk.domains.sms.models.v1.inbounds;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.sinch.sdk.domains.sms.api.v1.SinchEventsService;
import com.sinch.sdk.domains.sms.models.v1.inbounds.request.ListInboundMessagesQueryParameters;
import com.sinch.sdk.domains.sms.models.v1.inbounds.response.internal.InboundInternalImpl;
import com.sinch.sdk.domains.sms.models.v1.webhooks.SmsEvent;
import com.sinch.sdk.domains.sms.models.v1.sinchevents.SmsSinchEvent;

/**
* Base class for all classes supporting InBounds
*
* @see com.sinch.sdk.domains.sms.api.v1.InboundsService#get(String)
* @see com.sinch.sdk.domains.sms.api.v1.InboundsService#list(ListInboundMessagesQueryParameters)
* @see com.sinch.sdk.domains.sms.api.v1.WebHooksService#parseEvent(String)
* @see SinchEventsService#parseEvent(String)
* @since 1.5
*/
@JsonDeserialize(using = InboundInternalImpl.Deserializer.class)
public interface InboundMessage extends SmsEvent {}
public interface InboundMessage extends SmsSinchEvent {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.sinch.sdk.domains.sms.models.v1.sinchevents;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.sinch.sdk.domains.sms.api.v1.SinchEventsService;
import com.sinch.sdk.domains.sms.models.v1.sinchevents.internal.SmsSinchEventOneOfImpl;

/**
* Base class for all Sinch event's class
*
* @see SinchEventsService#parseEvent(String)
* @since 2.0
*/
@JsonDeserialize(using = SmsSinchEventOneOfImpl.Deserializer.class)
public interface SmsSinchEvent {}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* SMS API webhooks related models
* SMS API Sinch Events related models
*
* <h2>Incoming SMS WebHook</h2>
* <h2>Incoming SMS Event</h2>
*
* <p>An inbound message is a message sent to one of your short codes or long numbers from a mobile
* phone. To receive inbound message callbacks, a URL needs to be added to your REST API.
Expand All @@ -11,26 +11,26 @@
* <p>See <a
* href="https://developers.sinch.com/docs/sms/api-reference/sms/tag/Webhooks/#tag/Webhooks/operation/incomingSMS">https://developers.sinch.com/docs/sms/api-reference/sms/tag/Webhooks/#tag/Webhooks/operation/incomingSMS</a>
*
* <h2>Delivery Report WebHook</h2>
* <h2>Delivery Report Event</h2>
*
* <p>A delivery report contains the status and status code for each recipient of a batch. To get a
* delivery report callback for a message or batch of messages, set the <code>delivery_report
* </code> field accordingly when creating a batch.
*
* <p>The following is provided so you can better understand our webhooks/callbacks. Configuration
* of both webhooks and the type of delivery report requested happens when sending a batch.
* <p>The following is provided so you can better understand our Sinch Events. Configuration of both
* sinch events and the type of delivery report requested happens when sending a batch.
*
* <p><b>Callback URL</b>
*
* <p>The callback URL can either be provided for each batch or provisioned globally for your
* account in your <a href="https://dashboard.sinch.com/sms/api/rest">Sinch Customer Dashboard</a>.
* Learn how to configure a webhook/callback <a
* Learn how to configure a Sinch Event <a
* href="https://community.sinch.com/t5/SMS/How-do-I-assign-a-callback-URL-to-an-SMS-service-plan/ta-p/8414">here</a>
*
* <p><b>Type</b>
*
* <p>The <code>type</code> is the type of delivery report webhook. The response will vary depending
* on the webhook delivery report you selected when the batch was sent, so choose the appropriate
* <p>The <code>type</code> is the type of delivery report event. The response will vary depending
* on the event delivery report you selected when the batch was sent, so choose the appropriate
* selection under "One of".
*
* <ul>
Expand All @@ -52,6 +52,6 @@
* See <a
* href="https://developers.sinch.com/docs/sms/api-reference/sms/tag/Webhooks/#tag/Webhooks/operation/deliveryReport">https://developers.sinch.com/docs/sms/api-reference/sms/tag/Webhooks/#tag/Webhooks/operation/deliveryReport</a>
*
* @since 1.5
* @since 2.0
*/
package com.sinch.sdk.domains.sms.models.v1.webhooks;
package com.sinch.sdk.domains.sms.models.v1.sinchevents;

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ void checkCredentialsGroups() {

@Test
void checkCredentialsWebhooks() {
assertDoesNotThrow(() -> new SMSService(null, null, null, null).webhooks(), "Init passed");
assertDoesNotThrow(() -> new SMSService(null, null, null, null).sinchEvents(), "Init passed");
}

@Test
Expand Down
Loading
Loading