diff options
author | Jingming Niu <niu@jingming.ca> | 2016-08-30 15:44:28 -0700 |
---|---|---|
committer | Jingming Niu <niu@jingming.ca> | 2016-08-30 15:44:28 -0700 |
commit | 315303cf86ad9b2dce1545163767caf9e7f36c59 (patch) | |
tree | c7691b0cda808a28e549af2da10ec300b0e849fc | |
parent | edfc324e42a82294f5c3dbd38f838c0df57f165f (diff) | |
download | twilio-php-315303cf86ad9b2dce1545163767caf9e7f36c59.zip twilio-php-315303cf86ad9b2dce1545163767caf9e7f36c59.tar.gz twilio-php-315303cf86ad9b2dce1545163767caf9e7f36c59.tar.bz2 |
Regenerate Library
- Demote `password` to optional and remove unsupported `username` on
SIP Credential Update
- Demote `RoleSid` to optional and add optional `attributes`, `friendlyName`
parameters on IP Messaging/Chat User creation
- Add optional `attributes` parameter on IP Messaging/Chat message creation
16 files changed, 348 insertions, 44 deletions
@@ -1,6 +1,17 @@ twilio-php Changelog ==================== +[2016-08-30] Version 5.3.0 +-------------------------- +**Breaking Changes, refer to [Upgrade Guide][upgrade]** + + - Demote `password` to optional and remove unsupported `username` on + SIP Credential Update + - Demote `RoleSid` to optional and add optional `attributes`, `friendlyName` + parameters on IP Messaging/Chat User creation + - Add optional `attributes` parameter on IP Messaging/Chat message creation + + [2016-08-29] Version 5.2.0 -------------------------- **Breaking Changes, refer to [Upgrade Guide][upgrade]** diff --git a/Twilio/Rest/Api/V2010/Account/Sip/CredentialList/CredentialContext.php b/Twilio/Rest/Api/V2010/Account/Sip/CredentialList/CredentialContext.php index 7a362b9..6b653ad 100644 --- a/Twilio/Rest/Api/V2010/Account/Sip/CredentialList/CredentialContext.php +++ b/Twilio/Rest/Api/V2010/Account/Sip/CredentialList/CredentialContext.php @@ -10,6 +10,7 @@ namespace Twilio\Rest\Api\V2010\Account\Sip\CredentialList; use Twilio\InstanceContext; +use Twilio\Options; use Twilio\Values; use Twilio\Version; @@ -62,14 +63,14 @@ class CredentialContext extends InstanceContext { /** * Update the CredentialInstance * - * @param string $username The username - * @param string $password The password + * @param array|Options $options Optional Arguments * @return CredentialInstance Updated CredentialInstance */ - public function update($username, $password) { + public function update($options = array()) { + $options = new Values($options); + $data = Values::of(array( - 'Username' => $username, - 'Password' => $password, + 'Password' => $options['password'], )); $payload = $this->version->update( diff --git a/Twilio/Rest/Api/V2010/Account/Sip/CredentialList/CredentialInstance.php b/Twilio/Rest/Api/V2010/Account/Sip/CredentialList/CredentialInstance.php index 0f54875..cd255b7 100644 --- a/Twilio/Rest/Api/V2010/Account/Sip/CredentialList/CredentialInstance.php +++ b/Twilio/Rest/Api/V2010/Account/Sip/CredentialList/CredentialInstance.php @@ -12,6 +12,7 @@ namespace Twilio\Rest\Api\V2010\Account\Sip\CredentialList; use Twilio\Deserialize; use Twilio\Exceptions\TwilioException; use Twilio\InstanceResource; +use Twilio\Options; use Twilio\Version; /** @@ -86,14 +87,12 @@ class CredentialInstance extends InstanceResource { /** * Update the CredentialInstance * - * @param string $username The username - * @param string $password The password + * @param array|Options $options Optional Arguments * @return CredentialInstance Updated CredentialInstance */ - public function update($username, $password) { + public function update($options = array()) { return $this->proxy()->update( - $username, - $password + $options ); } diff --git a/Twilio/Rest/Api/V2010/Account/Sip/CredentialList/CredentialOptions.php b/Twilio/Rest/Api/V2010/Account/Sip/CredentialList/CredentialOptions.php new file mode 100644 index 0000000..7b3595c --- /dev/null +++ b/Twilio/Rest/Api/V2010/Account/Sip/CredentialList/CredentialOptions.php @@ -0,0 +1,58 @@ +<?php + +/** + * This code was generated by + * \ / _ _ _| _ _ + * | (_)\/(_)(_|\/| |(/_ v1.0.0 + * / / + */ + +namespace Twilio\Rest\Api\V2010\Account\Sip\CredentialList; + +use Twilio\Options; +use Twilio\Values; + +abstract class CredentialOptions { + /** + * @param string $password The password + * @return UpdateCredentialOptions Options builder + */ + public static function update($password = Values::NONE) { + return new UpdateCredentialOptions($password); + } +} + +class UpdateCredentialOptions extends Options { + /** + * @param string $password The password + */ + public function __construct($password = Values::NONE) { + $this->options['password'] = $password; + } + + /** + * The password + * + * @param string $password The password + * @return $this Fluent Builder + */ + public function setPassword($password) { + $this->options['password'] = $password; + return $this; + } + + /** + * Provide a friendly representation + * + * @return string Machine friendly representation + */ + public function __toString() { + $options = array(); + foreach ($this->options as $key => $value) { + if ($value != Values::NONE) { + $options[] = "$key=$value"; + } + } + return '[Twilio.Api.V2010.UpdateCredentialOptions ' . implode(' ', $options) . ']'; + } +}
\ No newline at end of file diff --git a/Twilio/Rest/Chat/V1/Service/Channel/MessageList.php b/Twilio/Rest/Chat/V1/Service/Channel/MessageList.php index dda4599..77bbe5b 100644 --- a/Twilio/Rest/Chat/V1/Service/Channel/MessageList.php +++ b/Twilio/Rest/Chat/V1/Service/Channel/MessageList.php @@ -48,6 +48,7 @@ class MessageList extends ListResource { $data = Values::of(array( 'Body' => $body, 'From' => $options['from'], + 'Attributes' => $options['attributes'], )); $payload = $this->version->create( diff --git a/Twilio/Rest/Chat/V1/Service/Channel/MessageOptions.php b/Twilio/Rest/Chat/V1/Service/Channel/MessageOptions.php index 4e56700..c5955ba 100644 --- a/Twilio/Rest/Chat/V1/Service/Channel/MessageOptions.php +++ b/Twilio/Rest/Chat/V1/Service/Channel/MessageOptions.php @@ -15,10 +15,11 @@ use Twilio\Values; abstract class MessageOptions { /** * @param string $from The from + * @param string $attributes The attributes * @return CreateMessageOptions Options builder */ - public static function create($from = Values::NONE) { - return new CreateMessageOptions($from); + public static function create($from = Values::NONE, $attributes = Values::NONE) { + return new CreateMessageOptions($from, $attributes); } /** @@ -33,9 +34,11 @@ abstract class MessageOptions { class CreateMessageOptions extends Options { /** * @param string $from The from + * @param string $attributes The attributes */ - public function __construct($from = Values::NONE) { + public function __construct($from = Values::NONE, $attributes = Values::NONE) { $this->options['from'] = $from; + $this->options['attributes'] = $attributes; } /** @@ -50,6 +53,17 @@ class CreateMessageOptions extends Options { } /** + * The attributes + * + * @param string $attributes The attributes + * @return $this Fluent Builder + */ + public function setAttributes($attributes) { + $this->options['attributes'] = $attributes; + return $this; + } + + /** * Provide a friendly representation * * @return string Machine friendly representation diff --git a/Twilio/Rest/Chat/V1/Service/UserList.php b/Twilio/Rest/Chat/V1/Service/UserList.php index f046c8e..4e38bb4 100644 --- a/Twilio/Rest/Chat/V1/Service/UserList.php +++ b/Twilio/Rest/Chat/V1/Service/UserList.php @@ -10,6 +10,7 @@ namespace Twilio\Rest\Chat\V1\Service; use Twilio\ListResource; +use Twilio\Options; use Twilio\Values; use Twilio\Version; @@ -36,13 +37,17 @@ class UserList extends ListResource { * Create a new UserInstance * * @param string $identity The identity - * @param string $roleSid The role_sid + * @param array|Options $options Optional Arguments * @return UserInstance Newly created UserInstance */ - public function create($identity, $roleSid) { + public function create($identity, $options = array()) { + $options = new Values($options); + $data = Values::of(array( 'Identity' => $identity, - 'RoleSid' => $roleSid, + 'RoleSid' => $options['roleSid'], + 'Attributes' => $options['attributes'], + 'FriendlyName' => $options['friendlyName'], )); $payload = $this->version->create( diff --git a/Twilio/Rest/Chat/V1/Service/UserOptions.php b/Twilio/Rest/Chat/V1/Service/UserOptions.php index 357acfb..c34e12e 100644 --- a/Twilio/Rest/Chat/V1/Service/UserOptions.php +++ b/Twilio/Rest/Chat/V1/Service/UserOptions.php @@ -17,6 +17,16 @@ abstract class UserOptions { * @param string $roleSid The role_sid * @param string $attributes The attributes * @param string $friendlyName The friendly_name + * @return CreateUserOptions Options builder + */ + public static function create($roleSid = Values::NONE, $attributes = Values::NONE, $friendlyName = Values::NONE) { + return new CreateUserOptions($roleSid, $attributes, $friendlyName); + } + + /** + * @param string $roleSid The role_sid + * @param string $attributes The attributes + * @param string $friendlyName The friendly_name * @return UpdateUserOptions Options builder */ public static function update($roleSid = Values::NONE, $attributes = Values::NONE, $friendlyName = Values::NONE) { @@ -24,6 +34,67 @@ abstract class UserOptions { } } +class CreateUserOptions extends Options { + /** + * @param string $roleSid The role_sid + * @param string $attributes The attributes + * @param string $friendlyName The friendly_name + */ + public function __construct($roleSid = Values::NONE, $attributes = Values::NONE, $friendlyName = Values::NONE) { + $this->options['roleSid'] = $roleSid; + $this->options['attributes'] = $attributes; + $this->options['friendlyName'] = $friendlyName; + } + + /** + * The role_sid + * + * @param string $roleSid The role_sid + * @return $this Fluent Builder + */ + public function setRoleSid($roleSid) { + $this->options['roleSid'] = $roleSid; + return $this; + } + + /** + * The attributes + * + * @param string $attributes The attributes + * @return $this Fluent Builder + */ + public function setAttributes($attributes) { + $this->options['attributes'] = $attributes; + return $this; + } + + /** + * The friendly_name + * + * @param string $friendlyName The friendly_name + * @return $this Fluent Builder + */ + public function setFriendlyName($friendlyName) { + $this->options['friendlyName'] = $friendlyName; + return $this; + } + + /** + * Provide a friendly representation + * + * @return string Machine friendly representation + */ + public function __toString() { + $options = array(); + foreach ($this->options as $key => $value) { + if ($value != Values::NONE) { + $options[] = "$key=$value"; + } + } + return '[Twilio.Chat.V1.CreateUserOptions ' . implode(' ', $options) . ']'; + } +} + class UpdateUserOptions extends Options { /** * @param string $roleSid The role_sid diff --git a/Twilio/Rest/IpMessaging/V1/Service/Channel/MessageList.php b/Twilio/Rest/IpMessaging/V1/Service/Channel/MessageList.php index 3f01c6d..6820f2f 100644 --- a/Twilio/Rest/IpMessaging/V1/Service/Channel/MessageList.php +++ b/Twilio/Rest/IpMessaging/V1/Service/Channel/MessageList.php @@ -48,6 +48,7 @@ class MessageList extends ListResource { $data = Values::of(array( 'Body' => $body, 'From' => $options['from'], + 'Attributes' => $options['attributes'], )); $payload = $this->version->create( diff --git a/Twilio/Rest/IpMessaging/V1/Service/Channel/MessageOptions.php b/Twilio/Rest/IpMessaging/V1/Service/Channel/MessageOptions.php index 0c6dabb..66132e3 100644 --- a/Twilio/Rest/IpMessaging/V1/Service/Channel/MessageOptions.php +++ b/Twilio/Rest/IpMessaging/V1/Service/Channel/MessageOptions.php @@ -15,10 +15,11 @@ use Twilio\Values; abstract class MessageOptions { /** * @param string $from The from + * @param string $attributes The attributes * @return CreateMessageOptions Options builder */ - public static function create($from = Values::NONE) { - return new CreateMessageOptions($from); + public static function create($from = Values::NONE, $attributes = Values::NONE) { + return new CreateMessageOptions($from, $attributes); } /** @@ -33,9 +34,11 @@ abstract class MessageOptions { class CreateMessageOptions extends Options { /** * @param string $from The from + * @param string $attributes The attributes */ - public function __construct($from = Values::NONE) { + public function __construct($from = Values::NONE, $attributes = Values::NONE) { $this->options['from'] = $from; + $this->options['attributes'] = $attributes; } /** @@ -50,6 +53,17 @@ class CreateMessageOptions extends Options { } /** + * The attributes + * + * @param string $attributes The attributes + * @return $this Fluent Builder + */ + public function setAttributes($attributes) { + $this->options['attributes'] = $attributes; + return $this; + } + + /** * Provide a friendly representation * * @return string Machine friendly representation diff --git a/Twilio/Rest/IpMessaging/V1/Service/UserList.php b/Twilio/Rest/IpMessaging/V1/Service/UserList.php index e647fee..effac8a 100644 --- a/Twilio/Rest/IpMessaging/V1/Service/UserList.php +++ b/Twilio/Rest/IpMessaging/V1/Service/UserList.php @@ -10,6 +10,7 @@ namespace Twilio\Rest\IpMessaging\V1\Service; use Twilio\ListResource; +use Twilio\Options; use Twilio\Values; use Twilio\Version; @@ -36,13 +37,17 @@ class UserList extends ListResource { * Create a new UserInstance * * @param string $identity The identity - * @param string $roleSid The role_sid + * @param array|Options $options Optional Arguments * @return UserInstance Newly created UserInstance */ - public function create($identity, $roleSid) { + public function create($identity, $options = array()) { + $options = new Values($options); + $data = Values::of(array( 'Identity' => $identity, - 'RoleSid' => $roleSid, + 'RoleSid' => $options['roleSid'], + 'Attributes' => $options['attributes'], + 'FriendlyName' => $options['friendlyName'], )); $payload = $this->version->create( diff --git a/Twilio/Rest/IpMessaging/V1/Service/UserOptions.php b/Twilio/Rest/IpMessaging/V1/Service/UserOptions.php index 81b5c5a..54ee235 100644 --- a/Twilio/Rest/IpMessaging/V1/Service/UserOptions.php +++ b/Twilio/Rest/IpMessaging/V1/Service/UserOptions.php @@ -17,6 +17,16 @@ abstract class UserOptions { * @param string $roleSid The role_sid * @param string $attributes The attributes * @param string $friendlyName The friendly_name + * @return CreateUserOptions Options builder + */ + public static function create($roleSid = Values::NONE, $attributes = Values::NONE, $friendlyName = Values::NONE) { + return new CreateUserOptions($roleSid, $attributes, $friendlyName); + } + + /** + * @param string $roleSid The role_sid + * @param string $attributes The attributes + * @param string $friendlyName The friendly_name * @return UpdateUserOptions Options builder */ public static function update($roleSid = Values::NONE, $attributes = Values::NONE, $friendlyName = Values::NONE) { @@ -24,6 +34,67 @@ abstract class UserOptions { } } +class CreateUserOptions extends Options { + /** + * @param string $roleSid The role_sid + * @param string $attributes The attributes + * @param string $friendlyName The friendly_name + */ + public function __construct($roleSid = Values::NONE, $attributes = Values::NONE, $friendlyName = Values::NONE) { + $this->options['roleSid'] = $roleSid; + $this->options['attributes'] = $attributes; + $this->options['friendlyName'] = $friendlyName; + } + + /** + * The role_sid + * + * @param string $roleSid The role_sid + * @return $this Fluent Builder + */ + public function setRoleSid($roleSid) { + $this->options['roleSid'] = $roleSid; + return $this; + } + + /** + * The attributes + * + * @param string $attributes The attributes + * @return $this Fluent Builder + */ + public function setAttributes($attributes) { + $this->options['attributes'] = $attributes; + return $this; + } + + /** + * The friendly_name + * + * @param string $friendlyName The friendly_name + * @return $this Fluent Builder + */ + public function setFriendlyName($friendlyName) { + $this->options['friendlyName'] = $friendlyName; + return $this; + } + + /** + * Provide a friendly representation + * + * @return string Machine friendly representation + */ + public function __toString() { + $options = array(); + foreach ($this->options as $key => $value) { + if ($value != Values::NONE) { + $options[] = "$key=$value"; + } + } + return '[Twilio.IpMessaging.V1.CreateUserOptions ' . implode(' ', $options) . ']'; + } +} + class UpdateUserOptions extends Options { /** * @param string $roleSid The role_sid diff --git a/Twilio/Tests/Integration/Api/V2010/Account/Sip/CredentialList/CredentialTest.php b/Twilio/Tests/Integration/Api/V2010/Account/Sip/CredentialList/CredentialTest.php index d2e6e7d..6348ef5 100644 --- a/Twilio/Tests/Integration/Api/V2010/Account/Sip/CredentialList/CredentialTest.php +++ b/Twilio/Tests/Integration/Api/V2010/Account/Sip/CredentialList/CredentialTest.php @@ -197,20 +197,13 @@ class CredentialTest extends HolodeckTestCase { $this->twilio->api->v2010->accounts("ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") ->sip ->credentialLists("CLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") - ->credentials("CRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")->update("username", "password"); + ->credentials("CRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")->update(); } catch (DeserializeException $e) {} catch (TwilioException $e) {} - $values = array( - 'Username' => "username", - 'Password' => "password", - ); - $this->assertRequest(new Request( 'post', - 'https://api.twilio.com/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SIP/CredentialLists/CLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Credentials/CRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json', - null, - $values + 'https://api.twilio.com/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SIP/CredentialLists/CLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Credentials/CRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json' )); } @@ -233,7 +226,7 @@ class CredentialTest extends HolodeckTestCase { $actual = $this->twilio->api->v2010->accounts("ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") ->sip ->credentialLists("CLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") - ->credentials("CRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")->update("username", "password"); + ->credentials("CRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")->update(); $this->assertNotNull($actual); } diff --git a/Twilio/Tests/Integration/Chat/V1/Service/UserTest.php b/Twilio/Tests/Integration/Chat/V1/Service/UserTest.php index da3c036..eddc766 100644 --- a/Twilio/Tests/Integration/Chat/V1/Service/UserTest.php +++ b/Twilio/Tests/Integration/Chat/V1/Service/UserTest.php @@ -88,13 +88,12 @@ class UserTest extends HolodeckTestCase { try { $this->twilio->chat->v1->services("ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") - ->users->create("identity", "RLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + ->users->create("identity"); } catch (DeserializeException $e) {} catch (TwilioException $e) {} $values = array( 'Identity' => "identity", - 'RoleSid' => "RLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", ); $this->assertRequest(new Request( @@ -125,7 +124,7 @@ class UserTest extends HolodeckTestCase { )); $actual = $this->twilio->chat->v1->services("ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") - ->users->create("identity", "RLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + ->users->create("identity"); $this->assertNotNull($actual); } diff --git a/Twilio/Tests/Integration/IpMessaging/V1/Service/UserTest.php b/Twilio/Tests/Integration/IpMessaging/V1/Service/UserTest.php index ada0643..a4cb290 100644 --- a/Twilio/Tests/Integration/IpMessaging/V1/Service/UserTest.php +++ b/Twilio/Tests/Integration/IpMessaging/V1/Service/UserTest.php @@ -88,13 +88,12 @@ class UserTest extends HolodeckTestCase { try { $this->twilio->ipMessaging->v1->services("ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") - ->users->create("identity", "RLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + ->users->create("identity"); } catch (DeserializeException $e) {} catch (TwilioException $e) {} $values = array( 'Identity' => "identity", - 'RoleSid' => "RLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", ); $this->assertRequest(new Request( @@ -125,7 +124,7 @@ class UserTest extends HolodeckTestCase { )); $actual = $this->twilio->ipMessaging->v1->services("ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") - ->users->create("identity", "RLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + ->users->create("identity"); $this->assertNotNull($actual); } @@ -3,6 +3,68 @@ _After `5.1.1` all `MINOR` and `MAJOR` version bumps will have upgrade notes posted here._ +[2015-08-30] 5.2.x to 5.3.x +--------------------------- + +### CHANGED - SIP Credential Update + - `CredentialInstance::update(string $username, string $password)` to `CredentialInstance::update(array|CredentialOptions $options)` + - `CredentialContext::update(string $username, string $password)` to `CredentialContext::update(array|CredentialOptions $options)` + +#### 5.2.x +```php +<?php + +use Twilio\Rest\Client; + +$client = new Client(); +$client->sip->credentialLists('CL123')->credentials('CA123')->update('username', 'password'); +``` + +#### 5.3.x +```php +<?php + +use Twilio\Rest\Client; + +$client = new Client(); +$client->sip->credentialLists('CL123')->credentials('CA123')->update(array( + 'password' => 'password' +)); +``` + +#### Rationale +Credential Updates only supported Updating the password and it is an optional parameter. + + +### CHANGED - Chat/IP Messaging Role Creation + +#### 5.2.x +```php +<?php + +use Twilio\Rest\Client; + +$client = new Client(); +$client->chat->v1->services('IS123')->users->create('identity', 'RL123'); +``` + +#### 5.3.x +```php +<?php + +use Twilio\Rest\Client; + +$client = new Client(); +$client->chat->v1->services('IS123')->users->create('identity', array( + 'roleSid' => 'RL123' +)); +``` + +#### Rationale +As the Chat product has evolved, we have added a default Role sid to User creation +making the parameter optional. + + [2016-08-29] 5.1.x to 5.2.x --------------------------- @@ -34,9 +96,9 @@ $client->conferences('CF123')->participants('CA123')->update(array( ``` #### Rationale -Conference Participants actually support a wider range of mutations than the +Conference Participants actually support a wider range of mutations than the `5.1.x` library supported. Mute was incorrectly marked as a `required` property -when it is actually `optional`. This change allows the library to provide +when it is actually `optional`. This change allows the library to provide support for the full range of mutation options. | Option | Definition | @@ -51,7 +113,7 @@ support for the full range of mutation options. ### CHANGED - Taskrouter Workflow Create - `WorkflowList::create(string $friendlyName, string $configuration, string $assignmentCallbackUrl, array|WorkflowOptions $options)` to `WorkflowList::create(string $friendlyName, string $configuration, array|WorkflowOptions $options)` - + #### 5.1.x ```php <?php @@ -86,8 +148,8 @@ $client->taskrouter->workspaces('WS123')->workflows->create( When Taskrouter was first released all workflows had to communicate reservations back to a server for handling. As the product has matured a capable JavaScript -SDK has been released that can handle reservations. This change allows one to -use Taskrouter without an `assignmentCallbackUrl` instead using the client +SDK has been released that can handle reservations. This change allows one to +use Taskrouter without an `assignmentCallbackUrl` instead using the client events to handle reservations. -[Full documentation](https://www.twilio.com/docs/api/taskrouter/worker-js) +[Full documentation](https://www.twilio.com/docs/api/taskrouter/worker-js)
\ No newline at end of file |