twilio-ruby 5.40.2 → 5.40.3

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 (84) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +15 -0
  3. data/README.md +2 -2
  4. data/lib/twilio-ruby/framework/version.rb +2 -1
  5. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +12 -3
  6. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/machine_to_machine.rb +12 -3
  7. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +12 -3
  8. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/national.rb +12 -3
  9. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/shared_cost.rb +12 -3
  10. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +12 -3
  11. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/voip.rb +12 -3
  12. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +2 -1
  13. data/lib/twilio-ruby/rest/api/v2010/account/call/payment.rb +8 -2
  14. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +5 -2
  15. data/lib/twilio-ruby/rest/api/v2010/account/message.rb +8 -1
  16. data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +3 -1
  17. data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +2 -1
  18. data/lib/twilio-ruby/rest/autopilot/v1/assistant/field_type/field_value.rb +8 -4
  19. data/lib/twilio-ruby/rest/autopilot/v1/assistant/query.rb +11 -4
  20. data/lib/twilio-ruby/rest/autopilot/v1/assistant/task/sample.rb +13 -6
  21. data/lib/twilio-ruby/rest/conversations.rb +0 -16
  22. data/lib/twilio-ruby/rest/conversations/v1.rb +0 -24
  23. data/lib/twilio-ruby/rest/conversations/v1/configuration.rb +17 -7
  24. data/lib/twilio-ruby/rest/conversations/v1/configuration/webhook.rb +262 -0
  25. data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +6 -6
  26. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +13 -10
  27. data/lib/twilio-ruby/rest/conversations/v1/conversation/message/delivery_receipt.rb +22 -16
  28. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +42 -36
  29. data/lib/twilio-ruby/rest/conversations/v1/conversation/webhook.rb +14 -11
  30. data/lib/twilio-ruby/rest/conversations/v1/credential.rb +1 -1
  31. data/lib/twilio-ruby/rest/conversations/v1/role.rb +4 -2
  32. data/lib/twilio-ruby/rest/conversations/v1/service.rb +1 -1
  33. data/lib/twilio-ruby/rest/conversations/v1/service/binding.rb +28 -25
  34. data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +30 -18
  35. data/lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb +315 -0
  36. data/lib/twilio-ruby/rest/conversations/v1/service/conversation.rb +10 -10
  37. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +23 -20
  38. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb +32 -26
  39. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/participant.rb +52 -46
  40. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/webhook.rb +24 -21
  41. data/lib/twilio-ruby/rest/conversations/v1/service/role.rb +13 -11
  42. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +23 -23
  43. data/lib/twilio-ruby/rest/conversations/v1/user.rb +14 -14
  44. data/lib/twilio-ruby/rest/events.rb +10 -1
  45. data/lib/twilio-ruby/rest/events/v1.rb +17 -1
  46. data/lib/twilio-ruby/rest/events/v1/event_type.rb +8 -8
  47. data/lib/twilio-ruby/rest/events/v1/schema.rb +226 -0
  48. data/lib/twilio-ruby/rest/events/v1/schema/schema_version.rb +290 -0
  49. data/lib/twilio-ruby/rest/events/v1/subscription.rb +28 -8
  50. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +3 -109
  51. data/lib/twilio-ruby/rest/fax/v1/fax.rb +2 -1
  52. data/lib/twilio-ruby/rest/messaging/v1/service.rb +6 -3
  53. data/lib/twilio-ruby/rest/notify/v1/credential.rb +12 -6
  54. data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +10 -2
  55. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document.rb +10 -5
  56. data/lib/twilio-ruby/rest/preview/hosted_numbers/authorization_document/dependent_hosted_number_order.rb +6 -3
  57. data/lib/twilio-ruby/rest/preview/trusted_comms/business/insights.rb +1 -4
  58. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +3 -1
  59. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +6 -2
  60. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +1 -4
  61. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +6 -2
  62. data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +19 -26
  63. data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +2 -1
  64. data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +2 -1
  65. data/lib/twilio-ruby/rest/trunking/v1/trunk/recording.rb +201 -0
  66. data/lib/twilio-ruby/rest/verify/v2/service/verification.rb +3 -1
  67. data/lib/twilio-ruby/rest/video/v1/composition.rb +7 -3
  68. data/lib/twilio-ruby/rest/video/v1/composition_hook.rb +18 -9
  69. data/lib/twilio-ruby/rest/video/v1/room.rb +2 -1
  70. data/lib/twilio-ruby/rest/voice/v1/dialing_permissions.rb +1 -4
  71. data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +2 -1
  72. data/lib/twilio-ruby/version.rb +1 -1
  73. data/spec/framework/version_spec.rb +11 -0
  74. data/spec/integration/conversations/v1/{webhook_spec.rb → configuration/webhook_spec.rb} +12 -8
  75. data/spec/integration/conversations/v1/configuration_spec.rb +4 -2
  76. data/spec/integration/conversations/v1/{notification_spec.rb → service/configuration/notification_spec.rb} +12 -4
  77. data/spec/integration/events/v1/schema/schema_version_spec.rb +126 -0
  78. data/spec/integration/events/v1/schema_spec.rb +46 -0
  79. data/spec/integration/events/v1/subscription/subscribed_event_spec.rb +0 -121
  80. data/spec/integration/events/v1/subscription_spec.rb +38 -0
  81. data/spec/integration/trunking/v1/trunk/recording_spec.rb +79 -0
  82. metadata +17 -8
  83. data/lib/twilio-ruby/rest/conversations/v1/notification.rb +0 -310
  84. data/lib/twilio-ruby/rest/conversations/v1/webhook.rb +0 -262
@@ -34,7 +34,9 @@ module Twilio
34
34
  # Unlike stream(), this operation is eager and will load `limit` records into
35
35
  # memory before returning.
36
36
  # @param [String] language The [ISO
37
- # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html) string that specifies the language used by the Query resources to read. For example: `en-US`.
37
+ # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html)
38
+ # string that specifies the language used by the Query resources to read. For
39
+ # example: `en-US`.
38
40
  # @param [String] model_build The SID or unique name of the [Model
39
41
  # Build](https://www.twilio.com/docs/autopilot/api/model-build) to be queried.
40
42
  # @param [String] status The status of the resources to read. Can be:
@@ -64,7 +66,9 @@ module Twilio
64
66
  # This operation lazily loads records as efficiently as possible until the limit
65
67
  # is reached.
66
68
  # @param [String] language The [ISO
67
- # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html) string that specifies the language used by the Query resources to read. For example: `en-US`.
69
+ # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html)
70
+ # string that specifies the language used by the Query resources to read. For
71
+ # example: `en-US`.
68
72
  # @param [String] model_build The SID or unique name of the [Model
69
73
  # Build](https://www.twilio.com/docs/autopilot/api/model-build) to be queried.
70
74
  # @param [String] status The status of the resources to read. Can be:
@@ -110,7 +114,9 @@ module Twilio
110
114
  # Retrieve a single page of QueryInstance records from the API.
111
115
  # Request is executed immediately.
112
116
  # @param [String] language The [ISO
113
- # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html) string that specifies the language used by the Query resources to read. For example: `en-US`.
117
+ # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html)
118
+ # string that specifies the language used by the Query resources to read. For
119
+ # example: `en-US`.
114
120
  # @param [String] model_build The SID or unique name of the [Model
115
121
  # Build](https://www.twilio.com/docs/autopilot/api/model-build) to be queried.
116
122
  # @param [String] status The status of the resources to read. Can be:
@@ -153,7 +159,8 @@ module Twilio
153
159
  ##
154
160
  # Create the QueryInstance
155
161
  # @param [String] language The [ISO
156
- # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html) string that specifies the language used for the new query. For example: `en-US`.
162
+ # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html)
163
+ # string that specifies the language used for the new query. For example: `en-US`.
157
164
  # @param [String] query The end-user's natural language input. It can be up to
158
165
  # 2048 characters long.
159
166
  # @param [String] tasks The list of tasks to limit the new query to. Tasks are
@@ -38,7 +38,8 @@ module Twilio
38
38
  # Unlike stream(), this operation is eager and will load `limit` records into
39
39
  # memory before returning.
40
40
  # @param [String] language The [ISO
41
- # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html) string that specifies the language used for the sample. For example: `en-US`.
41
+ # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html)
42
+ # string that specifies the language used for the sample. For example: `en-US`.
42
43
  # @param [Integer] limit Upper limit for the number of records to return. stream()
43
44
  # guarantees to never return more than limit. Default is no limit
44
45
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -55,7 +56,8 @@ module Twilio
55
56
  # This operation lazily loads records as efficiently as possible until the limit
56
57
  # is reached.
57
58
  # @param [String] language The [ISO
58
- # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html) string that specifies the language used for the sample. For example: `en-US`.
59
+ # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html)
60
+ # string that specifies the language used for the sample. For example: `en-US`.
59
61
  # @param [Integer] limit Upper limit for the number of records to return. stream()
60
62
  # guarantees to never return more than limit. Default is no limit.
61
63
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -89,7 +91,8 @@ module Twilio
89
91
  # Retrieve a single page of SampleInstance records from the API.
90
92
  # Request is executed immediately.
91
93
  # @param [String] language The [ISO
92
- # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html) string that specifies the language used for the sample. For example: `en-US`.
94
+ # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html)
95
+ # string that specifies the language used for the sample. For example: `en-US`.
93
96
  # @param [String] page_token PageToken provided by the API
94
97
  # @param [Integer] page_number Page Number, this value is simply for client state
95
98
  # @param [Integer] page_size Number of records to return, defaults to 50
@@ -123,7 +126,9 @@ module Twilio
123
126
  ##
124
127
  # Create the SampleInstance
125
128
  # @param [String] language The [ISO
126
- # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html) string that specifies the language used for the new sample. For example: `en-US`.
129
+ # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html)
130
+ # string that specifies the language used for the new sample. For example:
131
+ # `en-US`.
127
132
  # @param [String] tagged_text The text example of how end users might express the
128
133
  # task. The sample can contain [Field tag
129
134
  # blocks](https://www.twilio.com/docs/autopilot/api/task-sample#field-tagging).
@@ -232,7 +237,8 @@ module Twilio
232
237
  ##
233
238
  # Update the SampleInstance
234
239
  # @param [String] language The [ISO
235
- # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html) string that specifies the language used for the sample. For example: `en-US`.
240
+ # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html)
241
+ # string that specifies the language used for the sample. For example: `en-US`.
236
242
  # @param [String] tagged_text The text example of how end users might express the
237
243
  # task. The sample can contain [Field tag
238
244
  # blocks](https://www.twilio.com/docs/autopilot/api/task-sample#field-tagging).
@@ -408,7 +414,8 @@ module Twilio
408
414
  ##
409
415
  # Update the SampleInstance
410
416
  # @param [String] language The [ISO
411
- # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html) string that specifies the language used for the sample. For example: `en-US`.
417
+ # language-country](https://docs.oracle.com/cd/E13214_01/wli/docs92/xref/xqisocodes.html)
418
+ # string that specifies the language used for the sample. For example: `en-US`.
412
419
  # @param [String] tagged_text The text example of how end users might express the
413
420
  # task. The sample can contain [Field tag
414
421
  # blocks](https://www.twilio.com/docs/autopilot/api/task-sample#field-tagging).
@@ -43,12 +43,6 @@ module Twilio
43
43
  self.v1.conversations(sid)
44
44
  end
45
45
 
46
- ##
47
- # @return [Twilio::REST::Conversations::V1::WebhookInstance]
48
- def webhooks
49
- self.v1.webhooks()
50
- end
51
-
52
46
  ##
53
47
  # @param [String] sid A 34 character string that uniquely identifies this
54
48
  # resource.
@@ -76,16 +70,6 @@ module Twilio
76
70
  self.v1.services(sid)
77
71
  end
78
72
 
79
- ##
80
- # @param [String] chat_service_sid The SID of the [Chat
81
- # Service](https://www.twilio.com/docs/chat/rest/service-resource) the
82
- # Configuration applies to.
83
- # @return [Twilio::REST::Conversations::V1::NotificationInstance] if chat_service_sid was passed.
84
- # @return [Twilio::REST::Conversations::V1::NotificationList]
85
- def notifications(chat_service_sid=:unset)
86
- self.v1.notifications(chat_service_sid)
87
- end
88
-
89
73
  ##
90
74
  # @param [String] sid The unique string that we created to identify the User
91
75
  # resource.
@@ -17,11 +17,9 @@ module Twilio
17
17
  @version = 'v1'
18
18
  @configuration = nil
19
19
  @conversations = nil
20
- @webhooks = nil
21
20
  @credentials = nil
22
21
  @roles = nil
23
22
  @services = nil
24
- @notifications = nil
25
23
  @users = nil
26
24
  end
27
25
 
@@ -46,12 +44,6 @@ module Twilio
46
44
  end
47
45
  end
48
46
 
49
- ##
50
- # @return [Twilio::REST::Conversations::V1::WebhookContext]
51
- def webhooks
52
- @webhooks ||= WebhookContext.new self
53
- end
54
-
55
47
  ##
56
48
  # @param [String] sid A 34 character string that uniquely identifies this
57
49
  # resource.
@@ -96,22 +88,6 @@ module Twilio
96
88
  end
97
89
  end
98
90
 
99
- ##
100
- # @param [String] chat_service_sid The SID of the [Chat
101
- # Service](https://www.twilio.com/docs/chat/rest/service-resource) the
102
- # Configuration applies to.
103
- # @return [Twilio::REST::Conversations::V1::NotificationContext] if chat_service_sid was passed.
104
- # @return [Twilio::REST::Conversations::V1::NotificationList]
105
- def notifications(chat_service_sid=:unset)
106
- if chat_service_sid.nil?
107
- raise ArgumentError, 'chat_service_sid cannot be nil'
108
- elsif chat_service_sid == :unset
109
- @notifications ||= NotificationList.new self
110
- else
111
- NotificationContext.new(self, chat_service_sid)
112
- end
113
- end
114
-
115
91
  ##
116
92
  # @param [String] sid The SID of the User resource to fetch. This value can be
117
93
  # either the `sid` or the `identity` of the User resource to fetch.
@@ -75,6 +75,9 @@ module Twilio
75
75
  # Path Solution
76
76
  @solution = {}
77
77
  @uri = "/Configuration"
78
+
79
+ # Components
80
+ @webhooks = nil
78
81
  end
79
82
 
80
83
  ##
@@ -88,9 +91,9 @@ module Twilio
88
91
 
89
92
  ##
90
93
  # Update the ConfigurationInstance
91
- # @param [String] default_chat_service_sid The SID of the default [Chat
92
- # Service](https://www.twilio.com/docs/chat/rest/service-resource) to use when
93
- # creating a conversation.
94
+ # @param [String] default_chat_service_sid The SID of the default [Conversation
95
+ # Service](https://www.twilio.com/docs/conversations/api/service-resource) to use
96
+ # when creating a conversation.
94
97
  # @param [String] default_messaging_service_sid The SID of the default [Messaging
95
98
  # Service](https://www.twilio.com/docs/sms/services/api) to use when creating a
96
99
  # conversation.
@@ -113,6 +116,13 @@ module Twilio
113
116
  ConfigurationInstance.new(@version, payload, )
114
117
  end
115
118
 
119
+ ##
120
+ # Access the webhooks
121
+ # @return [WebhookContext] WebhookContext
122
+ def webhooks
123
+ return WebhookContext.new(@version, )
124
+ end
125
+
116
126
  ##
117
127
  # Provide a user friendly representation
118
128
  def to_s
@@ -173,7 +183,7 @@ module Twilio
173
183
  end
174
184
 
175
185
  ##
176
- # @return [String] The SID of the default Chat Service that every new conversation is associated with.
186
+ # @return [String] The SID of the default Conversation Service that every new conversation is associated with.
177
187
  def default_chat_service_sid
178
188
  @properties['default_chat_service_sid']
179
189
  end
@@ -217,9 +227,9 @@ module Twilio
217
227
 
218
228
  ##
219
229
  # Update the ConfigurationInstance
220
- # @param [String] default_chat_service_sid The SID of the default [Chat
221
- # Service](https://www.twilio.com/docs/chat/rest/service-resource) to use when
222
- # creating a conversation.
230
+ # @param [String] default_chat_service_sid The SID of the default [Conversation
231
+ # Service](https://www.twilio.com/docs/conversations/api/service-resource) to use
232
+ # when creating a conversation.
223
233
  # @param [String] default_messaging_service_sid The SID of the default [Messaging
224
234
  # Service](https://www.twilio.com/docs/sms/services/api) to use when creating a
225
235
  # conversation.
@@ -0,0 +1,262 @@
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 Conversations < Domain
12
+ class V1 < Version
13
+ class ConfigurationContext < InstanceContext
14
+ ##
15
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
16
+ class WebhookList < ListResource
17
+ ##
18
+ # Initialize the WebhookList
19
+ # @param [Version] version Version that contains the resource
20
+ # @return [WebhookList] WebhookList
21
+ def initialize(version)
22
+ super(version)
23
+
24
+ # Path Solution
25
+ @solution = {}
26
+ end
27
+
28
+ ##
29
+ # Provide a user friendly representation
30
+ def to_s
31
+ '#<Twilio.Conversations.V1.WebhookList>'
32
+ end
33
+ end
34
+
35
+ ##
36
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
37
+ class WebhookPage < Page
38
+ ##
39
+ # Initialize the WebhookPage
40
+ # @param [Version] version Version that contains the resource
41
+ # @param [Response] response Response from the API
42
+ # @param [Hash] solution Path solution for the resource
43
+ # @return [WebhookPage] WebhookPage
44
+ def initialize(version, response, solution)
45
+ super(version, response)
46
+
47
+ # Path Solution
48
+ @solution = solution
49
+ end
50
+
51
+ ##
52
+ # Build an instance of WebhookInstance
53
+ # @param [Hash] payload Payload response from the API
54
+ # @return [WebhookInstance] WebhookInstance
55
+ def get_instance(payload)
56
+ WebhookInstance.new(@version, payload, )
57
+ end
58
+
59
+ ##
60
+ # Provide a user friendly representation
61
+ def to_s
62
+ '<Twilio.Conversations.V1.WebhookPage>'
63
+ end
64
+ end
65
+
66
+ ##
67
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
68
+ class WebhookContext < InstanceContext
69
+ ##
70
+ # Initialize the WebhookContext
71
+ # @param [Version] version Version that contains the resource
72
+ # @return [WebhookContext] WebhookContext
73
+ def initialize(version)
74
+ super(version)
75
+
76
+ # Path Solution
77
+ @solution = {}
78
+ @uri = "/Configuration/Webhooks"
79
+ end
80
+
81
+ ##
82
+ # Fetch the WebhookInstance
83
+ # @return [WebhookInstance] Fetched WebhookInstance
84
+ def fetch
85
+ payload = @version.fetch('GET', @uri)
86
+
87
+ WebhookInstance.new(@version, payload, )
88
+ end
89
+
90
+ ##
91
+ # Update the WebhookInstance
92
+ # @param [String] method The HTTP method to be used when sending a webhook
93
+ # request.
94
+ # @param [String] filters The list of webhook event triggers that are enabled for
95
+ # this Service: `onMessageAdded`, `onMessageUpdated`, `onMessageRemoved`,
96
+ # `onConversationUpdated`, `onConversationRemoved`, `onParticipantAdded`,
97
+ # `onParticipantUpdated`, `onParticipantRemoved`
98
+ # @param [String] pre_webhook_url The absolute url the pre-event webhook request
99
+ # should be sent to.
100
+ # @param [String] post_webhook_url The absolute url the post-event webhook request
101
+ # should be sent to.
102
+ # @param [webhook.Target] target The routing target of the webhook.
103
+ # @return [WebhookInstance] Updated WebhookInstance
104
+ def update(method: :unset, filters: :unset, pre_webhook_url: :unset, post_webhook_url: :unset, target: :unset)
105
+ data = Twilio::Values.of({
106
+ 'Method' => method,
107
+ 'Filters' => Twilio.serialize_list(filters) { |e| e },
108
+ 'PreWebhookUrl' => pre_webhook_url,
109
+ 'PostWebhookUrl' => post_webhook_url,
110
+ 'Target' => target,
111
+ })
112
+
113
+ payload = @version.update('POST', @uri, data: data)
114
+
115
+ WebhookInstance.new(@version, payload, )
116
+ end
117
+
118
+ ##
119
+ # Provide a user friendly representation
120
+ def to_s
121
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
122
+ "#<Twilio.Conversations.V1.WebhookContext #{context}>"
123
+ end
124
+
125
+ ##
126
+ # Provide a detailed, user friendly representation
127
+ def inspect
128
+ context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
129
+ "#<Twilio.Conversations.V1.WebhookContext #{context}>"
130
+ end
131
+ end
132
+
133
+ ##
134
+ # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
135
+ class WebhookInstance < InstanceResource
136
+ ##
137
+ # Initialize the WebhookInstance
138
+ # @param [Version] version Version that contains the resource
139
+ # @param [Hash] payload payload that contains response from Twilio
140
+ # @return [WebhookInstance] WebhookInstance
141
+ def initialize(version, payload)
142
+ super(version)
143
+
144
+ # Marshaled Properties
145
+ @properties = {
146
+ 'account_sid' => payload['account_sid'],
147
+ 'method' => payload['method'],
148
+ 'filters' => payload['filters'],
149
+ 'pre_webhook_url' => payload['pre_webhook_url'],
150
+ 'post_webhook_url' => payload['post_webhook_url'],
151
+ 'target' => payload['target'],
152
+ 'url' => payload['url'],
153
+ }
154
+
155
+ # Context
156
+ @instance_context = nil
157
+ @params = {}
158
+ end
159
+
160
+ ##
161
+ # Generate an instance context for the instance, the context is capable of
162
+ # performing various actions. All instance actions are proxied to the context
163
+ # @return [WebhookContext] WebhookContext for this WebhookInstance
164
+ def context
165
+ unless @instance_context
166
+ @instance_context = WebhookContext.new(@version, )
167
+ end
168
+ @instance_context
169
+ end
170
+
171
+ ##
172
+ # @return [String] The unique ID of the Account responsible for this conversation.
173
+ def account_sid
174
+ @properties['account_sid']
175
+ end
176
+
177
+ ##
178
+ # @return [webhook.Method] The HTTP method to be used when sending a webhook request.
179
+ def method
180
+ @properties['method']
181
+ end
182
+
183
+ ##
184
+ # @return [String] The list of webhook event triggers that are enabled for this Service.
185
+ def filters
186
+ @properties['filters']
187
+ end
188
+
189
+ ##
190
+ # @return [String] The absolute url the pre-event webhook request should be sent to.
191
+ def pre_webhook_url
192
+ @properties['pre_webhook_url']
193
+ end
194
+
195
+ ##
196
+ # @return [String] The absolute url the post-event webhook request should be sent to.
197
+ def post_webhook_url
198
+ @properties['post_webhook_url']
199
+ end
200
+
201
+ ##
202
+ # @return [webhook.Target] The routing target of the webhook.
203
+ def target
204
+ @properties['target']
205
+ end
206
+
207
+ ##
208
+ # @return [String] An absolute URL for this webhook.
209
+ def url
210
+ @properties['url']
211
+ end
212
+
213
+ ##
214
+ # Fetch the WebhookInstance
215
+ # @return [WebhookInstance] Fetched WebhookInstance
216
+ def fetch
217
+ context.fetch
218
+ end
219
+
220
+ ##
221
+ # Update the WebhookInstance
222
+ # @param [String] method The HTTP method to be used when sending a webhook
223
+ # request.
224
+ # @param [String] filters The list of webhook event triggers that are enabled for
225
+ # this Service: `onMessageAdded`, `onMessageUpdated`, `onMessageRemoved`,
226
+ # `onConversationUpdated`, `onConversationRemoved`, `onParticipantAdded`,
227
+ # `onParticipantUpdated`, `onParticipantRemoved`
228
+ # @param [String] pre_webhook_url The absolute url the pre-event webhook request
229
+ # should be sent to.
230
+ # @param [String] post_webhook_url The absolute url the post-event webhook request
231
+ # should be sent to.
232
+ # @param [webhook.Target] target The routing target of the webhook.
233
+ # @return [WebhookInstance] Updated WebhookInstance
234
+ def update(method: :unset, filters: :unset, pre_webhook_url: :unset, post_webhook_url: :unset, target: :unset)
235
+ context.update(
236
+ method: method,
237
+ filters: filters,
238
+ pre_webhook_url: pre_webhook_url,
239
+ post_webhook_url: post_webhook_url,
240
+ target: target,
241
+ )
242
+ end
243
+
244
+ ##
245
+ # Provide a user friendly representation
246
+ def to_s
247
+ values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
248
+ "<Twilio.Conversations.V1.WebhookInstance #{values}>"
249
+ end
250
+
251
+ ##
252
+ # Provide a detailed, user friendly representation
253
+ def inspect
254
+ values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
255
+ "<Twilio.Conversations.V1.WebhookInstance #{values}>"
256
+ end
257
+ end
258
+ end
259
+ end
260
+ end
261
+ end
262
+ end