twilio-ruby 5.31.4 → 5.31.5

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,444 +0,0 @@
1
- ##
2
- # This code was generated by
3
- # \ / _ _ _| _ _
4
- # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
- # / /
6
- #
7
- # frozen_string_literal: true
8
-
9
- module Twilio
10
- module REST
11
- class Messaging < Domain
12
- class V1 < Version
13
- class SessionContext < InstanceContext
14
- ##
15
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
16
- class WebhookList < ListResource
17
- ##
18
- # Initialize the WebhookList
19
- # @param [Version] version Version that contains the resource
20
- # @param [String] session_sid The SID of the Session for the webhook.
21
- # @return [WebhookList] WebhookList
22
- def initialize(version, session_sid: nil)
23
- super(version)
24
-
25
- # Path Solution
26
- @solution = {session_sid: session_sid}
27
- @uri = "/Sessions/#{@solution[:session_sid]}/Webhooks"
28
- end
29
-
30
- ##
31
- # Lists WebhookInstance records from the API as a list.
32
- # Unlike stream(), this operation is eager and will load `limit` records into
33
- # memory before returning.
34
- # @param [Integer] limit Upper limit for the number of records to return. stream()
35
- # guarantees to never return more than limit. Default is no limit
36
- # @param [Integer] page_size Number of records to fetch per request, when
37
- # not set will use the default value of 50 records. If no page_size is defined
38
- # but a limit is defined, stream() will attempt to read the limit with the most
39
- # efficient page size, i.e. min(limit, 1000)
40
- # @return [Array] Array of up to limit results
41
- def list(limit: nil, page_size: nil)
42
- self.stream(limit: limit, page_size: page_size).entries
43
- end
44
-
45
- ##
46
- # Streams WebhookInstance records from the API as an Enumerable.
47
- # This operation lazily loads records as efficiently as possible until the limit
48
- # is reached.
49
- # @param [Integer] limit Upper limit for the number of records to return. stream()
50
- # guarantees to never return more than limit. Default is no limit.
51
- # @param [Integer] page_size Number of records to fetch per request, when
52
- # not set will use the default value of 50 records. If no page_size is defined
53
- # but a limit is defined, stream() will attempt to read the limit with the most
54
- # efficient page size, i.e. min(limit, 1000)
55
- # @return [Enumerable] Enumerable that will yield up to limit results
56
- def stream(limit: nil, page_size: nil)
57
- limits = @version.read_limits(limit, page_size)
58
-
59
- page = self.page(page_size: limits[:page_size], )
60
-
61
- @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
62
- end
63
-
64
- ##
65
- # When passed a block, yields WebhookInstance records from the API.
66
- # This operation lazily loads records as efficiently as possible until the limit
67
- # is reached.
68
- def each
69
- limits = @version.read_limits
70
-
71
- page = self.page(page_size: limits[:page_size], )
72
-
73
- @version.stream(page,
74
- limit: limits[:limit],
75
- page_limit: limits[:page_limit]).each {|x| yield x}
76
- end
77
-
78
- ##
79
- # Retrieve a single page of WebhookInstance records from the API.
80
- # Request is executed immediately.
81
- # @param [String] page_token PageToken provided by the API
82
- # @param [Integer] page_number Page Number, this value is simply for client state
83
- # @param [Integer] page_size Number of records to return, defaults to 50
84
- # @return [Page] Page of WebhookInstance
85
- def page(page_token: :unset, page_number: :unset, page_size: :unset)
86
- params = Twilio::Values.of({
87
- 'PageToken' => page_token,
88
- 'Page' => page_number,
89
- 'PageSize' => page_size,
90
- })
91
- response = @version.page(
92
- 'GET',
93
- @uri,
94
- params
95
- )
96
- WebhookPage.new(@version, response, @solution)
97
- end
98
-
99
- ##
100
- # Retrieve a single page of WebhookInstance records from the API.
101
- # Request is executed immediately.
102
- # @param [String] target_url API-generated URL for the requested results page
103
- # @return [Page] Page of WebhookInstance
104
- def get_page(target_url)
105
- response = @version.domain.request(
106
- 'GET',
107
- target_url
108
- )
109
- WebhookPage.new(@version, response, @solution)
110
- end
111
-
112
- ##
113
- # Retrieve a single page of WebhookInstance records from the API.
114
- # Request is executed immediately.
115
- # @param [webhook.Target] target The target of the webhook.
116
- # @param [String] configuration_url The absolute URL the webhook request should be
117
- # sent to.
118
- # @param [webhook.Method] configuration_method The HTTP method we should use when
119
- # sending a webhook request to `url`. Can be `POST` or `GET`.
120
- # @param [String] configuration_filters The list of events that trigger a webhook
121
- # event for the Session.
122
- # @param [String] configuration_triggers The list of keywords, firing webhook
123
- # event for the Session.
124
- # @param [String] configuration_flow_sid The SID of the studio flow where the
125
- # webhook should be sent to.
126
- # @param [String] configuration_retry_count The number of times to call the
127
- # webhook request if the first attempt fails. Can be up to 3 and the default is 0.
128
- # @param [String] configuration_replay_after The message index for which and its
129
- # successors the webhook will be replayed. Not set by default.
130
- # @param [Boolean] configuration_buffer_messages Whether buffering should be
131
- # applied to messages. Not set by default.
132
- # @param [String] configuration_buffer_window The period to buffer messages in
133
- # milliseconds. Default is 3,000 ms.
134
- # @return [WebhookInstance] Newly created WebhookInstance
135
- def create(target: nil, configuration_url: :unset, configuration_method: :unset, configuration_filters: :unset, configuration_triggers: :unset, configuration_flow_sid: :unset, configuration_retry_count: :unset, configuration_replay_after: :unset, configuration_buffer_messages: :unset, configuration_buffer_window: :unset)
136
- data = Twilio::Values.of({
137
- 'Target' => target,
138
- 'Configuration.Url' => configuration_url,
139
- 'Configuration.Method' => configuration_method,
140
- 'Configuration.Filters' => Twilio.serialize_list(configuration_filters) { |e| e },
141
- 'Configuration.Triggers' => Twilio.serialize_list(configuration_triggers) { |e| e },
142
- 'Configuration.FlowSid' => configuration_flow_sid,
143
- 'Configuration.RetryCount' => configuration_retry_count,
144
- 'Configuration.ReplayAfter' => configuration_replay_after,
145
- 'Configuration.BufferMessages' => configuration_buffer_messages,
146
- 'Configuration.BufferWindow' => configuration_buffer_window,
147
- })
148
-
149
- payload = @version.create(
150
- 'POST',
151
- @uri,
152
- data: data
153
- )
154
-
155
- WebhookInstance.new(@version, payload, session_sid: @solution[:session_sid], )
156
- end
157
-
158
- ##
159
- # Provide a user friendly representation
160
- def to_s
161
- '#<Twilio.Messaging.V1.WebhookList>'
162
- end
163
- end
164
-
165
- ##
166
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
167
- class WebhookPage < Page
168
- ##
169
- # Initialize the WebhookPage
170
- # @param [Version] version Version that contains the resource
171
- # @param [Response] response Response from the API
172
- # @param [Hash] solution Path solution for the resource
173
- # @return [WebhookPage] WebhookPage
174
- def initialize(version, response, solution)
175
- super(version, response)
176
-
177
- # Path Solution
178
- @solution = solution
179
- end
180
-
181
- ##
182
- # Build an instance of WebhookInstance
183
- # @param [Hash] payload Payload response from the API
184
- # @return [WebhookInstance] WebhookInstance
185
- def get_instance(payload)
186
- WebhookInstance.new(@version, payload, session_sid: @solution[:session_sid], )
187
- end
188
-
189
- ##
190
- # Provide a user friendly representation
191
- def to_s
192
- '<Twilio.Messaging.V1.WebhookPage>'
193
- end
194
- end
195
-
196
- ##
197
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
198
- class WebhookContext < InstanceContext
199
- ##
200
- # Initialize the WebhookContext
201
- # @param [Version] version Version that contains the resource
202
- # @param [String] session_sid The SID of the Session with the Webhook resource to
203
- # fetch.
204
- # @param [String] sid The SID of the resource to fetch.
205
- # @return [WebhookContext] WebhookContext
206
- def initialize(version, session_sid, sid)
207
- super(version)
208
-
209
- # Path Solution
210
- @solution = {session_sid: session_sid, sid: sid, }
211
- @uri = "/Sessions/#{@solution[:session_sid]}/Webhooks/#{@solution[:sid]}"
212
- end
213
-
214
- ##
215
- # Fetch a WebhookInstance
216
- # @return [WebhookInstance] Fetched WebhookInstance
217
- def fetch
218
- params = Twilio::Values.of({})
219
-
220
- payload = @version.fetch(
221
- 'GET',
222
- @uri,
223
- params,
224
- )
225
-
226
- WebhookInstance.new(@version, payload, session_sid: @solution[:session_sid], sid: @solution[:sid], )
227
- end
228
-
229
- ##
230
- # Update the WebhookInstance
231
- # @param [String] configuration_url The absolute URL the webhook request should be
232
- # sent to.
233
- # @param [webhook.Method] configuration_method The HTTP method we should use when
234
- # sending a webhook request to `url`. Can be `POST` or `GET`.
235
- # @param [String] configuration_filters The list of events that trigger a webhook
236
- # event for the Session.
237
- # @param [String] configuration_triggers The list of keywords that trigger a
238
- # webhook event for the Session.
239
- # @param [String] configuration_flow_sid The SID of the studio flow where the
240
- # webhook should be sent to.
241
- # @param [String] configuration_retry_count The number of times to try the webhook
242
- # request if the first attempt fails. Can be up to 3 and the default is 0.
243
- # @param [Boolean] configuration_buffer_messages Whether buffering should be
244
- # applied to messages. Not set by default.
245
- # @param [String] configuration_buffer_window The period to buffer messages in
246
- # milliseconds. Default is 3,000 ms.
247
- # @return [WebhookInstance] Updated WebhookInstance
248
- def update(configuration_url: :unset, configuration_method: :unset, configuration_filters: :unset, configuration_triggers: :unset, configuration_flow_sid: :unset, configuration_retry_count: :unset, configuration_buffer_messages: :unset, configuration_buffer_window: :unset)
249
- data = Twilio::Values.of({
250
- 'Configuration.Url' => configuration_url,
251
- 'Configuration.Method' => configuration_method,
252
- 'Configuration.Filters' => Twilio.serialize_list(configuration_filters) { |e| e },
253
- 'Configuration.Triggers' => Twilio.serialize_list(configuration_triggers) { |e| e },
254
- 'Configuration.FlowSid' => configuration_flow_sid,
255
- 'Configuration.RetryCount' => configuration_retry_count,
256
- 'Configuration.BufferMessages' => configuration_buffer_messages,
257
- 'Configuration.BufferWindow' => configuration_buffer_window,
258
- })
259
-
260
- payload = @version.update(
261
- 'POST',
262
- @uri,
263
- data: data,
264
- )
265
-
266
- WebhookInstance.new(@version, payload, session_sid: @solution[:session_sid], sid: @solution[:sid], )
267
- end
268
-
269
- ##
270
- # Deletes the WebhookInstance
271
- # @return [Boolean] true if delete succeeds, false otherwise
272
- def delete
273
- @version.delete('delete', @uri)
274
- end
275
-
276
- ##
277
- # Provide a user friendly representation
278
- def to_s
279
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
280
- "#<Twilio.Messaging.V1.WebhookContext #{context}>"
281
- end
282
-
283
- ##
284
- # Provide a detailed, user friendly representation
285
- def inspect
286
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
287
- "#<Twilio.Messaging.V1.WebhookContext #{context}>"
288
- end
289
- end
290
-
291
- ##
292
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
293
- class WebhookInstance < InstanceResource
294
- ##
295
- # Initialize the WebhookInstance
296
- # @param [Version] version Version that contains the resource
297
- # @param [Hash] payload payload that contains response from Twilio
298
- # @param [String] session_sid The SID of the Session for the webhook.
299
- # @param [String] sid The SID of the resource to fetch.
300
- # @return [WebhookInstance] WebhookInstance
301
- def initialize(version, payload, session_sid: nil, sid: nil)
302
- super(version)
303
-
304
- # Marshaled Properties
305
- @properties = {
306
- 'sid' => payload['sid'],
307
- 'account_sid' => payload['account_sid'],
308
- 'session_sid' => payload['session_sid'],
309
- 'target' => payload['target'],
310
- 'url' => payload['url'],
311
- 'configuration' => payload['configuration'],
312
- 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
313
- 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
314
- }
315
-
316
- # Context
317
- @instance_context = nil
318
- @params = {'session_sid' => session_sid, 'sid' => sid || @properties['sid'], }
319
- end
320
-
321
- ##
322
- # Generate an instance context for the instance, the context is capable of
323
- # performing various actions. All instance actions are proxied to the context
324
- # @return [WebhookContext] WebhookContext for this WebhookInstance
325
- def context
326
- unless @instance_context
327
- @instance_context = WebhookContext.new(@version, @params['session_sid'], @params['sid'], )
328
- end
329
- @instance_context
330
- end
331
-
332
- ##
333
- # @return [String] The unique string that identifies the resource
334
- def sid
335
- @properties['sid']
336
- end
337
-
338
- ##
339
- # @return [String] The SID of the Account that created the resource
340
- def account_sid
341
- @properties['account_sid']
342
- end
343
-
344
- ##
345
- # @return [String] The SID of the Session for the webhook
346
- def session_sid
347
- @properties['session_sid']
348
- end
349
-
350
- ##
351
- # @return [String] The target of the webhook
352
- def target
353
- @properties['target']
354
- end
355
-
356
- ##
357
- # @return [String] The absolute URL of the webhook
358
- def url
359
- @properties['url']
360
- end
361
-
362
- ##
363
- # @return [Hash] The configuration of the webhook
364
- def configuration
365
- @properties['configuration']
366
- end
367
-
368
- ##
369
- # @return [Time] The ISO 8601 date and time in GMT when the resource was created
370
- def date_created
371
- @properties['date_created']
372
- end
373
-
374
- ##
375
- # @return [Time] The ISO 8601 date and time in GMT when the resource was last updated
376
- def date_updated
377
- @properties['date_updated']
378
- end
379
-
380
- ##
381
- # Fetch a WebhookInstance
382
- # @return [WebhookInstance] Fetched WebhookInstance
383
- def fetch
384
- context.fetch
385
- end
386
-
387
- ##
388
- # Update the WebhookInstance
389
- # @param [String] configuration_url The absolute URL the webhook request should be
390
- # sent to.
391
- # @param [webhook.Method] configuration_method The HTTP method we should use when
392
- # sending a webhook request to `url`. Can be `POST` or `GET`.
393
- # @param [String] configuration_filters The list of events that trigger a webhook
394
- # event for the Session.
395
- # @param [String] configuration_triggers The list of keywords that trigger a
396
- # webhook event for the Session.
397
- # @param [String] configuration_flow_sid The SID of the studio flow where the
398
- # webhook should be sent to.
399
- # @param [String] configuration_retry_count The number of times to try the webhook
400
- # request if the first attempt fails. Can be up to 3 and the default is 0.
401
- # @param [Boolean] configuration_buffer_messages Whether buffering should be
402
- # applied to messages. Not set by default.
403
- # @param [String] configuration_buffer_window The period to buffer messages in
404
- # milliseconds. Default is 3,000 ms.
405
- # @return [WebhookInstance] Updated WebhookInstance
406
- def update(configuration_url: :unset, configuration_method: :unset, configuration_filters: :unset, configuration_triggers: :unset, configuration_flow_sid: :unset, configuration_retry_count: :unset, configuration_buffer_messages: :unset, configuration_buffer_window: :unset)
407
- context.update(
408
- configuration_url: configuration_url,
409
- configuration_method: configuration_method,
410
- configuration_filters: configuration_filters,
411
- configuration_triggers: configuration_triggers,
412
- configuration_flow_sid: configuration_flow_sid,
413
- configuration_retry_count: configuration_retry_count,
414
- configuration_buffer_messages: configuration_buffer_messages,
415
- configuration_buffer_window: configuration_buffer_window,
416
- )
417
- end
418
-
419
- ##
420
- # Deletes the WebhookInstance
421
- # @return [Boolean] true if delete succeeds, false otherwise
422
- def delete
423
- context.delete
424
- end
425
-
426
- ##
427
- # Provide a user friendly representation
428
- def to_s
429
- values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
430
- "<Twilio.Messaging.V1.WebhookInstance #{values}>"
431
- end
432
-
433
- ##
434
- # Provide a detailed, user friendly representation
435
- def inspect
436
- values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
437
- "<Twilio.Messaging.V1.WebhookInstance #{values}>"
438
- end
439
- end
440
- end
441
- end
442
- end
443
- end
444
- end
@@ -1,299 +0,0 @@
1
- ##
2
- # This code was generated by
3
- # \ / _ _ _| _ _
4
- # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
- # / /
6
- #
7
- # frozen_string_literal: true
8
-
9
- module Twilio
10
- module REST
11
- class Messaging < Domain
12
- class V1 < Version
13
- ##
14
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
15
- class WebhookList < ListResource
16
- ##
17
- # Initialize the WebhookList
18
- # @param [Version] version Version that contains the resource
19
- # @return [WebhookList] WebhookList
20
- def initialize(version)
21
- super(version)
22
-
23
- # Path Solution
24
- @solution = {}
25
- end
26
-
27
- ##
28
- # Provide a user friendly representation
29
- def to_s
30
- '#<Twilio.Messaging.V1.WebhookList>'
31
- end
32
- end
33
-
34
- ##
35
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
36
- class WebhookPage < Page
37
- ##
38
- # Initialize the WebhookPage
39
- # @param [Version] version Version that contains the resource
40
- # @param [Response] response Response from the API
41
- # @param [Hash] solution Path solution for the resource
42
- # @return [WebhookPage] WebhookPage
43
- def initialize(version, response, solution)
44
- super(version, response)
45
-
46
- # Path Solution
47
- @solution = solution
48
- end
49
-
50
- ##
51
- # Build an instance of WebhookInstance
52
- # @param [Hash] payload Payload response from the API
53
- # @return [WebhookInstance] WebhookInstance
54
- def get_instance(payload)
55
- WebhookInstance.new(@version, payload, )
56
- end
57
-
58
- ##
59
- # Provide a user friendly representation
60
- def to_s
61
- '<Twilio.Messaging.V1.WebhookPage>'
62
- end
63
- end
64
-
65
- ##
66
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
67
- class WebhookContext < InstanceContext
68
- ##
69
- # Initialize the WebhookContext
70
- # @param [Version] version Version that contains the resource
71
- # @return [WebhookContext] WebhookContext
72
- def initialize(version)
73
- super(version)
74
-
75
- # Path Solution
76
- @solution = {}
77
- @uri = "/Sessions/Webhooks"
78
- end
79
-
80
- ##
81
- # Fetch a WebhookInstance
82
- # @return [WebhookInstance] Fetched WebhookInstance
83
- def fetch
84
- params = Twilio::Values.of({})
85
-
86
- payload = @version.fetch(
87
- 'GET',
88
- @uri,
89
- params,
90
- )
91
-
92
- WebhookInstance.new(@version, payload, )
93
- end
94
-
95
- ##
96
- # Update the WebhookInstance
97
- # @param [String] webhook_method The HTTP method to use when sending a webhook
98
- # request.
99
- # @param [String] webhook_filters The list of webhook event triggers that are
100
- # enabled for the Service.
101
- # @param [String] pre_webhook_url The absolute URL of the pre-event webhook.
102
- # @param [String] post_webhook_url The absolute URL of the post-event webhook.
103
- # @param [String] pre_webhook_retry_count The number of times to try the pre-event
104
- # webhook request if the first attempt fails. Can be up to 3 and the default is 0.
105
- # @param [String] post_webhook_retry_count The number of times to try the
106
- # post-event webhook request if the first attempt fails. Can be up to 3 and the
107
- # default is 0.
108
- # @param [webhook.Target] target The routing target of the webhook. Can be
109
- # ordinary or routed internally to Flex
110
- # @return [WebhookInstance] Updated WebhookInstance
111
- def update(webhook_method: :unset, webhook_filters: :unset, pre_webhook_url: :unset, post_webhook_url: :unset, pre_webhook_retry_count: :unset, post_webhook_retry_count: :unset, target: :unset)
112
- data = Twilio::Values.of({
113
- 'WebhookMethod' => webhook_method,
114
- 'WebhookFilters' => Twilio.serialize_list(webhook_filters) { |e| e },
115
- 'PreWebhookUrl' => pre_webhook_url,
116
- 'PostWebhookUrl' => post_webhook_url,
117
- 'PreWebhookRetryCount' => pre_webhook_retry_count,
118
- 'PostWebhookRetryCount' => post_webhook_retry_count,
119
- 'Target' => target,
120
- })
121
-
122
- payload = @version.update(
123
- 'POST',
124
- @uri,
125
- data: data,
126
- )
127
-
128
- WebhookInstance.new(@version, payload, )
129
- end
130
-
131
- ##
132
- # Provide a user friendly representation
133
- def to_s
134
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
135
- "#<Twilio.Messaging.V1.WebhookContext #{context}>"
136
- end
137
-
138
- ##
139
- # Provide a detailed, user friendly representation
140
- def inspect
141
- context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
142
- "#<Twilio.Messaging.V1.WebhookContext #{context}>"
143
- end
144
- end
145
-
146
- ##
147
- # PLEASE NOTE that this class contains preview products that are subject to change. Use them with caution. If you currently do not have developer preview access, please contact help@twilio.com.
148
- class WebhookInstance < InstanceResource
149
- ##
150
- # Initialize the WebhookInstance
151
- # @param [Version] version Version that contains the resource
152
- # @param [Hash] payload payload that contains response from Twilio
153
- # @return [WebhookInstance] WebhookInstance
154
- def initialize(version, payload)
155
- super(version)
156
-
157
- # Marshaled Properties
158
- @properties = {
159
- 'account_sid' => payload['account_sid'],
160
- 'service_sid' => payload['service_sid'],
161
- 'webhook_method' => payload['webhook_method'],
162
- 'webhook_filters' => payload['webhook_filters'],
163
- 'pre_webhook_url' => payload['pre_webhook_url'],
164
- 'post_webhook_url' => payload['post_webhook_url'],
165
- 'pre_webhook_retry_count' => payload['pre_webhook_retry_count'].to_i,
166
- 'post_webhook_retry_count' => payload['post_webhook_retry_count'].to_i,
167
- 'target' => payload['target'],
168
- 'url' => payload['url'],
169
- }
170
-
171
- # Context
172
- @instance_context = nil
173
- @params = {}
174
- end
175
-
176
- ##
177
- # Generate an instance context for the instance, the context is capable of
178
- # performing various actions. All instance actions are proxied to the context
179
- # @return [WebhookContext] WebhookContext for this WebhookInstance
180
- def context
181
- unless @instance_context
182
- @instance_context = WebhookContext.new(@version, )
183
- end
184
- @instance_context
185
- end
186
-
187
- ##
188
- # @return [String] The SID of the Account that created the resource
189
- def account_sid
190
- @properties['account_sid']
191
- end
192
-
193
- ##
194
- # @return [String] The SID of the Chat Service that the resource is associated with
195
- def service_sid
196
- @properties['service_sid']
197
- end
198
-
199
- ##
200
- # @return [String] The HTTP method to use when sending a webhook request
201
- def webhook_method
202
- @properties['webhook_method']
203
- end
204
-
205
- ##
206
- # @return [String] The list of webhook event triggers that are enabled for the Service
207
- def webhook_filters
208
- @properties['webhook_filters']
209
- end
210
-
211
- ##
212
- # @return [String] The absolute URL of the pre-event webhook
213
- def pre_webhook_url
214
- @properties['pre_webhook_url']
215
- end
216
-
217
- ##
218
- # @return [String] The absolute URL of the post-event webhook
219
- def post_webhook_url
220
- @properties['post_webhook_url']
221
- end
222
-
223
- ##
224
- # @return [String] The number of times to try the pre-event webhook request if the first attempt fails
225
- def pre_webhook_retry_count
226
- @properties['pre_webhook_retry_count']
227
- end
228
-
229
- ##
230
- # @return [String] The number of times to try the post-event webhook request if the first attempt fails
231
- def post_webhook_retry_count
232
- @properties['post_webhook_retry_count']
233
- end
234
-
235
- ##
236
- # @return [webhook.Target] The routing target of the webhook
237
- def target
238
- @properties['target']
239
- end
240
-
241
- ##
242
- # @return [String] The absolute URL of the webhook
243
- def url
244
- @properties['url']
245
- end
246
-
247
- ##
248
- # Fetch a WebhookInstance
249
- # @return [WebhookInstance] Fetched WebhookInstance
250
- def fetch
251
- context.fetch
252
- end
253
-
254
- ##
255
- # Update the WebhookInstance
256
- # @param [String] webhook_method The HTTP method to use when sending a webhook
257
- # request.
258
- # @param [String] webhook_filters The list of webhook event triggers that are
259
- # enabled for the Service.
260
- # @param [String] pre_webhook_url The absolute URL of the pre-event webhook.
261
- # @param [String] post_webhook_url The absolute URL of the post-event webhook.
262
- # @param [String] pre_webhook_retry_count The number of times to try the pre-event
263
- # webhook request if the first attempt fails. Can be up to 3 and the default is 0.
264
- # @param [String] post_webhook_retry_count The number of times to try the
265
- # post-event webhook request if the first attempt fails. Can be up to 3 and the
266
- # default is 0.
267
- # @param [webhook.Target] target The routing target of the webhook. Can be
268
- # ordinary or routed internally to Flex
269
- # @return [WebhookInstance] Updated WebhookInstance
270
- def update(webhook_method: :unset, webhook_filters: :unset, pre_webhook_url: :unset, post_webhook_url: :unset, pre_webhook_retry_count: :unset, post_webhook_retry_count: :unset, target: :unset)
271
- context.update(
272
- webhook_method: webhook_method,
273
- webhook_filters: webhook_filters,
274
- pre_webhook_url: pre_webhook_url,
275
- post_webhook_url: post_webhook_url,
276
- pre_webhook_retry_count: pre_webhook_retry_count,
277
- post_webhook_retry_count: post_webhook_retry_count,
278
- target: target,
279
- )
280
- end
281
-
282
- ##
283
- # Provide a user friendly representation
284
- def to_s
285
- values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
286
- "<Twilio.Messaging.V1.WebhookInstance #{values}>"
287
- end
288
-
289
- ##
290
- # Provide a detailed, user friendly representation
291
- def inspect
292
- values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
293
- "<Twilio.Messaging.V1.WebhookInstance #{values}>"
294
- end
295
- end
296
- end
297
- end
298
- end
299
- end