twilio-ruby 5.72.0 → 5.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +35 -0
  3. data/README.md +2 -2
  4. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +2 -2
  5. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +2 -2
  6. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +2 -2
  7. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +2 -2
  8. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +2 -2
  9. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +2 -2
  10. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +2 -2
  11. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +1 -1
  12. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +5 -5
  13. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +2 -2
  14. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +56 -17
  15. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +1 -1
  16. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +4 -4
  17. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +8 -1
  18. data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +2 -2
  19. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +3 -3
  20. data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +1 -1
  21. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +1 -1
  22. data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +1 -1
  23. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +1 -1
  24. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +1 -1
  25. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +1 -1
  26. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +1 -1
  27. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +1 -1
  28. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +1 -1
  29. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +1 -1
  30. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +1 -1
  31. data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +1 -1
  32. data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +1 -1
  33. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/task_statistics.rb +2 -2
  34. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +1 -1
  35. data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +1 -1
  36. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +2 -2
  37. data/lib/twilio-ruby/rest/chat/v1/service/user.rb +1 -1
  38. data/lib/twilio-ruby/rest/chat/v1/service.rb +2 -2
  39. data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +1 -1
  40. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +2 -2
  41. data/lib/twilio-ruby/rest/chat/v2/service/user.rb +1 -1
  42. data/lib/twilio-ruby/rest/chat/v2/service.rb +4 -4
  43. data/lib/twilio-ruby/rest/chat/v3/channel.rb +2 -2
  44. data/lib/twilio-ruby/rest/client.rb +7 -0
  45. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +1 -1
  46. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +1 -1
  47. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +1 -1
  48. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +1 -1
  49. data/lib/twilio-ruby/rest/events/v1/schema/version.rb +1 -1
  50. data/lib/twilio-ruby/rest/events/v1/schema.rb +1 -1
  51. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +1 -1
  52. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +1 -1
  53. data/lib/twilio-ruby/rest/insights/v1/room.rb +3 -3
  54. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +1 -1
  55. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +2 -2
  56. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +1 -1
  57. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +2 -2
  58. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +1 -1
  59. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +2 -2
  60. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +1 -1
  61. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +4 -4
  62. data/lib/twilio-ruby/rest/media/v1/media_processor.rb +1 -1
  63. data/lib/twilio-ruby/rest/media/v1/media_recording.rb +2 -2
  64. data/lib/twilio-ruby/rest/media/v1/player_streamer.rb +1 -1
  65. data/lib/twilio-ruby/rest/messaging/v1/service.rb +1 -1
  66. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +1 -1
  67. data/lib/twilio-ruby/rest/oauth/v1/oauth.rb +162 -0
  68. data/lib/twilio-ruby/rest/oauth/v1/openid_discovery.rb +242 -0
  69. data/lib/twilio-ruby/rest/oauth/v1/token.rb +157 -0
  70. data/lib/twilio-ruby/rest/oauth/v1/user_info.rb +193 -0
  71. data/lib/twilio-ruby/rest/oauth/v1.rb +56 -0
  72. data/lib/twilio-ruby/rest/oauth.rb +62 -0
  73. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +2 -2
  74. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +2 -2
  75. data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +1 -1
  76. data/lib/twilio-ruby/rest/preview/understand/assistant/task/task_statistics.rb +2 -2
  77. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +1 -1
  78. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +1 -1
  79. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +1 -1
  80. data/lib/twilio-ruby/rest/proxy/v1/service.rb +1 -1
  81. data/lib/twilio-ruby/rest/studio/v1/flow.rb +1 -1
  82. data/lib/twilio-ruby/rest/studio/v2/flow/flow_revision.rb +1 -1
  83. data/lib/twilio-ruby/rest/studio/v2/flow.rb +1 -1
  84. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +1 -1
  85. data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +1 -1
  86. data/lib/twilio-ruby/rest/supersim/v1/settings_update.rb +240 -0
  87. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +4 -4
  88. data/lib/twilio-ruby/rest/supersim/v1.rb +7 -0
  89. data/lib/twilio-ruby/rest/supersim.rb +6 -0
  90. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +1 -1
  91. data/lib/twilio-ruby/rest/sync/v1/service.rb +1 -1
  92. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +1 -1
  93. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +3 -3
  94. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +12 -12
  95. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +5 -5
  96. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +1 -1
  97. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +3 -3
  98. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_cumulative_statistics.rb +6 -6
  99. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_real_time_statistics.rb +1 -1
  100. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_cumulative_statistics.rb +13 -13
  101. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_real_time_statistics.rb +2 -2
  102. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +1 -1
  103. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_cumulative_statistics.rb +13 -13
  104. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_real_time_statistics.rb +3 -3
  105. data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +2 -2
  106. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +1 -9
  107. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge/notification.rb +1 -7
  108. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +0 -8
  109. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +0 -8
  110. data/lib/twilio-ruby/rest/verify/v2/service/entity/new_factor.rb +0 -6
  111. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +0 -8
  112. data/lib/twilio-ruby/rest/verify/v2/service/rate_limit/bucket.rb +2 -2
  113. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +0 -8
  114. data/lib/twilio-ruby/rest/verify/v2/service.rb +1 -1
  115. data/lib/twilio-ruby/rest/verify/v2/template.rb +7 -0
  116. data/lib/twilio-ruby/rest/verify/v2/verification_attempts_summary.rb +4 -4
  117. data/lib/twilio-ruby/rest/video/v1/composition.rb +3 -3
  118. data/lib/twilio-ruby/rest/video/v1/recording.rb +2 -2
  119. data/lib/twilio-ruby/rest/video/v1/room/recording.rb +2 -2
  120. data/lib/twilio-ruby/rest/video/v1/room.rb +4 -4
  121. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +2 -2
  122. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions/bulk_country_update.rb +1 -1
  123. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +1 -1
  124. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +3 -3
  125. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +2 -2
  126. data/lib/twilio-ruby/twiml/voice_response.rb +25 -9
  127. data/lib/twilio-ruby/version.rb +1 -1
  128. metadata +9 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f39c64decfb1c150e5fd70c820f4355efb4517ec
4
- data.tar.gz: cf1c9cd3f5c7b5974f05db919c3e03b155037e81
3
+ metadata.gz: 69acf811fe342116cac833fba211c1ab8a828a55
4
+ data.tar.gz: 15607806b4bff82d8d73cb24e5aea8b6bb795937
5
5
  SHA512:
6
- metadata.gz: a451b15d66f86d78688b38fe8de87d9a6783a0dbdf6fe2e7aa98952193d90035b87401cb61ae099be49af3d476eb2c4395681e49300f7bfc33cc949c23540c27
7
- data.tar.gz: 17cb4efb42d41d2a5ffc741c508037d574c3a98a3761d45f5e58f3b4f8e1db954398815edbc8b680fd059e5567c9c8ac5c18994f5b387e8f7c06a70e5401a09a
6
+ metadata.gz: 9ef2131ba18025f0664a8807818eafc09d7da65c44b1468a15374dab04e2bd1605cad885807aabfbc8b2931b925e7bc274cae8bc5ab831b8ecc95b94d58cfdda
7
+ data.tar.gz: 3f063b5615c59cb5f8b037411eb0c56786d46a79ecd587698ce87bb05f3bda87633d58ee8adf884a35e9735ede69200c186b8e80428216d09e8d7e86707ca863
data/CHANGES.md CHANGED
@@ -1,6 +1,41 @@
1
1
  twilio-ruby changelog
2
2
  =====================
3
3
 
4
+ [2022-10-19] Version 5.73.0
5
+ ---------------------------
6
+ **Library - Feature**
7
+ - [PR #619](https://github.com/twilio/twilio-ruby/pull/619): check numeric properties for nil before converting. Thanks to [@childish-sambino](https://github.com/childish-sambino)!
8
+
9
+ **Api**
10
+ - Make link shortening parameters public **(breaking change)**
11
+
12
+ **Oauth**
13
+ - added oauth JWKS endpoint
14
+ - Get userinfo resource
15
+ - OpenID discovery resource
16
+ - Add new API for token endpoint
17
+
18
+ **Supersim**
19
+ - Add SettingsUpdates resource
20
+
21
+ **Verify**
22
+ - Update Verify Push endpoints to `ga` maturity
23
+ - Verify BYOT add Channels property to the Get Templates response
24
+
25
+ **Twiml**
26
+ - Add `requireMatchingInputs` attribute and `input-matching-failed` errorType to `<Prompt>`
27
+
28
+
29
+ [2022-10-05] Version 5.72.1
30
+ ---------------------------
31
+ **Api**
32
+ - Added `virtual-agent` to `usage_record` API.
33
+ - Add AMD attributes to participant create request
34
+
35
+ **Twiml**
36
+ - Add AMD attributes to `Number` and `Sip`
37
+
38
+
4
39
  [2022-09-07] Version 5.72.0
5
40
  ---------------------------
6
41
  **Flex**
data/README.md CHANGED
@@ -34,13 +34,13 @@ This library supports the following Ruby implementations:
34
34
  To install using [Bundler][bundler] grab the latest stable version:
35
35
 
36
36
  ```ruby
37
- gem 'twilio-ruby', '~> 5.72.0'
37
+ gem 'twilio-ruby', '~> 5.73.0'
38
38
  ```
39
39
 
40
40
  To manually install `twilio-ruby` via [Rubygems][rubygems] simply gem install:
41
41
 
42
42
  ```bash
43
- gem install twilio-ruby -v 5.72.0
43
+ gem install twilio-ruby -v 5.73.0
44
44
  ```
45
45
 
46
46
  To build and install the development branch yourself from the latest source:
@@ -391,8 +391,8 @@ module Twilio
391
391
  'lata' => payload['lata'],
392
392
  'locality' => payload['locality'],
393
393
  'rate_center' => payload['rate_center'],
394
- 'latitude' => payload['latitude'].to_f,
395
- 'longitude' => payload['longitude'].to_f,
394
+ 'latitude' => payload['latitude'] == nil ? payload['latitude'] : payload['latitude'].to_f,
395
+ 'longitude' => payload['longitude'] == nil ? payload['longitude'] : payload['longitude'].to_f,
396
396
  'region' => payload['region'],
397
397
  'postal_code' => payload['postal_code'],
398
398
  'iso_country' => payload['iso_country'],
@@ -391,8 +391,8 @@ module Twilio
391
391
  'lata' => payload['lata'],
392
392
  'locality' => payload['locality'],
393
393
  'rate_center' => payload['rate_center'],
394
- 'latitude' => payload['latitude'].to_f,
395
- 'longitude' => payload['longitude'].to_f,
394
+ 'latitude' => payload['latitude'] == nil ? payload['latitude'] : payload['latitude'].to_f,
395
+ 'longitude' => payload['longitude'] == nil ? payload['longitude'] : payload['longitude'].to_f,
396
396
  'region' => payload['region'],
397
397
  'postal_code' => payload['postal_code'],
398
398
  'iso_country' => payload['iso_country'],
@@ -391,8 +391,8 @@ module Twilio
391
391
  'lata' => payload['lata'],
392
392
  'locality' => payload['locality'],
393
393
  'rate_center' => payload['rate_center'],
394
- 'latitude' => payload['latitude'].to_f,
395
- 'longitude' => payload['longitude'].to_f,
394
+ 'latitude' => payload['latitude'] == nil ? payload['latitude'] : payload['latitude'].to_f,
395
+ 'longitude' => payload['longitude'] == nil ? payload['longitude'] : payload['longitude'].to_f,
396
396
  'region' => payload['region'],
397
397
  'postal_code' => payload['postal_code'],
398
398
  'iso_country' => payload['iso_country'],
@@ -391,8 +391,8 @@ module Twilio
391
391
  'lata' => payload['lata'],
392
392
  'locality' => payload['locality'],
393
393
  'rate_center' => payload['rate_center'],
394
- 'latitude' => payload['latitude'].to_f,
395
- 'longitude' => payload['longitude'].to_f,
394
+ 'latitude' => payload['latitude'] == nil ? payload['latitude'] : payload['latitude'].to_f,
395
+ 'longitude' => payload['longitude'] == nil ? payload['longitude'] : payload['longitude'].to_f,
396
396
  'region' => payload['region'],
397
397
  'postal_code' => payload['postal_code'],
398
398
  'iso_country' => payload['iso_country'],
@@ -391,8 +391,8 @@ module Twilio
391
391
  'lata' => payload['lata'],
392
392
  'locality' => payload['locality'],
393
393
  'rate_center' => payload['rate_center'],
394
- 'latitude' => payload['latitude'].to_f,
395
- 'longitude' => payload['longitude'].to_f,
394
+ 'latitude' => payload['latitude'] == nil ? payload['latitude'] : payload['latitude'].to_f,
395
+ 'longitude' => payload['longitude'] == nil ? payload['longitude'] : payload['longitude'].to_f,
396
396
  'region' => payload['region'],
397
397
  'postal_code' => payload['postal_code'],
398
398
  'iso_country' => payload['iso_country'],
@@ -391,8 +391,8 @@ module Twilio
391
391
  'lata' => payload['lata'],
392
392
  'locality' => payload['locality'],
393
393
  'rate_center' => payload['rate_center'],
394
- 'latitude' => payload['latitude'].to_f,
395
- 'longitude' => payload['longitude'].to_f,
394
+ 'latitude' => payload['latitude'] == nil ? payload['latitude'] : payload['latitude'].to_f,
395
+ 'longitude' => payload['longitude'] == nil ? payload['longitude'] : payload['longitude'].to_f,
396
396
  'region' => payload['region'],
397
397
  'postal_code' => payload['postal_code'],
398
398
  'iso_country' => payload['iso_country'],
@@ -391,8 +391,8 @@ module Twilio
391
391
  'lata' => payload['lata'],
392
392
  'locality' => payload['locality'],
393
393
  'rate_center' => payload['rate_center'],
394
- 'latitude' => payload['latitude'].to_f,
395
- 'longitude' => payload['longitude'].to_f,
394
+ 'latitude' => payload['latitude'] == nil ? payload['latitude'] : payload['latitude'].to_f,
395
+ 'longitude' => payload['longitude'] == nil ? payload['longitude'] : payload['longitude'].to_f,
396
396
  'region' => payload['region'],
397
397
  'postal_code' => payload['postal_code'],
398
398
  'iso_country' => payload['iso_country'],
@@ -188,7 +188,7 @@ module Twilio
188
188
  'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
189
189
  'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
190
190
  'issues' => payload['issues'],
191
- 'quality_score' => payload['quality_score'].to_i,
191
+ 'quality_score' => payload['quality_score'] == nil ? payload['quality_score'] : payload['quality_score'].to_i,
192
192
  'sid' => payload['sid'],
193
193
  }
194
194
 
@@ -163,16 +163,16 @@ module Twilio
163
163
  # Marshaled Properties
164
164
  @properties = {
165
165
  'account_sid' => payload['account_sid'],
166
- 'call_count' => payload['call_count'].to_i,
167
- 'call_feedback_count' => payload['call_feedback_count'].to_i,
166
+ 'call_count' => payload['call_count'] == nil ? payload['call_count'] : payload['call_count'].to_i,
167
+ 'call_feedback_count' => payload['call_feedback_count'] == nil ? payload['call_feedback_count'] : payload['call_feedback_count'].to_i,
168
168
  'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
169
169
  'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
170
170
  'end_date' => Twilio.deserialize_iso8601_date(payload['end_date']),
171
171
  'include_subaccounts' => payload['include_subaccounts'],
172
172
  'issues' => payload['issues'],
173
- 'quality_score_average' => payload['quality_score_average'].to_f,
174
- 'quality_score_median' => payload['quality_score_median'].to_f,
175
- 'quality_score_standard_deviation' => payload['quality_score_standard_deviation'].to_f,
173
+ 'quality_score_average' => payload['quality_score_average'] == nil ? payload['quality_score_average'] : payload['quality_score_average'].to_f,
174
+ 'quality_score_median' => payload['quality_score_median'] == nil ? payload['quality_score_median'] : payload['quality_score_median'].to_f,
175
+ 'quality_score_standard_deviation' => payload['quality_score_standard_deviation'] == nil ? payload['quality_score_standard_deviation'] : payload['quality_score_standard_deviation'].to_f,
176
176
  'sid' => payload['sid'],
177
177
  'start_date' => Twilio.deserialize_iso8601_date(payload['start_date']),
178
178
  'status' => payload['status'],
@@ -332,12 +332,12 @@ module Twilio
332
332
  'start_time' => Twilio.deserialize_rfc2822(payload['start_time']),
333
333
  'duration' => payload['duration'],
334
334
  'sid' => payload['sid'],
335
- 'price' => payload['price'].to_f,
335
+ 'price' => payload['price'] == nil ? payload['price'] : payload['price'].to_f,
336
336
  'uri' => payload['uri'],
337
337
  'encryption_details' => payload['encryption_details'],
338
338
  'price_unit' => payload['price_unit'],
339
339
  'status' => payload['status'],
340
- 'channels' => payload['channels'].to_i,
340
+ 'channels' => payload['channels'] == nil ? payload['channels'] : payload['channels'].to_i,
341
341
  'source' => payload['source'],
342
342
  'error_code' => payload['error_code'] == nil ? payload['error_code'] : payload['error_code'].to_i,
343
343
  'track' => payload['track'],
@@ -169,8 +169,34 @@ module Twilio
169
169
  # Twilio. `both` records the audio that is received and sent by Twilio.
170
170
  # @param [String] time_limit The maximum duration of the call in seconds.
171
171
  # Constraints depend on account and configuration.
172
+ # @param [String] machine_detection Whether to detect if a human, answering
173
+ # machine, or fax has picked up the call. Can be: `Enable` or `DetectMessageEnd`.
174
+ # Use `Enable` if you would like us to return `AnsweredBy` as soon as the called
175
+ # party is identified. Use `DetectMessageEnd`, if you would like to leave a
176
+ # message on an answering machine. If `send_digits` is provided, this parameter is
177
+ # ignored. For more information, see {Answering Machine
178
+ # Detection}[https://www.twilio.com/docs/voice/answering-machine-detection].
179
+ # @param [String] machine_detection_timeout The number of seconds that we should
180
+ # attempt to detect an answering machine before timing out and sending a voice
181
+ # request with `AnsweredBy` of `unknown`. The default timeout is 30 seconds.
182
+ # @param [String] machine_detection_speech_threshold The number of milliseconds
183
+ # that is used as the measuring stick for the length of the speech activity, where
184
+ # durations lower than this value will be interpreted as a human and longer than
185
+ # this value as a machine. Possible Values: 1000-6000. Default: 2400.
186
+ # @param [String] machine_detection_speech_end_threshold The number of
187
+ # milliseconds of silence after speech activity at which point the speech activity
188
+ # is considered complete. Possible Values: 500-5000. Default: 1200.
189
+ # @param [String] machine_detection_silence_timeout The number of milliseconds of
190
+ # initial silence after which an `unknown` AnsweredBy result will be returned.
191
+ # Possible Values: 2000-10000. Default: 5000.
192
+ # @param [String] amd_status_callback The URL that we should call using the
193
+ # `amd_status_callback_method` to notify customer application whether the call was
194
+ # answered by human, machine or fax.
195
+ # @param [String] amd_status_callback_method The HTTP method we should use when
196
+ # calling the `amd_status_callback` URL. Can be: `GET` or `POST` and the default
197
+ # is `POST`.
172
198
  # @return [ParticipantInstance] Created ParticipantInstance
173
- def create(from: nil, to: nil, status_callback: :unset, status_callback_method: :unset, status_callback_event: :unset, label: :unset, timeout: :unset, record: :unset, muted: :unset, beep: :unset, start_conference_on_enter: :unset, end_conference_on_exit: :unset, wait_url: :unset, wait_method: :unset, early_media: :unset, max_participants: :unset, conference_record: :unset, conference_trim: :unset, conference_status_callback: :unset, conference_status_callback_method: :unset, conference_status_callback_event: :unset, recording_channels: :unset, recording_status_callback: :unset, recording_status_callback_method: :unset, sip_auth_username: :unset, sip_auth_password: :unset, region: :unset, conference_recording_status_callback: :unset, conference_recording_status_callback_method: :unset, recording_status_callback_event: :unset, conference_recording_status_callback_event: :unset, coaching: :unset, call_sid_to_coach: :unset, jitter_buffer_size: :unset, byoc: :unset, caller_id: :unset, call_reason: :unset, recording_track: :unset, time_limit: :unset)
199
+ def create(from: nil, to: nil, status_callback: :unset, status_callback_method: :unset, status_callback_event: :unset, label: :unset, timeout: :unset, record: :unset, muted: :unset, beep: :unset, start_conference_on_enter: :unset, end_conference_on_exit: :unset, wait_url: :unset, wait_method: :unset, early_media: :unset, max_participants: :unset, conference_record: :unset, conference_trim: :unset, conference_status_callback: :unset, conference_status_callback_method: :unset, conference_status_callback_event: :unset, recording_channels: :unset, recording_status_callback: :unset, recording_status_callback_method: :unset, sip_auth_username: :unset, sip_auth_password: :unset, region: :unset, conference_recording_status_callback: :unset, conference_recording_status_callback_method: :unset, recording_status_callback_event: :unset, conference_recording_status_callback_event: :unset, coaching: :unset, call_sid_to_coach: :unset, jitter_buffer_size: :unset, byoc: :unset, caller_id: :unset, call_reason: :unset, recording_track: :unset, time_limit: :unset, machine_detection: :unset, machine_detection_timeout: :unset, machine_detection_speech_threshold: :unset, machine_detection_speech_end_threshold: :unset, machine_detection_silence_timeout: :unset, amd_status_callback: :unset, amd_status_callback_method: :unset)
174
200
  data = Twilio::Values.of({
175
201
  'From' => from,
176
202
  'To' => to,
@@ -211,6 +237,13 @@ module Twilio
211
237
  'CallReason' => call_reason,
212
238
  'RecordingTrack' => recording_track,
213
239
  'TimeLimit' => time_limit,
240
+ 'MachineDetection' => machine_detection,
241
+ 'MachineDetectionTimeout' => machine_detection_timeout,
242
+ 'MachineDetectionSpeechThreshold' => machine_detection_speech_threshold,
243
+ 'MachineDetectionSpeechEndThreshold' => machine_detection_speech_end_threshold,
244
+ 'MachineDetectionSilenceTimeout' => machine_detection_silence_timeout,
245
+ 'AmdStatusCallback' => amd_status_callback,
246
+ 'AmdStatusCallbackMethod' => amd_status_callback_method,
214
247
  })
215
248
 
216
249
  payload = @version.create('POST', @uri, data: data)
@@ -416,20 +449,23 @@ module Twilio
416
449
  # @param [Boolean] hold Whether the participant should be on hold. Can be: `true`
417
450
  # or `false`. `true` puts the participant on hold, and `false` lets them rejoin
418
451
  # the conference.
419
- # @param [String] hold_url The URL we call using the `hold_method` for music that
452
+ # @param [String] hold_url The URL we call using the `hold_method` for music that
420
453
  # plays when the participant is on hold. The URL may return an MP3 file, a WAV
421
- # file, or a TwiML document that contains the `<Play>`, `<Say>` or `<Redirect>`
422
- # commands.
454
+ # file, or a TwiML document that contains `<Play>`, `<Say>`, `<Pause>`, or
455
+ # `<Redirect>` verbs.
423
456
  # @param [String] hold_method The HTTP method we should use to call `hold_url`.
424
457
  # Can be: `GET` or `POST` and the default is `GET`.
425
458
  # @param [String] announce_url The URL we call using the `announce_method` for an
426
- # announcement to the participant. The URL must return an MP3 file, a WAV file, or
427
- # a TwiML document that contains `<Play>` or `<Say>` commands.
459
+ # announcement to the participant. The URL may return an MP3 file, a WAV file, or
460
+ # a TwiML document that contains `<Play>`, `<Say>`, `<Pause>`, or `<Redirect>`
461
+ # verbs.
428
462
  # @param [String] announce_method The HTTP method we should use to call
429
463
  # `announce_url`. Can be: `GET` or `POST` and defaults to `POST`.
430
- # @param [String] wait_url The URL we should call using the `wait_method` for the
431
- # music to play while participants are waiting for the conference to start. The
432
- # default value is the URL of our standard hold music. {Learn more about hold
464
+ # @param [String] wait_url The URL we call using the `wait_method` for the music
465
+ # to play while participants are waiting for the conference to start. The URL may
466
+ # return an MP3 file, a WAV file, or a TwiML document that contains `<Play>`,
467
+ # `<Say>`, `<Pause>`, or `<Redirect>` verbs. The default value is the URL of our
468
+ # standard hold music. {Learn more about hold
433
469
  # music}[https://www.twilio.com/labs/twimlets/holdmusic].
434
470
  # @param [String] wait_method The HTTP method we should use to call `wait_url`.
435
471
  # Can be `GET` or `POST` and the default is `POST`. When using a static audio
@@ -653,20 +689,23 @@ module Twilio
653
689
  # @param [Boolean] hold Whether the participant should be on hold. Can be: `true`
654
690
  # or `false`. `true` puts the participant on hold, and `false` lets them rejoin
655
691
  # the conference.
656
- # @param [String] hold_url The URL we call using the `hold_method` for music that
692
+ # @param [String] hold_url The URL we call using the `hold_method` for music that
657
693
  # plays when the participant is on hold. The URL may return an MP3 file, a WAV
658
- # file, or a TwiML document that contains the `<Play>`, `<Say>` or `<Redirect>`
659
- # commands.
694
+ # file, or a TwiML document that contains `<Play>`, `<Say>`, `<Pause>`, or
695
+ # `<Redirect>` verbs.
660
696
  # @param [String] hold_method The HTTP method we should use to call `hold_url`.
661
697
  # Can be: `GET` or `POST` and the default is `GET`.
662
698
  # @param [String] announce_url The URL we call using the `announce_method` for an
663
- # announcement to the participant. The URL must return an MP3 file, a WAV file, or
664
- # a TwiML document that contains `<Play>` or `<Say>` commands.
699
+ # announcement to the participant. The URL may return an MP3 file, a WAV file, or
700
+ # a TwiML document that contains `<Play>`, `<Say>`, `<Pause>`, or `<Redirect>`
701
+ # verbs.
665
702
  # @param [String] announce_method The HTTP method we should use to call
666
703
  # `announce_url`. Can be: `GET` or `POST` and defaults to `POST`.
667
- # @param [String] wait_url The URL we should call using the `wait_method` for the
668
- # music to play while participants are waiting for the conference to start. The
669
- # default value is the URL of our standard hold music. {Learn more about hold
704
+ # @param [String] wait_url The URL we call using the `wait_method` for the music
705
+ # to play while participants are waiting for the conference to start. The URL may
706
+ # return an MP3 file, a WAV file, or a TwiML document that contains `<Play>`,
707
+ # `<Say>`, `<Pause>`, or `<Redirect>` verbs. The default value is the URL of our
708
+ # standard hold music. {Learn more about hold
670
709
  # music}[https://www.twilio.com/labs/twimlets/holdmusic].
671
710
  # @param [String] wait_method The HTTP method we should use to call `wait_url`.
672
711
  # Can be `GET` or `POST` and the default is `POST`. When using a static audio
@@ -285,7 +285,7 @@ module Twilio
285
285
  'price' => payload['price'],
286
286
  'price_unit' => payload['price_unit'],
287
287
  'status' => payload['status'],
288
- 'channels' => payload['channels'].to_i,
288
+ 'channels' => payload['channels'] == nil ? payload['channels'] : payload['channels'].to_i,
289
289
  'source' => payload['source'],
290
290
  'error_code' => payload['error_code'] == nil ? payload['error_code'] : payload['error_code'].to_i,
291
291
  'encryption_details' => payload['encryption_details'],
@@ -244,8 +244,8 @@ module Twilio
244
244
  # Can be: `init`, `in-progress`, or `completed`. Specifying `completed` will end
245
245
  # the conference and hang up all participants
246
246
  # @param [String] announce_url The URL we should call to announce something into
247
- # the conference. The URL can return an MP3, a WAV, or a TwiML document with
248
- # `<Play>` or `<Say>`.
247
+ # the conference. The URL may return an MP3 file, a WAV file, or a TwiML document
248
+ # that contains `<Play>`, `<Say>`, `<Pause>`, or `<Redirect>` verbs.
249
249
  # @param [String] announce_method The HTTP method used to call `announce_url`. Can
250
250
  # be: `GET` or `POST` and the default is `POST`
251
251
  # @return [ConferenceInstance] Updated ConferenceInstance
@@ -456,8 +456,8 @@ module Twilio
456
456
  # Can be: `init`, `in-progress`, or `completed`. Specifying `completed` will end
457
457
  # the conference and hang up all participants
458
458
  # @param [String] announce_url The URL we should call to announce something into
459
- # the conference. The URL can return an MP3, a WAV, or a TwiML document with
460
- # `<Play>` or `<Say>`.
459
+ # the conference. The URL may return an MP3 file, a WAV file, or a TwiML document
460
+ # that contains `<Play>`, `<Say>`, `<Pause>`, or `<Redirect>` verbs.
461
461
  # @param [String] announce_method The HTTP method used to call `announce_url`. Can
462
462
  # be: `GET` or `POST` and the default is `POST`
463
463
  # @return [ConferenceInstance] Updated ConferenceInstance
@@ -78,6 +78,12 @@ module Twilio
78
78
  # @param [Boolean] smart_encoded Whether to detect Unicode characters that have a
79
79
  # similar GSM-7 character and replace them. Can be: `true` or `false`.
80
80
  # @param [Array[String]] persistent_action Rich actions for Channels Messages.
81
+ # @param [Boolean] shorten_urls Determines the usage of Click Tracking. Setting it
82
+ # to `true` will instruct Twilio to replace all links in the Message with a
83
+ # shortened version based on the associated Domain Sid and track clicks on them.
84
+ # If this parameter is not set on an API call, we will use the value set on the
85
+ # Messaging Service. If this parameter is not set and the value is not configured
86
+ # on the Messaging Service used this will default to `false`.
81
87
  # @param [message.ScheduleType] schedule_type Indicates your intent to schedule a
82
88
  # message. Pass the value `fixed` to schedule a message at a fixed time.
83
89
  # @param [Time] send_at The time that Twilio will send the message. Must be in ISO
@@ -114,7 +120,7 @@ module Twilio
114
120
  # parameters in the POST request. You can include up to 10 `media_url` parameters
115
121
  # per message. You can send images in an SMS message in only the US and Canada.
116
122
  # @return [MessageInstance] Created MessageInstance
117
- def create(to: nil, status_callback: :unset, application_sid: :unset, max_price: :unset, provide_feedback: :unset, attempt: :unset, validity_period: :unset, force_delivery: :unset, content_retention: :unset, address_retention: :unset, smart_encoded: :unset, persistent_action: :unset, schedule_type: :unset, send_at: :unset, send_as_mms: :unset, from: :unset, messaging_service_sid: :unset, body: :unset, media_url: :unset)
123
+ def create(to: nil, status_callback: :unset, application_sid: :unset, max_price: :unset, provide_feedback: :unset, attempt: :unset, validity_period: :unset, force_delivery: :unset, content_retention: :unset, address_retention: :unset, smart_encoded: :unset, persistent_action: :unset, shorten_urls: :unset, schedule_type: :unset, send_at: :unset, send_as_mms: :unset, from: :unset, messaging_service_sid: :unset, body: :unset, media_url: :unset)
118
124
  data = Twilio::Values.of({
119
125
  'To' => to,
120
126
  'From' => from,
@@ -132,6 +138,7 @@ module Twilio
132
138
  'AddressRetention' => address_retention,
133
139
  'SmartEncoded' => smart_encoded,
134
140
  'PersistentAction' => Twilio.serialize_list(persistent_action) { |e| e },
141
+ 'ShortenUrls' => shorten_urls,
135
142
  'ScheduleType' => schedule_type,
136
143
  'SendAt' => Twilio.serialize_iso8601_datetime(send_at),
137
144
  'SendAsMms' => send_as_mms,
@@ -242,9 +242,9 @@ module Twilio
242
242
  @properties = {
243
243
  'call_sid' => payload['call_sid'],
244
244
  'date_enqueued' => Twilio.deserialize_rfc2822(payload['date_enqueued']),
245
- 'position' => payload['position'].to_i,
245
+ 'position' => payload['position'] == nil ? payload['position'] : payload['position'].to_i,
246
246
  'uri' => payload['uri'],
247
- 'wait_time' => payload['wait_time'].to_i,
247
+ 'wait_time' => payload['wait_time'] == nil ? payload['wait_time'] : payload['wait_time'].to_i,
248
248
  'queue_sid' => payload['queue_sid'],
249
249
  }
250
250
 
@@ -264,14 +264,14 @@ module Twilio
264
264
  # Marshaled Properties
265
265
  @properties = {
266
266
  'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
267
- 'current_size' => payload['current_size'].to_i,
267
+ 'current_size' => payload['current_size'] == nil ? payload['current_size'] : payload['current_size'].to_i,
268
268
  'friendly_name' => payload['friendly_name'],
269
269
  'uri' => payload['uri'],
270
270
  'account_sid' => payload['account_sid'],
271
- 'average_wait_time' => payload['average_wait_time'].to_i,
271
+ 'average_wait_time' => payload['average_wait_time'] == nil ? payload['average_wait_time'] : payload['average_wait_time'].to_i,
272
272
  'sid' => payload['sid'],
273
273
  'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
274
- 'max_size' => payload['max_size'].to_i,
274
+ 'max_size' => payload['max_size'] == nil ? payload['max_size'] : payload['max_size'].to_i,
275
275
  }
276
276
 
277
277
  # Context
@@ -234,7 +234,7 @@ module Twilio
234
234
  'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
235
235
  'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
236
236
  'duration' => payload['duration'],
237
- 'price' => payload['price'].to_f,
237
+ 'price' => payload['price'] == nil ? payload['price'] : payload['price'].to_f,
238
238
  'price_unit' => payload['price_unit'],
239
239
  'recording_sid' => payload['recording_sid'],
240
240
  'sid' => payload['sid'],
@@ -329,7 +329,7 @@ module Twilio
329
329
  'price' => payload['price'],
330
330
  'price_unit' => payload['price_unit'],
331
331
  'status' => payload['status'],
332
- 'channels' => payload['channels'].to_i,
332
+ 'channels' => payload['channels'] == nil ? payload['channels'] : payload['channels'].to_i,
333
333
  'source' => payload['source'],
334
334
  'error_code' => payload['error_code'] == nil ? payload['error_code'] : payload['error_code'].to_i,
335
335
  'uri' => payload['uri'],
@@ -290,7 +290,7 @@ module Twilio
290
290
  'account_sid' => payload['account_sid'],
291
291
  'friendly_name' => payload['friendly_name'],
292
292
  'ip_address' => payload['ip_address'],
293
- 'cidr_prefix_length' => payload['cidr_prefix_length'].to_i,
293
+ 'cidr_prefix_length' => payload['cidr_prefix_length'] == nil ? payload['cidr_prefix_length'] : payload['cidr_prefix_length'].to_i,
294
294
  'ip_access_control_list_sid' => payload['ip_access_control_list_sid'],
295
295
  'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
296
296
  'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
@@ -218,7 +218,7 @@ module Twilio
218
218
  'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
219
219
  'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
220
220
  'duration' => payload['duration'],
221
- 'price' => payload['price'].to_f,
221
+ 'price' => payload['price'] == nil ? payload['price'] : payload['price'].to_f,
222
222
  'price_unit' => payload['price_unit'],
223
223
  'recording_sid' => payload['recording_sid'],
224
224
  'sid' => payload['sid'],
@@ -230,7 +230,7 @@ module Twilio
230
230
  'count_unit' => payload['count_unit'],
231
231
  'description' => payload['description'],
232
232
  'end_date' => Twilio.deserialize_iso8601_date(payload['end_date']),
233
- 'price' => payload['price'].to_f,
233
+ 'price' => payload['price'] == nil ? payload['price'] : payload['price'].to_f,
234
234
  'price_unit' => payload['price_unit'],
235
235
  'start_date' => Twilio.deserialize_iso8601_date(payload['start_date']),
236
236
  'subresource_uris' => payload['subresource_uris'],
@@ -230,7 +230,7 @@ module Twilio
230
230
  'count_unit' => payload['count_unit'],
231
231
  'description' => payload['description'],
232
232
  'end_date' => Twilio.deserialize_iso8601_date(payload['end_date']),
233
- 'price' => payload['price'].to_f,
233
+ 'price' => payload['price'] == nil ? payload['price'] : payload['price'].to_f,
234
234
  'price_unit' => payload['price_unit'],
235
235
  'start_date' => Twilio.deserialize_iso8601_date(payload['start_date']),
236
236
  'subresource_uris' => payload['subresource_uris'],
@@ -230,7 +230,7 @@ module Twilio
230
230
  'count_unit' => payload['count_unit'],
231
231
  'description' => payload['description'],
232
232
  'end_date' => Twilio.deserialize_iso8601_date(payload['end_date']),
233
- 'price' => payload['price'].to_f,
233
+ 'price' => payload['price'] == nil ? payload['price'] : payload['price'].to_f,
234
234
  'price_unit' => payload['price_unit'],
235
235
  'start_date' => Twilio.deserialize_iso8601_date(payload['start_date']),
236
236
  'subresource_uris' => payload['subresource_uris'],
@@ -230,7 +230,7 @@ module Twilio
230
230
  'count_unit' => payload['count_unit'],
231
231
  'description' => payload['description'],
232
232
  'end_date' => Twilio.deserialize_iso8601_date(payload['end_date']),
233
- 'price' => payload['price'].to_f,
233
+ 'price' => payload['price'] == nil ? payload['price'] : payload['price'].to_f,
234
234
  'price_unit' => payload['price_unit'],
235
235
  'start_date' => Twilio.deserialize_iso8601_date(payload['start_date']),
236
236
  'subresource_uris' => payload['subresource_uris'],
@@ -230,7 +230,7 @@ module Twilio
230
230
  'count_unit' => payload['count_unit'],
231
231
  'description' => payload['description'],
232
232
  'end_date' => Twilio.deserialize_iso8601_date(payload['end_date']),
233
- 'price' => payload['price'].to_f,
233
+ 'price' => payload['price'] == nil ? payload['price'] : payload['price'].to_f,
234
234
  'price_unit' => payload['price_unit'],
235
235
  'start_date' => Twilio.deserialize_iso8601_date(payload['start_date']),
236
236
  'subresource_uris' => payload['subresource_uris'],
@@ -230,7 +230,7 @@ module Twilio
230
230
  'count_unit' => payload['count_unit'],
231
231
  'description' => payload['description'],
232
232
  'end_date' => Twilio.deserialize_iso8601_date(payload['end_date']),
233
- 'price' => payload['price'].to_f,
233
+ 'price' => payload['price'] == nil ? payload['price'] : payload['price'].to_f,
234
234
  'price_unit' => payload['price_unit'],
235
235
  'start_date' => Twilio.deserialize_iso8601_date(payload['start_date']),
236
236
  'subresource_uris' => payload['subresource_uris'],
@@ -230,7 +230,7 @@ module Twilio
230
230
  'count_unit' => payload['count_unit'],
231
231
  'description' => payload['description'],
232
232
  'end_date' => Twilio.deserialize_iso8601_date(payload['end_date']),
233
- 'price' => payload['price'].to_f,
233
+ 'price' => payload['price'] == nil ? payload['price'] : payload['price'].to_f,
234
234
  'price_unit' => payload['price_unit'],
235
235
  'start_date' => Twilio.deserialize_iso8601_date(payload['start_date']),
236
236
  'subresource_uris' => payload['subresource_uris'],
@@ -230,7 +230,7 @@ module Twilio
230
230
  'count_unit' => payload['count_unit'],
231
231
  'description' => payload['description'],
232
232
  'end_date' => Twilio.deserialize_iso8601_date(payload['end_date']),
233
- 'price' => payload['price'].to_f,
233
+ 'price' => payload['price'] == nil ? payload['price'] : payload['price'].to_f,
234
234
  'price_unit' => payload['price_unit'],
235
235
  'start_date' => Twilio.deserialize_iso8601_date(payload['start_date']),
236
236
  'subresource_uris' => payload['subresource_uris'],
@@ -303,7 +303,7 @@ module Twilio
303
303
  'count_unit' => payload['count_unit'],
304
304
  'description' => payload['description'],
305
305
  'end_date' => Twilio.deserialize_iso8601_date(payload['end_date']),
306
- 'price' => payload['price'].to_f,
306
+ 'price' => payload['price'] == nil ? payload['price'] : payload['price'].to_f,
307
307
  'price_unit' => payload['price_unit'],
308
308
  'start_date' => Twilio.deserialize_iso8601_date(payload['start_date']),
309
309
  'subresource_uris' => payload['subresource_uris'],
@@ -147,8 +147,8 @@ module Twilio
147
147
  'account_sid' => payload['account_sid'],
148
148
  'assistant_sid' => payload['assistant_sid'],
149
149
  'task_sid' => payload['task_sid'],
150
- 'samples_count' => payload['samples_count'].to_i,
151
- 'fields_count' => payload['fields_count'].to_i,
150
+ 'samples_count' => payload['samples_count'] == nil ? payload['samples_count'] : payload['samples_count'].to_i,
151
+ 'fields_count' => payload['fields_count'] == nil ? payload['fields_count'] : payload['fields_count'].to_i,
152
152
  'url' => payload['url'],
153
153
  }
154
154
 
@@ -200,7 +200,7 @@ module Twilio
200
200
  @properties = {
201
201
  'redirect_to' => payload['redirect_to'],
202
202
  'day' => payload['day'],
203
- 'size' => payload['size'].to_i,
203
+ 'size' => payload['size'] == nil ? payload['size'] : payload['size'].to_i,
204
204
  'create_date' => payload['create_date'],
205
205
  'friendly_name' => payload['friendly_name'],
206
206
  'resource_type' => payload['resource_type'],
@@ -293,7 +293,7 @@ module Twilio
293
293
  'was_edited' => payload['was_edited'],
294
294
  'from' => payload['from'],
295
295
  'body' => payload['body'],
296
- 'index' => payload['index'].to_i,
296
+ 'index' => payload['index'] == nil ? payload['index'] : payload['index'].to_i,
297
297
  'url' => payload['url'],
298
298
  }
299
299