# Migrating to Versioned Java SDK Sinch offers a Unified Java SDK ([com.sinch.sdk.sinch-sdk-java](https://mvnrepository.com/artifact/com.sinch.sdk/sinch-sdk-java)). This guide provides information on how to migrate from the initial release of the Sinch Unified Java SDK to the versioned release. ## Migration to versioned SDK The initial Sinch Unified Java SDK was based on adapter layers; each programmatic API required its own business logic. To reduce overhead and complexity, the SDK implemented "versioned" layers with v1.5. To provide a smooth transition, the un-versioned APIs are still supported. However, they will be tagged as `@Deprecated`, and will be removed with the next major release. With fewer layers, the SDK decreases memory consumption and increases performance. The versioned APIs are accessible from domains within the `SinchClient` (e.g. `client.sms()`) for SMS, but with an added `vX` suffix pointing to the version *namespace*. For example, previous calls to `client.sms().batches()` (using the inital, un-versioned SDK) are now available by addressing `client.sms().v1().batches()` (using the first versioned SDK). This also impacts packages and classes names. Tables providing mappings between un-versioned calls and versioned calls are below. The corresponding JavaDocs are linked for easy reference. ## Client | Product | Un-versioned | Versioned | | --- | --- | --- | | Numbers | [client.numbers()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.1.0/com/sinch/sdk/domains/numbers/NumbersService.html) | [client.numbers().v1()](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/numbers/api/v1/NumbersService.html) | ## Numbers In addition to the table below, you can review the [corresponding synatx reference guide](/docs/numbers/sdk/java/syntax-reference/) and [API reference guide](/docs/numbers/sdk/java/syntax-reference/). ### Active Numbers | | Un-versioned | Versioned | | --- | --- | --- | | get | [`ActiveNumber get(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.1.0/com/sinch/sdk/domains/numbers/ActiveNumberService.html#get(java.lang.String)) | [`ActiveNumber get(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/numbers/api/v1/NumbersService.html#get(java.lang.String)) | | list | [`ActiveNumberListResponse list(ActiveNumberListRequestParameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.1.0/com/sinch/sdk/domains/numbers/ActiveNumberService.html#list(com.sinch.sdk.domains.numbers.models.requests.ActiveNumberListRequestParameters)) | [`ActiveNumberListResponse list(ActiveNumberListRequest)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/numbers/api/v1/NumbersService.html#list(com.sinch.sdk.domains.numbers.models.v1.request.ActiveNumberListRequest)) | | release | [`ActiveNumber release(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.1.0/com/sinch/sdk/domains/numbers/ActiveNumberService.html#release(java.lang.String)) | [`ActiveNumber release(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/numbers/api/v1/NumbersService.html#release(java.lang.String)) | | update | [`ActiveNumber update(String, ActiveNumberUpdateRequestParameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.1.0/com/sinch/sdk/domains/numbers/ActiveNumberService.html#update(java.lang.String,com.sinch.sdk.domains.numbers.models.requests.ActiveNumberUpdateRequestParameters)) | [`ActiveNumber update(String, ActiveNumberUpdateRequest)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/numbers/api/v1/NumbersService.html#update(java.lang.String,com.sinch.sdk.domains.numbers.models.v1.request.ActiveNumberUpdateRequest)) | ### Available Numbers | | Un-versioned | Versioned | | |------------- |---------- | | checkAvail-ability | [`AvailableNumbercheckAvailability(String phoneNumber)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/numbers/AvailableNumberService.html#checkAvailability(java.lang.String)) | [`AvailableNumber checkAvailability(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/numbers/api/v1/NumbersService.html#checkAvailability(java.lang.String)) | | list | [`AvailableNumberListResponse list(AvailableNumberListAllRequestParameters parameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/numbers/AvailableNumberService.html#list(com.sinch.sdk.domains.numbers.models.requests.AvailableNumberListAllRequestParameters)) | [`AvailableNumberListResponse searchForAvailableNumbers(AvailableNumberListRequest)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/numbers/api/v1/NumbersService.html#searchForAvailableNumbers(com.sinch.sdk.domains.numbers.models.v1.request.AvailableNumberListRequest)) | | rent | [`ActiveNumber rent(String phoneNumber, AvailableNumberRentRequestParameters parameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/numbers/AvailableNumberService.html#rent(java.lang.String,com.sinch.sdk.domains.numbers.models.requests.AvailableNumberRentRequestParameters)) | [`ActiveNumber rent(String, AvailableNumberRentRequest)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/numbers/api/v1/NumbersService.html#rent(java.lang.String,com.sinch.sdk.domains.numbers.models.v1.request.AvailableNumberRentRequest)) | | rentAny | [`ActiveNumber rentAny(AvailableNumberRentAnyRequestParameters parameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/numbers/AvailableNumberService.html#rentAny(com.sinch.sdk.domains.numbers.models.requests.AvailableNumberRentAnyRequestParameters)) | [`ActiveNumber rentAny(AvailableNumberRentAnyRequest)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/numbers/api/v1/NumbersService.html#rentAny(com.sinch.sdk.domains.numbers.models.v1.request.AvailableNumberRentAnyRequest)) | ### Available Region | | Un-versioned | Versioned | | | ------------ | --------- | | list | [`AvailableRegionListResponse list(AvailableRegionListAllRequestParameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/numbers/AvailableRegionService.html#list(com.sinch.sdk.domains.numbers.models.requests.AvailableRegionListAllRequestParameters)) | [`AvailableRegionListResponse list(AvailableRegionListRequest)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/numbers/api/v1/AvailableRegionService.html#list(com.sinch.sdk.domains.numbers.models.v1.regions.available.request.AvailableRegionListRequest)) | ### Callback configuration | | Un-versioned | Versioned | | | ------------ | --------- | | get | [`CallbackConfiguration get()`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/numbers/CallbackConfigurationService.html#get()) | [`CallbackConfigurationResponse get()`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/numbers/api/v1/CallbackConfigurationService.html#get()) | | update | [`CallbackConfiguration update(CallbackConfigurationUpdateRequestParameters)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/numbers/CallbackConfigurationService.html#update(com.sinch.sdk.domains.numbers.models.requests.CallbackConfigurationUpdateRequestParameters)) | [`CallbackConfigurationResponse update(CallbackConfigurationUpdateRequest)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/numbers/api/v1/CallbackConfigurationService.html#update(com.sinch.sdk.domains.numbers.models.v1.callbacks.request.CallbackConfigurationUpdateRequest)) | ### Webhooks | | Un-versioned | Versioned | | |------------- |---------- | | unserializeEventNotification | [`EventNotification unserializeEventNotification(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.0.0/com/sinch/sdk/domains/numbers/WebHooksService.html#unserializeEventNotification(java.lang.String)) | [`NumberEvent parseEvent(String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/numbers/api/v1/WebHooksService.html#parseEvent(java.lang.String)) | | validate | N/A | [`boolean validateAuthenticationHeader(String, Map<String,String>, String)`](https://www.javadoc.io/doc/com.sinch.sdk/sinch-sdk-java/1.5.0/com/sinch/sdk/domains/numbers/api/v1/WebHooksService.html#validateAuthenticationHeader(java.lang.String,java.util.Map,java.lang.String)) |