twilio-ruby 5.33.0 → 5.36.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 (116) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +8 -0
  3. data/.rubocop_todo.yml +5 -26
  4. data/.travis.yml +9 -1
  5. data/CHANGES.md +110 -0
  6. data/README.md +17 -2
  7. data/lib/twilio-ruby.rb +4 -12
  8. data/lib/twilio-ruby/framework/error.rb +3 -3
  9. data/lib/twilio-ruby/jwt/jwt.rb +6 -0
  10. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +90 -90
  11. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +14 -0
  12. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +75 -72
  13. data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +29 -29
  14. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +38 -3
  15. data/lib/twilio-ruby/rest/autopilot.rb +6 -0
  16. data/lib/twilio-ruby/rest/autopilot/v1.rb +7 -0
  17. data/lib/twilio-ruby/rest/autopilot/v1/restore_assistant.rb +198 -0
  18. data/lib/twilio-ruby/rest/client.rb +35 -8
  19. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +19 -3
  20. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +27 -4
  21. data/lib/twilio-ruby/rest/flex_api/v1/channel.rb +2 -1
  22. data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +7 -0
  23. data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +20 -11
  24. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle.rb +26 -0
  25. data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/evaluation.rb +324 -0
  26. data/lib/twilio-ruby/rest/preview/trusted_comms/business.rb +26 -0
  27. data/lib/twilio-ruby/rest/preview/trusted_comms/business/brand.rb +239 -0
  28. data/lib/twilio-ruby/rest/preview/trusted_comms/business/brand/branded_channel.rb +266 -0
  29. data/lib/twilio-ruby/rest/preview/trusted_comms/business/brand/branded_channel/channel.rb +197 -0
  30. data/lib/twilio-ruby/rest/serverless/v1/service/environment/log.rb +7 -0
  31. data/lib/twilio-ruby/rest/studio.rb +2 -2
  32. data/lib/twilio-ruby/rest/studio/v1/flow/execution.rb +26 -0
  33. data/lib/twilio-ruby/rest/studio/v2.rb +3 -3
  34. data/lib/twilio-ruby/rest/studio/v2/flow.rb +7 -0
  35. data/lib/twilio-ruby/rest/studio/v2/flow/execution.rb +71 -24
  36. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_context.rb +12 -11
  37. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step.rb +21 -20
  38. data/lib/twilio-ruby/rest/studio/v2/flow/execution/execution_step/execution_step_context.rb +18 -15
  39. data/lib/twilio-ruby/rest/supersim.rb +18 -0
  40. data/lib/twilio-ruby/rest/supersim/v1.rb +30 -0
  41. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +53 -10
  42. data/lib/twilio-ruby/rest/supersim/v1/network.rb +315 -0
  43. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb +378 -0
  44. data/lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb +352 -0
  45. data/lib/twilio-ruby/rest/verify.rb +9 -0
  46. data/lib/twilio-ruby/rest/verify/v2.rb +16 -0
  47. data/lib/twilio-ruby/rest/verify/v2/form.rb +197 -0
  48. data/lib/twilio-ruby/rest/verify/v2/service.rb +48 -3
  49. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +379 -0
  50. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +500 -0
  51. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor/challenge.rb +494 -0
  52. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +3 -3
  53. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +8 -12
  54. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +8 -12
  55. data/lib/twilio-ruby/rest/voice.rb +36 -0
  56. data/lib/twilio-ruby/rest/voice/v1.rb +64 -0
  57. data/lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb +513 -0
  58. data/lib/twilio-ruby/rest/voice/v1/connection_policy.rb +379 -0
  59. data/lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb +458 -0
  60. data/lib/twilio-ruby/rest/voice/v1/ip_record.rb +366 -0
  61. data/lib/twilio-ruby/rest/voice/v1/source_ip_mapping.rb +346 -0
  62. data/lib/twilio-ruby/twiml/twiml.rb +4 -0
  63. data/lib/twilio-ruby/twiml/voice_response.rb +3 -2
  64. data/lib/twilio-ruby/util/configuration.rb +9 -1
  65. data/lib/twilio-ruby/version.rb +1 -1
  66. data/spec/integration/api/v2010/account/call_spec.rb +5 -5
  67. data/spec/integration/api/v2010/account/conference_spec.rb +42 -14
  68. data/spec/integration/api/v2010/account/sip/domain_spec.rb +12 -4
  69. data/spec/integration/api/v2010/account/token_spec.rb +23 -11
  70. data/spec/integration/autopilot/v1/restore_assistant_spec.rb +53 -0
  71. data/spec/integration/bulkexports/v1/export/day_spec.rb +1 -1
  72. data/spec/integration/conversations/v1/conversation/participant_spec.rb +7 -0
  73. data/spec/integration/conversations/v1/conversation_spec.rb +4 -0
  74. data/spec/integration/flex_api/v1/configuration_spec.rb +3 -0
  75. data/spec/integration/numbers/v2/regulatory_compliance/bundle/evaluation_spec.rb +623 -0
  76. data/spec/integration/numbers/v2/regulatory_compliance/bundle_spec.rb +4 -0
  77. data/spec/integration/preview/bulk_exports/export/day_spec.rb +1 -1
  78. data/spec/integration/preview/trusted_comms/business/brand/branded_channel/channel_spec.rb +54 -0
  79. data/spec/integration/preview/trusted_comms/business/brand/branded_channel_spec.rb +52 -0
  80. data/spec/integration/preview/trusted_comms/business/brand_spec.rb +49 -0
  81. data/spec/integration/preview/trusted_comms/business_spec.rb +1 -0
  82. data/spec/integration/serverless/v1/service/asset/asset_version_spec.rb +1 -1
  83. data/spec/integration/serverless/v1/service/build_spec.rb +4 -4
  84. data/spec/integration/serverless/v1/service/environment/log_spec.rb +1 -0
  85. data/spec/integration/serverless/v1/service/function/function_version_spec.rb +1 -1
  86. data/spec/integration/studio/v1/flow/execution_spec.rb +46 -0
  87. data/spec/integration/studio/v2/flow/execution_spec.rb +45 -0
  88. data/spec/integration/studio/v2/flow_spec.rb +4 -0
  89. data/spec/integration/studio/v2/flow_validate_spec.rb +2 -2
  90. data/spec/integration/supersim/v1/fleet_spec.rb +12 -4
  91. data/spec/integration/supersim/v1/network_access_profile/network_access_profile_network_spec.rb +179 -0
  92. data/spec/integration/supersim/v1/network_access_profile_spec.rb +223 -0
  93. data/spec/integration/supersim/v1/network_spec.rb +139 -0
  94. data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +13 -13
  95. data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +23 -23
  96. data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +28 -28
  97. data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +17 -17
  98. data/spec/integration/trunking/v1/trunk_spec.rb +33 -33
  99. data/spec/integration/verify/v2/form_spec.rb +48 -0
  100. data/spec/integration/verify/v2/service/entity/factor/challenge_spec.rb +353 -0
  101. data/spec/integration/verify/v2/service/entity/factor_spec.rb +298 -0
  102. data/spec/integration/verify/v2/service/entity_spec.rb +201 -0
  103. data/spec/integration/verify/v2/service_spec.rb +28 -4
  104. data/spec/integration/video/v1/composition_settings_spec.rb +2 -2
  105. data/spec/integration/video/v1/recording_settings_spec.rb +2 -2
  106. data/spec/integration/video/v1/recording_spec.rb +2 -2
  107. data/spec/integration/video/v1/room/recording_spec.rb +2 -2
  108. data/spec/integration/voice/v1/byoc_trunk_spec.rb +250 -0
  109. data/spec/integration/voice/v1/connection_policy/connection_policy_target_spec.rb +246 -0
  110. data/spec/integration/voice/v1/connection_policy_spec.rb +226 -0
  111. data/spec/integration/voice/v1/ip_record_spec.rb +223 -0
  112. data/spec/integration/voice/v1/source_ip_mapping_spec.rb +219 -0
  113. data/spec/rest/client_spec.rb +173 -23
  114. data/spec/util/configuration_spec.rb +12 -0
  115. data/twilio-ruby.gemspec +4 -4
  116. metadata +67 -10
@@ -37,6 +37,7 @@ describe 'Conversation' do
37
37
  "attributes": "{ \\"topic\\": \\"feedback\\" }",
38
38
  "date_created": "2015-12-16T22:18:37Z",
39
39
  "date_updated": "2015-12-16T22:18:38Z",
40
+ "state": "inactive",
40
41
  "url": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
41
42
  "links": {
42
43
  "participants": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants",
@@ -80,6 +81,7 @@ describe 'Conversation' do
80
81
  "attributes": "{ \\"topic\\": \\"feedback\\" }",
81
82
  "date_created": "2015-12-16T22:18:37Z",
82
83
  "date_updated": "2015-12-16T22:18:38Z",
84
+ "state": "inactive",
83
85
  "url": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
84
86
  "links": {
85
87
  "participants": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants",
@@ -149,6 +151,7 @@ describe 'Conversation' do
149
151
  "attributes": "{ \\"topic\\": \\"feedback\\" }",
150
152
  "date_created": "2015-12-16T22:18:37Z",
151
153
  "date_updated": "2015-12-16T22:18:38Z",
154
+ "state": "active",
152
155
  "url": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
153
156
  "links": {
154
157
  "participants": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants",
@@ -194,6 +197,7 @@ describe 'Conversation' do
194
197
  "attributes": "{ \\"topic\\": \\"feedback\\" }",
195
198
  "date_created": "2015-12-16T22:18:37Z",
196
199
  "date_updated": "2015-12-16T22:18:38Z",
200
+ "state": "active",
197
201
  "url": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
198
202
  "links": {
199
203
  "participants": "https://conversations.twilio.com/v1/Conversations/CHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants",
@@ -96,6 +96,7 @@ describe 'Configuration' do
96
96
  "runtime_domain": "https://flex.twilio.com",
97
97
  "messaging_service_instance_sid": "MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
98
98
  "chat_service_instance_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
99
+ "flex_service_instance_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
99
100
  "ui_language": "en",
100
101
  "ui_attributes": {},
101
102
  "ui_dependencies": {},
@@ -293,6 +294,7 @@ describe 'Configuration' do
293
294
  "runtime_domain": "https://flex.twilio.com",
294
295
  "messaging_service_instance_sid": "MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
295
296
  "chat_service_instance_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
297
+ "flex_service_instance_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
296
298
  "ui_language": "en",
297
299
  "ui_attributes": {},
298
300
  "ui_dependencies": {},
@@ -490,6 +492,7 @@ describe 'Configuration' do
490
492
  "runtime_domain": "https://flex.twilio.com",
491
493
  "messaging_service_instance_sid": "MGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
492
494
  "chat_service_instance_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
495
+ "flex_service_instance_sid": "ISaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
493
496
  "ui_language": "en",
494
497
  "ui_attributes": {},
495
498
  "ui_dependencies": {},
@@ -0,0 +1,623 @@
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 'Evaluation' do
12
+ it "can create" do
13
+ @holodeck.mock(Twilio::Response.new(500, ''))
14
+
15
+ expect {
16
+ @client.numbers.v2.regulatory_compliance \
17
+ .bundles('BUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
18
+ .evaluations.create()
19
+ }.to raise_exception(Twilio::REST::TwilioError)
20
+
21
+ values = {}
22
+ expect(
23
+ @holodeck.has_request?(Holodeck::Request.new(
24
+ method: 'post',
25
+ url: 'https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Evaluations',
26
+ ))).to eq(true)
27
+ end
28
+
29
+ it "receives create responses" do
30
+ @holodeck.mock(Twilio::Response.new(
31
+ 201,
32
+ %q[
33
+ {
34
+ "sid": "ELaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
35
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
36
+ "regulation_sid": "RNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
37
+ "bundle_sid": "BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
38
+ "status": "noncompliant",
39
+ "date_created": "2020-04-28T18:14:01Z",
40
+ "url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Evaluations/ELaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
41
+ "results": [
42
+ {
43
+ "friendly_name": "Business",
44
+ "object_type": "business",
45
+ "passed": false,
46
+ "failure_reason": "A Business End-User is missing. Please add one to the regulatory bundle.",
47
+ "error_code": 22214,
48
+ "valid": [],
49
+ "invalid": [
50
+ {
51
+ "friendly_name": "Business Name",
52
+ "object_field": "business_name",
53
+ "failure_reason": "The Business Name is missing. Please enter in a Business Name on the Business information.",
54
+ "error_code": 22215
55
+ },
56
+ {
57
+ "friendly_name": "Business Registration Number",
58
+ "object_field": "business_registration_number",
59
+ "failure_reason": "The Business Registration Number is missing. Please enter in a Business Registration Number on the Business information.",
60
+ "error_code": 22215
61
+ },
62
+ {
63
+ "friendly_name": "First Name",
64
+ "object_field": "first_name",
65
+ "failure_reason": "The First Name is missing. Please enter in a First Name on the Business information.",
66
+ "error_code": 22215
67
+ },
68
+ {
69
+ "friendly_name": "Last Name",
70
+ "object_field": "last_name",
71
+ "failure_reason": "The Last Name is missing. Please enter in a Last Name on the Business information.",
72
+ "error_code": 22215
73
+ }
74
+ ],
75
+ "requirement_friendly_name": "Business",
76
+ "requirement_name": "business_info"
77
+ },
78
+ {
79
+ "friendly_name": "Excerpt from the commercial register (Extrait K-bis) showing name of Authorized Representative",
80
+ "object_type": "commercial_registrar_excerpt",
81
+ "passed": false,
82
+ "failure_reason": "An Excerpt from the commercial register (Extrait K-bis) showing name of Authorized Representative is missing. Please add one to the regulatory bundle.",
83
+ "error_code": 22216,
84
+ "valid": [],
85
+ "invalid": [
86
+ {
87
+ "friendly_name": "Business Name",
88
+ "object_field": "business_name",
89
+ "failure_reason": "The Business Name is missing. Or, it does not match the Business Name you entered within Business information. Please enter in the Business Name shown on the Excerpt from the commercial register (Extrait K-bis) showing name of Authorized Representative or make sure both Business Name fields use the same exact inputs.",
90
+ "error_code": 22217
91
+ }
92
+ ],
93
+ "requirement_friendly_name": "Business Name",
94
+ "requirement_name": "business_name_info"
95
+ },
96
+ {
97
+ "friendly_name": "Excerpt from the commercial register showing French address",
98
+ "object_type": "commercial_registrar_excerpt",
99
+ "passed": false,
100
+ "failure_reason": "An Excerpt from the commercial register showing French address is missing. Please add one to the regulatory bundle.",
101
+ "error_code": 22216,
102
+ "valid": [],
103
+ "invalid": [
104
+ {
105
+ "friendly_name": "Address sid(s)",
106
+ "object_field": "address_sids",
107
+ "failure_reason": "The Address is missing. Please enter in the address shown on the Excerpt from the commercial register showing French address.",
108
+ "error_code": 22219
109
+ }
110
+ ],
111
+ "requirement_friendly_name": "Business Address (Proof of Address)",
112
+ "requirement_name": "business_address_proof_info"
113
+ },
114
+ {
115
+ "friendly_name": "Excerpt from the commercial register (Extrait K-bis)",
116
+ "object_type": "commercial_registrar_excerpt",
117
+ "passed": false,
118
+ "failure_reason": "An Excerpt from the commercial register (Extrait K-bis) is missing. Please add one to the regulatory bundle.",
119
+ "error_code": 22216,
120
+ "valid": [],
121
+ "invalid": [
122
+ {
123
+ "friendly_name": "Document Number",
124
+ "object_field": "document_number",
125
+ "failure_reason": "The Document Number is missing. Please enter in the Document Number shown on the Excerpt from the commercial register (Extrait K-bis).",
126
+ "error_code": 22217
127
+ }
128
+ ],
129
+ "requirement_friendly_name": "Business Registration Number",
130
+ "requirement_name": "business_reg_no_info"
131
+ },
132
+ {
133
+ "friendly_name": "Government-issued ID",
134
+ "object_type": "government_issued_document",
135
+ "passed": false,
136
+ "failure_reason": "A Government-issued ID is missing. Please add one to the regulatory bundle.",
137
+ "error_code": 22216,
138
+ "valid": [],
139
+ "invalid": [
140
+ {
141
+ "friendly_name": "First Name",
142
+ "object_field": "first_name",
143
+ "failure_reason": "The First Name is missing. Or, it does not match the First Name you entered within Business information. Please enter in the First Name shown on the Government-issued ID or make sure both First Name fields use the same exact inputs.",
144
+ "error_code": 22217
145
+ },
146
+ {
147
+ "friendly_name": "Last Name",
148
+ "object_field": "last_name",
149
+ "failure_reason": "The Last Name is missing. Or, it does not match the Last Name you entered within Business information. Please enter in the Last Name shown on the Government-issued ID or make sure both Last Name fields use the same exact inputs.",
150
+ "error_code": 22217
151
+ }
152
+ ],
153
+ "requirement_friendly_name": "Name of Authorized Representative",
154
+ "requirement_name": "name_of_auth_rep_info"
155
+ },
156
+ {
157
+ "friendly_name": "Executed Copy of Power of Attorney",
158
+ "object_type": "power_of_attorney",
159
+ "passed": false,
160
+ "failure_reason": "An Executed Copy of Power of Attorney is missing. Please add one to the regulatory bundle.",
161
+ "error_code": 22216,
162
+ "valid": [],
163
+ "invalid": [],
164
+ "requirement_friendly_name": "Power of Attorney",
165
+ "requirement_name": "power_of_attorney_info"
166
+ },
167
+ {
168
+ "friendly_name": "Government-issued ID",
169
+ "object_type": "government_issued_document",
170
+ "passed": false,
171
+ "failure_reason": "A Government-issued ID is missing. Please add one to the regulatory bundle.",
172
+ "error_code": 22216,
173
+ "valid": [],
174
+ "invalid": [
175
+ {
176
+ "friendly_name": "First Name",
177
+ "object_field": "first_name",
178
+ "failure_reason": "The First Name is missing on the Governnment-Issued ID.",
179
+ "error_code": 22217
180
+ },
181
+ {
182
+ "friendly_name": "Last Name",
183
+ "object_field": "last_name",
184
+ "failure_reason": "The Last Name is missing on the Government-issued ID",
185
+ "error_code": 22217
186
+ }
187
+ ],
188
+ "requirement_friendly_name": "Name of Person granted the Power of Attorney",
189
+ "requirement_name": "name_in_power_of_attorney_info"
190
+ }
191
+ ]
192
+ }
193
+ ]
194
+ ))
195
+
196
+ actual = @client.numbers.v2.regulatory_compliance \
197
+ .bundles('BUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
198
+ .evaluations.create()
199
+
200
+ expect(actual).to_not eq(nil)
201
+ end
202
+
203
+ it "can read" do
204
+ @holodeck.mock(Twilio::Response.new(500, ''))
205
+
206
+ expect {
207
+ @client.numbers.v2.regulatory_compliance \
208
+ .bundles('BUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
209
+ .evaluations.list()
210
+ }.to raise_exception(Twilio::REST::TwilioError)
211
+
212
+ values = {}
213
+ expect(
214
+ @holodeck.has_request?(Holodeck::Request.new(
215
+ method: 'get',
216
+ url: 'https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Evaluations',
217
+ ))).to eq(true)
218
+ end
219
+
220
+ it "receives read_empty responses" do
221
+ @holodeck.mock(Twilio::Response.new(
222
+ 200,
223
+ %q[
224
+ {
225
+ "results": [],
226
+ "meta": {
227
+ "page": 0,
228
+ "page_size": 50,
229
+ "first_page_url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Evaluations?PageSize=50&Page=0",
230
+ "previous_page_url": null,
231
+ "url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Evaluations?PageSize=50&Page=0",
232
+ "next_page_url": null,
233
+ "key": "results"
234
+ }
235
+ }
236
+ ]
237
+ ))
238
+
239
+ actual = @client.numbers.v2.regulatory_compliance \
240
+ .bundles('BUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
241
+ .evaluations.list()
242
+
243
+ expect(actual).to_not eq(nil)
244
+ end
245
+
246
+ it "receives read_full responses" do
247
+ @holodeck.mock(Twilio::Response.new(
248
+ 200,
249
+ %q[
250
+ {
251
+ "results": [
252
+ {
253
+ "sid": "ELaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
254
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
255
+ "regulation_sid": "RNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
256
+ "bundle_sid": "BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
257
+ "status": "noncompliant",
258
+ "date_created": "2020-04-28T18:14:01Z",
259
+ "url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Evaluations/ELaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
260
+ "results": [
261
+ {
262
+ "friendly_name": "Business",
263
+ "object_type": "business",
264
+ "passed": false,
265
+ "failure_reason": "A Business End-User is missing. Please add one to the regulatory bundle.",
266
+ "error_code": 22214,
267
+ "valid": [],
268
+ "invalid": [
269
+ {
270
+ "friendly_name": "Business Name",
271
+ "object_field": "business_name",
272
+ "failure_reason": "The Business Name is missing. Please enter in a Business Name on the Business information.",
273
+ "error_code": 22215
274
+ },
275
+ {
276
+ "friendly_name": "Business Registration Number",
277
+ "object_field": "business_registration_number",
278
+ "failure_reason": "The Business Registration Number is missing. Please enter in a Business Registration Number on the Business information.",
279
+ "error_code": 22215
280
+ },
281
+ {
282
+ "friendly_name": "First Name",
283
+ "object_field": "first_name",
284
+ "failure_reason": "The First Name is missing. Please enter in a First Name on the Business information.",
285
+ "error_code": 22215
286
+ },
287
+ {
288
+ "friendly_name": "Last Name",
289
+ "object_field": "last_name",
290
+ "failure_reason": "The Last Name is missing. Please enter in a Last Name on the Business information.",
291
+ "error_code": 22215
292
+ }
293
+ ],
294
+ "requirement_friendly_name": "Business",
295
+ "requirement_name": "business_info"
296
+ },
297
+ {
298
+ "friendly_name": "Excerpt from the commercial register (Extrait K-bis) showing name of Authorized Representative",
299
+ "object_type": "commercial_registrar_excerpt",
300
+ "passed": false,
301
+ "failure_reason": "An Excerpt from the commercial register (Extrait K-bis) showing name of Authorized Representative is missing. Please add one to the regulatory bundle.",
302
+ "error_code": 22216,
303
+ "valid": [],
304
+ "invalid": [
305
+ {
306
+ "friendly_name": "Business Name",
307
+ "object_field": "business_name",
308
+ "failure_reason": "The Business Name is missing. Or, it does not match the Business Name you entered within Business information. Please enter in the Business Name shown on the Excerpt from the commercial register (Extrait K-bis) showing name of Authorized Representative or make sure both Business Name fields use the same exact inputs.",
309
+ "error_code": 22217
310
+ }
311
+ ],
312
+ "requirement_friendly_name": "Business Name",
313
+ "requirement_name": "business_name_info"
314
+ },
315
+ {
316
+ "friendly_name": "Excerpt from the commercial register showing French address",
317
+ "object_type": "commercial_registrar_excerpt",
318
+ "passed": false,
319
+ "failure_reason": "An Excerpt from the commercial register showing French address is missing. Please add one to the regulatory bundle.",
320
+ "error_code": 22216,
321
+ "valid": [],
322
+ "invalid": [
323
+ {
324
+ "friendly_name": "Address sid(s)",
325
+ "object_field": "address_sids",
326
+ "failure_reason": "The Address is missing. Please enter in the address shown on the Excerpt from the commercial register showing French address.",
327
+ "error_code": 22219
328
+ }
329
+ ],
330
+ "requirement_friendly_name": "Business Address (Proof of Address)",
331
+ "requirement_name": "business_address_proof_info"
332
+ },
333
+ {
334
+ "friendly_name": "Excerpt from the commercial register (Extrait K-bis)",
335
+ "object_type": "commercial_registrar_excerpt",
336
+ "passed": false,
337
+ "failure_reason": "An Excerpt from the commercial register (Extrait K-bis) is missing. Please add one to the regulatory bundle.",
338
+ "error_code": 22216,
339
+ "valid": [],
340
+ "invalid": [
341
+ {
342
+ "friendly_name": "Document Number",
343
+ "object_field": "document_number",
344
+ "failure_reason": "The Document Number is missing. Please enter in the Document Number shown on the Excerpt from the commercial register (Extrait K-bis).",
345
+ "error_code": 22217
346
+ }
347
+ ],
348
+ "requirement_friendly_name": "Business Registration Number",
349
+ "requirement_name": "business_reg_no_info"
350
+ },
351
+ {
352
+ "friendly_name": "Government-issued ID",
353
+ "object_type": "government_issued_document",
354
+ "passed": false,
355
+ "failure_reason": "A Government-issued ID is missing. Please add one to the regulatory bundle.",
356
+ "error_code": 22216,
357
+ "valid": [],
358
+ "invalid": [
359
+ {
360
+ "friendly_name": "First Name",
361
+ "object_field": "first_name",
362
+ "failure_reason": "The First Name is missing. Or, it does not match the First Name you entered within Business information. Please enter in the First Name shown on the Government-issued ID or make sure both First Name fields use the same exact inputs.",
363
+ "error_code": 22217
364
+ },
365
+ {
366
+ "friendly_name": "Last Name",
367
+ "object_field": "last_name",
368
+ "failure_reason": "The Last Name is missing. Or, it does not match the Last Name you entered within Business information. Please enter in the Last Name shown on the Government-issued ID or make sure both Last Name fields use the same exact inputs.",
369
+ "error_code": 22217
370
+ }
371
+ ],
372
+ "requirement_friendly_name": "Name of Authorized Representative",
373
+ "requirement_name": "name_of_auth_rep_info"
374
+ },
375
+ {
376
+ "friendly_name": "Executed Copy of Power of Attorney",
377
+ "object_type": "power_of_attorney",
378
+ "passed": false,
379
+ "failure_reason": "An Executed Copy of Power of Attorney is missing. Please add one to the regulatory bundle.",
380
+ "error_code": 22216,
381
+ "valid": [],
382
+ "invalid": [],
383
+ "requirement_friendly_name": "Power of Attorney",
384
+ "requirement_name": "power_of_attorney_info"
385
+ },
386
+ {
387
+ "friendly_name": "Government-issued ID",
388
+ "object_type": "government_issued_document",
389
+ "passed": false,
390
+ "failure_reason": "A Government-issued ID is missing. Please add one to the regulatory bundle.",
391
+ "error_code": 22216,
392
+ "valid": [],
393
+ "invalid": [
394
+ {
395
+ "friendly_name": "First Name",
396
+ "object_field": "first_name",
397
+ "failure_reason": "The First Name is missing on the Governnment-Issued ID.",
398
+ "error_code": 22217
399
+ },
400
+ {
401
+ "friendly_name": "Last Name",
402
+ "object_field": "last_name",
403
+ "failure_reason": "The Last Name is missing on the Government-issued ID",
404
+ "error_code": 22217
405
+ }
406
+ ],
407
+ "requirement_friendly_name": "Name of Person granted the Power of Attorney",
408
+ "requirement_name": "name_in_power_of_attorney_info"
409
+ }
410
+ ]
411
+ }
412
+ ],
413
+ "meta": {
414
+ "page": 0,
415
+ "page_size": 50,
416
+ "first_page_url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Evaluations?PageSize=50&Page=0",
417
+ "previous_page_url": null,
418
+ "url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Evaluations?PageSize=50&Page=0",
419
+ "next_page_url": null,
420
+ "key": "results"
421
+ }
422
+ }
423
+ ]
424
+ ))
425
+
426
+ actual = @client.numbers.v2.regulatory_compliance \
427
+ .bundles('BUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
428
+ .evaluations.list()
429
+
430
+ expect(actual).to_not eq(nil)
431
+ end
432
+
433
+ it "can fetch" do
434
+ @holodeck.mock(Twilio::Response.new(500, ''))
435
+
436
+ expect {
437
+ @client.numbers.v2.regulatory_compliance \
438
+ .bundles('BUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
439
+ .evaluations('ELXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').fetch()
440
+ }.to raise_exception(Twilio::REST::TwilioError)
441
+
442
+ values = {}
443
+ expect(
444
+ @holodeck.has_request?(Holodeck::Request.new(
445
+ method: 'get',
446
+ url: 'https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Evaluations/ELXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
447
+ ))).to eq(true)
448
+ end
449
+
450
+ it "receives fetch responses" do
451
+ @holodeck.mock(Twilio::Response.new(
452
+ 200,
453
+ %q[
454
+ {
455
+ "sid": "ELaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
456
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
457
+ "regulation_sid": "RNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
458
+ "bundle_sid": "BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
459
+ "status": "noncompliant",
460
+ "date_created": "2020-04-28T18:14:01Z",
461
+ "url": "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Evaluations/ELaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
462
+ "results": [
463
+ {
464
+ "friendly_name": "Business",
465
+ "object_type": "business",
466
+ "passed": false,
467
+ "failure_reason": "A Business End-User is missing. Please add one to the regulatory bundle.",
468
+ "error_code": 22214,
469
+ "valid": [],
470
+ "invalid": [
471
+ {
472
+ "friendly_name": "Business Name",
473
+ "object_field": "business_name",
474
+ "failure_reason": "The Business Name is missing. Please enter in a Business Name on the Business information.",
475
+ "error_code": 22215
476
+ },
477
+ {
478
+ "friendly_name": "Business Registration Number",
479
+ "object_field": "business_registration_number",
480
+ "failure_reason": "The Business Registration Number is missing. Please enter in a Business Registration Number on the Business information.",
481
+ "error_code": 22215
482
+ },
483
+ {
484
+ "friendly_name": "First Name",
485
+ "object_field": "first_name",
486
+ "failure_reason": "The First Name is missing. Please enter in a First Name on the Business information.",
487
+ "error_code": 22215
488
+ },
489
+ {
490
+ "friendly_name": "Last Name",
491
+ "object_field": "last_name",
492
+ "failure_reason": "The Last Name is missing. Please enter in a Last Name on the Business information.",
493
+ "error_code": 22215
494
+ }
495
+ ],
496
+ "requirement_friendly_name": "Business",
497
+ "requirement_name": "business_info"
498
+ },
499
+ {
500
+ "friendly_name": "Excerpt from the commercial register (Extrait K-bis) showing name of Authorized Representative",
501
+ "object_type": "commercial_registrar_excerpt",
502
+ "passed": false,
503
+ "failure_reason": "An Excerpt from the commercial register (Extrait K-bis) showing name of Authorized Representative is missing. Please add one to the regulatory bundle.",
504
+ "error_code": 22216,
505
+ "valid": [],
506
+ "invalid": [
507
+ {
508
+ "friendly_name": "Business Name",
509
+ "object_field": "business_name",
510
+ "failure_reason": "The Business Name is missing. Or, it does not match the Business Name you entered within Business information. Please enter in the Business Name shown on the Excerpt from the commercial register (Extrait K-bis) showing name of Authorized Representative or make sure both Business Name fields use the same exact inputs.",
511
+ "error_code": 22217
512
+ }
513
+ ],
514
+ "requirement_friendly_name": "Business Name",
515
+ "requirement_name": "business_name_info"
516
+ },
517
+ {
518
+ "friendly_name": "Excerpt from the commercial register showing French address",
519
+ "object_type": "commercial_registrar_excerpt",
520
+ "passed": false,
521
+ "failure_reason": "An Excerpt from the commercial register showing French address is missing. Please add one to the regulatory bundle.",
522
+ "error_code": 22216,
523
+ "valid": [],
524
+ "invalid": [
525
+ {
526
+ "friendly_name": "Address sid(s)",
527
+ "object_field": "address_sids",
528
+ "failure_reason": "The Address is missing. Please enter in the address shown on the Excerpt from the commercial register showing French address.",
529
+ "error_code": 22219
530
+ }
531
+ ],
532
+ "requirement_friendly_name": "Business Address (Proof of Address)",
533
+ "requirement_name": "business_address_proof_info"
534
+ },
535
+ {
536
+ "friendly_name": "Excerpt from the commercial register (Extrait K-bis)",
537
+ "object_type": "commercial_registrar_excerpt",
538
+ "passed": false,
539
+ "failure_reason": "An Excerpt from the commercial register (Extrait K-bis) is missing. Please add one to the regulatory bundle.",
540
+ "error_code": 22216,
541
+ "valid": [],
542
+ "invalid": [
543
+ {
544
+ "friendly_name": "Document Number",
545
+ "object_field": "document_number",
546
+ "failure_reason": "The Document Number is missing. Please enter in the Document Number shown on the Excerpt from the commercial register (Extrait K-bis).",
547
+ "error_code": 22217
548
+ }
549
+ ],
550
+ "requirement_friendly_name": "Business Registration Number",
551
+ "requirement_name": "business_reg_no_info"
552
+ },
553
+ {
554
+ "friendly_name": "Government-issued ID",
555
+ "object_type": "government_issued_document",
556
+ "passed": false,
557
+ "failure_reason": "A Government-issued ID is missing. Please add one to the regulatory bundle.",
558
+ "error_code": 22216,
559
+ "valid": [],
560
+ "invalid": [
561
+ {
562
+ "friendly_name": "First Name",
563
+ "object_field": "first_name",
564
+ "failure_reason": "The First Name is missing. Or, it does not match the First Name you entered within Business information. Please enter in the First Name shown on the Government-issued ID or make sure both First Name fields use the same exact inputs.",
565
+ "error_code": 22217
566
+ },
567
+ {
568
+ "friendly_name": "Last Name",
569
+ "object_field": "last_name",
570
+ "failure_reason": "The Last Name is missing. Or, it does not match the Last Name you entered within Business information. Please enter in the Last Name shown on the Government-issued ID or make sure both Last Name fields use the same exact inputs.",
571
+ "error_code": 22217
572
+ }
573
+ ],
574
+ "requirement_friendly_name": "Name of Authorized Representative",
575
+ "requirement_name": "name_of_auth_rep_info"
576
+ },
577
+ {
578
+ "friendly_name": "Executed Copy of Power of Attorney",
579
+ "object_type": "power_of_attorney",
580
+ "passed": false,
581
+ "failure_reason": "An Executed Copy of Power of Attorney is missing. Please add one to the regulatory bundle.",
582
+ "error_code": 22216,
583
+ "valid": [],
584
+ "invalid": [],
585
+ "requirement_friendly_name": "Power of Attorney",
586
+ "requirement_name": "power_of_attorney_info"
587
+ },
588
+ {
589
+ "friendly_name": "Government-issued ID",
590
+ "object_type": "government_issued_document",
591
+ "passed": false,
592
+ "failure_reason": "A Government-issued ID is missing. Please add one to the regulatory bundle.",
593
+ "error_code": 22216,
594
+ "valid": [],
595
+ "invalid": [
596
+ {
597
+ "friendly_name": "First Name",
598
+ "object_field": "first_name",
599
+ "failure_reason": "The First Name is missing on the Governnment-Issued ID.",
600
+ "error_code": 22217
601
+ },
602
+ {
603
+ "friendly_name": "Last Name",
604
+ "object_field": "last_name",
605
+ "failure_reason": "The Last Name is missing on the Government-issued ID",
606
+ "error_code": 22217
607
+ }
608
+ ],
609
+ "requirement_friendly_name": "Name of Person granted the Power of Attorney",
610
+ "requirement_name": "name_in_power_of_attorney_info"
611
+ }
612
+ ]
613
+ }
614
+ ]
615
+ ))
616
+
617
+ actual = @client.numbers.v2.regulatory_compliance \
618
+ .bundles('BUXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
619
+ .evaluations('ELXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').fetch()
620
+
621
+ expect(actual).to_not eq(nil)
622
+ end
623
+ end