diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..3e89120d1 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,309 @@ +# Changelog + +All notable changes to the **Sinch Java SDK** are documented in this file. + +> **Tag legend** +> - `[feature]` — new capability +> - `[fix]` — bug fix +> - `[deprecation notice]` — will be removed in a future release +> - `[dependency]` — third-party library update +> - `[doc]` — documentation only +> - `[test]` — test coverage +> - `[refactor]` — internal restructuring +> - `[releasing]` — release infrastructure +> - `[design]` — API design change +> - `[tech]` — technical improvement + +--- + +## v2.0 – Unreleased + +### Major breaking changes with major release +- see [MIGRATION-GUIDE](MIGRATION-GUIDE.md#200) + +### Conversation +- **[feature]** Support `Project Settings` API +- **[feature]** Support `Contacts Identity Conflicts` API +- **[feature]** [Messages] Support new `direction` query parameter for `MessagesListQueryParameters` +- **[feature]** [Messages] Support `listLastMessagesByChannelIdentity` API +- **[feature]** [KakaoTalk] Support `COMMERCE` and `CAROUSEL_COMMERCE` channel specific message +- **[feature]** [LINE] Support `NOTIFICATION_MESSAGE_TEMPLATE` channel specific message +- **[deprecation notice]** [OrderDetailsSettings] [`PaymentSettings`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.7.1/com/sinch/sdk/domains/conversation/models/v1/messages/types/channelspecific/whatsapp/payment/OrderDetailsPayment.html#getPaymentSettings()) deprecated in favor of [`PaymentButtons`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.7.1/com/sinch/sdk/domains/conversation/models/v1/messages/types/channelspecific/whatsapp/payment/OrderDetailsPayment.html#getPaymentButtons()) + +### Verification +- **[feature]** Support `VerificationSmsDeliveredEvent` webhook events +- FlashCall + - **[feature]** `VerificationStartRequestFlashCall` support `interceptionTimeout` and additionalProperties + - **[feature]** `VerificationStartResponseFlashCall` support additionalProperties + - **[feature]** `VerificationRequestEventResponseFlashCall` support `interceptionTimeout` and additionalProperties +- PhoneCall + - **[feature]** `VerificationStartRequestPhoneCall` support additionalProperties + - **[feature]** `VerificationRequestEventResponsePhoneCall` support additionalProperties +- SMS + - **[feature]** `VerificationStartResponseSms` support `codeType` and additionalProperties + - **[feature]** `VerificationRequestEventResponseSms` support `codeType`, `expiry` and additionalProperties +- WhatsApp + - **[feature]** [BETA] Support `WhatsApp` verification method + +### Voice +- **[feature]** Support new DICE reason values + + +--- + +## v1.7.1 – 2025-10-14 +- **[fix]** Issue #273: Fix NPE when handling 401 response without a token expired header + +--- + +## v1.7.0 – 2025-07-16 +### SDK +- **[dependency]** Bump Jackson dependency to '2.19.0' +- **[dependency]** Bump generated sources based onto generator '7.13' +- **[dependency]** Bump maven-gpg-plugin used to sign released artifacts to '1.6' +- **[releasing]** Migration to replace deprecated OSSRH in favor of SonaType Central +- **[test]** Activate parallel mode for unit tests + +### Conversation +- **[fix]** Specifications fixed: + - `TemplateMessage.OmniTemplate` field is now requiring a `TemplateReference` with `version` field filled. + - `TemplateMessage.ChannelTemplate` still use a `TemplateReference` with `version` field not required. + To avoid breaking changes and namespace pollution, SDK is accepting a common `TemplateReference` instance and validation about the required `version` field won't be performed at client level by client, but will validate at backend level after having sent the request. +- **[feature]** `Reason.channel_code` field added (only for supported by WhatsApp) +- **[deprecation notice]** Emit a warning log onto using default region for Conversation (US). To avoid regulation issue, defaulting to US will no longer be supported in future version and defining the region will be required. +- **[test]** Clean Jackson cache during unit tests + +### Mailgun +- **[feature]** `copyVersion` API based now return `version` field in place of deprecated `template` one +- **[doc]** Improve Javadoc rendering by separating summary and notes +- **[deprecation notice]** Emit a warning log onto using default region for Mailgun (US). To avoid regulation issue, defaulting to US will no longer be supported in future version and defining the region will be required. + +### Numbers +- **[feature]** Support Emergency Address +- **[feature]** Add new API `rent(phoneNumber)` without configuration +- **[feature]** Switch from 'Basic' to 'OAuth' auth +- **[deprecation notice]** + - [list(ActiveNumberListRequest)](https://www.javadoc.io/static/com.sinch.sdk/sinch-sdk-java/1.7.0/com/sinch/sdk/domains/numbers/api/v1/NumbersService.html#list(com.sinch.sdk.domains.numbers.models.v1.request.ActiveNumberListRequest)) replaced by [list(ActiveNumbersListQueryParameters)](https://www.javadoc.io/static/com.sinch.sdk/sinch-sdk-java/1.7.0/com/sinch/sdk/domains/numbers/api/v1/ActiveNumberService.html#list(com.sinch.sdk.domains.numbers.models.v1.request.ActiveNumbersListQueryParameters)) + - [searchForAvailableNumbers(AvailableNumberListRequest)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/latest/com/sinch/sdk/domains/numbers/api/v1/NumbersService.html#searchForAvailableNumbers(com.sinch.sdk.domains.numbers.models.v1.request.AvailableNumberListRequest)) replaced by [searchForAvailableNumbers(AvailableNumbersListQueryParameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/latest/com/sinch/sdk/domains/numbers/api/v1/AvailableNumberService.html#searchForAvailableNumbers(com.sinch.sdk.domains.numbers.models.v1.request.AvailableNumbersListQueryParameters)) + - [list(AvailableRegionListRequest)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/latest/com/sinch/sdk/domains/numbers/api/v1/AvailableRegionService.html#list(com.sinch.sdk.domains.numbers.models.v1.regions.available.request.AvailableRegionListRequest)) replaced by [list(AvailableRegionsListQueryParameters)](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/latest/com/sinch/sdk/domains/numbers/api/v1/AvailableRegionsService.html#list(com.sinch.sdk.domains.numbers.models.v1.regions.request.AvailableRegionsListQueryParameters)) +- **[refactor]** Voice configuration RTC is optional onto requests. No effect at SDK interface level +- **[refactor]** Move to facade pattern and consume APIs from generator + +### SMS +- **[doc]** Improve Javadoc rendering by separating summary and notes +- **[deprecation notice]** Emit a warning log onto using default region for SMS (US). To avoid regulation issue, defaulting to US will no longer be supported in future version and defining the region will be required. + +### Voice +- **[test]** Extend end-to-end tests against `notify` +- **[feature]** Support SVAML `connectStream` action +- **[feature]** Support `asynch` field for `amdRequest` +- **[feature]** Define two new values for `AnsweringMachineDetection.Reason` enum + +--- + +## v1.6.0 – 2025-04-23 + +### SDK +- **[feature]** Lazy HTTP client initialization until really required + +### Cross domains +- **[feature]** Relax domains init for Webhooks when credentials are not required +- **[feature]** Validation against missing required property at protocol level + +### Conversation +- **[fix]** `CardMessage.media_message` is now of `MediaMessage` type +- **[feature]** New `ListMessage.media` field is supported +- **[feature]** New SG (Singapore) country defined for WhatsApp order payment details +- **[feature]** New `ConversationChannelCredentials.credential_ordinal_number` field is supported +- **[feature]** New `LineEnterpriseCredentials` is supported +- **[feature]** New `LineCredentialsField.isDefault` field is supported +- **[feature]** New `SendMessageRequest.message_content_type` is supported (enum of `MessageContentType`) +- **[feature]** New `ChannelSpecificMessage` classes for WhatsApp: + - `OrderDetails` + - `OrderStatus` +- **[deprecation notice]** `CardMessageMedia` class is deprecated in favor of shared `MediaMessage` + +### Mailgun as PREVIEW features + +- **[feature]** Support "Emails" +- **[feature]** Support "Templates" + +### SMS + +- **[fix]** `contentType` VS `content_type` JSON field name for `MediaMessageBodyDetails` at protocol level +- **[fix]** Body requests defined as required at protocol level +- **[fix]** `UpdateBinaryRequest.udh` field is required at protocol level +- **[feature]** `DryRunPerRecipientDetails.encodingEnum` defined as an enum +- **[feature]** List batches query parameters is accepting a list from values of code +- **[deprecation notice]** List batches query parameters accepting a single from value (replaced by function above) +- **[deprecation notice]** `DryRunPerRecipientDetails.encoding` is deprecated in favor of `DryRunPerRecipientDetails.encodingEnum` + +### Voice + +- **[feature]** Define `AnsweringMachineDetection` used by `AnsweredCallEvent` and `NotificationEvent` +- **[feature]** `conferenceId` field is supported by + - `AnsweredCallEvent` + - `DisconnectCallEvent` + - `IncomingCallEvent` + - `NotificationEvent` + - `PromptInputEvent` +- **[feature]** `NotificationEvent` support `destination` and `amd` fields +- **[deprecation notice]** `AnsweredCallEventAnsweringMachineDetection` is replaced by `AnsweringMachineDetection` +- **[deprecation notice]** Following backend endpoint deprecation `applications.queryNumber` is deprecated + +--- + +## v1.5.1 – 2025-03-04 +### Conversation +- **[fix]** `CardMessage` + - `CardMessage.media` field is of `MediaMessage` type (see Javadoc) + - `CardMessageMedia` class is deprecated (see Javadoc) + +--- + +## v1.5.0 – 2025-02-12 + +### Chore +- **[dependency]** Updated Jackson dependency to jackson-jakarta-rs-providers v2.18.2 + +### SMS +- **[feature]** Versioned access to SMS services +- **[deprecation notice]** Un-versioned access to SMS services (see SMS migration guide) + +### Conversation +- **[fix]** Channel specific message (Messenger / FLOWS) fix for serialization/de-serialization +- **[fix]** List `ChoiceItem.media` field fix for serialization/de-serialization + +### Numbers +- **[deprecation notice]** Un-versioned access to Numbers services (see Numbers migration guide) + +### Verification +- **[deprecation notice]** Un-versioned access to Verification services (see Verification migration guide) + +### Voice +- **[deprecation notice]** Un-versioned access to Voice services (see Voice migration guide) + +--- + +## v1.4.0 – 2024-11-06 + +### Voice + +- **[feature]** Support V1 design +- **[feature]** Follow specification update for SVAML `PlayFiles.locale`, field is no longer required +- **[fix]** Webhooks callbacks validation use case-insensitive headers (`validateAuthenticationHeader`) +- **[test]** Extend tests coverage (introduced end-to-end tests) + +### Numbers +- **[feature]** Specification update for `VoiceConfiguration.scheduledProvisioning` defined as readOnly +- **[feature]** Specification update for `SmSConfiguration.scheduledProvisioning` defined as readOnly + +--- + +## v1.3.1 – 2024-09-30 +### SMS +- **[fix]** Enable list of parameters grouped by duplicated keys + +--- + +## v1.3.0 – 2024-09-27 +### Core + +#### Generated sources +- **[fix]** Generated sources with OptionalValue getter: guard against uninitialized value +- **[feature]** Contains serializer/deserializer to be used for delegation pattern +- **[feature]** Enhanced javadoc content + +#### Versioning +- **[feature]** Store SDK related information within sources + +### Conversation +- **[feature]** Support Conversation API + +### Numbers +- **[feature]** Helper function for webhook authentication header +- **[feature]** `readOnly` fields are no longer sent over network + +### SMS +- **[feature]** Align with updated specs for DryRun + +### Verification +- **[fix]** Enforce webhooks validation logic for empty or missing `authorization` header + +--- + +## v1.2.4 – 2024-09-30 +### SMS +- **[fix]** Enable list of parameters grouped by duplicated keys + +--- + +## v1.2.3 – 2024-09-04 +### Verification (SMS) +- **[feature]** Support additional properties onto Start verification by SMS + +--- + +## v1.2.2 – 2024-08-19 +- **[fix]** UTF-8 encoding for body payloads. + +--- + +## v1.2.1 – 2024-07-24 +### Numbers +- **[fix]** Add missing `WebHooksService.validateAuthenticationHeader` function for Numbers + +--- + +## v1.2.0 – 2024-07-11 + +Starting with version `1.2`, `Numbers` domain now support versioned access by using the `v1()` API calls. +The existing non-versioned services will no longer be updated with new features/fields. + +### Numbers +- **[design]** New versioned service simplified access to available or active: APIs are accessible directly under `v1()` +- **[feature]** FAX & EST number's configuration. The `VoiceConfiguration` and `ScheduledVoiceProvisioning` models have been updated to reflect the "Unified Numbers" API updates: they now hold values for Fax and Elastic SIP Trunking configuration (respectively with the properties `serviceId` and `trunkId`). + +### Verification +- **[doc]** Error message related to invalid configuration (credentials) fixed + +--- + +## v1.1.0 – 2024-06-28 +With version `1.1` we are moving to support versioned domain access. + +Starting with the `Verification` domain, you can access services by using the `v1()` API calls. +The existing non-versioned services will no longer be updated with new features/fields. + +### Verification +- **[feature]** [Design] Non-versioned `Verification` domain is split into dedicated Start and Report new versioned services + +- **[feature]** Synchronization with documentation terms + - `Callout` related fields and APIs are now named Phone Call + - `Seamless` related fields and APIs are now named Data +- **[feature]** Start Verification + - `VerificationStartRequestSms` + - Support `Accept-Language` option + - Support `code type` option + - Support `expiry` option + - `VerificationStartRequestPhoneCall` + - Support `speech` option + - `VerificationStartResponseData` + - **[fix]** `targetUri` field added +- **[feature]** Verification Report + - **[fix]** `VerificationReportResponse`: Report service no longer returns a common status response shared with status service, but a dedicated verification report response. + +- **[feature]** Webhooks + - **[deprecation notice]** `VerificationRequestEvent.acceptLanguage` field is deprecated + +- **[tech]** Logs + - Reduce logging severity related to phone number not compliant with E164 format + +--- + +## v1.0.0 – 2024-04-18 +- **[feature]** Support Numbers API (SDK doc) +- **[feature]** Support SMS API (SDK doc). Support both unified credentials (projectId) and service planId +- **[feature]** Support Verification API (SDK doc) +- **[feature]** Support Voice API (REST API) +- **[doc]** Online javadoc diff --git a/MIGRATION-GUIDE.md b/MIGRATION-GUIDE.md index 5d693351e..c61a8a812 100644 --- a/MIGRATION-GUIDE.md +++ b/MIGRATION-GUIDE.md @@ -1,5 +1,18 @@ # Sinch Java SDK Migration Guide +## Table of Contents + +- [2.0.0](#200) + - [General design change](#general-design-change) + - [Conversation](#conversation) + - [Numbers](#numbers) + - [SMS](#sms) + - [Voice](#voice) + - [Verification](#verification) + - [Mailgun](#mailgun) +- [1.5.0](#150) + +--- ## 2.0.0 This release removes legacy SDK support. @@ -46,23 +59,23 @@ secretForOverriddenTarget](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-ja | `OptOutEventNotification` | constant values prefixed with `OPT_OUT_` | | `Templates V1` | Removed support for `Templates` V1 | -| Old class | New class | -|-------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| api.v1.MessagesService.MessageSource | [messages.request.MessageSource](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/messages/request/MessageSource.html) | -| messages.types.card.CardMessageMedia | [messages.types.media.MediaMessage](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/messages/types/media/MediaMessage.html) | -| contact.request.IdentityConflictsListRequest | [contacts.request.ContactListIdentityConflictsQueryParameters](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/contacts/request/ContactListIdentityConflictsQueryParameters.html) | -| contact.request.ContactListRequest | [contacts.request.ContactsListQueryParameters](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/contacts/request/ContactsListQueryParameters.html) | -| contact.response.ContactsListResponse | [contacts.response.ContactsListResponse](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/contacts/response/ContactsListResponse.html) | -| conversation.request.ConversationsListRequest | [conversations.request.ConversationsListQueryParameters](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/conversations/request/ConversationsListQueryParameters.html) | -| conversation.request.ConversationsListRecentRequest | [conversations.request.ConversationsListQueryParameters](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/conversations/request/RecentConversationsListQueryParameters.html) | -| conversation.response.ConversationsListRecentResponse | [conversations.response.RecentConversationsListResponse](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/conversations/response/RecentConversationsListResponse.html) | -| events.request.EventsListRequest | [events.request.EventsListQueryParameters](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/events/request/EventsListQueryParameters.html) | -| messages.request.MessagesListRequest | [messages.request.MessagesListQueryParameters](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/messages/request/MessagesListQueryParameters.html) | -| webhooks.Webhook | [eventdestinations.EventDestination](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/eventdestinations/EventDestination.html) | -| webhooks.events.ConversationWebhookEvent | [sinchevents.ConversationSinchEvent](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/sinchevents/ConversationSinchEvent.html) | -| webhooks.WebhookTrigger | [sinchevents.EventDestinationTrigger](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/eventdestination/EventDestinationTrigger.html) | -| webhooks.WebhookTargetType | [sinchevents.EventDestinationTargetType](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/eventdestination/EventDestinationTargetType.html) | -| apps.CallbackSettings | [EventDestinationSettings](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/apps/EventDestinationSettings.html) | +| Old class | New class | +|-------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| api.v1.MessagesService.MessageSource | [messages.request.MessageSource](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/messages/request/MessageSource.html) | +| messages.types.card.CardMessageMedia | [messages.types.media.MediaMessage](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/messages/types/media/MediaMessage.html) | +| contact.request.IdentityConflictsListRequest | [contacts.request.ContactListIdentityConflictsQueryParameters](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/contacts/request/ContactListIdentityConflictsQueryParameters.html) | +| contact.request.ContactListRequest | [contacts.request.ContactsListQueryParameters](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/contacts/request/ContactsListQueryParameters.html) | +| contact.response.ContactsListResponse | [contacts.response.ContactsListResponse](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/contacts/response/ContactsListResponse.html) | +| conversation.request.ConversationsListRequest | [conversations.request.ConversationsListQueryParameters](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/conversations/request/ConversationsListQueryParameters.html) | +| conversation.request.ConversationsListRecentRequest | [conversations.request.ConversationsListQueryParameters](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/conversations/request/RecentConversationsListQueryParameters.html) | +| conversation.response.ConversationsListRecentResponse | [conversations.response.RecentConversationsListResponse](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/conversations/response/RecentConversationsListResponse.html) | +| events.request.EventsListRequest | [events.request.EventsListQueryParameters](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/events/request/EventsListQueryParameters.html) | +| messages.request.MessagesListRequest | [messages.request.MessagesListQueryParameters](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/messages/request/MessagesListQueryParameters.html) | +| webhooks.Webhook | [eventdestinations.EventDestination](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/eventdestinations/EventDestination.html) | +| webhooks.events.ConversationWebhookEvent | [sinchevents.ConversationSinchEvent](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/sinchevents/ConversationSinchEvent.html) | +| webhooks.WebhookTrigger | [sinchevents.EventDestinationTrigger](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/eventdestination/EventDestinationTrigger.html) | +| webhooks.WebhookTargetType | [sinchevents.EventDestinationTargetType](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/eventdestination/EventDestinationTargetType.html) | +| apps.CallbackSettings | [EventDestinationSettings](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/conversation/models/v1/apps/EventDestinationSettings.html) | #### Replacement Services | Old package | New package | @@ -122,10 +135,10 @@ secretForOverriddenTarget](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-ja | SmsErrorCode | [com.sinch.sdk.domains.numbers.models.v1.SmsErrorCode](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/numbers/models/v1/SmsErrorCode.html) | | VoiceConfiguration | [com.sinch.sdk.domains.numbers.models.v1.VoiceConfiguration](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/numbers/models/v1/VoiceConfiguration.html) | -| Old enum | New enum | -|-----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| SmsErrorCode.EXCEEDED_10DLC_LIMIT | [SmsErrorCode.EXCEEDED_10_DLC_LIMIT](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/numbers/models/v1/SmsErrorCode.htmll#EXCEEDED_10_DLC_LIMIT) | -| NumberEvent.EXCEEDED_10DLC_LIMIT | [NumberSinchEvent.FailureCodeEnum.EXCEEDED_10_DLC_LIMIT](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/numbers/models/v1/sinchevents/NumberSinchEvent.FailureCodeEnum.html#EXCEEDED_10_DLC_LIMIT) | +| Old enum | New enum | +|------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| SmsErrorCode.EXCEEDED_10DLC_LIMIT | [SmsErrorCode.EXCEEDED_10_DLC_LIMIT](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/numbers/models/v1/SmsErrorCode.htmll#EXCEEDED_10_DLC_LIMIT) | +| NumberEvent.EXCEEDED_10DLC_LIMIT | [NumberSinchEvent.FailureCodeEnum.EXCEEDED_10_DLC_LIMIT](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/numbers/models/v1/sinchevents/NumberSinchEvent.FailureCodeEnum.html#EXCEEDED_10_DLC_LIMIT) | ##### Active Numbers | Old class | New class | @@ -413,8 +426,8 @@ Use the new versioned API under `voice().v1()` to get access to [VoiceService](h | models/v1/webhooks/NotifyEvent | [com.sinch.sdk.domains.voice.models.v1.sinchevents.NotificationEvent](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/voice/models/v1/sinchevents/NotificationEvent.html) ; | | models/v1/webhooks/PromptInputEvent | [com.sinch.sdk.domains.voice.models.v1.sinchevents.PromptInputEvent](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/voice/models/v1/sinchevents/PromptInputEvent.html) | | models/v1/webhooks/CallEvent | [com.sinch.sdk.domains.voice.models.v1.sinchevents.VoiceCallSinchEvent](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/voice/models/v1/sinchevents/VoiceCallSinchEvent.html) | -| models/v1/webhooks/VoiceWebhookEvent | [com.sinch.sdk.domains.voice.models.v1.sinchevents.VoiceSinchEvent](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/voice/models/v1/sinchevents/VoiceSinchEvent.html) | -| models/v1/webhooks/WebhooksEventRequestType | [com.sinch.sdk.domains.voice.models.v1.sinchevents.SinchEventType](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/voice/models/v1/sinchevents/SinchEventType.html) | +| models/v1/webhooks/VoiceWebhookEvent | [com.sinch.sdk.domains.voice.models.v1.sinchevents.VoiceSinchEvent](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/voice/models/v1/sinchevents/VoiceSinchEvent.html) | +| models/v1/webhooks/WebhooksEventRequestType | [com.sinch.sdk.domains.voice.models.v1.sinchevents.SinchEventType](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/voice/models/v1/sinchevents/SinchEventType.html) | ### [`Verification`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/2.0.0/com/sinch/sdk/domains/verification/package-summary.html) @@ -534,3 +547,13 @@ Full Mailgun support (introduced in SDK 1.6 as preview) has been **removed** in #### Removed email request/response models - `com.sinch.sdk.domains.mailgun.models.v1.emails` - `com.sinch.sdk.domains.mailgun.models.v1.templates` + +--- + +## 1.5.0 +Find migration guides in the developer documentation portal: +- [Messaging](https://developers.sinch.com/docs/sms/sdks/java/migration-guides) +- [Numbers](https://developers.sinch.com/docs/numbers/sdk/java/migration-guides/migration-to-versioned) +- [Verification](https://developers.sinch.com/docs/verification/sdk/java/migration-guides/migration-to-versioned) +- [Voice](https://developers.sinch.com/docs/voice/sdk/java/migration-guides/migration-to-versioned) + \ No newline at end of file diff --git a/README.md b/README.md index 41969a0f4..5c74ff7b3 100644 --- a/README.md +++ b/README.md @@ -154,12 +154,9 @@ Note: Replace VERSION-YOU-WANT-TO-BE-USED by a Jackson version of a ... ``` -## Migration guides -Find migration guides in the developer documentation portal: -- [Messaging](https://developers.sinch.com/docs/sms/sdks/java/migration-guides) -- [Numbers](https://developers.sinch.com/docs/numbers/sdk/java/migration-guides/migration-to-versioned) -- [Verification](https://developers.sinch.com/docs/verification/sdk/java/migration-guides/migration-to-versioned) -- [Voice](https://developers.sinch.com/docs/voice/sdk/java/migration-guides/migration-to-versioned) +## Changelog & Migration +For information about the latest changes in the SDK, please refer to the [CHANGELOG](CHANGELOG.md) file +and the [MIGRATION-GUIDE](MIGRATION-GUIDE.md) for instructions on how to update your code when upgrading to a new major version of the SDK. ## License