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
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@ All notable changes to the **Sinch Java SDK** are documented in this file.

## v2.1 – unreleased

### Numbers
- Extend `NumberSinchEvents` class.
- **[fix]** `EventTypeEnum`: `DEPROVISIONING_FROM_VOICE_PLATFORM` is deprecated and has to be replaced by `VOICE_PLATFORM_DEPROVISIONING`.
- **[feature]** Support new `internalFailureCode` field.
- **[feature]** Support new `StatusEnum` values: `IN_REVIEW`, `BLOCKED`, `COMPLETED`, `REJECTED`, `EXPIRED`.
- **[feature]** Support new `EventTypeEnum` value: `NUMBER_ORDER_PROCESSING`.

### Conversation
- **[feature]** Support `Consents` API: `listIdentities` and `listAuditRecords` endpoints

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ public void validateResult(String status, String trigger) {
.setEventType(EventTypeEnum.PROVISIONING_TO_VOICE_PLATFORM)
.setStatus(StatusEnum.SUCCEEDED)
.setFailureCode(null)
.setInternalFailureCode(null)
.build();

NumberSinchEvent expectedFailure =
Expand All @@ -93,6 +94,7 @@ public void validateResult(String status, String trigger) {
.setEventType(EventTypeEnum.PROVISIONING_TO_VOICE_PLATFORM)
.setStatus(StatusEnum.FAILED)
.setFailureCode(FailureCodeEnum.from("PROVISIONING_TO_VOICE_PLATFORM_FAILED"))
.setInternalFailureCode(null)
.build();

NumberSinchEvent expected =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public interface BadRequest {

/** Gets or Sets type */
public class TypeEnum extends EnumDynamic<String, TypeEnum> {
/** The request was malformed in some way. */
public static final TypeEnum BAD_REQUEST = new TypeEnum("BadRequest");

private static final EnumSupportDynamic<String, TypeEnum> ENUM_SUPPORT =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public interface InternalError {

/** Gets or Sets code */
public class CodeEnum extends EnumDynamic<Integer, CodeEnum> {
/** The HTTP status code for an internal server error. */
public static final CodeEnum NUMBER_500 = new CodeEnum(500);

private static final EnumSupportDynamic<Integer, CodeEnum> ENUM_SUPPORT =
Expand Down Expand Up @@ -61,7 +62,10 @@ public static Integer valueOf(CodeEnum e) {

/** Gets or Sets status */
public class StatusEnum extends EnumDynamic<String, StatusEnum> {
/** An internal server error. */
public static final StatusEnum INTERNAL = new StatusEnum("INTERNAL");

/** Some unknown error. */
public static final StatusEnum UNKNOWN = new StatusEnum("UNKNOWN");

private static final EnumSupportDynamic<String, StatusEnum> ENUM_SUPPORT =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public interface InvalidArgument {

/** Gets or Sets code */
public class CodeEnum extends EnumDynamic<Integer, CodeEnum> {
/** The HTTP status code for invalid arguments. */
public static final CodeEnum NUMBER_400 = new CodeEnum(400);

private static final EnumSupportDynamic<Integer, CodeEnum> ENUM_SUPPORT =
Expand Down Expand Up @@ -61,6 +62,7 @@ public static Integer valueOf(CodeEnum e) {

/** Gets or Sets status */
public class StatusEnum extends EnumDynamic<String, StatusEnum> {
/** The request contained invalid arguments. */
public static final StatusEnum INVALID_ARGUMENT = new StatusEnum("INVALID_ARGUMENT");

private static final EnumSupportDynamic<String, StatusEnum> ENUM_SUPPORT =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public interface NotFound {

/** Gets or Sets code */
public class CodeEnum extends EnumDynamic<Integer, CodeEnum> {
/** The HTTP status code for a resource not found. */
public static final CodeEnum NUMBER_404 = new CodeEnum(404);

private static final EnumSupportDynamic<Integer, CodeEnum> ENUM_SUPPORT =
Expand Down Expand Up @@ -61,6 +62,7 @@ public static Integer valueOf(CodeEnum e) {

/** Gets or Sets status */
public class StatusEnum extends EnumDynamic<String, StatusEnum> {
/** The request resource could not be found. */
public static final StatusEnum NOT_FOUND = new StatusEnum("NOT_FOUND");

private static final EnumSupportDynamic<String, StatusEnum> ENUM_SUPPORT =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public interface InternalErrorError {

/** Gets or Sets code */
public class CodeEnum extends EnumDynamic<Integer, CodeEnum> {
/** The HTTP status code for an internal server error. */
public static final CodeEnum NUMBER_500 = new CodeEnum(500);

private static final EnumSupportDynamic<Integer, CodeEnum> ENUM_SUPPORT =
Expand Down Expand Up @@ -61,7 +62,10 @@ public static Integer valueOf(CodeEnum e) {

/** Gets or Sets status */
public class StatusEnum extends EnumDynamic<String, StatusEnum> {
/** An internal server error. */
public static final StatusEnum INTERNAL = new StatusEnum("INTERNAL");

/** Some unknown error. */
public static final StatusEnum UNKNOWN = new StatusEnum("UNKNOWN");

private static final EnumSupportDynamic<String, StatusEnum> ENUM_SUPPORT =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public interface InvalidArgumentError {

/** Gets or Sets code */
public class CodeEnum extends EnumDynamic<Integer, CodeEnum> {
/** The HTTP status code for invalid arguments. */
public static final CodeEnum NUMBER_400 = new CodeEnum(400);

private static final EnumSupportDynamic<Integer, CodeEnum> ENUM_SUPPORT =
Expand Down Expand Up @@ -62,6 +63,7 @@ public static Integer valueOf(CodeEnum e) {

/** Gets or Sets status */
public class StatusEnum extends EnumDynamic<String, StatusEnum> {
/** The request contained invalid arguments. */
public static final StatusEnum INVALID_ARGUMENT = new StatusEnum("INVALID_ARGUMENT");

private static final EnumSupportDynamic<String, StatusEnum> ENUM_SUPPORT =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public interface NotFoundError {

/** Gets or Sets code */
public class CodeEnum extends EnumDynamic<Integer, CodeEnum> {
/** The HTTP status code for a resource not found. */
public static final CodeEnum NUMBER_404 = new CodeEnum(404);

private static final EnumSupportDynamic<Integer, CodeEnum> ENUM_SUPPORT =
Expand Down Expand Up @@ -62,6 +63,7 @@ public static Integer valueOf(CodeEnum e) {

/** Gets or Sets status */
public class StatusEnum extends EnumDynamic<String, StatusEnum> {
/** The request resource could not be found. */
public static final StatusEnum NOT_FOUND = new StatusEnum("NOT_FOUND");

private static final EnumSupportDynamic<String, StatusEnum> ENUM_SUPPORT =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@
public interface EventDestinationUpdateRequest {

/**
* The HMAC secret to be updated for the specified project
* The HMAC secret to be updated for the specified project. It must be between 32 and 64
* characters, alphanumeric (A-Z, a-z, 0-9) and hyphens (-) only. Regex pattern:
* ^[a-zA-Z0-9-]{32,64}$
*
* @return hmacSecret
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,16 +59,35 @@ public interface NumberSinchEvent {

/** The type of the event. */
public class EventTypeEnum extends EnumDynamic<String, EventTypeEnum> {
/** An event that occurs when a number is linked to a Service Plan ID. */
public static final EventTypeEnum PROVISIONING_TO_SMS_PLATFORM =
new EventTypeEnum("PROVISIONING_TO_SMS_PLATFORM");

/** An event that occurs when a number is unlinked from a Service Plan ID. */
public static final EventTypeEnum DEPROVISIONING_FROM_SMS_PLATFORM =
new EventTypeEnum("DEPROVISIONING_FROM_SMS_PLATFORM");

/** An event that occurs when a number is linked to a Campaign. */
public static final EventTypeEnum PROVISIONING_TO_CAMPAIGN =
new EventTypeEnum("PROVISIONING_TO_CAMPAIGN");

/** An event that occurs when a number is unlinked from a Campaign. */
public static final EventTypeEnum DEPROVISIONING_FROM_CAMPAIGN =
new EventTypeEnum("DEPROVISIONING_FROM_CAMPAIGN");

/** An event that occurs when a number is enabled for Voice operations. */
public static final EventTypeEnum PROVISIONING_TO_VOICE_PLATFORM =
new EventTypeEnum("PROVISIONING_TO_VOICE_PLATFORM");

/** An event that occurs when a number is disabled for Voice operations. */
public static final EventTypeEnum DEPROVISIONING_FROM_VOICE_PLATFORM =
new EventTypeEnum("DEPROVISIONING_FROM_VOICE_PLATFORM");

/** An event that occurs when a Number Order transitions to a new state. */
public static final EventTypeEnum NUMBER_ORDER_PROCESSING =
new EventTypeEnum("NUMBER_ORDER_PROCESSING");

/** Deprecated. Replaced by <code>DEPROVISIONING_FROM_VOICE_PLATFORM</code>. */
public static final EventTypeEnum DEPROVISIONING_TO_VOICE_PLATFORM =
new EventTypeEnum("DEPROVISIONING_TO_VOICE_PLATFORM");

Expand All @@ -82,6 +101,8 @@ public class EventTypeEnum extends EnumDynamic<String, EventTypeEnum> {
PROVISIONING_TO_CAMPAIGN,
DEPROVISIONING_FROM_CAMPAIGN,
PROVISIONING_TO_VOICE_PLATFORM,
DEPROVISIONING_FROM_VOICE_PLATFORM,
NUMBER_ORDER_PROCESSING,
DEPROVISIONING_TO_VOICE_PLATFORM));

private EventTypeEnum(String value) {
Expand All @@ -108,14 +129,34 @@ public static String valueOf(EventTypeEnum e) {
*/
EventTypeEnum getEventType();

/** The status of the event. For example, <code>SUCCEEDED</code> or <code>FAILED</code>. */
/** The status of the event or the state transition it represents. */
public class StatusEnum extends EnumDynamic<String, StatusEnum> {
/** The event has succeeded. */
public static final StatusEnum SUCCEEDED = new StatusEnum("SUCCEEDED");

/** The event has failed. */
public static final StatusEnum FAILED = new StatusEnum("FAILED");

/** The Number Order transitioned to the IN_REVIEW state. */
public static final StatusEnum IN_REVIEW = new StatusEnum("IN_REVIEW");

/** The Number Order transitioned to the BLOCKED state. */
public static final StatusEnum BLOCKED = new StatusEnum("BLOCKED");

/** The Number Order transitioned to the COMPLETED state. */
public static final StatusEnum COMPLETED = new StatusEnum("COMPLETED");

/** The Number Order transitioned to the REJECTED state. */
public static final StatusEnum REJECTED = new StatusEnum("REJECTED");

/** The Number Order transitioned to the EXPIRED state. */
public static final StatusEnum EXPIRED = new StatusEnum("EXPIRED");

private static final EnumSupportDynamic<String, StatusEnum> ENUM_SUPPORT =
new EnumSupportDynamic<>(
StatusEnum.class, StatusEnum::new, Arrays.asList(SUCCEEDED, FAILED));
StatusEnum.class,
StatusEnum::new,
Arrays.asList(SUCCEEDED, FAILED, IN_REVIEW, BLOCKED, COMPLETED, REJECTED, EXPIRED));

private StatusEnum(String value) {
super(value);
Expand All @@ -135,7 +176,7 @@ public static String valueOf(StatusEnum e) {
}

/**
* The status of the event. For example, <code>SUCCEEDED</code> or <code>FAILED</code>.
* The status of the event or the state transition it represents.
*
* @return status
*/
Expand All @@ -147,32 +188,61 @@ public static String valueOf(StatusEnum e) {
* campaign provisioning-related failures, refer to the list for the possible values.
*/
public class FailureCodeEnum extends EnumDynamic<String, FailureCodeEnum> {
/** The specified campaign is not available. */
public static final FailureCodeEnum CAMPAIGN_NOT_AVAILABLE =
new FailureCodeEnum("CAMPAIGN_NOT_AVAILABLE");

/** Exceeded the limit for 10DLC. */
public static final FailureCodeEnum EXCEEDED_10_DLC_LIMIT =
new FailureCodeEnum("EXCEEDED_10DLC_LIMIT");

/** Provisioning the number failed. */
public static final FailureCodeEnum NUMBER_PROVISIONING_FAILED =
new FailureCodeEnum("NUMBER_PROVISIONING_FAILED");

/** The third party service is unavailable. */
public static final FailureCodeEnum PARTNER_SERVICE_UNAVAILABLE =
new FailureCodeEnum("PARTNER_SERVICE_UNAVAILABLE");

/** The campaign is not yet accepted. */
public static final FailureCodeEnum CAMPAIGN_PENDING_ACCEPTANCE =
new FailureCodeEnum("CAMPAIGN_PENDING_ACCEPTANCE");

/** Error with MNO. */
public static final FailureCodeEnum MNO_SHARING_ERROR =
new FailureCodeEnum("MNO_SHARING_ERROR");

/** The campaign failed to provision. */
public static final FailureCodeEnum CAMPAIGN_PROVISIONING_FAILED =
new FailureCodeEnum("CAMPAIGN_PROVISIONING_FAILED");

/** The campaign expired. */
public static final FailureCodeEnum CAMPAIGN_EXPIRED = new FailureCodeEnum("CAMPAIGN_EXPIRED");

/** The campaign MNO was rejected. */
public static final FailureCodeEnum CAMPAIGN_MNO_REJECTED =
new FailureCodeEnum("CAMPAIGN_MNO_REJECTED");

/** The campaign MNO was suspended. */
public static final FailureCodeEnum CAMPAIGN_MNO_SUSPENDED =
new FailureCodeEnum("CAMPAIGN_MNO_SUSPENDED");

/** The campaign MNO is under review. */
public static final FailureCodeEnum CAMPAIGN_MNO_REVIEW =
new FailureCodeEnum("CAMPAIGN_MNO_REVIEW");

/** Not enough credit in the account. */
public static final FailureCodeEnum INSUFFICIENT_BALANCE =
new FailureCodeEnum("INSUFFICIENT_BALANCE");

/** Provisioning not allowed for mock campaigns. */
public static final FailureCodeEnum MOCK_CAMPAIGN_NOT_ALLOWED =
new FailureCodeEnum("MOCK_CAMPAIGN_NOT_ALLOWED");

/** Toll free numbers not allowed. */
public static final FailureCodeEnum TFN_NOT_ALLOWED = new FailureCodeEnum("TFN_NOT_ALLOWED");

/** Invalid NNID. */
public static final FailureCodeEnum INVALID_NNID = new FailureCodeEnum("INVALID_NNID");

private static final EnumSupportDynamic<String, FailureCodeEnum> ENUM_SUPPORT =
Expand Down Expand Up @@ -222,6 +292,16 @@ public static String valueOf(FailureCodeEnum e) {
*/
FailureCodeEnum getFailureCode();

/**
* If the status is FAILED, certain processes (eg. number to campaign provisioning) will have an
* internalFailureCode in the payload. The details of these codes can be found in our dedicated <a
* href="https://developers.sinch.com/docs/numbers/api-reference/error-codes/provisioning-errors">Provisioning
* errors</a> documentation.
*
* @return internalFailureCode
*/
String getInternalFailureCode();

/**
* Getting builder
*
Expand Down Expand Up @@ -306,6 +386,15 @@ interface Builder {
*/
Builder setFailureCode(FailureCodeEnum failureCode);

/**
* see getter
*
* @param internalFailureCode see getter
* @return Current builder
* @see #getInternalFailureCode
*/
Builder setInternalFailureCode(String internalFailureCode);

/**
* Create instance
*
Expand Down
Loading
Loading