twilio-ruby 5.4.3 → 5.4.4

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 (83) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +12 -0
  3. data/README.md +2 -2
  4. data/lib/twilio-ruby/framework/serialize.rb +9 -0
  5. data/lib/twilio-ruby/http/http_client.rb +1 -1
  6. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +1 -1
  7. data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +8 -2
  8. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +2 -2
  9. data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +1 -1
  10. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +1 -1
  11. data/lib/twilio-ruby/rest/chat/v1/service.rb +1 -1
  12. data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +1 -1
  13. data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +1 -1
  14. data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +1 -1
  15. data/lib/twilio-ruby/rest/chat/v1/service/role.rb +2 -2
  16. data/lib/twilio-ruby/rest/chat/v2/service.rb +1 -1
  17. data/lib/twilio-ruby/rest/chat/v2/service/binding.rb +2 -2
  18. data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +1 -1
  19. data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +1 -1
  20. data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +1 -1
  21. data/lib/twilio-ruby/rest/chat/v2/service/role.rb +2 -2
  22. data/lib/twilio-ruby/rest/chat/v2/service/user/user_binding.rb +1 -1
  23. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +1 -1
  24. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +1 -1
  25. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +1 -1
  26. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +1 -1
  27. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +2 -2
  28. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +1 -1
  29. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +2 -2
  30. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +1 -1
  31. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +1 -1
  32. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +1 -1
  33. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +2 -2
  34. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +1 -1
  35. data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +5 -1
  36. data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +3 -3
  37. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +4 -4
  38. data/lib/twilio-ruby/rest/notify/v1/service/user.rb +5 -2
  39. data/lib/twilio-ruby/rest/notify/v1/service/user/user_binding.rb +2 -2
  40. data/lib/twilio-ruby/rest/preview.rb +10 -3
  41. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +4 -4
  42. data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +2 -2
  43. data/lib/twilio-ruby/rest/preview/proxy/service/session.rb +2 -2
  44. data/lib/twilio-ruby/rest/preview/proxy/service/session/participant/message_interaction.rb +1 -1
  45. data/lib/twilio-ruby/rest/preview/understand.rb +41 -0
  46. data/lib/twilio-ruby/rest/preview/understand/service.rb +503 -0
  47. data/lib/twilio-ruby/rest/preview/understand/service/field_type.rb +399 -0
  48. data/lib/twilio-ruby/rest/preview/understand/service/field_type/field_value.rb +375 -0
  49. data/lib/twilio-ruby/rest/preview/understand/service/intent.rb +421 -0
  50. data/lib/twilio-ruby/rest/preview/understand/service/intent/field.rb +371 -0
  51. data/lib/twilio-ruby/rest/preview/understand/service/intent/sample.rb +407 -0
  52. data/lib/twilio-ruby/rest/preview/understand/service/model_build.rb +358 -0
  53. data/lib/twilio-ruby/rest/preview/understand/service/query.rb +422 -0
  54. data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +1 -1
  55. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +2 -2
  56. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +1 -1
  57. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +1 -1
  58. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +3 -3
  59. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +3 -3
  60. data/lib/twilio-ruby/rest/video/v1/recording.rb +1 -1
  61. data/lib/twilio-ruby/rest/video/v1/room.rb +27 -1
  62. data/lib/twilio-ruby/rest/video/v1/room/room_participant.rb +407 -0
  63. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb +326 -0
  64. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +1 -1
  65. data/lib/twilio-ruby/version.rb +1 -1
  66. data/spec/framework/serialize_spec.rb +21 -0
  67. data/spec/integration/chat/v1/service/role_spec.rb +6 -2
  68. data/spec/integration/chat/v2/service/role_spec.rb +6 -2
  69. data/spec/integration/ip_messaging/v1/service/role_spec.rb +6 -2
  70. data/spec/integration/ip_messaging/v2/service/role_spec.rb +6 -2
  71. data/spec/integration/preview/hosted_numbers/authorization_document_spec.rb +1 -1
  72. data/spec/integration/preview/understand/service/field_type/field_value_spec.rb +205 -0
  73. data/spec/integration/preview/understand/service/field_type_spec.rb +244 -0
  74. data/spec/integration/preview/understand/service/intent/field_spec.rb +205 -0
  75. data/spec/integration/preview/understand/service/intent/sample_spec.rb +247 -0
  76. data/spec/integration/preview/understand/service/intent_spec.rb +252 -0
  77. data/spec/integration/preview/understand/service/model_build_spec.rb +231 -0
  78. data/spec/integration/preview/understand/service/query_spec.rb +300 -0
  79. data/spec/integration/preview/understand/service_spec.rb +256 -0
  80. data/spec/integration/video/v1/room/room_participant/room_participant_published_track_spec.rb +94 -0
  81. data/spec/integration/video/v1/room/room_participant_spec.rb +182 -0
  82. data/spec/integration/video/v1/room_spec.rb +4 -0
  83. metadata +33 -2
@@ -0,0 +1,326 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+
7
+ module Twilio
8
+ module REST
9
+ class Video < Domain
10
+ class V1 < Version
11
+ class RoomContext < InstanceContext
12
+ class RoomParticipantContext < InstanceContext
13
+ class PublishedTrackList < ListResource
14
+ ##
15
+ # Initialize the PublishedTrackList
16
+ # @param [Version] version Version that contains the resource
17
+ # @param [String] room_sid The room_sid
18
+ # @param [String] participant_sid The participant_sid
19
+ # @return [PublishedTrackList] PublishedTrackList
20
+ def initialize(version, room_sid: nil, participant_sid: nil)
21
+ super(version)
22
+
23
+ # Path Solution
24
+ @solution = {room_sid: room_sid, participant_sid: participant_sid}
25
+ @uri = "/Rooms/#{@solution[:room_sid]}/Participants/#{@solution[:participant_sid]}/PublishedTracks"
26
+ end
27
+
28
+ ##
29
+ # Lists PublishedTrackInstance records from the API as a list.
30
+ # Unlike stream(), this operation is eager and will load `limit` records into
31
+ # memory before returning.
32
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
33
+ # guarantees to never return more than limit. Default is no limit
34
+ # @param [Integer] page_size Number of records to fetch per request, when
35
+ # not set will use the default value of 50 records. If no page_size is defined
36
+ # but a limit is defined, stream() will attempt to read the limit with the most
37
+ # efficient page size, i.e. min(limit, 1000)
38
+ # @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
+ end
42
+
43
+ ##
44
+ # Streams PublishedTrackInstance records from the API as an Enumerable.
45
+ # This operation lazily loads records as efficiently as possible until the limit
46
+ # is reached.
47
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
48
+ # guarantees to never return more than limit. Default is no limit.
49
+ # @param [Integer] page_size Number of records to fetch per request, when
50
+ # not set will use the default value of 50 records. If no page_size is defined
51
+ # but a limit is defined, stream() will attempt to read the limit with the most
52
+ # efficient page size, i.e. min(limit, 1000)
53
+ # @return [Enumerable] Enumerable that will yield up to limit results
54
+ def stream(limit: nil, page_size: nil)
55
+ limits = @version.read_limits(limit, page_size)
56
+
57
+ page = self.page(page_size: limits[:page_size],)
58
+
59
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
60
+ end
61
+
62
+ ##
63
+ # When passed a block, yields PublishedTrackInstance records from the API.
64
+ # This operation lazily loads records as efficiently as possible until the limit
65
+ # is reached.
66
+ def each
67
+ limits = @version.read_limits
68
+
69
+ page = self.page(page_size: limits[:page_size],)
70
+
71
+ @version.stream(page,
72
+ limit: limits[:limit],
73
+ page_limit: limits[:page_limit]).each {|x| yield x}
74
+ end
75
+
76
+ ##
77
+ # Retrieve a single page of PublishedTrackInstance records from the API.
78
+ # Request is executed immediately.
79
+ # @param [String] page_token PageToken provided by the API
80
+ # @param [Integer] page_number Page Number, this value is simply for client state
81
+ # @param [Integer] page_size Number of records to return, defaults to 50
82
+ # @return [Page] Page of PublishedTrackInstance
83
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
84
+ params = Twilio::Values.of({
85
+ 'PageToken' => page_token,
86
+ 'Page' => page_number,
87
+ 'PageSize' => page_size,
88
+ })
89
+ response = @version.page(
90
+ 'GET',
91
+ @uri,
92
+ params
93
+ )
94
+ PublishedTrackPage.new(@version, response, @solution)
95
+ end
96
+
97
+ ##
98
+ # Retrieve a single page of PublishedTrackInstance records from the API.
99
+ # Request is executed immediately.
100
+ # @param [String] target_url API-generated URL for the requested results page
101
+ # @return [Page] Page of PublishedTrackInstance
102
+ def get_page(target_url)
103
+ response = @version.domain.request(
104
+ 'GET',
105
+ target_url
106
+ )
107
+ PublishedTrackPage.new(@version, response, @solution)
108
+ end
109
+
110
+ ##
111
+ # Provide a user friendly representation
112
+ def to_s
113
+ '#<Twilio.Video.V1.PublishedTrackList>'
114
+ end
115
+ end
116
+
117
+ class PublishedTrackPage < Page
118
+ ##
119
+ # Initialize the PublishedTrackPage
120
+ # @param [Version] version Version that contains the resource
121
+ # @param [Response] response Response from the API
122
+ # @param [Hash] solution Path solution for the resource
123
+ # @return [PublishedTrackPage] PublishedTrackPage
124
+ def initialize(version, response, solution)
125
+ super(version, response)
126
+
127
+ # Path Solution
128
+ @solution = solution
129
+ end
130
+
131
+ ##
132
+ # Build an instance of PublishedTrackInstance
133
+ # @param [Hash] payload Payload response from the API
134
+ # @return [PublishedTrackInstance] PublishedTrackInstance
135
+ def get_instance(payload)
136
+ PublishedTrackInstance.new(
137
+ @version,
138
+ payload,
139
+ room_sid: @solution[:room_sid],
140
+ participant_sid: @solution[:participant_sid],
141
+ )
142
+ end
143
+
144
+ ##
145
+ # Provide a user friendly representation
146
+ def to_s
147
+ '<Twilio.Video.V1.PublishedTrackPage>'
148
+ end
149
+ end
150
+
151
+ class PublishedTrackContext < InstanceContext
152
+ ##
153
+ # Initialize the PublishedTrackContext
154
+ # @param [Version] version Version that contains the resource
155
+ # @param [String] room_sid The room_sid
156
+ # @param [String] participant_sid The participant_sid
157
+ # @param [String] sid The sid
158
+ # @return [PublishedTrackContext] PublishedTrackContext
159
+ def initialize(version, room_sid, participant_sid, sid)
160
+ super(version)
161
+
162
+ # Path Solution
163
+ @solution = {room_sid: room_sid, participant_sid: participant_sid, sid: sid,}
164
+ @uri = "/Rooms/#{@solution[:room_sid]}/Participants/#{@solution[:participant_sid]}/PublishedTracks/#{@solution[:sid]}"
165
+ end
166
+
167
+ ##
168
+ # Fetch a PublishedTrackInstance
169
+ # @return [PublishedTrackInstance] Fetched PublishedTrackInstance
170
+ def fetch
171
+ params = Twilio::Values.of({})
172
+
173
+ payload = @version.fetch(
174
+ 'GET',
175
+ @uri,
176
+ params,
177
+ )
178
+
179
+ PublishedTrackInstance.new(
180
+ @version,
181
+ payload,
182
+ room_sid: @solution[:room_sid],
183
+ participant_sid: @solution[:participant_sid],
184
+ sid: @solution[:sid],
185
+ )
186
+ end
187
+
188
+ ##
189
+ # Provide a user friendly representation
190
+ def to_s
191
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
192
+ "#<Twilio.Video.V1.PublishedTrackContext #{context}>"
193
+ end
194
+ end
195
+
196
+ class PublishedTrackInstance < InstanceResource
197
+ ##
198
+ # Initialize the PublishedTrackInstance
199
+ # @param [Version] version Version that contains the resource
200
+ # @param [Hash] payload payload that contains response from Twilio
201
+ # @param [String] room_sid The room_sid
202
+ # @param [String] participant_sid The participant_sid
203
+ # @param [String] sid The sid
204
+ # @return [PublishedTrackInstance] PublishedTrackInstance
205
+ def initialize(version, payload, room_sid: nil, participant_sid: nil, sid: nil)
206
+ super(version)
207
+
208
+ # Marshaled Properties
209
+ @properties = {
210
+ 'sid' => payload['sid'],
211
+ 'participant_sid' => payload['participant_sid'],
212
+ 'room_sid' => payload['room_sid'],
213
+ 'name' => payload['name'],
214
+ 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
215
+ 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
216
+ 'enabled' => payload['enabled'],
217
+ 'kind' => payload['kind'],
218
+ 'url' => payload['url'],
219
+ }
220
+
221
+ # Context
222
+ @instance_context = nil
223
+ @params = {
224
+ 'room_sid' => room_sid,
225
+ 'participant_sid' => participant_sid,
226
+ 'sid' => sid || @properties['sid'],
227
+ }
228
+ end
229
+
230
+ ##
231
+ # Generate an instance context for the instance, the context is capable of
232
+ # performing various actions. All instance actions are proxied to the context
233
+ # @return [PublishedTrackContext] PublishedTrackContext for this PublishedTrackInstance
234
+ def context
235
+ unless @instance_context
236
+ @instance_context = PublishedTrackContext.new(
237
+ @version,
238
+ @params['room_sid'],
239
+ @params['participant_sid'],
240
+ @params['sid'],
241
+ )
242
+ end
243
+ @instance_context
244
+ end
245
+
246
+ ##
247
+ # @return [String] The sid
248
+ def sid
249
+ @properties['sid']
250
+ end
251
+
252
+ ##
253
+ # @return [String] The participant_sid
254
+ def participant_sid
255
+ @properties['participant_sid']
256
+ end
257
+
258
+ ##
259
+ # @return [String] The room_sid
260
+ def room_sid
261
+ @properties['room_sid']
262
+ end
263
+
264
+ ##
265
+ # @return [String] The name
266
+ def name
267
+ @properties['name']
268
+ end
269
+
270
+ ##
271
+ # @return [Time] The date_created
272
+ def date_created
273
+ @properties['date_created']
274
+ end
275
+
276
+ ##
277
+ # @return [Time] The date_updated
278
+ def date_updated
279
+ @properties['date_updated']
280
+ end
281
+
282
+ ##
283
+ # @return [Boolean] The enabled
284
+ def enabled
285
+ @properties['enabled']
286
+ end
287
+
288
+ ##
289
+ # @return [published_track.Kind] The kind
290
+ def kind
291
+ @properties['kind']
292
+ end
293
+
294
+ ##
295
+ # @return [String] The url
296
+ def url
297
+ @properties['url']
298
+ end
299
+
300
+ ##
301
+ # Fetch a PublishedTrackInstance
302
+ # @return [PublishedTrackInstance] Fetched PublishedTrackInstance
303
+ def fetch
304
+ context.fetch
305
+ end
306
+
307
+ ##
308
+ # Provide a user friendly representation
309
+ def to_s
310
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
311
+ "<Twilio.Video.V1.PublishedTrackInstance #{values}>"
312
+ end
313
+
314
+ ##
315
+ # Provide a detailed, user friendly representation
316
+ def inspect
317
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
318
+ "<Twilio.Video.V1.PublishedTrackInstance #{values}>"
319
+ end
320
+ end
321
+ end
322
+ end
323
+ end
324
+ end
325
+ end
326
+ end
@@ -131,7 +131,7 @@ module Twilio
131
131
  'MessagingEnabled' => messaging_enabled,
132
132
  'VoiceEnabled' => voice_enabled,
133
133
  'NationalRoamingEnabled' => national_roaming_enabled,
134
- 'InternationalRoaming' => international_roaming,
134
+ 'InternationalRoaming' => Twilio.serialize_list(international_roaming) { |e| e },
135
135
  'NationalRoamingDataLimit' => national_roaming_data_limit,
136
136
  'InternationalRoamingDataLimit' => international_roaming_data_limit,
137
137
  })
@@ -1,3 +1,3 @@
1
1
  module Twilio
2
- VERSION = '5.4.3'
2
+ VERSION = '5.4.4'
3
3
  end
@@ -56,4 +56,25 @@ describe Twilio do
56
56
  expect(actual).to eq(123)
57
57
  end
58
58
  end
59
+
60
+ describe 'serialize_list' do
61
+ it 'should only operate on things with .each method' do
62
+ actual = Twilio.serialize_list(nil)
63
+ expect(actual).to eq(nil)
64
+
65
+ actual = Twilio.serialize_list("something")
66
+ expect(actual).to eq("something")
67
+
68
+ actual = Twilio.serialize_list(1)
69
+ expect(actual).to eq(1)
70
+
71
+ actual = Twilio.serialize_list({ some_obj: 'some_val' })
72
+ expect(actual).to eq({ some_obj: 'some_val' })
73
+ end
74
+
75
+ it 'should apply block to every element in list' do
76
+ actual = Twilio.serialize_list([1, 2, 3, 4]) { |e| e * 2 }
77
+ expect(actual).to eq([2, 4, 6, 8])
78
+ end
79
+ end
59
80
  end
@@ -88,7 +88,11 @@ describe 'Role' do
88
88
  .roles.create(friendly_name: "friendly_name", type: "channel", permission: ['permission'])
89
89
  }.to raise_exception(Twilio::REST::TwilioError)
90
90
 
91
- values = {'FriendlyName' => "friendly_name", 'Type' => "channel", 'Permission' => ['permission'],}
91
+ values = {
92
+ 'FriendlyName' => "friendly_name",
93
+ 'Type' => "channel",
94
+ 'Permission' => Twilio.serialize_list(['permission']) { |e| e },
95
+ }
92
96
  expect(
93
97
  @holodeck.has_request?(Holodeck::Request.new(
94
98
  method: 'post',
@@ -217,7 +221,7 @@ describe 'Role' do
217
221
  .roles("RLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").update(permission: ['permission'])
218
222
  }.to raise_exception(Twilio::REST::TwilioError)
219
223
 
220
- values = {'Permission' => ['permission'],}
224
+ values = {'Permission' => Twilio.serialize_list(['permission']) { |e| e },}
221
225
  expect(
222
226
  @holodeck.has_request?(Holodeck::Request.new(
223
227
  method: 'post',
@@ -88,7 +88,11 @@ describe 'Role' do
88
88
  .roles.create(friendly_name: "friendly_name", type: "channel", permission: ['permission'])
89
89
  }.to raise_exception(Twilio::REST::TwilioError)
90
90
 
91
- values = {'FriendlyName' => "friendly_name", 'Type' => "channel", 'Permission' => ['permission'],}
91
+ values = {
92
+ 'FriendlyName' => "friendly_name",
93
+ 'Type' => "channel",
94
+ 'Permission' => Twilio.serialize_list(['permission']) { |e| e },
95
+ }
92
96
  expect(
93
97
  @holodeck.has_request?(Holodeck::Request.new(
94
98
  method: 'post',
@@ -217,7 +221,7 @@ describe 'Role' do
217
221
  .roles("RLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").update(permission: ['permission'])
218
222
  }.to raise_exception(Twilio::REST::TwilioError)
219
223
 
220
- values = {'Permission' => ['permission'],}
224
+ values = {'Permission' => Twilio.serialize_list(['permission']) { |e| e },}
221
225
  expect(
222
226
  @holodeck.has_request?(Holodeck::Request.new(
223
227
  method: 'post',
@@ -88,7 +88,11 @@ describe 'Role' do
88
88
  .roles.create(friendly_name: "friendly_name", type: "channel", permission: ['permission'])
89
89
  }.to raise_exception(Twilio::REST::TwilioError)
90
90
 
91
- values = {'FriendlyName' => "friendly_name", 'Type' => "channel", 'Permission' => ['permission'],}
91
+ values = {
92
+ 'FriendlyName' => "friendly_name",
93
+ 'Type' => "channel",
94
+ 'Permission' => Twilio.serialize_list(['permission']) { |e| e },
95
+ }
92
96
  expect(
93
97
  @holodeck.has_request?(Holodeck::Request.new(
94
98
  method: 'post',
@@ -217,7 +221,7 @@ describe 'Role' do
217
221
  .roles("RLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").update(permission: ['permission'])
218
222
  }.to raise_exception(Twilio::REST::TwilioError)
219
223
 
220
- values = {'Permission' => ['permission'],}
224
+ values = {'Permission' => Twilio.serialize_list(['permission']) { |e| e },}
221
225
  expect(
222
226
  @holodeck.has_request?(Holodeck::Request.new(
223
227
  method: 'post',
@@ -88,7 +88,11 @@ describe 'Role' do
88
88
  .roles.create(friendly_name: "friendly_name", type: "channel", permission: ['permission'])
89
89
  }.to raise_exception(Twilio::REST::TwilioError)
90
90
 
91
- values = {'FriendlyName' => "friendly_name", 'Type' => "channel", 'Permission' => ['permission'],}
91
+ values = {
92
+ 'FriendlyName' => "friendly_name",
93
+ 'Type' => "channel",
94
+ 'Permission' => Twilio.serialize_list(['permission']) { |e| e },
95
+ }
92
96
  expect(
93
97
  @holodeck.has_request?(Holodeck::Request.new(
94
98
  method: 'post',
@@ -217,7 +221,7 @@ describe 'Role' do
217
221
  .roles("RLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").update(permission: ['permission'])
218
222
  }.to raise_exception(Twilio::REST::TwilioError)
219
223
 
220
- values = {'Permission' => ['permission'],}
224
+ values = {'Permission' => Twilio.serialize_list(['permission']) { |e| e },}
221
225
  expect(
222
226
  @holodeck.has_request?(Holodeck::Request.new(
223
227
  method: 'post',