twilio-ruby 5.31.4 → 5.31.5

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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +9 -0
  3. data/.rubocop_todo.yml +0 -11
  4. data/CHANGES.md +38 -0
  5. data/README.md +2 -2
  6. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +27 -1
  7. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +5 -1
  8. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +7 -0
  9. data/lib/twilio-ruby/rest/messaging.rb +0 -15
  10. data/lib/twilio-ruby/rest/messaging/v1.rb +0 -22
  11. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/regulation.rb +322 -0
  12. data/lib/twilio-ruby/rest/studio/v2/flow.rb +49 -0
  13. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +427 -0
  14. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +224 -0
  15. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +387 -0
  16. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +239 -0
  17. data/lib/twilio-ruby/rest/studio/v2/flow/test_user.rb +215 -0
  18. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +10 -3
  19. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics.rb +7 -0
  20. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics.rb +14 -0
  21. data/lib/twilio-ruby/rest/verify/v2/service.rb +5 -3
  22. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +5 -4
  23. data/lib/twilio-ruby/version.rb +1 -1
  24. data/spec/integration/api/v2010/account/call_spec.rb +30 -10
  25. data/spec/integration/api/v2010/account/conference/participant_spec.rb +29 -0
  26. data/spec/integration/api/v2010/account/notification_spec.rb +1 -1
  27. data/spec/integration/api/v2010/account_spec.rb +45 -0
  28. data/spec/integration/flex_api/v1/configuration_spec.rb +3 -0
  29. data/spec/integration/numbers/v2/regulatory_compliance/regulation_spec.rb +183 -0
  30. data/spec/integration/studio/v2/flow/execution/execution_context_spec.rb +51 -0
  31. data/spec/integration/studio/v2/flow/execution/execution_step/execution_step_context_spec.rb +54 -0
  32. data/spec/integration/studio/v2/flow/execution/execution_step_spec.rb +101 -0
  33. data/spec/integration/studio/v2/flow/execution_spec.rb +169 -0
  34. data/spec/integration/studio/v2/flow/test_user_spec.rb +86 -0
  35. data/spec/integration/studio/v2/flow_spec.rb +16 -4
  36. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_cumulative_statistics_spec.rb +6 -0
  37. data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_real_time_statistics_spec.rb +2 -0
  38. data/spec/integration/taskrouter/v1/workspace/task_spec.rb +4 -0
  39. data/twilio-ruby.gemspec +1 -1
  40. metadata +22 -19
  41. data/lib/twilio-ruby/rest/messaging/v1/session.rb +0 -513
  42. data/lib/twilio-ruby/rest/messaging/v1/session/message.rb +0 -439
  43. data/lib/twilio-ruby/rest/messaging/v1/session/participant.rb +0 -458
  44. data/lib/twilio-ruby/rest/messaging/v1/session/webhook.rb +0 -444
  45. data/lib/twilio-ruby/rest/messaging/v1/webhook.rb +0 -299
  46. data/spec/integration/messaging/v1/session/message_spec.rb +0 -238
  47. data/spec/integration/messaging/v1/session/participant_spec.rb +0 -256
  48. data/spec/integration/messaging/v1/session/webhook_spec.rb +0 -300
  49. data/spec/integration/messaging/v1/session_spec.rb +0 -227
  50. data/spec/integration/messaging/v1/webhook_spec.rb +0 -94
@@ -429,6 +429,7 @@ module Twilio
429
429
  'addons' => payload['addons'],
430
430
  'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
431
431
  'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
432
+ 'task_queue_entered_date' => Twilio.deserialize_iso8601_datetime(payload['task_queue_entered_date']),
432
433
  'priority' => payload['priority'].to_i,
433
434
  'reason' => payload['reason'],
434
435
  'sid' => payload['sid'],
@@ -467,7 +468,7 @@ module Twilio
467
468
  end
468
469
 
469
470
  ##
470
- # @return [String] The number of seconds since the task was created
471
+ # @return [String] The number of seconds since the Task was created
471
472
  def age
472
473
  @properties['age']
473
474
  end
@@ -502,6 +503,12 @@ module Twilio
502
503
  @properties['date_updated']
503
504
  end
504
505
 
506
+ ##
507
+ # @return [Time] The ISO 8601 date and time in GMT when the Task entered the TaskQueue.
508
+ def task_queue_entered_date
509
+ @properties['task_queue_entered_date']
510
+ end
511
+
505
512
  ##
506
513
  # @return [String] Retrieve the list of all Tasks in the Workspace with the specified priority
507
514
  def priority
@@ -509,7 +516,7 @@ module Twilio
509
516
  end
510
517
 
511
518
  ##
512
- # @return [String] The reason the task was canceled or completed
519
+ # @return [String] The reason the Task was canceled or completed
513
520
  def reason
514
521
  @properties['reason']
515
522
  end
@@ -545,7 +552,7 @@ module Twilio
545
552
  end
546
553
 
547
554
  ##
548
- # @return [String] The amount of time in seconds that the task is allowed to live
555
+ # @return [String] The amount of time in seconds that the Task is allowed to live
549
556
  def timeout
550
557
  @properties['timeout']
551
558
  end
@@ -170,6 +170,7 @@ module Twilio
170
170
  'task_queue_sid' => payload['task_queue_sid'],
171
171
  'wait_duration_until_accepted' => payload['wait_duration_until_accepted'],
172
172
  'wait_duration_until_canceled' => payload['wait_duration_until_canceled'],
173
+ 'wait_duration_in_queue_until_accepted' => payload['wait_duration_in_queue_until_accepted'],
173
174
  'tasks_canceled' => payload['tasks_canceled'].to_i,
174
175
  'tasks_completed' => payload['tasks_completed'].to_i,
175
176
  'tasks_deleted' => payload['tasks_deleted'].to_i,
@@ -283,6 +284,12 @@ module Twilio
283
284
  @properties['wait_duration_until_canceled']
284
285
  end
285
286
 
287
+ ##
288
+ # @return [Hash] The relative wait duration statistics for Tasks accepted while in the TaskQueue
289
+ def wait_duration_in_queue_until_accepted
290
+ @properties['wait_duration_in_queue_until_accepted']
291
+ end
292
+
286
293
  ##
287
294
  # @return [String] The total number of Tasks canceled in the TaskQueue
288
295
  def tasks_canceled
@@ -143,6 +143,8 @@ module Twilio
143
143
  'activity_statistics' => payload['activity_statistics'],
144
144
  'longest_task_waiting_age' => payload['longest_task_waiting_age'].to_i,
145
145
  'longest_task_waiting_sid' => payload['longest_task_waiting_sid'],
146
+ 'longest_relative_task_age_in_queue' => payload['longest_relative_task_age_in_queue'].to_i,
147
+ 'longest_relative_task_sid_in_queue' => payload['longest_relative_task_sid_in_queue'],
146
148
  'task_queue_sid' => payload['task_queue_sid'],
147
149
  'tasks_by_priority' => payload['tasks_by_priority'],
148
150
  'tasks_by_status' => payload['tasks_by_status'],
@@ -197,6 +199,18 @@ module Twilio
197
199
  @properties['longest_task_waiting_sid']
198
200
  end
199
201
 
202
+ ##
203
+ # @return [String] The relative age in the TaskQueue for the longest waiting Task.
204
+ def longest_relative_task_age_in_queue
205
+ @properties['longest_relative_task_age_in_queue']
206
+ end
207
+
208
+ ##
209
+ # @return [String] The SID of the Task waiting in the TaskQueue the longest.
210
+ def longest_relative_task_sid_in_queue
211
+ @properties['longest_relative_task_sid_in_queue']
212
+ end
213
+
200
214
  ##
201
215
  # @return [String] The SID of the TaskQueue from which these statistics were calculated
202
216
  def task_queue_sid
@@ -41,8 +41,10 @@ module Twilio
41
41
  # use in phone calls. Applies only to TTS languages.
42
42
  # @param [Boolean] psd2_enabled Whether to pass PSD2 transaction parameters when
43
43
  # starting a verification.
44
- # @param [Boolean] do_not_share_warning_enabled Whether to add a privacy warning
45
- # at the end of an SMS. **Disabled by default and applies only for SMS.**
44
+ # @param [Boolean] do_not_share_warning_enabled Whether to add a security warning
45
+ # at the end of an SMS verification body. Disabled by default and applies only to
46
+ # SMS. Example SMS body: `Your AppName verification code is: 1234. Don’t share
47
+ # this code with anyone; our employees will never ask for the code`
46
48
  # @return [ServiceInstance] Newly created ServiceInstance
47
49
  def create(friendly_name: nil, code_length: :unset, lookup_enabled: :unset, skip_sms_to_landlines: :unset, dtmf_input_required: :unset, tts_name: :unset, psd2_enabled: :unset, do_not_share_warning_enabled: :unset)
48
50
  data = Twilio::Values.of({
@@ -448,7 +450,7 @@ module Twilio
448
450
  end
449
451
 
450
452
  ##
451
- # @return [Boolean] Whether to add a privacy warning at the end of an SMS.
453
+ # @return [Boolean] Whether to add a security warning at the end of an SMS.
452
454
  def do_not_share_warning_enabled
453
455
  @properties['do_not_share_warning_enabled']
454
456
  end
@@ -52,14 +52,15 @@ module Twilio
52
52
  # @param [String] payee The payee of the associated PSD2 compliant transaction.
53
53
  # Requires the PSD2 Service flag enabled.
54
54
  # @param [Hash] rate_limits The custom key-value pairs of Programmable Rate
55
- # Limits. Keys should be the unique_name configured while creating you Rate Limit
56
- # along with the associated values for each particular request. You may include
57
- # multiple Rate Limit values in each request.
55
+ # Limits. Keys correspond to `unique_name` fields defined when [creating your Rate
56
+ # Limit](https://www.twilio.com/docs/verify/api/service-rate-limits). Associated
57
+ # value pairs represent values in the request that you are rate limiting on. You
58
+ # may include multiple Rate Limit values in each request.
58
59
  # @param [Hash] channel_configuration
59
60
  # [`email`](https://www.twilio.com/docs/verify/email) channel configuration in
60
61
  # json format. Must include 'from' and 'from_name'.
61
62
  # @param [String] app_hash Your [App
62
- # Hash](https://developers.google.com/identity/sms-retriever/verify#computing_your_apps_hash_string) to be included at the end of an SMS. **Only applies for SMS.**
63
+ # Hash](https://developers.google.com/identity/sms-retriever/verify#computing_your_apps_hash_string) to be appended at the end of your verification SMS body. Applies only to SMS. Example SMS body: `<#> Your AppName verification code is: 1234 He42w354ol9`.
63
64
  # @return [VerificationInstance] Newly created VerificationInstance
64
65
  def create(to: nil, channel: nil, custom_message: :unset, send_digits: :unset, locale: :unset, custom_code: :unset, amount: :unset, payee: :unset, rate_limits: :unset, channel_configuration: :unset, app_hash: :unset)
65
66
  data = Twilio::Values.of({
@@ -1,3 +1,3 @@
1
1
  module Twilio
2
- VERSION = '5.31.4'
2
+ VERSION = '5.31.5'
3
3
  end
@@ -61,7 +61,9 @@ describe 'Call' do
61
61
  },
62
62
  "to": "+14158675309",
63
63
  "to_formatted": "(415) 867-5309",
64
- "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
64
+ "trunk_sid": null,
65
+ "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json",
66
+ "queue_time": "1000"
65
67
  }
66
68
  ]
67
69
  ))
@@ -107,7 +109,9 @@ describe 'Call' do
107
109
  },
108
110
  "to": "+14158675309",
109
111
  "to_formatted": "(415) 867-5309",
110
- "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
112
+ "trunk_sid": null,
113
+ "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json",
114
+ "queue_time": "1000"
111
115
  }
112
116
  ]
113
117
  ))
@@ -197,7 +201,9 @@ describe 'Call' do
197
201
  },
198
202
  "to": "+13051913581",
199
203
  "to_formatted": "(305) 191-3581",
200
- "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
204
+ "trunk_sid": "TRdeadbeefdeadbeefdeadbeefdeadbeef",
205
+ "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json",
206
+ "queue_time": "1000"
201
207
  }
202
208
  ]
203
209
  ))
@@ -261,7 +267,9 @@ describe 'Call' do
261
267
  },
262
268
  "to": "+13051913581",
263
269
  "to_formatted": "(305) 191-3581",
264
- "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
270
+ "trunk_sid": "TRdeadbeefdeadbeefdeadbeefdeadbeef",
271
+ "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json",
272
+ "queue_time": "1000"
265
273
  },
266
274
  {
267
275
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
@@ -294,7 +302,9 @@ describe 'Call' do
294
302
  },
295
303
  "to": "+13051913580",
296
304
  "to_formatted": "(305) 191-3580",
297
- "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0.json"
305
+ "trunk_sid": "TRdeadbeefdeadbeefdeadbeefdeadbeef",
306
+ "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0.json",
307
+ "queue_time": "1000"
298
308
  }
299
309
  ],
300
310
  "end": 1,
@@ -352,7 +362,9 @@ describe 'Call' do
352
362
  },
353
363
  "to": "+13051913581",
354
364
  "to_formatted": "(305) 191-3581",
355
- "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
365
+ "trunk_sid": "TRdeadbeefdeadbeefdeadbeefdeadbeef",
366
+ "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json",
367
+ "queue_time": "1000"
356
368
  },
357
369
  {
358
370
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
@@ -385,7 +397,9 @@ describe 'Call' do
385
397
  },
386
398
  "to": "+13051913580",
387
399
  "to_formatted": "(305) 191-3580",
388
- "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0.json"
400
+ "trunk_sid": "TRdeadbeefdeadbeefdeadbeefdeadbeef",
401
+ "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0.json",
402
+ "queue_time": "1000"
389
403
  }
390
404
  ],
391
405
  "end": 3,
@@ -529,7 +543,9 @@ describe 'Call' do
529
543
  },
530
544
  "to": "+14158675309",
531
545
  "to_formatted": "(415) 867-5309",
532
- "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
546
+ "trunk_sid": null,
547
+ "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json",
548
+ "queue_time": "1000"
533
549
  }
534
550
  ]
535
551
  ))
@@ -575,7 +591,9 @@ describe 'Call' do
575
591
  },
576
592
  "to": "+14158675309",
577
593
  "to_formatted": "(415) 867-5309",
578
- "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
594
+ "trunk_sid": null,
595
+ "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json",
596
+ "queue_time": "1000"
579
597
  }
580
598
  ]
581
599
  ))
@@ -621,7 +639,9 @@ describe 'Call' do
621
639
  },
622
640
  "to": "+14158675309",
623
641
  "to_formatted": "(415) 867-5309",
624
- "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
642
+ "trunk_sid": null,
643
+ "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json",
644
+ "queue_time": "1000"
625
645
  }
626
646
  ]
627
647
  ))
@@ -264,6 +264,35 @@ describe 'Participant' do
264
264
  expect(actual).to_not eq(nil)
265
265
  end
266
266
 
267
+ it "receives create_with_friendly_name_byoc responses" do
268
+ @holodeck.mock(Twilio::Response.new(
269
+ 201,
270
+ %q[
271
+ {
272
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
273
+ "call_sid": "CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
274
+ "conference_sid": "CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
275
+ "date_created": "Fri, 18 Feb 2011 21:07:19 +0000",
276
+ "date_updated": "Fri, 18 Feb 2011 21:07:19 +0000",
277
+ "end_conference_on_exit": false,
278
+ "muted": false,
279
+ "hold": false,
280
+ "status": "complete",
281
+ "start_conference_on_enter": true,
282
+ "coaching": false,
283
+ "call_sid_to_coach": null,
284
+ "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences/CFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants/CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
285
+ }
286
+ ]
287
+ ))
288
+
289
+ actual = @client.api.v2010.accounts('ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
290
+ .conferences('CFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
291
+ .participants.create(from: '+15017122661', to: '+15558675310')
292
+
293
+ expect(actual).to_not eq(nil)
294
+ end
295
+
267
296
  it "can delete" do
268
297
  @holodeck.mock(Twilio::Response.new(500, ''))
269
298
 
@@ -43,7 +43,7 @@ describe 'Notification' do
43
43
  "request_method": "get",
44
44
  "request_url": "https://voiceforms4000.appspot.com/twiml/9436/question/0",
45
45
  "request_variables": "AccountSid=ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&CallStatus=in-progress&ToZip=94937&ToCity=INVERNESS&ToState=CA&Called=%2B14156694923&To=%2B14156694923&ToCountry=US&CalledZip=94937&Direction=inbound&ApiVersion=2010-04-01&Caller=%2B17378742833&CalledCity=INVERNESS&CalledCountry=US&CallSid=CAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&CalledState=CA&From=%2B17378742833",
46
- "response_body": "blah blah",
46
+ "response_body": "Response body from your webhook URL as a string.",
47
47
  "response_headers": "Date=Mon%2C+13+Sep+2010+20%3A02%3A00+GMT&Content-Length=466&Connection=close&Content-Type=text%2Fhtml%3B+charset%3DUTF-8&Server=Google+Frontend",
48
48
  "sid": "NOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
49
49
  "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Notifications/NOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
@@ -283,4 +283,49 @@ describe 'Account' do
283
283
 
284
284
  expect(actual).to_not eq(nil)
285
285
  end
286
+
287
+ it "receives update_with_numeric_status responses" do
288
+ @holodeck.mock(Twilio::Response.new(
289
+ 200,
290
+ %q[
291
+ {
292
+ "auth_token": "auth_token",
293
+ "date_created": "Thu, 30 Jul 2015 20:00:00 +0000",
294
+ "date_updated": "Thu, 30 Jul 2015 20:00:00 +0000",
295
+ "friendly_name": "friendly_name",
296
+ "owner_account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
297
+ "sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
298
+ "status": "active",
299
+ "subresource_uris": {
300
+ "available_phone_numbers": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AvailablePhoneNumbers.json",
301
+ "calls": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Calls.json",
302
+ "conferences": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Conferences.json",
303
+ "incoming_phone_numbers": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/IncomingPhoneNumbers.json",
304
+ "notifications": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Notifications.json",
305
+ "outgoing_caller_ids": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/OutgoingCallerIds.json",
306
+ "recordings": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings.json",
307
+ "transcriptions": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Transcriptions.json",
308
+ "addresses": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Addresses.json",
309
+ "signing_keys": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SigningKeys.json",
310
+ "connect_apps": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/ConnectApps.json",
311
+ "sip": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SIP.json",
312
+ "authorized_connect_apps": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/AuthorizedConnectApps.json",
313
+ "usage": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Usage.json",
314
+ "keys": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Keys.json",
315
+ "applications": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Applications.json",
316
+ "short_codes": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SMS/ShortCodes.json",
317
+ "queues": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Queues.json",
318
+ "messages": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Messages.json",
319
+ "balance": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Balance.json"
320
+ },
321
+ "type": "Full",
322
+ "uri": "/2010-04-01/Accounts/ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.json"
323
+ }
324
+ ]
325
+ ))
326
+
327
+ actual = @client.api.v2010.accounts('ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').update()
328
+
329
+ expect(actual).to_not eq(nil)
330
+ end
286
331
  end
@@ -98,6 +98,7 @@ describe 'Configuration' do
98
98
  "chat_service_instance_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
99
99
  "ui_language": "en",
100
100
  "ui_attributes": {},
101
+ "ui_dependencies": {},
101
102
  "ui_version": "1.0",
102
103
  "service_version": "1.0",
103
104
  "call_recording_enabled": true,
@@ -244,6 +245,7 @@ describe 'Configuration' do
244
245
  "chat_service_instance_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
245
246
  "ui_language": "en",
246
247
  "ui_attributes": {},
248
+ "ui_dependencies": {},
247
249
  "ui_version": "1.0",
248
250
  "service_version": "1.0",
249
251
  "call_recording_enabled": true,
@@ -390,6 +392,7 @@ describe 'Configuration' do
390
392
  "chat_service_instance_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
391
393
  "ui_language": "en",
392
394
  "ui_attributes": {},
395
+ "ui_dependencies": {},
393
396
  "ui_version": "1.0",
394
397
  "service_version": "1.0",
395
398
  "call_recording_enabled": true,
@@ -0,0 +1,183 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+ #
7
+ # frozen_string_literal: true
8
+
9
+ require 'spec_helper.rb'
10
+
11
+ describe 'Regulation' do
12
+ it "can read" do
13
+ @holodeck.mock(Twilio::Response.new(500, ''))
14
+
15
+ expect {
16
+ @client.numbers.v2.regulatory_compliance \
17
+ .regulations.list()
18
+ }.to raise_exception(Twilio::REST::TwilioError)
19
+
20
+ values = {}
21
+ expect(
22
+ @holodeck.has_request?(Holodeck::Request.new(
23
+ method: 'get',
24
+ url: 'https://numbers.twilio.com/v2/RegulatoryCompliance/Regulations',
25
+ ))).to eq(true)
26
+ end
27
+
28
+ it "receives read_empty responses" do
29
+ @holodeck.mock(Twilio::Response.new(
30
+ 200,
31
+ %q[
32
+ {
33
+ "results": [],
34
+ "meta": {
35
+ "page": 0,
36
+ "page_size": 50,
37
+ "first_page_url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Regulations?IsoCountry=US&EndUserType=business&NumberType=mobile&PageSize=50&Page=0",
38
+ "previous_page_url": null,
39
+ "url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Regulations?IsoCountry=US&EndUserType=business&NumberType=mobile&PageSize=50&Page=0",
40
+ "next_page_url": null,
41
+ "key": "results"
42
+ }
43
+ }
44
+ ]
45
+ ))
46
+
47
+ actual = @client.numbers.v2.regulatory_compliance \
48
+ .regulations.list()
49
+
50
+ expect(actual).to_not eq(nil)
51
+ end
52
+
53
+ it "receives read_full responses" do
54
+ @holodeck.mock(Twilio::Response.new(
55
+ 200,
56
+ %q[
57
+ {
58
+ "results": [
59
+ {
60
+ "sid": "RNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
61
+ "friendly_name": "Australia: Local - Individual",
62
+ "iso_country": "AU",
63
+ "number_type": "local",
64
+ "end_user_type": "individual",
65
+ "requirements": {
66
+ "end_user": [
67
+ {
68
+ "name": "Individual",
69
+ "type": "individual",
70
+ "url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Regulations/individual",
71
+ "fields": [
72
+ "first_name",
73
+ "last_name"
74
+ ]
75
+ }
76
+ ],
77
+ "supporting_document": [
78
+ [
79
+ {
80
+ "name": "Address",
81
+ "type": "document",
82
+ "description": "The physical location of the individual or business. Must be within locality or region covered by the phone numbers prefix; a PO Box is not acceptable where a local address is required.",
83
+ "accepted_documents": [
84
+ {
85
+ "name": "Address Validation",
86
+ "type": "address",
87
+ "url": "https://numbers.twilio.com/v2/RegulatoryCompliance/DocumentTypes/address",
88
+ "fields": []
89
+ }
90
+ ]
91
+ }
92
+ ]
93
+ ]
94
+ },
95
+ "url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Regulations/RNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
96
+ }
97
+ ],
98
+ "meta": {
99
+ "page": 0,
100
+ "page_size": 50,
101
+ "first_page_url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Regulations?PageSize=50&Page=0",
102
+ "previous_page_url": null,
103
+ "url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Regulations?PageSize=50&Page=0",
104
+ "next_page_url": null,
105
+ "key": "results"
106
+ }
107
+ }
108
+ ]
109
+ ))
110
+
111
+ actual = @client.numbers.v2.regulatory_compliance \
112
+ .regulations.list()
113
+
114
+ expect(actual).to_not eq(nil)
115
+ end
116
+
117
+ it "can fetch" do
118
+ @holodeck.mock(Twilio::Response.new(500, ''))
119
+
120
+ expect {
121
+ @client.numbers.v2.regulatory_compliance \
122
+ .regulations('RNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').fetch()
123
+ }.to raise_exception(Twilio::REST::TwilioError)
124
+
125
+ values = {}
126
+ expect(
127
+ @holodeck.has_request?(Holodeck::Request.new(
128
+ method: 'get',
129
+ url: 'https://numbers.twilio.com/v2/RegulatoryCompliance/Regulations/RNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
130
+ ))).to eq(true)
131
+ end
132
+
133
+ it "receives fetch responses" do
134
+ @holodeck.mock(Twilio::Response.new(
135
+ 200,
136
+ %q[
137
+ {
138
+ "sid": "RNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
139
+ "friendly_name": "Australia: Local - Individual",
140
+ "iso_country": "AU",
141
+ "number_type": "local",
142
+ "end_user_type": "individual",
143
+ "requirements": {
144
+ "end_user": [
145
+ {
146
+ "name": "Individual",
147
+ "type": "individual",
148
+ "url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Regulations/individual",
149
+ "fields": [
150
+ "first_name",
151
+ "last_name"
152
+ ]
153
+ }
154
+ ],
155
+ "supporting_document": [
156
+ [
157
+ {
158
+ "name": "Address",
159
+ "type": "document",
160
+ "description": "The physical location of the individual or business. Must be within locality or region covered by the phone numbers prefix; a PO Box is not acceptable where a local address is required.",
161
+ "accepted_documents": [
162
+ {
163
+ "name": "Address Validation",
164
+ "type": "address",
165
+ "url": "https://numbers.twilio.com/v2/RegulatoryCompliance/DocumentTypes/address",
166
+ "fields": []
167
+ }
168
+ ]
169
+ }
170
+ ]
171
+ ]
172
+ },
173
+ "url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Regulations/RNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
174
+ }
175
+ ]
176
+ ))
177
+
178
+ actual = @client.numbers.v2.regulatory_compliance \
179
+ .regulations('RNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').fetch()
180
+
181
+ expect(actual).to_not eq(nil)
182
+ end
183
+ end