twilio-ruby 5.56.0 → 5.58.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.travis.yml +24 -7
  4. data/CHANGES.md +76 -0
  5. data/Gemfile +1 -0
  6. data/README.md +2 -2
  7. data/examples/examples.rb +1 -1
  8. data/lib/twilio-ruby/rest/api/v2010/account/call.rb +12 -3
  9. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +4 -1
  10. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +1 -1
  11. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +11 -11
  12. data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +11 -11
  13. data/lib/twilio-ruby/rest/conversations/v1/conversation/message.rb +12 -5
  14. data/lib/twilio-ruby/rest/conversations/v1/participant_conversation.rb +312 -0
  15. data/lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb +12 -5
  16. data/lib/twilio-ruby/rest/conversations/v1/service/participant_conversation.rb +324 -0
  17. data/lib/twilio-ruby/rest/conversations/v1/service/user/user_conversation.rb +466 -0
  18. data/lib/twilio-ruby/rest/conversations/v1/service/user.rb +44 -0
  19. data/lib/twilio-ruby/rest/conversations/v1/service.rb +23 -0
  20. data/lib/twilio-ruby/rest/conversations/v1/user/user_conversation.rb +442 -0
  21. data/lib/twilio-ruby/rest/conversations/v1/user.rb +35 -0
  22. data/lib/twilio-ruby/rest/conversations/v1.rb +7 -0
  23. data/lib/twilio-ruby/rest/conversations.rb +6 -0
  24. data/lib/twilio-ruby/rest/insights/v1/call_summaries.rb +434 -0
  25. data/lib/twilio-ruby/rest/insights/v1.rb +7 -0
  26. data/lib/twilio-ruby/rest/insights.rb +6 -0
  27. data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +19 -1
  28. data/lib/twilio-ruby/rest/messaging/v1/service/us_app_to_person_usecase.rb +6 -2
  29. data/lib/twilio-ruby/rest/pricing/v2/country.rb +280 -0
  30. data/lib/twilio-ruby/rest/pricing/v2/number.rb +225 -0
  31. data/lib/twilio-ruby/rest/pricing/v2.rb +37 -0
  32. data/lib/twilio-ruby/rest/pricing.rb +19 -0
  33. data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +7 -0
  34. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +26 -5
  35. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +24 -5
  36. data/lib/twilio-ruby/version.rb +1 -1
  37. data/sonar-project.properties +13 -0
  38. metadata +10 -2
@@ -0,0 +1,312 @@
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 ParticipantConversationList < ListResource
14
+ ##
15
+ # Initialize the ParticipantConversationList
16
+ # @param [Version] version Version that contains the resource
17
+ # @return [ParticipantConversationList] ParticipantConversationList
18
+ def initialize(version)
19
+ super(version)
20
+
21
+ # Path Solution
22
+ @solution = {}
23
+ @uri = "/ParticipantConversations"
24
+ end
25
+
26
+ ##
27
+ # Lists ParticipantConversationInstance records from the API as a list.
28
+ # Unlike stream(), this operation is eager and will load `limit` records into
29
+ # memory before returning.
30
+ # @param [String] identity A unique string identifier for the conversation
31
+ # participant as {Conversation
32
+ # User}[https://www.twilio.com/docs/conversations/api/user-resource]. This
33
+ # parameter is non-null if (and only if) the participant is using the
34
+ # Conversations SDK to communicate. Limited to 256 characters.
35
+ # @param [String] address A unique string identifier for the conversation
36
+ # participant who's not a Conversation User. This parameter could be found in
37
+ # messaging_binding.address field of Participant resource. It should be
38
+ # url-encoded.
39
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
40
+ # guarantees to never return more than limit. Default is no limit
41
+ # @param [Integer] page_size Number of records to fetch per request, when
42
+ # not set will use the default value of 50 records. If no page_size is defined
43
+ # but a limit is defined, stream() will attempt to read the limit with the most
44
+ # efficient page size, i.e. min(limit, 1000)
45
+ # @return [Array] Array of up to limit results
46
+ def list(identity: :unset, address: :unset, limit: nil, page_size: nil)
47
+ self.stream(identity: identity, address: address, limit: limit, page_size: page_size).entries
48
+ end
49
+
50
+ ##
51
+ # Streams ParticipantConversationInstance records from the API as an Enumerable.
52
+ # This operation lazily loads records as efficiently as possible until the limit
53
+ # is reached.
54
+ # @param [String] identity A unique string identifier for the conversation
55
+ # participant as {Conversation
56
+ # User}[https://www.twilio.com/docs/conversations/api/user-resource]. This
57
+ # parameter is non-null if (and only if) the participant is using the
58
+ # Conversations SDK to communicate. Limited to 256 characters.
59
+ # @param [String] address A unique string identifier for the conversation
60
+ # participant who's not a Conversation User. This parameter could be found in
61
+ # messaging_binding.address field of Participant resource. It should be
62
+ # url-encoded.
63
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
64
+ # guarantees to never return more than limit. Default is no limit.
65
+ # @param [Integer] page_size Number of records to fetch per request, when
66
+ # not set will use the default value of 50 records. If no page_size is defined
67
+ # but a limit is defined, stream() will attempt to read the limit with the most
68
+ # efficient page size, i.e. min(limit, 1000)
69
+ # @return [Enumerable] Enumerable that will yield up to limit results
70
+ def stream(identity: :unset, address: :unset, limit: nil, page_size: nil)
71
+ limits = @version.read_limits(limit, page_size)
72
+
73
+ page = self.page(identity: identity, address: address, page_size: limits[:page_size], )
74
+
75
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
76
+ end
77
+
78
+ ##
79
+ # When passed a block, yields ParticipantConversationInstance records from the API.
80
+ # This operation lazily loads records as efficiently as possible until the limit
81
+ # is reached.
82
+ def each
83
+ limits = @version.read_limits
84
+
85
+ page = self.page(page_size: limits[:page_size], )
86
+
87
+ @version.stream(page,
88
+ limit: limits[:limit],
89
+ page_limit: limits[:page_limit]).each {|x| yield x}
90
+ end
91
+
92
+ ##
93
+ # Retrieve a single page of ParticipantConversationInstance records from the API.
94
+ # Request is executed immediately.
95
+ # @param [String] identity A unique string identifier for the conversation
96
+ # participant as {Conversation
97
+ # User}[https://www.twilio.com/docs/conversations/api/user-resource]. This
98
+ # parameter is non-null if (and only if) the participant is using the
99
+ # Conversations SDK to communicate. Limited to 256 characters.
100
+ # @param [String] address A unique string identifier for the conversation
101
+ # participant who's not a Conversation User. This parameter could be found in
102
+ # messaging_binding.address field of Participant resource. It should be
103
+ # url-encoded.
104
+ # @param [String] page_token PageToken provided by the API
105
+ # @param [Integer] page_number Page Number, this value is simply for client state
106
+ # @param [Integer] page_size Number of records to return, defaults to 50
107
+ # @return [Page] Page of ParticipantConversationInstance
108
+ def page(identity: :unset, address: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
109
+ params = Twilio::Values.of({
110
+ 'Identity' => identity,
111
+ 'Address' => address,
112
+ 'PageToken' => page_token,
113
+ 'Page' => page_number,
114
+ 'PageSize' => page_size,
115
+ })
116
+
117
+ response = @version.page('GET', @uri, params: params)
118
+
119
+ ParticipantConversationPage.new(@version, response, @solution)
120
+ end
121
+
122
+ ##
123
+ # Retrieve a single page of ParticipantConversationInstance records from the API.
124
+ # Request is executed immediately.
125
+ # @param [String] target_url API-generated URL for the requested results page
126
+ # @return [Page] Page of ParticipantConversationInstance
127
+ def get_page(target_url)
128
+ response = @version.domain.request(
129
+ 'GET',
130
+ target_url
131
+ )
132
+ ParticipantConversationPage.new(@version, response, @solution)
133
+ end
134
+
135
+ ##
136
+ # Provide a user friendly representation
137
+ def to_s
138
+ '#<Twilio.Conversations.V1.ParticipantConversationList>'
139
+ end
140
+ end
141
+
142
+ class ParticipantConversationPage < Page
143
+ ##
144
+ # Initialize the ParticipantConversationPage
145
+ # @param [Version] version Version that contains the resource
146
+ # @param [Response] response Response from the API
147
+ # @param [Hash] solution Path solution for the resource
148
+ # @return [ParticipantConversationPage] ParticipantConversationPage
149
+ def initialize(version, response, solution)
150
+ super(version, response)
151
+
152
+ # Path Solution
153
+ @solution = solution
154
+ end
155
+
156
+ ##
157
+ # Build an instance of ParticipantConversationInstance
158
+ # @param [Hash] payload Payload response from the API
159
+ # @return [ParticipantConversationInstance] ParticipantConversationInstance
160
+ def get_instance(payload)
161
+ ParticipantConversationInstance.new(@version, payload, )
162
+ end
163
+
164
+ ##
165
+ # Provide a user friendly representation
166
+ def to_s
167
+ '<Twilio.Conversations.V1.ParticipantConversationPage>'
168
+ end
169
+ end
170
+
171
+ class ParticipantConversationInstance < InstanceResource
172
+ ##
173
+ # Initialize the ParticipantConversationInstance
174
+ # @param [Version] version Version that contains the resource
175
+ # @param [Hash] payload payload that contains response from Twilio
176
+ # @return [ParticipantConversationInstance] ParticipantConversationInstance
177
+ def initialize(version, payload)
178
+ super(version)
179
+
180
+ # Marshaled Properties
181
+ @properties = {
182
+ 'account_sid' => payload['account_sid'],
183
+ 'chat_service_sid' => payload['chat_service_sid'],
184
+ 'participant_sid' => payload['participant_sid'],
185
+ 'participant_user_sid' => payload['participant_user_sid'],
186
+ 'participant_identity' => payload['participant_identity'],
187
+ 'participant_messaging_binding' => payload['participant_messaging_binding'],
188
+ 'conversation_sid' => payload['conversation_sid'],
189
+ 'conversation_unique_name' => payload['conversation_unique_name'],
190
+ 'conversation_friendly_name' => payload['conversation_friendly_name'],
191
+ 'conversation_attributes' => payload['conversation_attributes'],
192
+ 'conversation_date_created' => Twilio.deserialize_iso8601_datetime(payload['conversation_date_created']),
193
+ 'conversation_date_updated' => Twilio.deserialize_iso8601_datetime(payload['conversation_date_updated']),
194
+ 'conversation_created_by' => payload['conversation_created_by'],
195
+ 'conversation_state' => payload['conversation_state'],
196
+ 'conversation_timers' => payload['conversation_timers'],
197
+ 'links' => payload['links'],
198
+ }
199
+ end
200
+
201
+ ##
202
+ # @return [String] The unique ID of the Account responsible for this conversation.
203
+ def account_sid
204
+ @properties['account_sid']
205
+ end
206
+
207
+ ##
208
+ # @return [String] The unique ID of the Conversation Service this conversation belongs to.
209
+ def chat_service_sid
210
+ @properties['chat_service_sid']
211
+ end
212
+
213
+ ##
214
+ # @return [String] The unique ID of the Participant.
215
+ def participant_sid
216
+ @properties['participant_sid']
217
+ end
218
+
219
+ ##
220
+ # @return [String] The unique ID for the conversation participant as Conversation User.
221
+ def participant_user_sid
222
+ @properties['participant_user_sid']
223
+ end
224
+
225
+ ##
226
+ # @return [String] A unique string identifier for the conversation participant as Conversation User.
227
+ def participant_identity
228
+ @properties['participant_identity']
229
+ end
230
+
231
+ ##
232
+ # @return [Hash] Information about how this participant exchanges messages with the conversation.
233
+ def participant_messaging_binding
234
+ @properties['participant_messaging_binding']
235
+ end
236
+
237
+ ##
238
+ # @return [String] The unique ID of the Conversation this Participant belongs to.
239
+ def conversation_sid
240
+ @properties['conversation_sid']
241
+ end
242
+
243
+ ##
244
+ # @return [String] An application-defined string that uniquely identifies the Conversation resource
245
+ def conversation_unique_name
246
+ @properties['conversation_unique_name']
247
+ end
248
+
249
+ ##
250
+ # @return [String] The human-readable name of this conversation.
251
+ def conversation_friendly_name
252
+ @properties['conversation_friendly_name']
253
+ end
254
+
255
+ ##
256
+ # @return [String] An optional string metadata field you can use to store any data you wish.
257
+ def conversation_attributes
258
+ @properties['conversation_attributes']
259
+ end
260
+
261
+ ##
262
+ # @return [Time] The date that this conversation was created.
263
+ def conversation_date_created
264
+ @properties['conversation_date_created']
265
+ end
266
+
267
+ ##
268
+ # @return [Time] The date that this conversation was last updated.
269
+ def conversation_date_updated
270
+ @properties['conversation_date_updated']
271
+ end
272
+
273
+ ##
274
+ # @return [String] Creator of this conversation.
275
+ def conversation_created_by
276
+ @properties['conversation_created_by']
277
+ end
278
+
279
+ ##
280
+ # @return [participant_conversation.State] The current state of this User Conversation
281
+ def conversation_state
282
+ @properties['conversation_state']
283
+ end
284
+
285
+ ##
286
+ # @return [Hash] Timer date values for this conversation.
287
+ def conversation_timers
288
+ @properties['conversation_timers']
289
+ end
290
+
291
+ ##
292
+ # @return [String] Absolute URLs to access the participant and conversation of this Participant Conversation.
293
+ def links
294
+ @properties['links']
295
+ end
296
+
297
+ ##
298
+ # Provide a user friendly representation
299
+ def to_s
300
+ "<Twilio.Conversations.V1.ParticipantConversationInstance>"
301
+ end
302
+
303
+ ##
304
+ # Provide a detailed, user friendly representation
305
+ def inspect
306
+ "<Twilio.Conversations.V1.ParticipantConversationInstance>"
307
+ end
308
+ end
309
+ end
310
+ end
311
+ end
312
+ end
@@ -72,6 +72,8 @@ module Twilio
72
72
  # Lists MessageInstance records from the API as a list.
73
73
  # Unlike stream(), this operation is eager and will load `limit` records into
74
74
  # memory before returning.
75
+ # @param [message.OrderType] order The sort order of the returned messages. Can
76
+ # be: `asc` (ascending) or `desc` (descending), with `asc` as the default.
75
77
  # @param [Integer] limit Upper limit for the number of records to return. stream()
76
78
  # guarantees to never return more than limit. Default is no limit
77
79
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -79,14 +81,16 @@ module Twilio
79
81
  # but a limit is defined, stream() will attempt to read the limit with the most
80
82
  # efficient page size, i.e. min(limit, 1000)
81
83
  # @return [Array] Array of up to limit results
82
- def list(limit: nil, page_size: nil)
83
- self.stream(limit: limit, page_size: page_size).entries
84
+ def list(order: :unset, limit: nil, page_size: nil)
85
+ self.stream(order: order, limit: limit, page_size: page_size).entries
84
86
  end
85
87
 
86
88
  ##
87
89
  # Streams MessageInstance records from the API as an Enumerable.
88
90
  # This operation lazily loads records as efficiently as possible until the limit
89
91
  # is reached.
92
+ # @param [message.OrderType] order The sort order of the returned messages. Can
93
+ # be: `asc` (ascending) or `desc` (descending), with `asc` as the default.
90
94
  # @param [Integer] limit Upper limit for the number of records to return. stream()
91
95
  # guarantees to never return more than limit. Default is no limit.
92
96
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -94,10 +98,10 @@ module Twilio
94
98
  # but a limit is defined, stream() will attempt to read the limit with the most
95
99
  # efficient page size, i.e. min(limit, 1000)
96
100
  # @return [Enumerable] Enumerable that will yield up to limit results
97
- def stream(limit: nil, page_size: nil)
101
+ def stream(order: :unset, limit: nil, page_size: nil)
98
102
  limits = @version.read_limits(limit, page_size)
99
103
 
100
- page = self.page(page_size: limits[:page_size], )
104
+ page = self.page(order: order, page_size: limits[:page_size], )
101
105
 
102
106
  @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
103
107
  end
@@ -119,12 +123,15 @@ module Twilio
119
123
  ##
120
124
  # Retrieve a single page of MessageInstance records from the API.
121
125
  # Request is executed immediately.
126
+ # @param [message.OrderType] order The sort order of the returned messages. Can
127
+ # be: `asc` (ascending) or `desc` (descending), with `asc` as the default.
122
128
  # @param [String] page_token PageToken provided by the API
123
129
  # @param [Integer] page_number Page Number, this value is simply for client state
124
130
  # @param [Integer] page_size Number of records to return, defaults to 50
125
131
  # @return [Page] Page of MessageInstance
126
- def page(page_token: :unset, page_number: :unset, page_size: :unset)
132
+ def page(order: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
127
133
  params = Twilio::Values.of({
134
+ 'Order' => order,
128
135
  'PageToken' => page_token,
129
136
  'Page' => page_number,
130
137
  'PageSize' => page_size,
@@ -0,0 +1,324 @@
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 ServiceContext < InstanceContext
14
+ class ParticipantConversationList < ListResource
15
+ ##
16
+ # Initialize the ParticipantConversationList
17
+ # @param [Version] version Version that contains the resource
18
+ # @param [String] chat_service_sid The unique ID of the {Conversation
19
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] this
20
+ # conversation belongs to.
21
+ # @return [ParticipantConversationList] ParticipantConversationList
22
+ def initialize(version, chat_service_sid: nil)
23
+ super(version)
24
+
25
+ # Path Solution
26
+ @solution = {chat_service_sid: chat_service_sid}
27
+ @uri = "/Services/#{@solution[:chat_service_sid]}/ParticipantConversations"
28
+ end
29
+
30
+ ##
31
+ # Lists ParticipantConversationInstance 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 [String] identity A unique string identifier for the conversation
35
+ # participant as {Conversation
36
+ # User}[https://www.twilio.com/docs/conversations/api/user-resource]. This
37
+ # parameter is non-null if (and only if) the participant is using the
38
+ # Conversations SDK to communicate. Limited to 256 characters.
39
+ # @param [String] address A unique string identifier for the conversation
40
+ # participant who's not a Conversation User. This parameter could be found in
41
+ # messaging_binding.address field of Participant resource. It should be
42
+ # url-encoded.
43
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
44
+ # guarantees to never return more than limit. Default is no limit
45
+ # @param [Integer] page_size Number of records to fetch per request, when
46
+ # not set will use the default value of 50 records. If no page_size is defined
47
+ # but a limit is defined, stream() will attempt to read the limit with the most
48
+ # efficient page size, i.e. min(limit, 1000)
49
+ # @return [Array] Array of up to limit results
50
+ def list(identity: :unset, address: :unset, limit: nil, page_size: nil)
51
+ self.stream(identity: identity, address: address, limit: limit, page_size: page_size).entries
52
+ end
53
+
54
+ ##
55
+ # Streams ParticipantConversationInstance records from the API as an Enumerable.
56
+ # This operation lazily loads records as efficiently as possible until the limit
57
+ # is reached.
58
+ # @param [String] identity A unique string identifier for the conversation
59
+ # participant as {Conversation
60
+ # User}[https://www.twilio.com/docs/conversations/api/user-resource]. This
61
+ # parameter is non-null if (and only if) the participant is using the
62
+ # Conversations SDK to communicate. Limited to 256 characters.
63
+ # @param [String] address A unique string identifier for the conversation
64
+ # participant who's not a Conversation User. This parameter could be found in
65
+ # messaging_binding.address field of Participant resource. It should be
66
+ # url-encoded.
67
+ # @param [Integer] limit Upper limit for the number of records to return. stream()
68
+ # guarantees to never return more than limit. Default is no limit.
69
+ # @param [Integer] page_size Number of records to fetch per request, when
70
+ # not set will use the default value of 50 records. If no page_size is defined
71
+ # but a limit is defined, stream() will attempt to read the limit with the most
72
+ # efficient page size, i.e. min(limit, 1000)
73
+ # @return [Enumerable] Enumerable that will yield up to limit results
74
+ def stream(identity: :unset, address: :unset, limit: nil, page_size: nil)
75
+ limits = @version.read_limits(limit, page_size)
76
+
77
+ page = self.page(identity: identity, address: address, page_size: limits[:page_size], )
78
+
79
+ @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
80
+ end
81
+
82
+ ##
83
+ # When passed a block, yields ParticipantConversationInstance records from the API.
84
+ # This operation lazily loads records as efficiently as possible until the limit
85
+ # is reached.
86
+ def each
87
+ limits = @version.read_limits
88
+
89
+ page = self.page(page_size: limits[:page_size], )
90
+
91
+ @version.stream(page,
92
+ limit: limits[:limit],
93
+ page_limit: limits[:page_limit]).each {|x| yield x}
94
+ end
95
+
96
+ ##
97
+ # Retrieve a single page of ParticipantConversationInstance records from the API.
98
+ # Request is executed immediately.
99
+ # @param [String] identity A unique string identifier for the conversation
100
+ # participant as {Conversation
101
+ # User}[https://www.twilio.com/docs/conversations/api/user-resource]. This
102
+ # parameter is non-null if (and only if) the participant is using the
103
+ # Conversations SDK to communicate. Limited to 256 characters.
104
+ # @param [String] address A unique string identifier for the conversation
105
+ # participant who's not a Conversation User. This parameter could be found in
106
+ # messaging_binding.address field of Participant resource. It should be
107
+ # url-encoded.
108
+ # @param [String] page_token PageToken provided by the API
109
+ # @param [Integer] page_number Page Number, this value is simply for client state
110
+ # @param [Integer] page_size Number of records to return, defaults to 50
111
+ # @return [Page] Page of ParticipantConversationInstance
112
+ def page(identity: :unset, address: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
113
+ params = Twilio::Values.of({
114
+ 'Identity' => identity,
115
+ 'Address' => address,
116
+ 'PageToken' => page_token,
117
+ 'Page' => page_number,
118
+ 'PageSize' => page_size,
119
+ })
120
+
121
+ response = @version.page('GET', @uri, params: params)
122
+
123
+ ParticipantConversationPage.new(@version, response, @solution)
124
+ end
125
+
126
+ ##
127
+ # Retrieve a single page of ParticipantConversationInstance records from the API.
128
+ # Request is executed immediately.
129
+ # @param [String] target_url API-generated URL for the requested results page
130
+ # @return [Page] Page of ParticipantConversationInstance
131
+ def get_page(target_url)
132
+ response = @version.domain.request(
133
+ 'GET',
134
+ target_url
135
+ )
136
+ ParticipantConversationPage.new(@version, response, @solution)
137
+ end
138
+
139
+ ##
140
+ # Provide a user friendly representation
141
+ def to_s
142
+ '#<Twilio.Conversations.V1.ParticipantConversationList>'
143
+ end
144
+ end
145
+
146
+ class ParticipantConversationPage < Page
147
+ ##
148
+ # Initialize the ParticipantConversationPage
149
+ # @param [Version] version Version that contains the resource
150
+ # @param [Response] response Response from the API
151
+ # @param [Hash] solution Path solution for the resource
152
+ # @return [ParticipantConversationPage] ParticipantConversationPage
153
+ def initialize(version, response, solution)
154
+ super(version, response)
155
+
156
+ # Path Solution
157
+ @solution = solution
158
+ end
159
+
160
+ ##
161
+ # Build an instance of ParticipantConversationInstance
162
+ # @param [Hash] payload Payload response from the API
163
+ # @return [ParticipantConversationInstance] ParticipantConversationInstance
164
+ def get_instance(payload)
165
+ ParticipantConversationInstance.new(
166
+ @version,
167
+ payload,
168
+ chat_service_sid: @solution[:chat_service_sid],
169
+ )
170
+ end
171
+
172
+ ##
173
+ # Provide a user friendly representation
174
+ def to_s
175
+ '<Twilio.Conversations.V1.ParticipantConversationPage>'
176
+ end
177
+ end
178
+
179
+ class ParticipantConversationInstance < InstanceResource
180
+ ##
181
+ # Initialize the ParticipantConversationInstance
182
+ # @param [Version] version Version that contains the resource
183
+ # @param [Hash] payload payload that contains response from Twilio
184
+ # @param [String] chat_service_sid The unique ID of the {Conversation
185
+ # Service}[https://www.twilio.com/docs/conversations/api/service-resource] this
186
+ # conversation belongs to.
187
+ # @return [ParticipantConversationInstance] ParticipantConversationInstance
188
+ def initialize(version, payload, chat_service_sid: nil)
189
+ super(version)
190
+
191
+ # Marshaled Properties
192
+ @properties = {
193
+ 'account_sid' => payload['account_sid'],
194
+ 'chat_service_sid' => payload['chat_service_sid'],
195
+ 'participant_sid' => payload['participant_sid'],
196
+ 'participant_user_sid' => payload['participant_user_sid'],
197
+ 'participant_identity' => payload['participant_identity'],
198
+ 'participant_messaging_binding' => payload['participant_messaging_binding'],
199
+ 'conversation_sid' => payload['conversation_sid'],
200
+ 'conversation_unique_name' => payload['conversation_unique_name'],
201
+ 'conversation_friendly_name' => payload['conversation_friendly_name'],
202
+ 'conversation_attributes' => payload['conversation_attributes'],
203
+ 'conversation_date_created' => Twilio.deserialize_iso8601_datetime(payload['conversation_date_created']),
204
+ 'conversation_date_updated' => Twilio.deserialize_iso8601_datetime(payload['conversation_date_updated']),
205
+ 'conversation_created_by' => payload['conversation_created_by'],
206
+ 'conversation_state' => payload['conversation_state'],
207
+ 'conversation_timers' => payload['conversation_timers'],
208
+ 'links' => payload['links'],
209
+ }
210
+ end
211
+
212
+ ##
213
+ # @return [String] The unique ID of the Account responsible for this conversation.
214
+ def account_sid
215
+ @properties['account_sid']
216
+ end
217
+
218
+ ##
219
+ # @return [String] The unique ID of the Conversation Service this conversation belongs to.
220
+ def chat_service_sid
221
+ @properties['chat_service_sid']
222
+ end
223
+
224
+ ##
225
+ # @return [String] The unique ID of the Participant.
226
+ def participant_sid
227
+ @properties['participant_sid']
228
+ end
229
+
230
+ ##
231
+ # @return [String] The unique ID for the conversation participant as Conversation User.
232
+ def participant_user_sid
233
+ @properties['participant_user_sid']
234
+ end
235
+
236
+ ##
237
+ # @return [String] A unique string identifier for the conversation participant as Conversation User.
238
+ def participant_identity
239
+ @properties['participant_identity']
240
+ end
241
+
242
+ ##
243
+ # @return [Hash] Information about how this participant exchanges messages with the conversation.
244
+ def participant_messaging_binding
245
+ @properties['participant_messaging_binding']
246
+ end
247
+
248
+ ##
249
+ # @return [String] The unique ID of the Conversation this Participant belongs to.
250
+ def conversation_sid
251
+ @properties['conversation_sid']
252
+ end
253
+
254
+ ##
255
+ # @return [String] An application-defined string that uniquely identifies the Conversation resource.
256
+ def conversation_unique_name
257
+ @properties['conversation_unique_name']
258
+ end
259
+
260
+ ##
261
+ # @return [String] The human-readable name of this conversation.
262
+ def conversation_friendly_name
263
+ @properties['conversation_friendly_name']
264
+ end
265
+
266
+ ##
267
+ # @return [String] An optional string metadata field you can use to store any data you wish.
268
+ def conversation_attributes
269
+ @properties['conversation_attributes']
270
+ end
271
+
272
+ ##
273
+ # @return [Time] The date that this conversation was created.
274
+ def conversation_date_created
275
+ @properties['conversation_date_created']
276
+ end
277
+
278
+ ##
279
+ # @return [Time] The date that this conversation was last updated.
280
+ def conversation_date_updated
281
+ @properties['conversation_date_updated']
282
+ end
283
+
284
+ ##
285
+ # @return [String] Creator of this conversation.
286
+ def conversation_created_by
287
+ @properties['conversation_created_by']
288
+ end
289
+
290
+ ##
291
+ # @return [participant_conversation.State] The current state of this User Conversation
292
+ def conversation_state
293
+ @properties['conversation_state']
294
+ end
295
+
296
+ ##
297
+ # @return [Hash] Timer date values for this conversation.
298
+ def conversation_timers
299
+ @properties['conversation_timers']
300
+ end
301
+
302
+ ##
303
+ # @return [String] Absolute URLs to access the participant and conversation of this Participant Conversation.
304
+ def links
305
+ @properties['links']
306
+ end
307
+
308
+ ##
309
+ # Provide a user friendly representation
310
+ def to_s
311
+ "<Twilio.Conversations.V1.ParticipantConversationInstance>"
312
+ end
313
+
314
+ ##
315
+ # Provide a detailed, user friendly representation
316
+ def inspect
317
+ "<Twilio.Conversations.V1.ParticipantConversationInstance>"
318
+ end
319
+ end
320
+ end
321
+ end
322
+ end
323
+ end
324
+ end