twilio-ruby 5.40.4 → 5.45.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 (155) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +104 -0
  3. data/{LICENSE.md → LICENSE} +0 -0
  4. data/PULL_REQUEST_TEMPLATE.md +3 -3
  5. data/README.md +18 -2
  6. data/lib/twilio-ruby.rb +1 -1
  7. data/lib/twilio-ruby/jwt/access_token.rb +7 -2
  8. data/lib/twilio-ruby/rest/accounts.rb +12 -0
  9. data/lib/twilio-ruby/rest/accounts/v1.rb +14 -0
  10. data/lib/twilio-ruby/rest/accounts/v1/auth_token_promotion.rb +186 -0
  11. data/lib/twilio-ruby/rest/accounts/v1/secondary_auth_token.rb +200 -0
  12. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +26 -1
  13. data/lib/twilio-ruby/rest/api/v2010/account/call/event.rb +201 -0
  14. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +13 -1
  15. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +6 -1
  16. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +5 -22
  17. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +25 -40
  18. data/lib/twilio-ruby/rest/client.rb +29 -3
  19. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +10 -2
  20. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +13 -3
  21. data/lib/twilio-ruby/rest/events/v1/subscription.rb +12 -5
  22. data/lib/twilio-ruby/rest/insights.rb +8 -0
  23. data/lib/twilio-ruby/rest/insights/v1.rb +15 -0
  24. data/lib/twilio-ruby/rest/insights/v1/call/summary.rb +7 -0
  25. data/lib/twilio-ruby/rest/insights/v1/room.rb +487 -0
  26. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +378 -0
  27. data/lib/twilio-ruby/rest/ip_messaging.rb +8 -10
  28. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +6 -8
  29. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +29 -68
  30. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +198 -313
  31. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +32 -59
  32. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +23 -55
  33. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +28 -71
  34. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +31 -59
  35. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +19 -39
  36. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +29 -51
  37. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +12 -18
  38. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +6 -6
  39. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +29 -66
  40. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +116 -205
  41. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +23 -50
  42. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +41 -91
  43. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +23 -50
  44. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +42 -118
  45. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +46 -100
  46. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +36 -89
  47. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +19 -41
  48. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +29 -53
  49. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +23 -53
  50. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +27 -56
  51. data/lib/twilio-ruby/rest/preview.rb +5 -18
  52. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +5 -22
  53. data/lib/twilio-ruby/rest/preview/bulk_exports/export/export_custom_job.rb +21 -39
  54. data/lib/twilio-ruby/rest/preview/trusted_comms.rb +12 -27
  55. data/lib/twilio-ruby/rest/preview/trusted_comms/{business.rb → branded_channel.rb} +63 -77
  56. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_channel/channel.rb +165 -0
  57. data/lib/twilio-ruby/rest/serverless/v1/service.rb +5 -5
  58. data/lib/twilio-ruby/rest/serverless/v1/service/asset.rb +4 -4
  59. data/lib/twilio-ruby/rest/serverless/v1/service/asset/asset_version.rb +4 -4
  60. data/lib/twilio-ruby/rest/serverless/v1/service/build.rb +4 -4
  61. data/lib/twilio-ruby/rest/serverless/v1/service/build/build_status.rb +4 -4
  62. data/lib/twilio-ruby/rest/serverless/v1/service/environment.rb +4 -4
  63. data/lib/twilio-ruby/rest/serverless/v1/service/environment/deployment.rb +4 -4
  64. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +4 -4
  65. data/lib/twilio-ruby/rest/serverless/v1/service/environment/variable.rb +4 -4
  66. data/lib/twilio-ruby/rest/serverless/v1/service/function.rb +4 -4
  67. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version.rb +4 -4
  68. data/lib/twilio-ruby/rest/serverless/v1/service/function/function_version/function_version_content.rb +4 -4
  69. data/lib/twilio-ruby/rest/sync/v1/service/document.rb +15 -5
  70. data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +15 -5
  71. data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +28 -5
  72. data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +15 -5
  73. data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +28 -5
  74. data/lib/twilio-ruby/rest/sync/v1/service/sync_stream.rb +15 -5
  75. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +12 -9
  76. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +16 -16
  77. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +21 -24
  78. data/lib/twilio-ruby/rest/verify/v2/form.rb +4 -4
  79. data/lib/twilio-ruby/rest/verify/v2/service.rb +54 -33
  80. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +3 -3
  81. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +23 -35
  82. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +36 -61
  83. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +59 -57
  84. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +4 -4
  85. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +6 -6
  86. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +6 -6
  87. data/lib/twilio-ruby/rest/video/v1/room.rb +20 -0
  88. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +150 -0
  89. data/lib/twilio-ruby/twiml/voice_response.rb +7 -4
  90. data/lib/twilio-ruby/util/configuration.rb +5 -1
  91. data/lib/twilio-ruby/version.rb +1 -1
  92. data/spec/integration/accounts/v1/auth_token_promotion_spec.rb +44 -0
  93. data/spec/integration/accounts/v1/secondary_auth_token_spec.rb +69 -0
  94. data/spec/integration/api/v2010/account/call/event_spec.rb +102 -0
  95. data/spec/integration/api/v2010/account/call/recording_spec.rb +4 -0
  96. data/spec/integration/api/v2010/account/call_spec.rb +20 -10
  97. data/spec/integration/api/v2010/account/conference/participant_spec.rb +30 -0
  98. data/spec/integration/bulkexports/v1/export/export_custom_job_spec.rb +4 -2
  99. data/spec/integration/conversations/v1/conversation_spec.rb +1 -1
  100. data/spec/integration/conversations/v1/service/conversation_spec.rb +1 -1
  101. data/spec/integration/events/v1/sink/sink_test_spec.rb +1 -1
  102. data/spec/integration/events/v1/subscription_spec.rb +49 -0
  103. data/spec/integration/insights/v1/call/summary_spec.rb +1 -0
  104. data/spec/integration/insights/v1/room/participant_spec.rb +147 -0
  105. data/spec/integration/insights/v1/room_spec.rb +164 -0
  106. data/spec/integration/ip_messaging/v1/credential_spec.rb +13 -13
  107. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +11 -11
  108. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +14 -14
  109. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +14 -14
  110. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +25 -25
  111. data/spec/integration/ip_messaging/v1/service/role_spec.rb +13 -13
  112. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +7 -7
  113. data/spec/integration/ip_messaging/v1/service/user_spec.rb +17 -17
  114. data/spec/integration/ip_messaging/v1/service_spec.rb +9 -9
  115. data/spec/integration/ip_messaging/v2/credential_spec.rb +13 -13
  116. data/spec/integration/ip_messaging/v2/service/binding_spec.rb +11 -11
  117. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +11 -11
  118. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +13 -13
  119. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +17 -17
  120. data/spec/integration/ip_messaging/v2/service/channel/webhook_spec.rb +15 -15
  121. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +29 -29
  122. data/spec/integration/ip_messaging/v2/service/role_spec.rb +13 -13
  123. data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +9 -9
  124. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +20 -20
  125. data/spec/integration/ip_messaging/v2/service/user_spec.rb +21 -21
  126. data/spec/integration/ip_messaging/v2/service_spec.rb +29 -29
  127. data/spec/integration/lookups/v1/phone_number_spec.rb +7 -7
  128. data/spec/integration/preview/bulk_exports/export/export_custom_job_spec.rb +4 -2
  129. data/spec/integration/preview/trusted_comms/{business/brand/branded_channel → branded_channel}/channel_spec.rb +4 -8
  130. data/spec/integration/preview/trusted_comms/{business/brand/branded_channel_spec.rb → branded_channel_spec.rb} +5 -9
  131. data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +1 -1
  132. data/spec/integration/trunking/v1/trunk/recording_spec.rb +2 -6
  133. data/spec/integration/verify/v2/service/entity/challenge_spec.rb +56 -20
  134. data/spec/integration/verify/v2/service/entity/factor_spec.rb +11 -26
  135. data/spec/integration/verify/v2/service/entity_spec.rb +4 -12
  136. data/spec/integration/verify/v2/service_spec.rb +8 -4
  137. data/spec/integration/video/v1/room/room_recording_rule_spec.rb +89 -0
  138. data/spec/integration/video/v1/room_spec.rb +10 -5
  139. data/spec/jwt/access_token_spec.rb +9 -1
  140. data/spec/rest/client_spec.rb +24 -2
  141. data/twilio-ruby.gemspec +2 -1
  142. metadata +42 -28
  143. data/lib/twilio-ruby/rest/preview/trusted_comms/branded_call.rb +0 -243
  144. data/lib/twilio-ruby/rest/preview/trusted_comms/business/brand.rb +0 -233
  145. data/lib/twilio-ruby/rest/preview/trusted_comms/business/brand/branded_channel.rb +0 -260
  146. data/lib/twilio-ruby/rest/preview/trusted_comms/business/brand/branded_channel/channel.rb +0 -189
  147. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights.rb +0 -108
  148. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights/impressions_rate.rb +0 -260
  149. data/lib/twilio-ruby/rest/preview/trusted_comms/phone_call.rb +0 -342
  150. data/spec/integration/preview/trusted_comms/branded_call_spec.rb +0 -59
  151. data/spec/integration/preview/trusted_comms/business/brand_spec.rb +0 -48
  152. data/spec/integration/preview/trusted_comms/business/insights/impressions_rate_spec.rb +0 -56
  153. data/spec/integration/preview/trusted_comms/business/insights_spec.rb +0 -12
  154. data/spec/integration/preview/trusted_comms/business_spec.rb +0 -46
  155. data/spec/integration/preview/trusted_comms/phone_call_spec.rb +0 -59
@@ -53,14 +53,19 @@ module Twilio
53
53
  # Can be: `mono` or `dual` and the default is `mono`. `mono` records all parties
54
54
  # of the call into one channel. `dual` records each party of a 2-party call into
55
55
  # separate channels.
56
+ # @param [String] recording_track The tracks to record. Can be: `inbound`,
57
+ # `outbound`, or `both`. The default is `both`. `inbound` only records the audio
58
+ # received by Twilio, `outbound` only records audio generated by Twilio, and
59
+ # `both` mixes the inbound and outbound audio.
56
60
  # @return [RecordingInstance] Created RecordingInstance
57
- def create(recording_status_callback_event: :unset, recording_status_callback: :unset, recording_status_callback_method: :unset, trim: :unset, recording_channels: :unset)
61
+ def create(recording_status_callback_event: :unset, recording_status_callback: :unset, recording_status_callback_method: :unset, trim: :unset, recording_channels: :unset, recording_track: :unset)
58
62
  data = Twilio::Values.of({
59
63
  'RecordingStatusCallbackEvent' => Twilio.serialize_list(recording_status_callback_event) { |e| e },
60
64
  'RecordingStatusCallback' => recording_status_callback,
61
65
  'RecordingStatusCallbackMethod' => recording_status_callback_method,
62
66
  'Trim' => trim,
63
67
  'RecordingChannels' => recording_channels,
68
+ 'RecordingTrack' => recording_track,
64
69
  })
65
70
 
66
71
  payload = @version.create('POST', @uri, data: data)
@@ -335,6 +340,7 @@ module Twilio
335
340
  'channels' => payload['channels'].to_i,
336
341
  'source' => payload['source'],
337
342
  'error_code' => payload['error_code'] == nil ? payload['error_code'] : payload['error_code'].to_i,
343
+ 'track' => payload['track'],
338
344
  }
339
345
 
340
346
  # Context
@@ -460,6 +466,12 @@ module Twilio
460
466
  @properties['error_code']
461
467
  end
462
468
 
469
+ ##
470
+ # @return [String] The recorded track. Can be: `inbound`, `outbound`, or `both`.
471
+ def track
472
+ @properties['track']
473
+ end
474
+
463
475
  ##
464
476
  # Update the RecordingInstance
465
477
  # @param [recording.Status] status The new status of the recording. Can be:
@@ -162,8 +162,12 @@ module Twilio
162
162
  # @param [String] call_reason The Reason for the outgoing call. Use it to specify
163
163
  # the purpose of the call that is presented on the called party's phone. (Branded
164
164
  # Calls Beta)
165
+ # @param [String] recording_track The track to record. Can be: `inbound`,
166
+ # `outbound`, or `both`. The default is `both`. `inbound` only records the audio
167
+ # received by Twilio, `outbound` only records audio sent from Twilio, and `both`
168
+ # mixes the inbound and outbound audio.
165
169
  # @return [ParticipantInstance] Created ParticipantInstance
166
- 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)
170
+ 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)
167
171
  data = Twilio::Values.of({
168
172
  'From' => from,
169
173
  'To' => to,
@@ -202,6 +206,7 @@ module Twilio
202
206
  'Byoc' => byoc,
203
207
  'CallerId' => caller_id,
204
208
  'CallReason' => call_reason,
209
+ 'RecordingTrack' => recording_track,
205
210
  })
206
211
 
207
212
  payload = @version.create('POST', @uri, data: data)
@@ -31,8 +31,6 @@ module Twilio
31
31
  # Lists DayInstance records from the API as a list.
32
32
  # Unlike stream(), this operation is eager and will load `limit` records into
33
33
  # memory before returning.
34
- # @param [String] next_token The next_token
35
- # @param [String] previous_token The previous_token
36
34
  # @param [Integer] limit Upper limit for the number of records to return. stream()
37
35
  # guarantees to never return more than limit. Default is no limit
38
36
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -40,21 +38,14 @@ module Twilio
40
38
  # but a limit is defined, stream() will attempt to read the limit with the most
41
39
  # efficient page size, i.e. min(limit, 1000)
42
40
  # @return [Array] Array of up to limit results
43
- def list(next_token: :unset, previous_token: :unset, limit: nil, page_size: nil)
44
- self.stream(
45
- next_token: next_token,
46
- previous_token: previous_token,
47
- limit: limit,
48
- page_size: page_size
49
- ).entries
41
+ def list(limit: nil, page_size: nil)
42
+ self.stream(limit: limit, page_size: page_size).entries
50
43
  end
51
44
 
52
45
  ##
53
46
  # Streams DayInstance records from the API as an Enumerable.
54
47
  # This operation lazily loads records as efficiently as possible until the limit
55
48
  # is reached.
56
- # @param [String] next_token The next_token
57
- # @param [String] previous_token The previous_token
58
49
  # @param [Integer] limit Upper limit for the number of records to return. stream()
59
50
  # guarantees to never return more than limit. Default is no limit.
60
51
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -62,14 +53,10 @@ module Twilio
62
53
  # but a limit is defined, stream() will attempt to read the limit with the most
63
54
  # efficient page size, i.e. min(limit, 1000)
64
55
  # @return [Enumerable] Enumerable that will yield up to limit results
65
- def stream(next_token: :unset, previous_token: :unset, limit: nil, page_size: nil)
56
+ def stream(limit: nil, page_size: nil)
66
57
  limits = @version.read_limits(limit, page_size)
67
58
 
68
- page = self.page(
69
- next_token: next_token,
70
- previous_token: previous_token,
71
- page_size: limits[:page_size],
72
- )
59
+ page = self.page(page_size: limits[:page_size], )
73
60
 
74
61
  @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
75
62
  end
@@ -91,16 +78,12 @@ module Twilio
91
78
  ##
92
79
  # Retrieve a single page of DayInstance records from the API.
93
80
  # Request is executed immediately.
94
- # @param [String] next_token The next_token
95
- # @param [String] previous_token The previous_token
96
81
  # @param [String] page_token PageToken provided by the API
97
82
  # @param [Integer] page_number Page Number, this value is simply for client state
98
83
  # @param [Integer] page_size Number of records to return, defaults to 50
99
84
  # @return [Page] Page of DayInstance
100
- def page(next_token: :unset, previous_token: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
85
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
101
86
  params = Twilio::Values.of({
102
- 'NextToken' => next_token,
103
- 'PreviousToken' => previous_token,
104
87
  'PageToken' => page_token,
105
88
  'Page' => page_number,
106
89
  'PageSize' => page_size,
@@ -31,10 +31,6 @@ module Twilio
31
31
  # Lists ExportCustomJobInstance records from the API as a list.
32
32
  # Unlike stream(), this operation is eager and will load `limit` records into
33
33
  # memory before returning.
34
- # @param [String] next_token The token for the next page of job results, and may
35
- # be null if there are no more pages
36
- # @param [String] previous_token The token for the previous page of results, and
37
- # may be null if this is the first page
38
34
  # @param [Integer] limit Upper limit for the number of records to return. stream()
39
35
  # guarantees to never return more than limit. Default is no limit
40
36
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -42,23 +38,14 @@ module Twilio
42
38
  # but a limit is defined, stream() will attempt to read the limit with the most
43
39
  # efficient page size, i.e. min(limit, 1000)
44
40
  # @return [Array] Array of up to limit results
45
- def list(next_token: :unset, previous_token: :unset, limit: nil, page_size: nil)
46
- self.stream(
47
- next_token: next_token,
48
- previous_token: previous_token,
49
- limit: limit,
50
- page_size: page_size
51
- ).entries
41
+ def list(limit: nil, page_size: nil)
42
+ self.stream(limit: limit, page_size: page_size).entries
52
43
  end
53
44
 
54
45
  ##
55
46
  # Streams ExportCustomJobInstance records from the API as an Enumerable.
56
47
  # This operation lazily loads records as efficiently as possible until the limit
57
48
  # is reached.
58
- # @param [String] next_token The token for the next page of job results, and may
59
- # be null if there are no more pages
60
- # @param [String] previous_token The token for the previous page of results, and
61
- # may be null if this is the first page
62
49
  # @param [Integer] limit Upper limit for the number of records to return. stream()
63
50
  # guarantees to never return more than limit. Default is no limit.
64
51
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -66,14 +53,10 @@ module Twilio
66
53
  # but a limit is defined, stream() will attempt to read the limit with the most
67
54
  # efficient page size, i.e. min(limit, 1000)
68
55
  # @return [Enumerable] Enumerable that will yield up to limit results
69
- def stream(next_token: :unset, previous_token: :unset, limit: nil, page_size: nil)
56
+ def stream(limit: nil, page_size: nil)
70
57
  limits = @version.read_limits(limit, page_size)
71
58
 
72
- page = self.page(
73
- next_token: next_token,
74
- previous_token: previous_token,
75
- page_size: limits[:page_size],
76
- )
59
+ page = self.page(page_size: limits[:page_size], )
77
60
 
78
61
  @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
79
62
  end
@@ -95,18 +78,12 @@ module Twilio
95
78
  ##
96
79
  # Retrieve a single page of ExportCustomJobInstance records from the API.
97
80
  # Request is executed immediately.
98
- # @param [String] next_token The token for the next page of job results, and may
99
- # be null if there are no more pages
100
- # @param [String] previous_token The token for the previous page of results, and
101
- # may be null if this is the first page
102
81
  # @param [String] page_token PageToken provided by the API
103
82
  # @param [Integer] page_number Page Number, this value is simply for client state
104
83
  # @param [Integer] page_size Number of records to return, defaults to 50
105
84
  # @return [Page] Page of ExportCustomJobInstance
106
- def page(next_token: :unset, previous_token: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
85
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
107
86
  params = Twilio::Values.of({
108
- 'NextToken' => next_token,
109
- 'PreviousToken' => previous_token,
110
87
  'PageToken' => page_token,
111
88
  'Page' => page_number,
112
89
  'PageSize' => page_size,
@@ -132,18 +109,26 @@ module Twilio
132
109
 
133
110
  ##
134
111
  # Create the ExportCustomJobInstance
135
- # @param [String] friendly_name The friendly_name
136
- # @param [String] start_day The start_day
137
- # @param [String] end_day The end_day
138
- # @param [String] webhook_url The webhook_url
139
- # @param [String] webhook_method The webhook_method
140
- # @param [String] email The email
112
+ # @param [String] start_day The start day for the custom export specified as a
113
+ # string in the format of yyyy-mm-dd
114
+ # @param [String] end_day The end day for the custom export specified as a string
115
+ # in the format of yyyy-mm-dd. End day is inclusive and must be 2 days earlier
116
+ # than the current UTC day.
117
+ # @param [String] friendly_name The friendly name specified when creating the job
118
+ # @param [String] webhook_url The optional webhook url called on completion of the
119
+ # job. If this is supplied, `WebhookMethod` must also be supplied. If you set
120
+ # neither webhook nor email, you will have to check your job's status manually.
121
+ # @param [String] webhook_method This is the method used to call the webhook on
122
+ # completion of the job. If this is supplied, `WebhookUrl` must also be supplied.
123
+ # @param [String] email The optional email to send the completion notification to.
124
+ # You can set both webhook, and email, or one or the other. If you set neither,
125
+ # the job will run but you will have to query to determine your job's status.
141
126
  # @return [ExportCustomJobInstance] Created ExportCustomJobInstance
142
- def create(friendly_name: :unset, start_day: :unset, end_day: :unset, webhook_url: :unset, webhook_method: :unset, email: :unset)
127
+ def create(start_day: nil, end_day: nil, friendly_name: nil, webhook_url: :unset, webhook_method: :unset, email: :unset)
143
128
  data = Twilio::Values.of({
144
- 'FriendlyName' => friendly_name,
145
129
  'StartDay' => start_day,
146
130
  'EndDay' => end_day,
131
+ 'FriendlyName' => friendly_name,
147
132
  'WebhookUrl' => webhook_url,
148
133
  'WebhookMethod' => webhook_method,
149
134
  'Email' => email,
@@ -231,13 +216,13 @@ module Twilio
231
216
  end
232
217
 
233
218
  ##
234
- # @return [String] The start time for the export specified when creating the job
219
+ # @return [String] The start day for the custom export specified as a string in the format of yyyy-MM-dd
235
220
  def start_day
236
221
  @properties['start_day']
237
222
  end
238
223
 
239
224
  ##
240
- # @return [String] The end time for the export specified when creating the job
225
+ # @return [String] The end day for the custom export specified as a string in the format of yyyy-MM-dd. This will be the last day exported. For instance, to export a single day, choose the same day for start and end day. To export the first 4 days of July, you would set the start date to 2020-07-01 and the end date to 2020-07-04. The end date must be the UTC day before yesterday.
241
226
  def end_day
242
227
  @properties['end_day']
243
228
  end
@@ -261,13 +246,13 @@ module Twilio
261
246
  end
262
247
 
263
248
  ##
264
- # @return [String] The job_sid returned when the export was created
249
+ # @return [String] The unique job_sid returned when the custom export was created. This can be used to look up the status of the job.
265
250
  def job_sid
266
251
  @properties['job_sid']
267
252
  end
268
253
 
269
254
  ##
270
- # @return [Hash] The details
255
+ # @return [Hash] The details of a job state which is an object that contains a status string, a day count integer, and list of days in the job
271
256
  def details
272
257
  @properties['details']
273
258
  end
@@ -13,11 +13,11 @@ module Twilio
13
13
  class Client
14
14
  @@default_region = 'us1'
15
15
 
16
- attr_accessor :http_client, :username, :password, :account_sid, :auth_token, :region, :edge
16
+ attr_accessor :http_client, :username, :password, :account_sid, :auth_token, :region, :edge, :logger
17
17
 
18
18
  ##
19
19
  # Initializes the Twilio Client
20
- def initialize(username=nil, password=nil, account_sid=nil, region=nil, http_client=nil)
20
+ def initialize(username=nil, password=nil, account_sid=nil, region=nil, http_client=nil, logger=nil)
21
21
  @username = username || Twilio.account_sid
22
22
  @password = password || Twilio.auth_token
23
23
  @region = region || Twilio.region
@@ -26,6 +26,7 @@ module Twilio
26
26
  @auth_token = @password
27
27
  @auth = [@username, @password]
28
28
  @http_client = http_client || Twilio.http_client || Twilio::HTTP::Client.new
29
+ @logger = logger || Twilio.logger
29
30
 
30
31
  # Domains
31
32
  @accounts = nil
@@ -80,7 +81,24 @@ module Twilio
80
81
 
81
82
  uri = build_uri(uri)
82
83
 
83
- @http_client.request(
84
+ if @logger
85
+ @logger.debug("--BEGIN Twilio API Request--")
86
+ @logger.debug("Request Method: <#{method}>")
87
+
88
+ headers.each do |key, value|
89
+ unless key.downcase == 'authorization'
90
+ @logger.debug("#{key}:#{value}")
91
+ end
92
+ end
93
+
94
+ url = URI(uri)
95
+ @logger.debug("Host:#{url.host}")
96
+ @logger.debug("Path:#{url.path}")
97
+ @logger.debug("Query:#{url.query}")
98
+ @logger.debug("Request Params:#{params}")
99
+ end
100
+
101
+ response = @http_client.request(
84
102
  host,
85
103
  port,
86
104
  method,
@@ -91,6 +109,14 @@ module Twilio
91
109
  auth,
92
110
  timeout
93
111
  )
112
+
113
+ if @logger
114
+ @logger.debug("Response Status Code:#{response.status_code}")
115
+ @logger.debug("Response Headers:#{response.headers}")
116
+ @logger.debug("--END TWILIO API REQUEST--")
117
+ end
118
+
119
+ response
94
120
  end
95
121
 
96
122
  ##
@@ -222,10 +222,13 @@ module Twilio
222
222
  # switched to `inactive` state. Minimum value for this timer is 1 minute.
223
223
  # @param [String] timers_closed ISO8601 duration when conversation will be
224
224
  # switched to `closed` state. Minimum value for this timer is 10 minutes.
225
+ # @param [String] unique_name An application-defined string that uniquely
226
+ # identifies the resource. It can be used to address the resource in place of the
227
+ # resource's `sid` in the URL.
225
228
  # @param [conversation.WebhookEnabledType] x_twilio_webhook_enabled The
226
229
  # X-Twilio-Webhook-Enabled HTTP request header
227
230
  # @return [ConversationInstance] Updated ConversationInstance
228
- def update(friendly_name: :unset, date_created: :unset, date_updated: :unset, attributes: :unset, messaging_service_sid: :unset, state: :unset, timers_inactive: :unset, timers_closed: :unset, x_twilio_webhook_enabled: :unset)
231
+ def update(friendly_name: :unset, date_created: :unset, date_updated: :unset, attributes: :unset, messaging_service_sid: :unset, state: :unset, timers_inactive: :unset, timers_closed: :unset, unique_name: :unset, x_twilio_webhook_enabled: :unset)
229
232
  data = Twilio::Values.of({
230
233
  'FriendlyName' => friendly_name,
231
234
  'DateCreated' => Twilio.serialize_iso8601_datetime(date_created),
@@ -235,6 +238,7 @@ module Twilio
235
238
  'State' => state,
236
239
  'Timers.Inactive' => timers_inactive,
237
240
  'Timers.Closed' => timers_closed,
241
+ 'UniqueName' => unique_name,
238
242
  })
239
243
  headers = Twilio::Values.of({'X-Twilio-Webhook-Enabled' => x_twilio_webhook_enabled, })
240
244
 
@@ -473,10 +477,13 @@ module Twilio
473
477
  # switched to `inactive` state. Minimum value for this timer is 1 minute.
474
478
  # @param [String] timers_closed ISO8601 duration when conversation will be
475
479
  # switched to `closed` state. Minimum value for this timer is 10 minutes.
480
+ # @param [String] unique_name An application-defined string that uniquely
481
+ # identifies the resource. It can be used to address the resource in place of the
482
+ # resource's `sid` in the URL.
476
483
  # @param [conversation.WebhookEnabledType] x_twilio_webhook_enabled The
477
484
  # X-Twilio-Webhook-Enabled HTTP request header
478
485
  # @return [ConversationInstance] Updated ConversationInstance
479
- def update(friendly_name: :unset, date_created: :unset, date_updated: :unset, attributes: :unset, messaging_service_sid: :unset, state: :unset, timers_inactive: :unset, timers_closed: :unset, x_twilio_webhook_enabled: :unset)
486
+ def update(friendly_name: :unset, date_created: :unset, date_updated: :unset, attributes: :unset, messaging_service_sid: :unset, state: :unset, timers_inactive: :unset, timers_closed: :unset, unique_name: :unset, x_twilio_webhook_enabled: :unset)
480
487
  context.update(
481
488
  friendly_name: friendly_name,
482
489
  date_created: date_created,
@@ -486,6 +493,7 @@ module Twilio
486
493
  state: state,
487
494
  timers_inactive: timers_inactive,
488
495
  timers_closed: timers_closed,
496
+ unique_name: unique_name,
489
497
  x_twilio_webhook_enabled: x_twilio_webhook_enabled,
490
498
  )
491
499
  end
@@ -191,7 +191,9 @@ module Twilio
191
191
  ##
192
192
  # Initialize the ConversationContext
193
193
  # @param [Version] version Version that contains the resource
194
- # @param [String] chat_service_sid The chat_service_sid
194
+ # @param [String] chat_service_sid The SID of the {Conversation
195
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] the
196
+ # Conversation resource is associated with.
195
197
  # @param [String] sid A 34 character string that uniquely identifies this
196
198
  # resource. Can also be the `unique_name` of the Conversation.
197
199
  # @return [ConversationContext] ConversationContext
@@ -227,10 +229,13 @@ module Twilio
227
229
  # switched to `inactive` state. Minimum value for this timer is 1 minute.
228
230
  # @param [String] timers_closed ISO8601 duration when conversation will be
229
231
  # switched to `closed` state. Minimum value for this timer is 10 minutes.
232
+ # @param [String] unique_name An application-defined string that uniquely
233
+ # identifies the resource. It can be used to address the resource in place of the
234
+ # resource's `sid` in the URL.
230
235
  # @param [conversation.WebhookEnabledType] x_twilio_webhook_enabled The
231
236
  # X-Twilio-Webhook-Enabled HTTP request header
232
237
  # @return [ConversationInstance] Updated ConversationInstance
233
- def update(friendly_name: :unset, date_created: :unset, date_updated: :unset, attributes: :unset, messaging_service_sid: :unset, state: :unset, timers_inactive: :unset, timers_closed: :unset, x_twilio_webhook_enabled: :unset)
238
+ def update(friendly_name: :unset, date_created: :unset, date_updated: :unset, attributes: :unset, messaging_service_sid: :unset, state: :unset, timers_inactive: :unset, timers_closed: :unset, unique_name: :unset, x_twilio_webhook_enabled: :unset)
234
239
  data = Twilio::Values.of({
235
240
  'FriendlyName' => friendly_name,
236
241
  'DateCreated' => Twilio.serialize_iso8601_datetime(date_created),
@@ -240,6 +245,7 @@ module Twilio
240
245
  'State' => state,
241
246
  'Timers.Inactive' => timers_inactive,
242
247
  'Timers.Closed' => timers_closed,
248
+ 'UniqueName' => unique_name,
243
249
  })
244
250
  headers = Twilio::Values.of({'X-Twilio-Webhook-Enabled' => x_twilio_webhook_enabled, })
245
251
 
@@ -503,10 +509,13 @@ module Twilio
503
509
  # switched to `inactive` state. Minimum value for this timer is 1 minute.
504
510
  # @param [String] timers_closed ISO8601 duration when conversation will be
505
511
  # switched to `closed` state. Minimum value for this timer is 10 minutes.
512
+ # @param [String] unique_name An application-defined string that uniquely
513
+ # identifies the resource. It can be used to address the resource in place of the
514
+ # resource's `sid` in the URL.
506
515
  # @param [conversation.WebhookEnabledType] x_twilio_webhook_enabled The
507
516
  # X-Twilio-Webhook-Enabled HTTP request header
508
517
  # @return [ConversationInstance] Updated ConversationInstance
509
- def update(friendly_name: :unset, date_created: :unset, date_updated: :unset, attributes: :unset, messaging_service_sid: :unset, state: :unset, timers_inactive: :unset, timers_closed: :unset, x_twilio_webhook_enabled: :unset)
518
+ def update(friendly_name: :unset, date_created: :unset, date_updated: :unset, attributes: :unset, messaging_service_sid: :unset, state: :unset, timers_inactive: :unset, timers_closed: :unset, unique_name: :unset, x_twilio_webhook_enabled: :unset)
510
519
  context.update(
511
520
  friendly_name: friendly_name,
512
521
  date_created: date_created,
@@ -516,6 +525,7 @@ module Twilio
516
525
  state: state,
517
526
  timers_inactive: timers_inactive,
518
527
  timers_closed: timers_closed,
528
+ unique_name: unique_name,
519
529
  x_twilio_webhook_enabled: x_twilio_webhook_enabled,
520
530
  )
521
531
  end
@@ -29,6 +29,8 @@ module Twilio
29
29
  # Lists SubscriptionInstance records from the API as a list.
30
30
  # Unlike stream(), this operation is eager and will load `limit` records into
31
31
  # memory before returning.
32
+ # @param [String] sink_sid The SID of the sink that the list of Subscriptions
33
+ # should be filtered by.
32
34
  # @param [Integer] limit Upper limit for the number of records to return. stream()
33
35
  # guarantees to never return more than limit. Default is no limit
34
36
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -36,14 +38,16 @@ module Twilio
36
38
  # but a limit is defined, stream() will attempt to read the limit with the most
37
39
  # efficient page size, i.e. min(limit, 1000)
38
40
  # @return [Array] Array of up to limit results
39
- def list(limit: nil, page_size: nil)
40
- self.stream(limit: limit, page_size: page_size).entries
41
+ def list(sink_sid: :unset, limit: nil, page_size: nil)
42
+ self.stream(sink_sid: sink_sid, limit: limit, page_size: page_size).entries
41
43
  end
42
44
 
43
45
  ##
44
46
  # Streams SubscriptionInstance records from the API as an Enumerable.
45
47
  # This operation lazily loads records as efficiently as possible until the limit
46
48
  # is reached.
49
+ # @param [String] sink_sid The SID of the sink that the list of Subscriptions
50
+ # should be filtered by.
47
51
  # @param [Integer] limit Upper limit for the number of records to return. stream()
48
52
  # guarantees to never return more than limit. Default is no limit.
49
53
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -51,10 +55,10 @@ module Twilio
51
55
  # but a limit is defined, stream() will attempt to read the limit with the most
52
56
  # efficient page size, i.e. min(limit, 1000)
53
57
  # @return [Enumerable] Enumerable that will yield up to limit results
54
- def stream(limit: nil, page_size: nil)
58
+ def stream(sink_sid: :unset, limit: nil, page_size: nil)
55
59
  limits = @version.read_limits(limit, page_size)
56
60
 
57
- page = self.page(page_size: limits[:page_size], )
61
+ page = self.page(sink_sid: sink_sid, page_size: limits[:page_size], )
58
62
 
59
63
  @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
60
64
  end
@@ -76,12 +80,15 @@ module Twilio
76
80
  ##
77
81
  # Retrieve a single page of SubscriptionInstance records from the API.
78
82
  # Request is executed immediately.
83
+ # @param [String] sink_sid The SID of the sink that the list of Subscriptions
84
+ # should be filtered by.
79
85
  # @param [String] page_token PageToken provided by the API
80
86
  # @param [Integer] page_number Page Number, this value is simply for client state
81
87
  # @param [Integer] page_size Number of records to return, defaults to 50
82
88
  # @return [Page] Page of SubscriptionInstance
83
- def page(page_token: :unset, page_number: :unset, page_size: :unset)
89
+ def page(sink_sid: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
84
90
  params = Twilio::Values.of({
91
+ 'SinkSid' => sink_sid,
85
92
  'PageToken' => page_token,
86
93
  'Page' => page_number,
87
94
  'PageSize' => page_size,