voiceml 0.9.2 → 0.9.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.
- checksums.yaml +4 -4
- data/README.md +17 -13
- data/lib/voiceml/client.rb +53 -13
- data/lib/voiceml/errors.rb +15 -2
- data/lib/voiceml/models/accounts.rb +47 -3
- data/lib/voiceml/models/applications.rb +6 -0
- data/lib/voiceml/models/assistants_v1.rb +40 -0
- data/lib/voiceml/models/calls.rb +4 -0
- data/lib/voiceml/models/common.rb +35 -4
- data/lib/voiceml/models/conferences.rb +8 -0
- data/lib/voiceml/models/conversations_v1.rb +131 -29
- data/lib/voiceml/models/diagnostics.rb +33 -12
- data/lib/voiceml/models/exports.rb +58 -0
- data/lib/voiceml/models/incoming_phone_numbers.rb +4 -0
- data/lib/voiceml/models/media.rb +4 -0
- data/lib/voiceml/models/messages.rb +29 -0
- data/lib/voiceml/models/messaging_v1.rb +35 -2
- data/lib/voiceml/models/monitor_v1.rb +54 -0
- data/lib/voiceml/models/notifications.rb +2 -0
- data/lib/voiceml/models/outgoing_caller_ids.rb +6 -0
- data/lib/voiceml/models/payments.rb +2 -0
- data/lib/voiceml/models/pricing.rb +38 -4
- data/lib/voiceml/models/queues.rb +8 -0
- data/lib/voiceml/models/recordings.rb +5 -1
- data/lib/voiceml/models/routes_v2.rb +6 -2
- data/lib/voiceml/models/sip.rb +34 -6
- data/lib/voiceml/models/sip_registrations.rb +49 -0
- data/lib/voiceml/models/siprec.rb +5 -17
- data/lib/voiceml/models/streams.rb +4 -16
- data/lib/voiceml/models/transcriptions.rb +35 -4
- data/lib/voiceml/models/usage_records.rb +48 -0
- data/lib/voiceml/models/user_defined_messages.rb +2 -0
- data/lib/voiceml/models/voice_v1.rb +29 -19
- data/lib/voiceml/request_validator.rb +125 -0
- data/lib/voiceml/resources/accounts.rb +75 -0
- data/lib/voiceml/resources/applications.rb +3 -1
- data/lib/voiceml/resources/assistants_v1.rb +53 -77
- data/lib/voiceml/resources/base.rb +138 -16
- data/lib/voiceml/resources/calls.rb +34 -49
- data/lib/voiceml/resources/conferences.rb +26 -5
- data/lib/voiceml/resources/conversations_v1.rb +147 -172
- data/lib/voiceml/resources/diagnostics.rb +20 -35
- data/lib/voiceml/resources/exports.rb +36 -0
- data/lib/voiceml/resources/incoming_phone_numbers.rb +53 -32
- data/lib/voiceml/resources/messages.rb +79 -15
- data/lib/voiceml/resources/messaging_v1.rb +47 -13
- data/lib/voiceml/resources/monitor_v1.rb +68 -0
- data/lib/voiceml/resources/notifications.rb +1 -1
- data/lib/voiceml/resources/outgoing_caller_ids.rb +77 -0
- data/lib/voiceml/resources/pricing.rb +13 -5
- data/lib/voiceml/resources/queues.rb +6 -5
- data/lib/voiceml/resources/recordings.rb +39 -5
- data/lib/voiceml/resources/routes_v2.rb +10 -4
- data/lib/voiceml/resources/sip.rb +30 -11
- data/lib/voiceml/resources/transcriptions.rb +40 -0
- data/lib/voiceml/resources/usage_records.rb +51 -0
- data/lib/voiceml/resources/voice_v1.rb +31 -38
- data/lib/voiceml/transport.rb +277 -230
- data/lib/voiceml/version.rb +1 -1
- data/lib/voiceml.rb +14 -15
- metadata +18 -6
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative 'base'
|
|
4
|
+
|
|
3
5
|
require_relative '../models/conversations_v1'
|
|
4
6
|
|
|
5
7
|
module VoiceML
|
|
@@ -27,6 +29,8 @@ module VoiceML
|
|
|
27
29
|
# webhooks, message receipts).
|
|
28
30
|
# ============================================================================
|
|
29
31
|
class ConversationsV1ConversationsResource
|
|
32
|
+
include V1Pages
|
|
33
|
+
include FieldMapping
|
|
30
34
|
CONVERSATION_FIELDS = {
|
|
31
35
|
'FriendlyName' => :friendly_name,
|
|
32
36
|
'UniqueName' => :unique_name,
|
|
@@ -106,22 +110,22 @@ module VoiceML
|
|
|
106
110
|
|
|
107
111
|
def create(**kwargs)
|
|
108
112
|
ConversationsV1Conversation.from_hash(
|
|
109
|
-
@transport.request(:post, '/v1/Conversations', form:
|
|
113
|
+
@transport.request(:post, '/v1/Conversations', form: form_params(CONVERSATION_FIELDS, kwargs))
|
|
110
114
|
)
|
|
111
115
|
end
|
|
112
116
|
|
|
113
117
|
def fetch(sid)
|
|
114
|
-
ConversationsV1Conversation.from_hash(@transport.request(:get, "/v1/Conversations/#{sid}"))
|
|
118
|
+
ConversationsV1Conversation.from_hash(@transport.request(:get, "/v1/Conversations/#{encode_path_segment(sid)}"))
|
|
115
119
|
end
|
|
116
120
|
|
|
117
121
|
def update(sid, **kwargs)
|
|
118
122
|
ConversationsV1Conversation.from_hash(
|
|
119
|
-
@transport.request(:post, "/v1/Conversations/#{sid}", form:
|
|
123
|
+
@transport.request(:post, "/v1/Conversations/#{encode_path_segment(sid)}", form: form_params(UPDATE_FIELDS, kwargs))
|
|
120
124
|
)
|
|
121
125
|
end
|
|
122
126
|
|
|
123
127
|
def delete(sid)
|
|
124
|
-
@transport.request(:delete, "/v1/Conversations/#{sid}")
|
|
128
|
+
@transport.request(:delete, "/v1/Conversations/#{encode_path_segment(sid)}")
|
|
125
129
|
nil
|
|
126
130
|
end
|
|
127
131
|
|
|
@@ -130,32 +134,32 @@ module VoiceML
|
|
|
130
134
|
params = {}
|
|
131
135
|
params['PageSize'] = page_size unless page_size.nil?
|
|
132
136
|
ConversationsV1ConversationMessageList.new(
|
|
133
|
-
@transport.request(:get, "/v1/Conversations/#{conversation_sid}/Messages", params: params)
|
|
137
|
+
@transport.request(:get, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Messages", params: params)
|
|
134
138
|
)
|
|
135
139
|
end
|
|
136
140
|
|
|
137
141
|
def create_message(conversation_sid, **kwargs)
|
|
138
142
|
ConversationsV1ConversationMessage.from_hash(
|
|
139
|
-
@transport.request(:post, "/v1/Conversations/#{conversation_sid}/Messages",
|
|
140
|
-
form:
|
|
143
|
+
@transport.request(:post, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Messages",
|
|
144
|
+
form: form_params(MESSAGE_FIELDS, kwargs))
|
|
141
145
|
)
|
|
142
146
|
end
|
|
143
147
|
|
|
144
148
|
def fetch_message(conversation_sid, message_sid)
|
|
145
149
|
ConversationsV1ConversationMessage.from_hash(
|
|
146
|
-
@transport.request(:get, "/v1/Conversations/#{conversation_sid}/Messages/#{message_sid}")
|
|
150
|
+
@transport.request(:get, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Messages/#{encode_path_segment(message_sid)}")
|
|
147
151
|
)
|
|
148
152
|
end
|
|
149
153
|
|
|
150
154
|
def update_message(conversation_sid, message_sid, **kwargs)
|
|
151
155
|
ConversationsV1ConversationMessage.from_hash(
|
|
152
|
-
@transport.request(:post, "/v1/Conversations/#{conversation_sid}/Messages/#{message_sid}",
|
|
153
|
-
form:
|
|
156
|
+
@transport.request(:post, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Messages/#{encode_path_segment(message_sid)}",
|
|
157
|
+
form: form_params(MESSAGE_UPDATE_FIELDS, kwargs))
|
|
154
158
|
)
|
|
155
159
|
end
|
|
156
160
|
|
|
157
161
|
def delete_message(conversation_sid, message_sid)
|
|
158
|
-
@transport.request(:delete, "/v1/Conversations/#{conversation_sid}/Messages/#{message_sid}")
|
|
162
|
+
@transport.request(:delete, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Messages/#{encode_path_segment(message_sid)}")
|
|
159
163
|
nil
|
|
160
164
|
end
|
|
161
165
|
|
|
@@ -164,14 +168,14 @@ module VoiceML
|
|
|
164
168
|
params = {}
|
|
165
169
|
params['PageSize'] = page_size unless page_size.nil?
|
|
166
170
|
ConversationsV1ConversationMessageReceiptList.new(
|
|
167
|
-
@transport.request(:get, "/v1/Conversations/#{conversation_sid}/Messages/#{message_sid}/Receipts",
|
|
171
|
+
@transport.request(:get, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Messages/#{encode_path_segment(message_sid)}/Receipts",
|
|
168
172
|
params: params)
|
|
169
173
|
)
|
|
170
174
|
end
|
|
171
175
|
|
|
172
176
|
def fetch_message_receipt(conversation_sid, message_sid, sid)
|
|
173
177
|
ConversationsV1ConversationMessageReceipt.from_hash(
|
|
174
|
-
@transport.request(:get, "/v1/Conversations/#{conversation_sid}/Messages/#{message_sid}/Receipts/#{sid}")
|
|
178
|
+
@transport.request(:get, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Messages/#{encode_path_segment(message_sid)}/Receipts/#{encode_path_segment(sid)}")
|
|
175
179
|
)
|
|
176
180
|
end
|
|
177
181
|
|
|
@@ -180,32 +184,32 @@ module VoiceML
|
|
|
180
184
|
params = {}
|
|
181
185
|
params['PageSize'] = page_size unless page_size.nil?
|
|
182
186
|
ConversationsV1ConversationParticipantList.new(
|
|
183
|
-
@transport.request(:get, "/v1/Conversations/#{conversation_sid}/Participants", params: params)
|
|
187
|
+
@transport.request(:get, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Participants", params: params)
|
|
184
188
|
)
|
|
185
189
|
end
|
|
186
190
|
|
|
187
191
|
def create_participant(conversation_sid, **kwargs)
|
|
188
192
|
ConversationsV1ConversationParticipant.from_hash(
|
|
189
|
-
@transport.request(:post, "/v1/Conversations/#{conversation_sid}/Participants",
|
|
190
|
-
form:
|
|
193
|
+
@transport.request(:post, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Participants",
|
|
194
|
+
form: form_params(PARTICIPANT_FIELDS, kwargs))
|
|
191
195
|
)
|
|
192
196
|
end
|
|
193
197
|
|
|
194
198
|
def fetch_participant(conversation_sid, participant_sid)
|
|
195
199
|
ConversationsV1ConversationParticipant.from_hash(
|
|
196
|
-
@transport.request(:get, "/v1/Conversations/#{conversation_sid}/Participants/#{participant_sid}")
|
|
200
|
+
@transport.request(:get, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Participants/#{encode_path_segment(participant_sid)}")
|
|
197
201
|
)
|
|
198
202
|
end
|
|
199
203
|
|
|
200
204
|
def update_participant(conversation_sid, participant_sid, **kwargs)
|
|
201
205
|
ConversationsV1ConversationParticipant.from_hash(
|
|
202
|
-
@transport.request(:post, "/v1/Conversations/#{conversation_sid}/Participants/#{participant_sid}",
|
|
203
|
-
form:
|
|
206
|
+
@transport.request(:post, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Participants/#{encode_path_segment(participant_sid)}",
|
|
207
|
+
form: form_params(PARTICIPANT_UPDATE_FIELDS, kwargs))
|
|
204
208
|
)
|
|
205
209
|
end
|
|
206
210
|
|
|
207
211
|
def delete_participant(conversation_sid, participant_sid)
|
|
208
|
-
@transport.request(:delete, "/v1/Conversations/#{conversation_sid}/Participants/#{participant_sid}")
|
|
212
|
+
@transport.request(:delete, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Participants/#{encode_path_segment(participant_sid)}")
|
|
209
213
|
nil
|
|
210
214
|
end
|
|
211
215
|
|
|
@@ -214,54 +218,44 @@ module VoiceML
|
|
|
214
218
|
params = {}
|
|
215
219
|
params['PageSize'] = page_size unless page_size.nil?
|
|
216
220
|
ConversationsV1ConversationScopedWebhookList.new(
|
|
217
|
-
@transport.request(:get, "/v1/Conversations/#{conversation_sid}/Webhooks", params: params)
|
|
221
|
+
@transport.request(:get, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Webhooks", params: params)
|
|
218
222
|
)
|
|
219
223
|
end
|
|
220
224
|
|
|
221
225
|
def create_webhook(conversation_sid, target:, **kwargs)
|
|
222
226
|
kwargs[:target] = target
|
|
223
227
|
ConversationsV1ConversationScopedWebhook.from_hash(
|
|
224
|
-
@transport.request(:post, "/v1/Conversations/#{conversation_sid}/Webhooks",
|
|
225
|
-
form:
|
|
228
|
+
@transport.request(:post, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Webhooks",
|
|
229
|
+
form: form_params(WEBHOOK_FIELDS, kwargs))
|
|
226
230
|
)
|
|
227
231
|
end
|
|
228
232
|
|
|
229
233
|
def fetch_webhook(conversation_sid, webhook_sid)
|
|
230
234
|
ConversationsV1ConversationScopedWebhook.from_hash(
|
|
231
|
-
@transport.request(:get, "/v1/Conversations/#{conversation_sid}/Webhooks/#{webhook_sid}")
|
|
235
|
+
@transport.request(:get, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Webhooks/#{encode_path_segment(webhook_sid)}")
|
|
232
236
|
)
|
|
233
237
|
end
|
|
234
238
|
|
|
235
239
|
def update_webhook(conversation_sid, webhook_sid, **kwargs)
|
|
236
240
|
ConversationsV1ConversationScopedWebhook.from_hash(
|
|
237
|
-
@transport.request(:post, "/v1/Conversations/#{conversation_sid}/Webhooks/#{webhook_sid}",
|
|
238
|
-
form:
|
|
241
|
+
@transport.request(:post, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Webhooks/#{encode_path_segment(webhook_sid)}",
|
|
242
|
+
form: form_params(WEBHOOK_UPDATE_FIELDS, kwargs))
|
|
239
243
|
)
|
|
240
244
|
end
|
|
241
245
|
|
|
242
246
|
def delete_webhook(conversation_sid, webhook_sid)
|
|
243
|
-
@transport.request(:delete, "/v1/Conversations/#{conversation_sid}/Webhooks/#{webhook_sid}")
|
|
247
|
+
@transport.request(:delete, "/v1/Conversations/#{encode_path_segment(conversation_sid)}/Webhooks/#{encode_path_segment(webhook_sid)}")
|
|
244
248
|
nil
|
|
245
249
|
end
|
|
246
250
|
|
|
247
|
-
private
|
|
248
|
-
|
|
249
|
-
def build_form(map, kwargs)
|
|
250
|
-
out = {}
|
|
251
|
-
map.each do |wire, k|
|
|
252
|
-
value = kwargs[k]
|
|
253
|
-
next if value.nil?
|
|
254
|
-
|
|
255
|
-
out[wire] = value
|
|
256
|
-
end
|
|
257
|
-
out
|
|
258
|
-
end
|
|
259
251
|
end
|
|
260
252
|
|
|
261
253
|
# ============================================================================
|
|
262
254
|
# /v1/Roles
|
|
263
255
|
# ============================================================================
|
|
264
256
|
class ConversationsV1RolesResource
|
|
257
|
+
include V1Pages
|
|
258
|
+
include FieldMapping
|
|
265
259
|
def initialize(transport)
|
|
266
260
|
@transport = transport
|
|
267
261
|
end
|
|
@@ -278,16 +272,16 @@ module VoiceML
|
|
|
278
272
|
end
|
|
279
273
|
|
|
280
274
|
def fetch(sid)
|
|
281
|
-
ConversationsV1Role.from_hash(@transport.request(:get, "/v1/Roles/#{sid}"))
|
|
275
|
+
ConversationsV1Role.from_hash(@transport.request(:get, "/v1/Roles/#{encode_path_segment(sid)}"))
|
|
282
276
|
end
|
|
283
277
|
|
|
284
278
|
def update(sid, permission:)
|
|
285
279
|
form = { 'Permission' => Array(permission) }
|
|
286
|
-
ConversationsV1Role.from_hash(@transport.request(:post, "/v1/Roles/#{sid}", form: form))
|
|
280
|
+
ConversationsV1Role.from_hash(@transport.request(:post, "/v1/Roles/#{encode_path_segment(sid)}", form: form))
|
|
287
281
|
end
|
|
288
282
|
|
|
289
283
|
def delete(sid)
|
|
290
|
-
@transport.request(:delete, "/v1/Roles/#{sid}")
|
|
284
|
+
@transport.request(:delete, "/v1/Roles/#{encode_path_segment(sid)}")
|
|
291
285
|
nil
|
|
292
286
|
end
|
|
293
287
|
end
|
|
@@ -296,6 +290,8 @@ module VoiceML
|
|
|
296
290
|
# /v1/Users + nested /v1/Users/{Sid}/Conversations (UserConversation)
|
|
297
291
|
# ============================================================================
|
|
298
292
|
class ConversationsV1UsersResource
|
|
293
|
+
include V1Pages
|
|
294
|
+
include FieldMapping
|
|
299
295
|
USER_FIELDS = {
|
|
300
296
|
'Identity' => :identity,
|
|
301
297
|
'FriendlyName' => :friendly_name,
|
|
@@ -327,21 +323,21 @@ module VoiceML
|
|
|
327
323
|
|
|
328
324
|
def create(identity:, friendly_name: nil, attributes: nil, role_sid: nil)
|
|
329
325
|
kwargs = { identity: identity, friendly_name: friendly_name, attributes: attributes, role_sid: role_sid }
|
|
330
|
-
ConversationsV1User.from_hash(@transport.request(:post, '/v1/Users', form:
|
|
326
|
+
ConversationsV1User.from_hash(@transport.request(:post, '/v1/Users', form: form_params(USER_FIELDS, kwargs)))
|
|
331
327
|
end
|
|
332
328
|
|
|
333
329
|
def fetch(sid)
|
|
334
|
-
ConversationsV1User.from_hash(@transport.request(:get, "/v1/Users/#{sid}"))
|
|
330
|
+
ConversationsV1User.from_hash(@transport.request(:get, "/v1/Users/#{encode_path_segment(sid)}"))
|
|
335
331
|
end
|
|
336
332
|
|
|
337
333
|
def update(sid, **kwargs)
|
|
338
334
|
ConversationsV1User.from_hash(
|
|
339
|
-
@transport.request(:post, "/v1/Users/#{sid}", form:
|
|
335
|
+
@transport.request(:post, "/v1/Users/#{encode_path_segment(sid)}", form: form_params(USER_UPDATE_FIELDS, kwargs))
|
|
340
336
|
)
|
|
341
337
|
end
|
|
342
338
|
|
|
343
339
|
def delete(sid)
|
|
344
|
-
@transport.request(:delete, "/v1/Users/#{sid}")
|
|
340
|
+
@transport.request(:delete, "/v1/Users/#{encode_path_segment(sid)}")
|
|
345
341
|
nil
|
|
346
342
|
end
|
|
347
343
|
|
|
@@ -350,46 +346,36 @@ module VoiceML
|
|
|
350
346
|
params = {}
|
|
351
347
|
params['PageSize'] = page_size unless page_size.nil?
|
|
352
348
|
ConversationsV1UserConversationList.new(
|
|
353
|
-
@transport.request(:get, "/v1/Users/#{user_sid}/Conversations", params: params)
|
|
349
|
+
@transport.request(:get, "/v1/Users/#{encode_path_segment(user_sid)}/Conversations", params: params)
|
|
354
350
|
)
|
|
355
351
|
end
|
|
356
352
|
|
|
357
353
|
def fetch_user_conversation(user_sid, conversation_sid)
|
|
358
354
|
ConversationsV1UserConversation.from_hash(
|
|
359
|
-
@transport.request(:get, "/v1/Users/#{user_sid}/Conversations/#{conversation_sid}")
|
|
355
|
+
@transport.request(:get, "/v1/Users/#{encode_path_segment(user_sid)}/Conversations/#{encode_path_segment(conversation_sid)}")
|
|
360
356
|
)
|
|
361
357
|
end
|
|
362
358
|
|
|
363
359
|
def update_user_conversation(user_sid, conversation_sid, **kwargs)
|
|
364
360
|
ConversationsV1UserConversation.from_hash(
|
|
365
|
-
@transport.request(:post, "/v1/Users/#{user_sid}/Conversations/#{conversation_sid}",
|
|
366
|
-
form:
|
|
361
|
+
@transport.request(:post, "/v1/Users/#{encode_path_segment(user_sid)}/Conversations/#{encode_path_segment(conversation_sid)}",
|
|
362
|
+
form: form_params(USER_CONVERSATION_UPDATE_FIELDS, kwargs))
|
|
367
363
|
)
|
|
368
364
|
end
|
|
369
365
|
|
|
370
366
|
def delete_user_conversation(user_sid, conversation_sid)
|
|
371
|
-
@transport.request(:delete, "/v1/Users/#{user_sid}/Conversations/#{conversation_sid}")
|
|
367
|
+
@transport.request(:delete, "/v1/Users/#{encode_path_segment(user_sid)}/Conversations/#{encode_path_segment(conversation_sid)}")
|
|
372
368
|
nil
|
|
373
369
|
end
|
|
374
370
|
|
|
375
|
-
private
|
|
376
|
-
|
|
377
|
-
def build_form(map, kwargs)
|
|
378
|
-
out = {}
|
|
379
|
-
map.each do |wire, k|
|
|
380
|
-
value = kwargs[k]
|
|
381
|
-
next if value.nil?
|
|
382
|
-
|
|
383
|
-
out[wire] = value
|
|
384
|
-
end
|
|
385
|
-
out
|
|
386
|
-
end
|
|
387
371
|
end
|
|
388
372
|
|
|
389
373
|
# ============================================================================
|
|
390
374
|
# /v1/Credentials (push credentials — distinct from /SIP/Credentials)
|
|
391
375
|
# ============================================================================
|
|
392
376
|
class ConversationsV1CredentialsResource
|
|
377
|
+
include V1Pages
|
|
378
|
+
include FieldMapping
|
|
393
379
|
CREDENTIAL_FIELDS = {
|
|
394
380
|
'Type' => :type,
|
|
395
381
|
'FriendlyName' => :friendly_name,
|
|
@@ -413,43 +399,33 @@ module VoiceML
|
|
|
413
399
|
def create(type:, **kwargs)
|
|
414
400
|
kwargs[:type] = type
|
|
415
401
|
ConversationsV1Credential.from_hash(
|
|
416
|
-
@transport.request(:post, '/v1/Credentials', form:
|
|
402
|
+
@transport.request(:post, '/v1/Credentials', form: form_params(CREDENTIAL_FIELDS, kwargs))
|
|
417
403
|
)
|
|
418
404
|
end
|
|
419
405
|
|
|
420
406
|
def fetch(sid)
|
|
421
|
-
ConversationsV1Credential.from_hash(@transport.request(:get, "/v1/Credentials/#{sid}"))
|
|
407
|
+
ConversationsV1Credential.from_hash(@transport.request(:get, "/v1/Credentials/#{encode_path_segment(sid)}"))
|
|
422
408
|
end
|
|
423
409
|
|
|
424
410
|
def update(sid, **kwargs)
|
|
425
411
|
ConversationsV1Credential.from_hash(
|
|
426
|
-
@transport.request(:post, "/v1/Credentials/#{sid}", form:
|
|
412
|
+
@transport.request(:post, "/v1/Credentials/#{encode_path_segment(sid)}", form: form_params(CREDENTIAL_FIELDS, kwargs))
|
|
427
413
|
)
|
|
428
414
|
end
|
|
429
415
|
|
|
430
416
|
def delete(sid)
|
|
431
|
-
@transport.request(:delete, "/v1/Credentials/#{sid}")
|
|
417
|
+
@transport.request(:delete, "/v1/Credentials/#{encode_path_segment(sid)}")
|
|
432
418
|
nil
|
|
433
419
|
end
|
|
434
420
|
|
|
435
|
-
private
|
|
436
|
-
|
|
437
|
-
def build_form(kwargs)
|
|
438
|
-
out = {}
|
|
439
|
-
CREDENTIAL_FIELDS.each do |wire, k|
|
|
440
|
-
value = kwargs[k]
|
|
441
|
-
next if value.nil?
|
|
442
|
-
|
|
443
|
-
out[wire] = value
|
|
444
|
-
end
|
|
445
|
-
out
|
|
446
|
-
end
|
|
447
421
|
end
|
|
448
422
|
|
|
449
423
|
# ============================================================================
|
|
450
424
|
# /v1/Configuration (singleton) + nested /Webhooks (singleton) + /Addresses (CRUD)
|
|
451
425
|
# ============================================================================
|
|
452
426
|
class ConversationsV1ConfigurationResource
|
|
427
|
+
include V1Pages
|
|
428
|
+
include FieldMapping
|
|
453
429
|
CONFIG_FIELDS = {
|
|
454
430
|
'DefaultChatServiceSid' => :default_chat_service_sid,
|
|
455
431
|
'DefaultMessagingServiceSid' => :default_messaging_service_sid,
|
|
@@ -493,7 +469,7 @@ module VoiceML
|
|
|
493
469
|
|
|
494
470
|
def update(**kwargs)
|
|
495
471
|
ConversationsV1Configuration.from_hash(
|
|
496
|
-
@transport.request(:post, '/v1/Configuration', form:
|
|
472
|
+
@transport.request(:post, '/v1/Configuration', form: form_params(CONFIG_FIELDS, kwargs))
|
|
497
473
|
)
|
|
498
474
|
end
|
|
499
475
|
|
|
@@ -504,7 +480,7 @@ module VoiceML
|
|
|
504
480
|
|
|
505
481
|
def update_webhooks(**kwargs)
|
|
506
482
|
ConversationsV1ConfigurationWebhook.from_hash(
|
|
507
|
-
@transport.request(:post, '/v1/Configuration/Webhooks', form:
|
|
483
|
+
@transport.request(:post, '/v1/Configuration/Webhooks', form: form_params(WEBHOOK_FIELDS, kwargs))
|
|
508
484
|
)
|
|
509
485
|
end
|
|
510
486
|
|
|
@@ -521,43 +497,33 @@ module VoiceML
|
|
|
521
497
|
kwargs[:type] = type
|
|
522
498
|
kwargs[:address] = address
|
|
523
499
|
ConversationsV1ConfigAddress.from_hash(
|
|
524
|
-
@transport.request(:post, '/v1/Configuration/Addresses', form:
|
|
500
|
+
@transport.request(:post, '/v1/Configuration/Addresses', form: form_params(ADDRESS_FIELDS, kwargs))
|
|
525
501
|
)
|
|
526
502
|
end
|
|
527
503
|
|
|
528
504
|
def fetch_address(sid)
|
|
529
|
-
ConversationsV1ConfigAddress.from_hash(@transport.request(:get, "/v1/Configuration/Addresses/#{sid}"))
|
|
505
|
+
ConversationsV1ConfigAddress.from_hash(@transport.request(:get, "/v1/Configuration/Addresses/#{encode_path_segment(sid)}"))
|
|
530
506
|
end
|
|
531
507
|
|
|
532
508
|
def update_address(sid, **kwargs)
|
|
533
509
|
ConversationsV1ConfigAddress.from_hash(
|
|
534
|
-
@transport.request(:post, "/v1/Configuration/Addresses/#{sid}", form:
|
|
510
|
+
@transport.request(:post, "/v1/Configuration/Addresses/#{encode_path_segment(sid)}", form: form_params(ADDRESS_UPDATE_FIELDS, kwargs))
|
|
535
511
|
)
|
|
536
512
|
end
|
|
537
513
|
|
|
538
514
|
def delete_address(sid)
|
|
539
|
-
@transport.request(:delete, "/v1/Configuration/Addresses/#{sid}")
|
|
515
|
+
@transport.request(:delete, "/v1/Configuration/Addresses/#{encode_path_segment(sid)}")
|
|
540
516
|
nil
|
|
541
517
|
end
|
|
542
518
|
|
|
543
|
-
private
|
|
544
|
-
|
|
545
|
-
def build_form(map, kwargs)
|
|
546
|
-
out = {}
|
|
547
|
-
map.each do |wire, k|
|
|
548
|
-
value = kwargs[k]
|
|
549
|
-
next if value.nil?
|
|
550
|
-
|
|
551
|
-
out[wire] = value
|
|
552
|
-
end
|
|
553
|
-
out
|
|
554
|
-
end
|
|
555
519
|
end
|
|
556
520
|
|
|
557
521
|
# ============================================================================
|
|
558
522
|
# /v1/ParticipantConversations (read-only list)
|
|
559
523
|
# ============================================================================
|
|
560
524
|
class ConversationsV1ParticipantConversationsResource
|
|
525
|
+
include V1Pages
|
|
526
|
+
include FieldMapping
|
|
561
527
|
def initialize(transport)
|
|
562
528
|
@transport = transport
|
|
563
529
|
end
|
|
@@ -577,6 +543,8 @@ module VoiceML
|
|
|
577
543
|
# /v1/ConversationWithParticipants (single-call conv + participants)
|
|
578
544
|
# ============================================================================
|
|
579
545
|
class ConversationsV1ConversationWithParticipantsResource
|
|
546
|
+
include V1Pages
|
|
547
|
+
include FieldMapping
|
|
580
548
|
FIELDS = {
|
|
581
549
|
'FriendlyName' => :friendly_name,
|
|
582
550
|
'UniqueName' => :unique_name,
|
|
@@ -594,13 +562,7 @@ module VoiceML
|
|
|
594
562
|
|
|
595
563
|
def create(participant: nil, **kwargs)
|
|
596
564
|
kwargs[:participant] = participant unless participant.nil?
|
|
597
|
-
form =
|
|
598
|
-
FIELDS.each do |wire, k|
|
|
599
|
-
value = kwargs[k]
|
|
600
|
-
next if value.nil?
|
|
601
|
-
|
|
602
|
-
form[wire] = value
|
|
603
|
-
end
|
|
565
|
+
form = form_params(FIELDS, kwargs)
|
|
604
566
|
ConversationsV1ConversationWithParticipants.from_hash(
|
|
605
567
|
@transport.request(:post, '/v1/ConversationWithParticipants', form: form)
|
|
606
568
|
)
|
|
@@ -611,6 +573,8 @@ module VoiceML
|
|
|
611
573
|
# /v1/Services + nested /Conversations
|
|
612
574
|
# ============================================================================
|
|
613
575
|
class ConversationsV1ServicesResource
|
|
576
|
+
include V1Pages
|
|
577
|
+
include FieldMapping
|
|
614
578
|
SERVICE_CONVERSATION_FIELDS = {
|
|
615
579
|
'FriendlyName' => :friendly_name,
|
|
616
580
|
'UniqueName' => :unique_name,
|
|
@@ -640,18 +604,39 @@ module VoiceML
|
|
|
640
604
|
ConversationsV1ServiceList.new(@transport.request(:get, '/v1/Services', params: params))
|
|
641
605
|
end
|
|
642
606
|
|
|
643
|
-
|
|
607
|
+
# Shared wire body with Messaging Service (`POST /v1/Services` dispatches
|
|
608
|
+
# by product host); the Conversations surface sets FriendlyName in practice.
|
|
609
|
+
SERVICE_FIELDS = {
|
|
610
|
+
'FriendlyName' => :friendly_name,
|
|
611
|
+
'InboundRequestUrl' => :inbound_request_url,
|
|
612
|
+
'InboundMethod' => :inbound_method,
|
|
613
|
+
'FallbackUrl' => :fallback_url,
|
|
614
|
+
'FallbackMethod' => :fallback_method,
|
|
615
|
+
'StatusCallback' => :status_callback,
|
|
616
|
+
'StickySender' => :sticky_sender,
|
|
617
|
+
'MmsConverter' => :mms_converter,
|
|
618
|
+
'SmartEncoding' => :smart_encoding,
|
|
619
|
+
'ScanMessageContent' => :scan_message_content,
|
|
620
|
+
'FallbackToLongCode' => :fallback_to_long_code,
|
|
621
|
+
'AreaCodeGeomatch' => :area_code_geomatch,
|
|
622
|
+
'SynchronousValidation' => :synchronous_validation,
|
|
623
|
+
'ValidityPeriod' => :validity_period,
|
|
624
|
+
'Usecase' => :usecase,
|
|
625
|
+
'UseInboundWebhookOnNumber' => :use_inbound_webhook_on_number
|
|
626
|
+
}.freeze
|
|
627
|
+
|
|
628
|
+
def create(**kwargs)
|
|
644
629
|
ConversationsV1Service.from_hash(
|
|
645
|
-
@transport.request(:post, '/v1/Services', form:
|
|
630
|
+
@transport.request(:post, '/v1/Services', form: form_params(SERVICE_FIELDS, kwargs))
|
|
646
631
|
)
|
|
647
632
|
end
|
|
648
633
|
|
|
649
634
|
def fetch(chat_service_sid)
|
|
650
|
-
ConversationsV1Service.from_hash(@transport.request(:get, "/v1/Services/#{chat_service_sid}"))
|
|
635
|
+
ConversationsV1Service.from_hash(@transport.request(:get, "/v1/Services/#{encode_path_segment(chat_service_sid)}"))
|
|
651
636
|
end
|
|
652
637
|
|
|
653
638
|
def delete(chat_service_sid)
|
|
654
|
-
@transport.request(:delete, "/v1/Services/#{chat_service_sid}")
|
|
639
|
+
@transport.request(:delete, "/v1/Services/#{encode_path_segment(chat_service_sid)}")
|
|
655
640
|
nil
|
|
656
641
|
end
|
|
657
642
|
|
|
@@ -660,32 +645,32 @@ module VoiceML
|
|
|
660
645
|
params = {}
|
|
661
646
|
params['PageSize'] = page_size unless page_size.nil?
|
|
662
647
|
ConversationsV1ServiceConversationList.new(
|
|
663
|
-
@transport.request(:get, "/v1/Services/#{chat_service_sid}/Conversations", params: params)
|
|
648
|
+
@transport.request(:get, "/v1/Services/#{encode_path_segment(chat_service_sid)}/Conversations", params: params)
|
|
664
649
|
)
|
|
665
650
|
end
|
|
666
651
|
|
|
667
652
|
def create_conversation(chat_service_sid, **kwargs)
|
|
668
653
|
ConversationsV1ServiceConversation.from_hash(
|
|
669
|
-
@transport.request(:post, "/v1/Services/#{chat_service_sid}/Conversations",
|
|
670
|
-
form:
|
|
654
|
+
@transport.request(:post, "/v1/Services/#{encode_path_segment(chat_service_sid)}/Conversations",
|
|
655
|
+
form: form_params(SERVICE_CONVERSATION_FIELDS, kwargs))
|
|
671
656
|
)
|
|
672
657
|
end
|
|
673
658
|
|
|
674
659
|
def fetch_conversation(chat_service_sid, conversation_sid)
|
|
675
660
|
ConversationsV1ServiceConversation.from_hash(
|
|
676
|
-
@transport.request(:get, "/v1/Services/#{chat_service_sid}/Conversations/#{conversation_sid}")
|
|
661
|
+
@transport.request(:get, "/v1/Services/#{encode_path_segment(chat_service_sid)}/Conversations/#{encode_path_segment(conversation_sid)}")
|
|
677
662
|
)
|
|
678
663
|
end
|
|
679
664
|
|
|
680
665
|
def update_conversation(chat_service_sid, conversation_sid, **kwargs)
|
|
681
666
|
ConversationsV1ServiceConversation.from_hash(
|
|
682
|
-
@transport.request(:post, "/v1/Services/#{chat_service_sid}/Conversations/#{conversation_sid}",
|
|
683
|
-
form:
|
|
667
|
+
@transport.request(:post, "/v1/Services/#{encode_path_segment(chat_service_sid)}/Conversations/#{encode_path_segment(conversation_sid)}",
|
|
668
|
+
form: form_params(SERVICE_CONVERSATION_UPDATE_FIELDS, kwargs))
|
|
684
669
|
)
|
|
685
670
|
end
|
|
686
671
|
|
|
687
672
|
def delete_conversation(chat_service_sid, conversation_sid)
|
|
688
|
-
@transport.request(:delete, "/v1/Services/#{chat_service_sid}/Conversations/#{conversation_sid}")
|
|
673
|
+
@transport.request(:delete, "/v1/Services/#{encode_path_segment(chat_service_sid)}/Conversations/#{encode_path_segment(conversation_sid)}")
|
|
689
674
|
nil
|
|
690
675
|
end
|
|
691
676
|
|
|
@@ -696,18 +681,6 @@ module VoiceML
|
|
|
696
681
|
ConversationsV1ServiceScopeResource.new(@transport, chat_service_sid)
|
|
697
682
|
end
|
|
698
683
|
|
|
699
|
-
private
|
|
700
|
-
|
|
701
|
-
def build_form(map, kwargs)
|
|
702
|
-
out = {}
|
|
703
|
-
map.each do |wire, k|
|
|
704
|
-
value = kwargs[k]
|
|
705
|
-
next if value.nil?
|
|
706
|
-
|
|
707
|
-
out[wire] = value
|
|
708
|
-
end
|
|
709
|
-
out
|
|
710
|
-
end
|
|
711
684
|
end
|
|
712
685
|
|
|
713
686
|
# ============================================================================
|
|
@@ -716,6 +689,8 @@ module VoiceML
|
|
|
716
689
|
# Flat method style matches the rest of conversations_v1.
|
|
717
690
|
# ============================================================================
|
|
718
691
|
class ConversationsV1ServiceScopeResource
|
|
692
|
+
include V1Pages
|
|
693
|
+
include FieldMapping
|
|
719
694
|
CONVERSATION_FIELDS = {
|
|
720
695
|
'FriendlyName' => :friendly_name,
|
|
721
696
|
'UniqueName' => :unique_name,
|
|
@@ -847,25 +822,25 @@ module VoiceML
|
|
|
847
822
|
|
|
848
823
|
def create_conversation(**kwargs)
|
|
849
824
|
ConversationsV1ServiceConversation.from_hash(
|
|
850
|
-
@transport.request(:post, conv_root, form:
|
|
825
|
+
@transport.request(:post, conv_root, form: form_params(CONVERSATION_FIELDS, kwargs))
|
|
851
826
|
)
|
|
852
827
|
end
|
|
853
828
|
|
|
854
829
|
def fetch_conversation(conversation_sid)
|
|
855
830
|
ConversationsV1ServiceConversation.from_hash(
|
|
856
|
-
@transport.request(:get, "#{conv_root}/#{conversation_sid}")
|
|
831
|
+
@transport.request(:get, "#{conv_root}/#{encode_path_segment(conversation_sid)}")
|
|
857
832
|
)
|
|
858
833
|
end
|
|
859
834
|
|
|
860
835
|
def update_conversation(conversation_sid, **kwargs)
|
|
861
836
|
ConversationsV1ServiceConversation.from_hash(
|
|
862
|
-
@transport.request(:post, "#{conv_root}/#{conversation_sid}",
|
|
863
|
-
form:
|
|
837
|
+
@transport.request(:post, "#{conv_root}/#{encode_path_segment(conversation_sid)}",
|
|
838
|
+
form: form_params(CONVERSATION_UPDATE_FIELDS, kwargs))
|
|
864
839
|
)
|
|
865
840
|
end
|
|
866
841
|
|
|
867
842
|
def delete_conversation(conversation_sid)
|
|
868
|
-
@transport.request(:delete, "#{conv_root}/#{conversation_sid}")
|
|
843
|
+
@transport.request(:delete, "#{conv_root}/#{encode_path_segment(conversation_sid)}")
|
|
869
844
|
nil
|
|
870
845
|
end
|
|
871
846
|
|
|
@@ -874,32 +849,32 @@ module VoiceML
|
|
|
874
849
|
params = {}
|
|
875
850
|
params['PageSize'] = page_size unless page_size.nil?
|
|
876
851
|
ConversationsV1ServiceConversationMessageList.new(
|
|
877
|
-
@transport.request(:get, "#{conv_root}/#{conversation_sid}/Messages", params: params)
|
|
852
|
+
@transport.request(:get, "#{conv_root}/#{encode_path_segment(conversation_sid)}/Messages", params: params)
|
|
878
853
|
)
|
|
879
854
|
end
|
|
880
855
|
|
|
881
856
|
def create_message(conversation_sid, **kwargs)
|
|
882
857
|
ConversationsV1ServiceConversationMessage.from_hash(
|
|
883
|
-
@transport.request(:post, "#{conv_root}/#{conversation_sid}/Messages",
|
|
884
|
-
form:
|
|
858
|
+
@transport.request(:post, "#{conv_root}/#{encode_path_segment(conversation_sid)}/Messages",
|
|
859
|
+
form: form_params(MESSAGE_FIELDS, kwargs))
|
|
885
860
|
)
|
|
886
861
|
end
|
|
887
862
|
|
|
888
863
|
def fetch_message(conversation_sid, message_sid)
|
|
889
864
|
ConversationsV1ServiceConversationMessage.from_hash(
|
|
890
|
-
@transport.request(:get, "#{conv_root}/#{conversation_sid}/Messages/#{message_sid}")
|
|
865
|
+
@transport.request(:get, "#{conv_root}/#{encode_path_segment(conversation_sid)}/Messages/#{encode_path_segment(message_sid)}")
|
|
891
866
|
)
|
|
892
867
|
end
|
|
893
868
|
|
|
894
869
|
def update_message(conversation_sid, message_sid, **kwargs)
|
|
895
870
|
ConversationsV1ServiceConversationMessage.from_hash(
|
|
896
|
-
@transport.request(:post, "#{conv_root}/#{conversation_sid}/Messages/#{message_sid}",
|
|
897
|
-
form:
|
|
871
|
+
@transport.request(:post, "#{conv_root}/#{encode_path_segment(conversation_sid)}/Messages/#{encode_path_segment(message_sid)}",
|
|
872
|
+
form: form_params(MESSAGE_UPDATE_FIELDS, kwargs))
|
|
898
873
|
)
|
|
899
874
|
end
|
|
900
875
|
|
|
901
876
|
def delete_message(conversation_sid, message_sid)
|
|
902
|
-
@transport.request(:delete, "#{conv_root}/#{conversation_sid}/Messages/#{message_sid}")
|
|
877
|
+
@transport.request(:delete, "#{conv_root}/#{encode_path_segment(conversation_sid)}/Messages/#{encode_path_segment(message_sid)}")
|
|
903
878
|
nil
|
|
904
879
|
end
|
|
905
880
|
|
|
@@ -909,7 +884,7 @@ module VoiceML
|
|
|
909
884
|
params['PageSize'] = page_size unless page_size.nil?
|
|
910
885
|
ConversationsV1ServiceConversationMessageReceiptList.new(
|
|
911
886
|
@transport.request(:get,
|
|
912
|
-
"#{conv_root}/#{conversation_sid}/Messages/#{message_sid}/Receipts",
|
|
887
|
+
"#{conv_root}/#{encode_path_segment(conversation_sid)}/Messages/#{encode_path_segment(message_sid)}/Receipts",
|
|
913
888
|
params: params)
|
|
914
889
|
)
|
|
915
890
|
end
|
|
@@ -917,7 +892,7 @@ module VoiceML
|
|
|
917
892
|
def fetch_message_receipt(conversation_sid, message_sid, sid)
|
|
918
893
|
ConversationsV1ServiceConversationMessageReceipt.from_hash(
|
|
919
894
|
@transport.request(:get,
|
|
920
|
-
"#{conv_root}/#{conversation_sid}/Messages/#{message_sid}/Receipts/#{sid}")
|
|
895
|
+
"#{conv_root}/#{encode_path_segment(conversation_sid)}/Messages/#{encode_path_segment(message_sid)}/Receipts/#{encode_path_segment(sid)}")
|
|
921
896
|
)
|
|
922
897
|
end
|
|
923
898
|
|
|
@@ -926,32 +901,32 @@ module VoiceML
|
|
|
926
901
|
params = {}
|
|
927
902
|
params['PageSize'] = page_size unless page_size.nil?
|
|
928
903
|
ConversationsV1ServiceConversationParticipantList.new(
|
|
929
|
-
@transport.request(:get, "#{conv_root}/#{conversation_sid}/Participants", params: params)
|
|
904
|
+
@transport.request(:get, "#{conv_root}/#{encode_path_segment(conversation_sid)}/Participants", params: params)
|
|
930
905
|
)
|
|
931
906
|
end
|
|
932
907
|
|
|
933
908
|
def create_participant(conversation_sid, **kwargs)
|
|
934
909
|
ConversationsV1ServiceConversationParticipant.from_hash(
|
|
935
|
-
@transport.request(:post, "#{conv_root}/#{conversation_sid}/Participants",
|
|
936
|
-
form:
|
|
910
|
+
@transport.request(:post, "#{conv_root}/#{encode_path_segment(conversation_sid)}/Participants",
|
|
911
|
+
form: form_params(PARTICIPANT_FIELDS, kwargs))
|
|
937
912
|
)
|
|
938
913
|
end
|
|
939
914
|
|
|
940
915
|
def fetch_participant(conversation_sid, participant_sid)
|
|
941
916
|
ConversationsV1ServiceConversationParticipant.from_hash(
|
|
942
|
-
@transport.request(:get, "#{conv_root}/#{conversation_sid}/Participants/#{participant_sid}")
|
|
917
|
+
@transport.request(:get, "#{conv_root}/#{encode_path_segment(conversation_sid)}/Participants/#{encode_path_segment(participant_sid)}")
|
|
943
918
|
)
|
|
944
919
|
end
|
|
945
920
|
|
|
946
921
|
def update_participant(conversation_sid, participant_sid, **kwargs)
|
|
947
922
|
ConversationsV1ServiceConversationParticipant.from_hash(
|
|
948
|
-
@transport.request(:post, "#{conv_root}/#{conversation_sid}/Participants/#{participant_sid}",
|
|
949
|
-
form:
|
|
923
|
+
@transport.request(:post, "#{conv_root}/#{encode_path_segment(conversation_sid)}/Participants/#{encode_path_segment(participant_sid)}",
|
|
924
|
+
form: form_params(PARTICIPANT_UPDATE_FIELDS, kwargs))
|
|
950
925
|
)
|
|
951
926
|
end
|
|
952
927
|
|
|
953
928
|
def delete_participant(conversation_sid, participant_sid)
|
|
954
|
-
@transport.request(:delete, "#{conv_root}/#{conversation_sid}/Participants/#{participant_sid}")
|
|
929
|
+
@transport.request(:delete, "#{conv_root}/#{encode_path_segment(conversation_sid)}/Participants/#{encode_path_segment(participant_sid)}")
|
|
955
930
|
nil
|
|
956
931
|
end
|
|
957
932
|
|
|
@@ -960,33 +935,33 @@ module VoiceML
|
|
|
960
935
|
params = {}
|
|
961
936
|
params['PageSize'] = page_size unless page_size.nil?
|
|
962
937
|
ConversationsV1ServiceConversationScopedWebhookList.new(
|
|
963
|
-
@transport.request(:get, "#{conv_root}/#{conversation_sid}/Webhooks", params: params)
|
|
938
|
+
@transport.request(:get, "#{conv_root}/#{encode_path_segment(conversation_sid)}/Webhooks", params: params)
|
|
964
939
|
)
|
|
965
940
|
end
|
|
966
941
|
|
|
967
942
|
def create_webhook(conversation_sid, target:, **kwargs)
|
|
968
943
|
kwargs[:target] = target
|
|
969
944
|
ConversationsV1ServiceConversationScopedWebhook.from_hash(
|
|
970
|
-
@transport.request(:post, "#{conv_root}/#{conversation_sid}/Webhooks",
|
|
971
|
-
form:
|
|
945
|
+
@transport.request(:post, "#{conv_root}/#{encode_path_segment(conversation_sid)}/Webhooks",
|
|
946
|
+
form: form_params(WEBHOOK_FIELDS, kwargs))
|
|
972
947
|
)
|
|
973
948
|
end
|
|
974
949
|
|
|
975
950
|
def fetch_webhook(conversation_sid, webhook_sid)
|
|
976
951
|
ConversationsV1ServiceConversationScopedWebhook.from_hash(
|
|
977
|
-
@transport.request(:get, "#{conv_root}/#{conversation_sid}/Webhooks/#{webhook_sid}")
|
|
952
|
+
@transport.request(:get, "#{conv_root}/#{encode_path_segment(conversation_sid)}/Webhooks/#{encode_path_segment(webhook_sid)}")
|
|
978
953
|
)
|
|
979
954
|
end
|
|
980
955
|
|
|
981
956
|
def update_webhook(conversation_sid, webhook_sid, **kwargs)
|
|
982
957
|
ConversationsV1ServiceConversationScopedWebhook.from_hash(
|
|
983
|
-
@transport.request(:post, "#{conv_root}/#{conversation_sid}/Webhooks/#{webhook_sid}",
|
|
984
|
-
form:
|
|
958
|
+
@transport.request(:post, "#{conv_root}/#{encode_path_segment(conversation_sid)}/Webhooks/#{encode_path_segment(webhook_sid)}",
|
|
959
|
+
form: form_params(WEBHOOK_UPDATE_FIELDS, kwargs))
|
|
985
960
|
)
|
|
986
961
|
end
|
|
987
962
|
|
|
988
963
|
def delete_webhook(conversation_sid, webhook_sid)
|
|
989
|
-
@transport.request(:delete, "#{conv_root}/#{conversation_sid}/Webhooks/#{webhook_sid}")
|
|
964
|
+
@transport.request(:delete, "#{conv_root}/#{encode_path_segment(conversation_sid)}/Webhooks/#{encode_path_segment(webhook_sid)}")
|
|
990
965
|
nil
|
|
991
966
|
end
|
|
992
967
|
|
|
@@ -994,7 +969,7 @@ module VoiceML
|
|
|
994
969
|
def create_conversation_with_participants(**kwargs)
|
|
995
970
|
ConversationsV1ServiceConversationWithParticipants.from_hash(
|
|
996
971
|
@transport.request(:post, "#{svc_root}/ConversationWithParticipants",
|
|
997
|
-
form:
|
|
972
|
+
form: form_params(CONV_WITH_PARTICIPANTS_FIELDS, kwargs))
|
|
998
973
|
)
|
|
999
974
|
end
|
|
1000
975
|
|
|
@@ -1014,7 +989,7 @@ module VoiceML
|
|
|
1014
989
|
params = {}
|
|
1015
990
|
params['PageSize'] = page_size unless page_size.nil?
|
|
1016
991
|
ConversationsV1ServiceUserConversationList.new(
|
|
1017
|
-
@transport.request(:get, "#{svc_root}/Users/#{user_sid}/Conversations", params: params)
|
|
992
|
+
@transport.request(:get, "#{svc_root}/Users/#{encode_path_segment(user_sid)}/Conversations", params: params)
|
|
1018
993
|
)
|
|
1019
994
|
end
|
|
1020
995
|
|
|
@@ -1036,19 +1011,19 @@ module VoiceML
|
|
|
1036
1011
|
|
|
1037
1012
|
def fetch_role(role_sid)
|
|
1038
1013
|
ConversationsV1ServiceRole.from_hash(
|
|
1039
|
-
@transport.request(:get, "#{svc_root}/Roles/#{role_sid}")
|
|
1014
|
+
@transport.request(:get, "#{svc_root}/Roles/#{encode_path_segment(role_sid)}")
|
|
1040
1015
|
)
|
|
1041
1016
|
end
|
|
1042
1017
|
|
|
1043
1018
|
def update_role(role_sid, permission:)
|
|
1044
1019
|
form = { 'Permission' => Array(permission) }
|
|
1045
1020
|
ConversationsV1ServiceRole.from_hash(
|
|
1046
|
-
@transport.request(:post, "#{svc_root}/Roles/#{role_sid}", form: form)
|
|
1021
|
+
@transport.request(:post, "#{svc_root}/Roles/#{encode_path_segment(role_sid)}", form: form)
|
|
1047
1022
|
)
|
|
1048
1023
|
end
|
|
1049
1024
|
|
|
1050
1025
|
def delete_role(role_sid)
|
|
1051
|
-
@transport.request(:delete, "#{svc_root}/Roles/#{role_sid}")
|
|
1026
|
+
@transport.request(:delete, "#{svc_root}/Roles/#{encode_path_segment(role_sid)}")
|
|
1052
1027
|
nil
|
|
1053
1028
|
end
|
|
1054
1029
|
|
|
@@ -1065,25 +1040,25 @@ module VoiceML
|
|
|
1065
1040
|
kwargs = { identity: identity, friendly_name: friendly_name,
|
|
1066
1041
|
attributes: attributes, role_sid: role_sid }
|
|
1067
1042
|
ConversationsV1ServiceUser.from_hash(
|
|
1068
|
-
@transport.request(:post, "#{svc_root}/Users", form:
|
|
1043
|
+
@transport.request(:post, "#{svc_root}/Users", form: form_params(USER_FIELDS, kwargs))
|
|
1069
1044
|
)
|
|
1070
1045
|
end
|
|
1071
1046
|
|
|
1072
1047
|
def fetch_user(user_sid)
|
|
1073
1048
|
ConversationsV1ServiceUser.from_hash(
|
|
1074
|
-
@transport.request(:get, "#{svc_root}/Users/#{user_sid}")
|
|
1049
|
+
@transport.request(:get, "#{svc_root}/Users/#{encode_path_segment(user_sid)}")
|
|
1075
1050
|
)
|
|
1076
1051
|
end
|
|
1077
1052
|
|
|
1078
1053
|
def update_user(user_sid, **kwargs)
|
|
1079
1054
|
ConversationsV1ServiceUser.from_hash(
|
|
1080
|
-
@transport.request(:post, "#{svc_root}/Users/#{user_sid}",
|
|
1081
|
-
form:
|
|
1055
|
+
@transport.request(:post, "#{svc_root}/Users/#{encode_path_segment(user_sid)}",
|
|
1056
|
+
form: form_params(USER_UPDATE_FIELDS, kwargs))
|
|
1082
1057
|
)
|
|
1083
1058
|
end
|
|
1084
1059
|
|
|
1085
1060
|
def delete_user(user_sid)
|
|
1086
|
-
@transport.request(:delete, "#{svc_root}/Users/#{user_sid}")
|
|
1061
|
+
@transport.request(:delete, "#{svc_root}/Users/#{encode_path_segment(user_sid)}")
|
|
1087
1062
|
nil
|
|
1088
1063
|
end
|
|
1089
1064
|
|
|
@@ -1100,12 +1075,12 @@ module VoiceML
|
|
|
1100
1075
|
|
|
1101
1076
|
def fetch_binding(sid)
|
|
1102
1077
|
ConversationsV1ServiceBinding.from_hash(
|
|
1103
|
-
@transport.request(:get, "#{svc_root}/Bindings/#{sid}")
|
|
1078
|
+
@transport.request(:get, "#{svc_root}/Bindings/#{encode_path_segment(sid)}")
|
|
1104
1079
|
)
|
|
1105
1080
|
end
|
|
1106
1081
|
|
|
1107
1082
|
def delete_binding(sid)
|
|
1108
|
-
@transport.request(:delete, "#{svc_root}/Bindings/#{sid}")
|
|
1083
|
+
@transport.request(:delete, "#{svc_root}/Bindings/#{encode_path_segment(sid)}")
|
|
1109
1084
|
nil
|
|
1110
1085
|
end
|
|
1111
1086
|
|
|
@@ -1119,7 +1094,7 @@ module VoiceML
|
|
|
1119
1094
|
def update_configuration(**kwargs)
|
|
1120
1095
|
ConversationsV1ServiceConfiguration.from_hash(
|
|
1121
1096
|
@transport.request(:post, "#{svc_root}/Configuration",
|
|
1122
|
-
form:
|
|
1097
|
+
form: form_params(CONFIG_UPDATE_FIELDS, kwargs))
|
|
1123
1098
|
)
|
|
1124
1099
|
end
|
|
1125
1100
|
|
|
@@ -1133,7 +1108,7 @@ module VoiceML
|
|
|
1133
1108
|
def update_notifications(**kwargs)
|
|
1134
1109
|
ConversationsV1ServiceNotification.from_hash(
|
|
1135
1110
|
@transport.request(:post, "#{svc_root}/Configuration/Notifications",
|
|
1136
|
-
form:
|
|
1111
|
+
form: form_params(NOTIFICATION_UPDATE_FIELDS, kwargs))
|
|
1137
1112
|
)
|
|
1138
1113
|
end
|
|
1139
1114
|
|
|
@@ -1147,21 +1122,21 @@ module VoiceML
|
|
|
1147
1122
|
def update_webhook_configuration(**kwargs)
|
|
1148
1123
|
ConversationsV1ServiceWebhookConfiguration.from_hash(
|
|
1149
1124
|
@transport.request(:post, "#{svc_root}/Configuration/Webhooks",
|
|
1150
|
-
form:
|
|
1125
|
+
form: form_params(WEBHOOK_CONFIG_UPDATE_FIELDS, kwargs))
|
|
1151
1126
|
)
|
|
1152
1127
|
end
|
|
1153
1128
|
|
|
1154
1129
|
private
|
|
1155
1130
|
|
|
1156
1131
|
def svc_root
|
|
1157
|
-
"/v1/Services/#{@chat_service_sid}"
|
|
1132
|
+
"/v1/Services/#{encode_path_segment(@chat_service_sid)}"
|
|
1158
1133
|
end
|
|
1159
1134
|
|
|
1160
1135
|
def conv_root
|
|
1161
1136
|
"#{svc_root}/Conversations"
|
|
1162
1137
|
end
|
|
1163
1138
|
|
|
1164
|
-
def
|
|
1139
|
+
def form_params(map, kwargs)
|
|
1165
1140
|
out = {}
|
|
1166
1141
|
map.each do |wire, k|
|
|
1167
1142
|
value = kwargs[k]
|