twilio-ruby 5.10.5 → 5.10.6

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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +10 -0
  3. data/CHANGES.md +10 -0
  4. data/Dockerfile +9 -0
  5. data/Makefile +11 -0
  6. data/README.md +5 -2
  7. data/lib/twilio-ruby/rest/api.rb +1 -2
  8. data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +117 -32
  9. data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +30 -0
  10. data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +112 -56
  11. data/lib/twilio-ruby/rest/api/v2010/account/conference/recording.rb +460 -0
  12. data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +7 -0
  13. data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +4 -4
  14. data/lib/twilio-ruby/rest/client.rb +1 -2
  15. data/lib/twilio-ruby/rest/preview.rb +8 -8
  16. data/lib/twilio-ruby/rest/preview/marketplace.rb +13 -13
  17. data/lib/twilio-ruby/rest/preview/understand/assistant/intent/field.rb +5 -2
  18. data/lib/twilio-ruby/rest/preview/understand/assistant/query.rb +8 -8
  19. data/lib/twilio-ruby/rest/proxy/v1/service.rb +9 -9
  20. data/lib/twilio-ruby/rest/proxy/v1/service/phone_number.rb +10 -8
  21. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +3 -7
  22. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +3 -49
  23. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant/message_interaction.rb +1 -1
  24. data/lib/twilio-ruby/rest/video.rb +18 -6
  25. data/lib/twilio-ruby/rest/video/v1.rb +27 -13
  26. data/lib/twilio-ruby/rest/video/v1/composition_settings.rb +278 -0
  27. data/lib/twilio-ruby/rest/video/v1/recording_settings.rb +278 -0
  28. data/lib/twilio-ruby/version.rb +1 -1
  29. data/spec/integration/api/v2010/account/call/recording_spec.rb +103 -0
  30. data/spec/integration/api/v2010/account/conference/recording_spec.rb +240 -0
  31. data/spec/integration/api/v2010/account/message_spec.rb +0 -5
  32. data/spec/integration/proxy/v1/service/session/participant_spec.rb +0 -48
  33. data/spec/integration/video/v1/composition_settings_spec.rb +86 -0
  34. data/spec/integration/video/v1/recording_settings_spec.rb +86 -0
  35. metadata +13 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d7002623d1c11cda3d127cb2ef84cb57a80505f8
4
- data.tar.gz: 3b5a00a000a072b22d6d771533c2c7181611e9b1
3
+ metadata.gz: 5d8915509528831b439fb45ef8cb25d10790bebe
4
+ data.tar.gz: 54eb53c3d93bf543d7458ddc163fa504f9cc2f5a
5
5
  SHA512:
6
- metadata.gz: 684ad0135b1149ee74dc4926e9d1a9c2ecb47e1e33e7f2b56630cf3b7984e138e678f1d0f95c5bf505205b3ca0ccf966cb736a2b1b6529fff73d26b03bf741de
7
- data.tar.gz: 40f1c9e5ce371ca3656d8d714aff33929f28db4f8531e8877fa12fb085835599df69df2f49234268b8bd4b1277058d5f6048ff6004d086894ba47bf5334262c2
6
+ metadata.gz: 7657be54da4eaa33d4e81ccc580d1499e73dcc20e1bb27b5b01d367553aeb97f20e8b8c2cb0e6043209749b80ada1c15aea9cba8c3c71cf1052f939aca288d36
7
+ data.tar.gz: 54af734a54bd1118bbeacd9d19cfe2ef407bf9897b127053a13a22f444e73cfd7e4a1d9217ab3c51333a9d4c2fddd0843b9f8f30b9a47a889fb3b2dc0022b369
data/.travis.yml CHANGED
@@ -12,6 +12,9 @@ rvm:
12
12
  - 2.0.0
13
13
  - jruby-9.1.9.0
14
14
 
15
+ services:
16
+ - docker
17
+
15
18
  matrix:
16
19
  fast_finish: true
17
20
 
@@ -19,3 +22,10 @@ before_install:
19
22
  # Bundler on Travis may be too out of date
20
23
  # Update bundler to a recent version.
21
24
  - gem install bundler
25
+ deploy:
26
+ provider: script
27
+ script: make docker-build && make docker-push
28
+ skip_cleanup: true
29
+ on:
30
+ tags: true
31
+ rvm: "2.4.0"
data/CHANGES.md CHANGED
@@ -1,6 +1,16 @@
1
1
  twilio-ruby changelog
2
2
  =====================
3
3
 
4
+ [2018-07-05] Version 5.10.6
5
+ ----------------------------
6
+ **Library**
7
+ - PR #413: Add Dockerfile and related changes to build the Docker image. Thanks to @jonatasbaldin!
8
+
9
+ **Api**
10
+ - Release `Call Recording Controls` feature support in helper libraries
11
+ - Add Voice Insights sub-category keys to usage records
12
+
13
+
4
14
  [2018-06-21] Version 5.10.5
5
15
  ----------------------------
6
16
  **Library**
data/Dockerfile ADDED
@@ -0,0 +1,9 @@
1
+ FROM ruby:2.4.0
2
+
3
+ RUN mkdir /twilio
4
+ WORKDIR /twilio
5
+
6
+ COPY . .
7
+
8
+ RUN bundle install
9
+ RUN bundle exec rake install
data/Makefile CHANGED
@@ -27,3 +27,14 @@ authors:
27
27
 
28
28
  gem:
29
29
  bundle exec rake build | sed -e 's/.*pkg/pkg/g' | sed -e "s/\.$$//g" | xargs gem push
30
+
31
+ API_DEFINITIONS_SHA=$(shell git log --oneline | grep Regenerated | head -n1 | cut -d ' ' -f 5)
32
+ docker-build:
33
+ docker build -t twilio/twilio-ruby .
34
+ docker tag twilio/twilio-ruby twilio/twilio-ruby:${TRAVIS_TAG}
35
+ docker tag twilio/twilio-ruby twilio/twilio-ruby:apidefs-${API_DEFINITIONS_SHA}
36
+
37
+ docker-push:
38
+ echo "${DOCKER_PASSWORD}" | docker login -u "${DOCKER_USERNAME}" --password-stdin
39
+ docker push twilio/twilio-ruby:${TRAVIS_TAG}
40
+ docker push twilio/twilio-ruby:apidefs-${API_DEFINITIONS_SHA}
data/README.md CHANGED
@@ -27,13 +27,13 @@ in-line code documentation here in the library.
27
27
  To install using [Bundler][bundler] grab the latest stable version:
28
28
 
29
29
  ```ruby
30
- gem 'twilio-ruby', '~> 5.10.5'
30
+ gem 'twilio-ruby', '~> 5.10.6'
31
31
  ```
32
32
 
33
33
  To manually install `twilio-ruby` via [Rubygems][rubygems] simply gem install:
34
34
 
35
35
  ```bash
36
- gem install twilio-ruby -v 5.10.5
36
+ gem install twilio-ruby -v 5.10.6
37
37
  ```
38
38
 
39
39
  To build and install the development branch yourself from the latest source:
@@ -50,6 +50,9 @@ make install
50
50
  ## Documentation
51
51
  [Here][documentation]
52
52
 
53
+ ## Docker Image
54
+ The `Dockerfile` present in this repository and its respective `twilio/twilio-ruby` Docker image are currently used by Twilio for testing purposes only.
55
+
53
56
  ## Feedback
54
57
  During the Release Candidate period of this library, please leave all feedback and issues in the [Github Issues][issues] for `twilio-ruby`.
55
58
 
@@ -207,8 +207,7 @@ module Twilio
207
207
  end
208
208
 
209
209
  ##
210
- # @param [String] sid A 34 character string that uniquely identifies this
211
- # resource.
210
+ # @param [String] sid A unique 34-character string that identifies this resource.
212
211
  # @return [Twilio::REST::Api::V2010::AccountContext::TranscriptionInstance] if sid was passed.
213
212
  # @return [Twilio::REST::Api::V2010::AccountContext::TranscriptionList]
214
213
  def transcriptions(sid=:unset)
@@ -16,8 +16,11 @@ module Twilio
16
16
  ##
17
17
  # Initialize the RecordingList
18
18
  # @param [Version] version Version that contains the resource
19
- # @param [String] account_sid The account_sid
20
- # @param [String] call_sid The call_sid
19
+ # @param [String] account_sid The unique ID of the
20
+ # [Account](https://www.twilio.com/docs/api/rest/account) responsible for this
21
+ # recording.
22
+ # @param [String] call_sid A unique identifier for the call associated with the
23
+ # recording. This will always refer to the parent leg of a two leg call.
21
24
  # @return [RecordingList] RecordingList
22
25
  def initialize(version, account_sid: nil, call_sid: nil)
23
26
  super(version)
@@ -27,13 +30,53 @@ module Twilio
27
30
  @uri = "/Accounts/#{@solution[:account_sid]}/Calls/#{@solution[:call_sid]}/Recordings.json"
28
31
  end
29
32
 
33
+ ##
34
+ # Retrieve a single page of RecordingInstance records from the API.
35
+ # Request is executed immediately.
36
+ # @param [String] recording_status_callback_event The
37
+ # recording_status_callback_event
38
+ # @param [String] recording_status_callback The recording_status_callback
39
+ # @param [String] recording_status_callback_method The
40
+ # recording_status_callback_method
41
+ # @param [String] trim Possible values `trim-silence` or `do-not-trim`.
42
+ # `trim-silence` will trim the silence from the beginning and end of the
43
+ # recording. `do-not-trim` will not trim the silence. Defaults to `do-not-trim`
44
+ # @param [String] recording_channels The recording_channels
45
+ # @param [Boolean] play_beep Possible values : true or false. true will play a
46
+ # double beep before the recording is paused or stopped or a single beep after the
47
+ # recording is resumed. Defaults to false
48
+ # @return [RecordingInstance] Newly created RecordingInstance
49
+ def create(recording_status_callback_event: :unset, recording_status_callback: :unset, recording_status_callback_method: :unset, trim: :unset, recording_channels: :unset, play_beep: :unset)
50
+ data = Twilio::Values.of({
51
+ 'RecordingStatusCallbackEvent' => Twilio.serialize_list(recording_status_callback_event) { |e| e },
52
+ 'RecordingStatusCallback' => recording_status_callback,
53
+ 'RecordingStatusCallbackMethod' => recording_status_callback_method,
54
+ 'Trim' => trim,
55
+ 'RecordingChannels' => recording_channels,
56
+ 'PlayBeep' => play_beep,
57
+ })
58
+
59
+ payload = @version.create(
60
+ 'POST',
61
+ @uri,
62
+ data: data
63
+ )
64
+
65
+ RecordingInstance.new(
66
+ @version,
67
+ payload,
68
+ account_sid: @solution[:account_sid],
69
+ call_sid: @solution[:call_sid],
70
+ )
71
+ end
72
+
30
73
  ##
31
74
  # Lists RecordingInstance records from the API as a list.
32
75
  # Unlike stream(), this operation is eager and will load `limit` records into
33
76
  # memory before returning.
34
- # @param [Time] date_created_before The date_created
35
- # @param [Time] date_created The date_created
36
- # @param [Time] date_created_after The date_created
77
+ # @param [Time] date_created_before Filter by date created
78
+ # @param [Time] date_created Filter by date created
79
+ # @param [Time] date_created_after Filter by date created
37
80
  # @param [Integer] limit Upper limit for the number of records to return. stream()
38
81
  # guarantees to never return more than limit. Default is no limit
39
82
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -55,9 +98,9 @@ module Twilio
55
98
  # Streams RecordingInstance records from the API as an Enumerable.
56
99
  # This operation lazily loads records as efficiently as possible until the limit
57
100
  # is reached.
58
- # @param [Time] date_created_before The date_created
59
- # @param [Time] date_created The date_created
60
- # @param [Time] date_created_after The date_created
101
+ # @param [Time] date_created_before Filter by date created
102
+ # @param [Time] date_created Filter by date created
103
+ # @param [Time] date_created_after Filter by date created
61
104
  # @param [Integer] limit Upper limit for the number of records to return. stream()
62
105
  # guarantees to never return more than limit. Default is no limit.
63
106
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -95,9 +138,9 @@ module Twilio
95
138
  ##
96
139
  # Retrieve a single page of RecordingInstance records from the API.
97
140
  # Request is executed immediately.
98
- # @param [Time] date_created_before The date_created
99
- # @param [Time] date_created The date_created
100
- # @param [Time] date_created_after The date_created
141
+ # @param [Time] date_created_before Filter by date created
142
+ # @param [Time] date_created Filter by date created
143
+ # @param [Time] date_created_after Filter by date created
101
144
  # @param [String] page_token PageToken provided by the API
102
145
  # @param [Integer] page_number Page Number, this value is simply for client state
103
146
  # @param [Integer] page_size Number of records to return, defaults to 50
@@ -178,8 +221,8 @@ module Twilio
178
221
  # Initialize the RecordingContext
179
222
  # @param [Version] version Version that contains the resource
180
223
  # @param [String] account_sid The account_sid
181
- # @param [String] call_sid The call_sid
182
- # @param [String] sid The sid
224
+ # @param [String] call_sid The call Sid that uniquely identifies this resource
225
+ # @param [String] sid The recording Sid that uniquely identifies this resource
183
226
  # @return [RecordingContext] RecordingContext
184
227
  def initialize(version, account_sid, call_sid, sid)
185
228
  super(version)
@@ -189,6 +232,29 @@ module Twilio
189
232
  @uri = "/Accounts/#{@solution[:account_sid]}/Calls/#{@solution[:call_sid]}/Recordings/#{@solution[:sid]}.json"
190
233
  end
191
234
 
235
+ ##
236
+ # Update the RecordingInstance
237
+ # @param [recording.Status] status The status to change the recording to.
238
+ # Possible values : stopped, paused, in-progress
239
+ # @return [RecordingInstance] Updated RecordingInstance
240
+ def update(status: nil)
241
+ data = Twilio::Values.of({'Status' => status, })
242
+
243
+ payload = @version.update(
244
+ 'POST',
245
+ @uri,
246
+ data: data,
247
+ )
248
+
249
+ RecordingInstance.new(
250
+ @version,
251
+ payload,
252
+ account_sid: @solution[:account_sid],
253
+ call_sid: @solution[:call_sid],
254
+ sid: @solution[:sid],
255
+ )
256
+ end
257
+
192
258
  ##
193
259
  # Fetch a RecordingInstance
194
260
  # @return [RecordingInstance] Fetched RecordingInstance
@@ -230,9 +296,12 @@ module Twilio
230
296
  # Initialize the RecordingInstance
231
297
  # @param [Version] version Version that contains the resource
232
298
  # @param [Hash] payload payload that contains response from Twilio
233
- # @param [String] account_sid The account_sid
234
- # @param [String] call_sid The call_sid
235
- # @param [String] sid The sid
299
+ # @param [String] account_sid The unique ID of the
300
+ # [Account](https://www.twilio.com/docs/api/rest/account) responsible for this
301
+ # recording.
302
+ # @param [String] call_sid A unique identifier for the call associated with the
303
+ # recording. This will always refer to the parent leg of a two leg call.
304
+ # @param [String] sid The recording Sid that uniquely identifies this resource
236
305
  # @return [RecordingInstance] RecordingInstance
237
306
  def initialize(version, payload, account_sid: nil, call_sid: nil, sid: nil)
238
307
  super(version)
@@ -245,6 +314,7 @@ module Twilio
245
314
  'conference_sid' => payload['conference_sid'],
246
315
  'date_created' => Twilio.deserialize_rfc2822(payload['date_created']),
247
316
  'date_updated' => Twilio.deserialize_rfc2822(payload['date_updated']),
317
+ 'start_time' => Twilio.deserialize_rfc2822(payload['start_time']),
248
318
  'duration' => payload['duration'],
249
319
  'sid' => payload['sid'],
250
320
  'price' => payload['price'].to_f,
@@ -279,101 +349,116 @@ module Twilio
279
349
  end
280
350
 
281
351
  ##
282
- # @return [String] The account_sid
352
+ # @return [String] The unique sid that identifies this account
283
353
  def account_sid
284
354
  @properties['account_sid']
285
355
  end
286
356
 
287
357
  ##
288
- # @return [String] The api_version
358
+ # @return [String] The version of the API in use during the recording.
289
359
  def api_version
290
360
  @properties['api_version']
291
361
  end
292
362
 
293
363
  ##
294
- # @return [String] The call_sid
364
+ # @return [String] The unique id for the call leg that corresponds to the recording.
295
365
  def call_sid
296
366
  @properties['call_sid']
297
367
  end
298
368
 
299
369
  ##
300
- # @return [String] The conference_sid
370
+ # @return [String] The unique id for the conference associated with the recording, if a conference recording.
301
371
  def conference_sid
302
372
  @properties['conference_sid']
303
373
  end
304
374
 
305
375
  ##
306
- # @return [Time] The date_created
376
+ # @return [Time] The date this resource was created
307
377
  def date_created
308
378
  @properties['date_created']
309
379
  end
310
380
 
311
381
  ##
312
- # @return [Time] The date_updated
382
+ # @return [Time] The date this resource was last updated
313
383
  def date_updated
314
384
  @properties['date_updated']
315
385
  end
316
386
 
317
387
  ##
318
- # @return [String] The duration
388
+ # @return [Time] The start time of the recording, given in RFC 2822 format.
389
+ def start_time
390
+ @properties['start_time']
391
+ end
392
+
393
+ ##
394
+ # @return [String] The length of the recording, in seconds.
319
395
  def duration
320
396
  @properties['duration']
321
397
  end
322
398
 
323
399
  ##
324
- # @return [String] The sid
400
+ # @return [String] A string that uniquely identifies this recording
325
401
  def sid
326
402
  @properties['sid']
327
403
  end
328
404
 
329
405
  ##
330
- # @return [String] The price
406
+ # @return [String] The one-time cost of creating this recording.
331
407
  def price
332
408
  @properties['price']
333
409
  end
334
410
 
335
411
  ##
336
- # @return [String] The uri
412
+ # @return [String] The URI for this resource
337
413
  def uri
338
414
  @properties['uri']
339
415
  end
340
416
 
341
417
  ##
342
- # @return [Hash] The encryption_details
418
+ # @return [Hash] Details for how to decrypt the recording.
343
419
  def encryption_details
344
420
  @properties['encryption_details']
345
421
  end
346
422
 
347
423
  ##
348
- # @return [String] The price_unit
424
+ # @return [String] The currency used in the Price property.
349
425
  def price_unit
350
426
  @properties['price_unit']
351
427
  end
352
428
 
353
429
  ##
354
- # @return [recording.Status] The status
430
+ # @return [recording.Status] The status of the recording.
355
431
  def status
356
432
  @properties['status']
357
433
  end
358
434
 
359
435
  ##
360
- # @return [String] The channels
436
+ # @return [String] The number of channels in the final recording file as an integer.
361
437
  def channels
362
438
  @properties['channels']
363
439
  end
364
440
 
365
441
  ##
366
- # @return [recording.Source] The source
442
+ # @return [recording.Source] The way in which this recording was created.
367
443
  def source
368
444
  @properties['source']
369
445
  end
370
446
 
371
447
  ##
372
- # @return [String] The error_code
448
+ # @return [String] More information about the recording failure, if Status is failed.
373
449
  def error_code
374
450
  @properties['error_code']
375
451
  end
376
452
 
453
+ ##
454
+ # Update the RecordingInstance
455
+ # @param [recording.Status] status The status to change the recording to.
456
+ # Possible values : stopped, paused, in-progress
457
+ # @return [RecordingInstance] Updated RecordingInstance
458
+ def update(status: nil)
459
+ context.update(status: status, )
460
+ end
461
+
377
462
  ##
378
463
  # Fetch a RecordingInstance
379
464
  # @return [RecordingInstance] Fetched RecordingInstance
@@ -220,6 +220,7 @@ module Twilio
220
220
 
221
221
  # Dependents
222
222
  @participants = nil
223
+ @recordings = nil
223
224
  end
224
225
 
225
226
  ##
@@ -294,6 +295,28 @@ module Twilio
294
295
  @participants
295
296
  end
296
297
 
298
+ ##
299
+ # Access the recordings
300
+ # @return [RecordingList]
301
+ # @return [RecordingContext] if sid was passed.
302
+ def recordings(sid=:unset)
303
+ raise ArgumentError, 'sid cannot be nil' if sid.nil?
304
+
305
+ if sid != :unset
306
+ return RecordingContext.new(@version, @solution[:account_sid], @solution[:sid], sid, )
307
+ end
308
+
309
+ unless @recordings
310
+ @recordings = RecordingList.new(
311
+ @version,
312
+ account_sid: @solution[:account_sid],
313
+ conference_sid: @solution[:sid],
314
+ )
315
+ end
316
+
317
+ @recordings
318
+ end
319
+
297
320
  ##
298
321
  # Provide a user friendly representation
299
322
  def to_s
@@ -432,6 +455,13 @@ module Twilio
432
455
  context.participants
433
456
  end
434
457
 
458
+ ##
459
+ # Access the recordings
460
+ # @return [recordings] recordings
461
+ def recordings
462
+ context.recordings
463
+ end
464
+
435
465
  ##
436
466
  # Provide a user friendly representation
437
467
  def to_s