signalwire 1.4.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +55 -0
  3. data/.rubocop.yml +14 -2
  4. data/AUTHORS.md +1 -0
  5. data/CHANGELOG.md +30 -5
  6. data/Gemfile +4 -18
  7. data/LICENSE +21 -0
  8. data/README.md +22 -82
  9. data/Rakefile +0 -17
  10. data/examples/relay/inbound_consumer.rb +26 -0
  11. data/examples/relay/inbound_dial.rb +28 -0
  12. data/examples/relay/outbound_collect.rb +27 -0
  13. data/examples/relay/outbound_consumer.rb +22 -0
  14. data/examples/relay/outbound_record.rb +25 -0
  15. data/lib/signalwire.rb +13 -0
  16. data/lib/signalwire/blade.rb +12 -0
  17. data/lib/signalwire/blade/connection.rb +200 -0
  18. data/lib/signalwire/blade/event_handler.rb +15 -0
  19. data/lib/signalwire/blade/message.rb +38 -0
  20. data/lib/signalwire/blade/message/connect.rb +18 -0
  21. data/lib/signalwire/blade/message/execute.rb +16 -0
  22. data/lib/signalwire/blade/message/subscribe.rb +15 -0
  23. data/lib/signalwire/common.rb +6 -0
  24. data/lib/signalwire/logger.rb +27 -0
  25. data/lib/signalwire/relay.rb +40 -0
  26. data/lib/signalwire/relay/calling.rb +82 -0
  27. data/lib/signalwire/relay/calling/action.rb +16 -0
  28. data/lib/signalwire/relay/calling/action/connect_action.rb +11 -0
  29. data/lib/signalwire/relay/calling/action/play_action.rb +15 -0
  30. data/lib/signalwire/relay/calling/action/prompt_action.rb +15 -0
  31. data/lib/signalwire/relay/calling/action/record_action.rb +15 -0
  32. data/lib/signalwire/relay/calling/call.rb +210 -0
  33. data/lib/signalwire/relay/calling/call_convenience_methods.rb +79 -0
  34. data/lib/signalwire/relay/calling/component.rb +115 -0
  35. data/lib/signalwire/relay/calling/component/answer.rb +27 -0
  36. data/lib/signalwire/relay/calling/component/await.rb +20 -0
  37. data/lib/signalwire/relay/calling/component/connect.rb +45 -0
  38. data/lib/signalwire/relay/calling/component/dial.rb +34 -0
  39. data/lib/signalwire/relay/calling/component/hangup.rb +41 -0
  40. data/lib/signalwire/relay/calling/component/play.rb +46 -0
  41. data/lib/signalwire/relay/calling/component/prompt.rb +62 -0
  42. data/lib/signalwire/relay/calling/component/record.rb +53 -0
  43. data/lib/signalwire/relay/calling/control_component.rb +35 -0
  44. data/lib/signalwire/relay/calling/result.rb +16 -0
  45. data/lib/signalwire/relay/calling/result/answer_result.rb +6 -0
  46. data/lib/signalwire/relay/calling/result/connect_result.rb +9 -0
  47. data/lib/signalwire/relay/calling/result/dial_result.rb +7 -0
  48. data/lib/signalwire/relay/calling/result/hangup_result.rb +7 -0
  49. data/lib/signalwire/relay/calling/result/play_result.rb +6 -0
  50. data/lib/signalwire/relay/calling/result/prompt_result.rb +11 -0
  51. data/lib/signalwire/relay/calling/result/record_result.rb +7 -0
  52. data/lib/signalwire/relay/client.rb +147 -0
  53. data/lib/signalwire/relay/constants.rb +109 -0
  54. data/lib/signalwire/relay/consumer.rb +88 -0
  55. data/lib/signalwire/relay/event.rb +41 -0
  56. data/lib/signalwire/relay/request.rb +6 -0
  57. data/lib/signalwire/rest/client.rb +5 -5
  58. data/lib/signalwire/sdk/fax_response.rb +3 -3
  59. data/lib/signalwire/sdk/messaging_response.rb +0 -2
  60. data/lib/signalwire/sdk/twilio_set_fax.rb +9 -8
  61. data/lib/signalwire/sdk/twilio_set_host.rb +8 -3
  62. data/lib/signalwire/version.rb +5 -0
  63. data/signalwire.gemspec +36 -106
  64. metadata +173 -76
  65. data/LICENSE.txt +0 -20
  66. data/VERSION +0 -1
  67. data/spec/signalwire/rest/client_spec.rb +0 -30
  68. data/spec/signalwire/rest/integration_spec.rb +0 -102
  69. data/spec/signalwire/sdk/configuration_spec.rb +0 -28
  70. data/spec/signalwire/sdk/fax_response_spec.rb +0 -26
  71. data/spec/signalwire/sdk/messaging_response_spec.rb +0 -18
  72. data/spec/signalwire/sdk/voice_response_spec.rb +0 -20
  73. data/spec/signalwire/sdk_spec.rb +0 -27
  74. data/spec/spec_helper.rb +0 -119
  75. data/spec/vcr_cassettes/accounts.yml +0 -27
  76. data/spec/vcr_cassettes/applications.yml +0 -29
  77. data/spec/vcr_cassettes/get_fax.yml +0 -25
  78. data/spec/vcr_cassettes/get_fax_media_instance.yml +0 -27
  79. data/spec/vcr_cassettes/get_fax_media_list.yml +0 -47
  80. data/spec/vcr_cassettes/list_faxes.yml +0 -25
  81. data/spec/vcr_cassettes/local_numbers.yml +0 -26
  82. data/spec/vcr_cassettes/recordings.yml +0 -27
  83. data/spec/vcr_cassettes/send_fax.yml +0 -27
  84. data/spec/vcr_cassettes/toll_free_numbers.yml +0 -34
  85. data/spec/vcr_cassettes/transcriptions.yml +0 -28
@@ -1,20 +0,0 @@
1
- Copyright (c) 2018 Luca Pradovera
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.4.0
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- module Signalwire
6
- RSpec.describe REST::Client do
7
- it 'makes the correct request' do
8
- Signalwire::Sdk.configure do |config|
9
- config.hostname = 'myswspace.signalwire.com'
10
- end
11
-
12
- @client = Signalwire::REST::Client.new 'MYSWPROJECT',
13
- 'MYSWTOKEN'
14
-
15
- stub = stub_request(:post, 'https://myswspace.signalwire.com/api/laml/2010-04-01/Accounts/MYSWPROJECT/Messages.json')
16
- .with(body: { 'Body' => 'This is a message from the Signalwire-Ruby library!',
17
- 'From' => '+15556677999', 'To' => '+15558866555' })
18
-
19
- @message = @client.messages.create(
20
- from: '+15556677999',
21
- to: '+15558866555',
22
- body: 'This is a message from the Signalwire-Ruby library!'
23
- )
24
-
25
- expect(stub).to have_been_requested
26
- end
27
- end
28
- end
29
-
30
-
@@ -1,102 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Signalwire::REST::Client do
6
- before :all do
7
- Signalwire::Sdk.configure do |config|
8
- config.hostname = ENV.fetch('SIGNALWIRE_SPACE', 'testing.signalwire.com')
9
- end
10
- end
11
-
12
- before :each do
13
- @client = Signalwire::REST::Client.new ENV.fetch('SIGNALWIRE_ACCOUNT', 'xyz123-xyz123-xyz123'),
14
- ENV.fetch('SIGNALWIRE_TOKEN', 'PTxyz123-xyz123-xyz123')
15
- end
16
-
17
- it "fetches accounts" do
18
- VCR.use_cassette("accounts") do
19
- accounts = @client.api.accounts.list
20
- expect(accounts.first.friendly_name).to eq 'LAML testing'
21
- end
22
- end
23
-
24
- it 'fetches applications' do
25
- VCR.use_cassette('applications') do
26
- applications = @client.applications.list
27
- expect(applications.first.sid).to eq '34f49a97-a863-4a11-8fef-bc399c6f0928'
28
- end
29
- end
30
-
31
- it 'fetches local numbers' do
32
- VCR.use_cassette('local_numbers') do
33
- numbers = @client.api.available_phone_numbers('US').local.list(in_region: 'WA')
34
- expect(numbers.first.phone_number).to eq '+12062011680'
35
- end
36
- end
37
-
38
- it 'fetches toll free numbers' do
39
- VCR.use_cassette('toll_free_numbers') do
40
- numbers = @client.api.available_phone_numbers('US').toll_free.list(area_code: '310')
41
- expect(numbers.first.phone_number).to eq '+13102174822'
42
- end
43
- end
44
-
45
- it 'fetches recordings' do
46
- VCR.use_cassette('recordings') do
47
- recordings = @client.recordings.list
48
- expect(recordings.first.call_sid).to eq 'd411976d-d319-4fbd-923c-57c62b6f677a'
49
- end
50
- end
51
-
52
- it 'fetches transcriptions' do
53
- VCR.use_cassette('transcriptions') do
54
- recordings = @client.transcriptions.list
55
- expect(recordings.first.recording_sid).to eq 'e4c78e17-c0e2-441d-b5dd-39a6dad496f8'
56
- end
57
- end
58
-
59
- context 'faxes' do
60
- it 'sends a fax' do
61
- VCR.use_cassette('send_fax') do
62
- fax = @client.fax.faxes
63
- .create(
64
- from: '+15556677888',
65
- to: '+15556677999',
66
- media_url: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf'
67
- )
68
- expect(fax.sid).to eq '831455c6-574e-4d8b-b6ee-2418140bf4cd'
69
- end
70
- end
71
-
72
- it 'lists faxes' do
73
- VCR.use_cassette('list_faxes') do
74
- faxes = @client.fax.faxes.list
75
- expect(faxes.first.sid).to eq '831455c6-574e-4d8b-b6ee-2418140bf4cd'
76
- end
77
- end
78
-
79
- it 'gets a fax' do
80
- VCR.use_cassette('get_fax') do
81
- fax = @client.fax.faxes('831455c6-574e-4d8b-b6ee-2418140bf4cd').fetch
82
- expect(fax.to).to eq '+15556677999'
83
- expect(fax.media_url).to eq 'https://s3.us-east-2.amazonaws.com/signalwire-assets/faxes/20190104162834-831455c6-574e-4d8b-b6ee-2418140bf4cd.tiff'
84
- end
85
- end
86
-
87
- it 'gets a faxes media' do
88
- VCR.use_cassette('get_fax_media_list') do
89
- fax = @client.fax.faxes('831455c6-574e-4d8b-b6ee-2418140bf4cd').fetch
90
- expect(fax.media.list.first.sid).to eq 'aff0684c-3445-49bc-802b-3a0a488139f5'
91
- end
92
- end
93
-
94
- it 'gets a media instance' do
95
- VCR.use_cassette('get_fax_media_instance') do
96
- fax_media = @client.fax.faxes('831455c6-574e-4d8b-b6ee-2418140bf4cd').media('aff0684c-3445-49bc-802b-3a0a488139f5').fetch
97
- expect(fax_media.content_type).to eq 'image/tiff'
98
- expect(fax_media.url).to eq '/api/laml/2010-04-01/Accounts/xyz123-xyz123-xyz123/Faxes/831455c6-574e-4d8b-b6ee-2418140bf4cd/Media/aff0684c-3445-49bc-802b-3a0a488139f5.json'
99
- end
100
- end
101
- end
102
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- module Signalwire
6
- RSpec.describe Sdk::Configuration do
7
- describe '#hostname' do
8
- it 'there is no default' do
9
- expect(Sdk::Configuration.new.hostname).to eq nil
10
- end
11
- end
12
-
13
- describe '#hostname=' do
14
- it 'can set value' do
15
- config = Sdk::Configuration.new
16
- config.hostname = 'test.signalwire.com'
17
- expect(config.hostname).to eq('test.signalwire.com')
18
- end
19
- end
20
-
21
- describe 'setting up directly in the constructor' do
22
- it 'sets the configuration in the constructor' do
23
- client = Signalwire::REST::Client.new 'xyz123-xyz123-xyz123', 'PTxyz123-xyz123-xyz123', signalwire_space_url: 'test.signalwire.com'
24
- expect(Signalwire::Sdk.configuration.hostname).to eq('test.signalwire.com')
25
- end
26
- end
27
- end
28
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- module Signalwire
6
- RSpec.describe Sdk::FaxResponse do
7
- it 'generates the correct LAML' do
8
- response = Signalwire::Sdk::FaxResponse.new do |r|
9
- r.receive(action: '/receive/fax')
10
- end
11
-
12
- expect(response.to_s).to eq "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Response>\n"\
13
- "<Receive action=\"/receive/fax\"/>\n</Response>\n"
14
- end
15
-
16
- it 'can reject a fax' do
17
- response = Signalwire::Sdk::FaxResponse.new do |r|
18
- r.reject
19
- end
20
-
21
- expect(response.to_s).to eq "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Response>\n"\
22
- "<Reject/>\n</Response>\n"
23
- end
24
- end
25
- end
26
-
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- module Signalwire
6
- RSpec.describe Sdk::MessagingResponse do
7
- it 'generates the correct LAML' do
8
- response = Signalwire::Sdk::MessagingResponse.new do |r|
9
- r.message body: 'hello from a SignalWire SMS'
10
- end
11
-
12
- expect(response.to_s).to eq "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Response>\n"\
13
- "<Message>hello from a SignalWire SMS</Message>\n</Response>\n"
14
- end
15
- end
16
- end
17
-
18
-
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- module Signalwire
6
- RSpec.describe Sdk::VoiceResponse do
7
- it 'generates the correct LAML' do
8
- response = Signalwire::Sdk::VoiceResponse.new do |r|
9
- r.say(message: 'hello there', voice: 'alice')
10
- r.dial(caller_id: '+14159992222') do |d|
11
- d.number('+15552233444')
12
- end
13
- end
14
-
15
- expect(response.to_s).to eq "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Response>\n"\
16
- "<Say voice=\"alice\">hello there</Say>\n<Dial callerId=\"+14159992222\">\n"\
17
- "<Number>+15552233444</Number>\n</Dial>\n</Response>\n"
18
- end
19
- end
20
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Signalwire::Sdk do
6
- describe '#configure' do
7
- it 'returns the configured hostname' do
8
- Signalwire::Sdk.configure do |config|
9
- config.hostname = 'demo.signalwire.com'
10
- end
11
-
12
- twilio_client = Twilio::REST::Client.new
13
- expect(twilio_client.api.hostname).to eq('demo.signalwire.com')
14
- expect(twilio_client.fax.hostname).to eq('demo.signalwire.com')
15
- end
16
-
17
- it 'requires the hostname configuration to be set' do
18
- Signalwire::Sdk.configure do |config|
19
- config.hostname = nil
20
- end
21
-
22
- expect do
23
- Twilio::REST::Client.new.api
24
- end.to raise_exception ArgumentError, /SignalWire Space URL is not configured/
25
- end
26
- end
27
- end
@@ -1,119 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'simplecov'
4
- SimpleCov.start
5
-
6
- %w[
7
- bundler/setup
8
- signalwire/sdk
9
- webmock/rspec
10
- vcr
11
- ].each { |f| require f }
12
-
13
- # This file was generated by the `rspec --init` command. Conventionally, all
14
- # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
15
- # The generated `.rspec` file contains `--require spec_helper` which will cause
16
- # this file to always be loaded, without a need to explicitly require it in any
17
- # files.
18
- #
19
- # Given that it is always loaded, you are encouraged to keep this file as
20
- # light-weight as possible. Requiring heavyweight dependencies from this file
21
- # will add to the boot time of your test suite on EVERY test run, even for an
22
- # individual file that may not need all of that loaded. Instead, consider making
23
- # a separate helper file that requires the additional dependencies and performs
24
- # the additional setup, and require it from the spec files that actually need
25
- # it.
26
- #
27
- # The `.rspec` file also contains a few flags that are not defaults but that
28
- # users commonly want.
29
- #
30
- # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
31
- RSpec.configure do |config|
32
- # rspec-expectations config goes here. You can use an alternate
33
- # assertion/expectation library such as wrong or the stdlib/minitest
34
- # assertions if you prefer.
35
- config.expect_with :rspec do |expectations|
36
- # This option will default to `true` in RSpec 4. It makes the `description`
37
- # and `failure_message` of custom matchers include text for helper methods
38
- # defined using `chain`, e.g.:
39
- # be_bigger_than(2).and_smaller_than(4).description
40
- # # => "be bigger than 2 and smaller than 4"
41
- # ...rather than:
42
- # # => "be bigger than 2"
43
- expectations.include_chain_clauses_in_custom_matcher_descriptions = true
44
- end
45
-
46
- # rspec-mocks config goes here. You can use an alternate test double
47
- # library (such as bogus or mocha) by changing the `mock_with` option here.
48
- config.mock_with :rspec do |mocks|
49
- # Prevents you from mocking or stubbing a method that does not exist on
50
- # a real object. This is generally recommended, and will default to
51
- # `true` in RSpec 4.
52
- mocks.verify_partial_doubles = true
53
- end
54
-
55
- # This option will default to `:apply_to_host_groups` in RSpec 4 (and will
56
- # have no way to turn it off -- the option exists only for backwards
57
- # compatibility in RSpec 3). It causes shared context metadata to be
58
- # inherited by the metadata hash of host groups and examples, rather than
59
- # triggering implicit auto-inclusion in groups with matching metadata.
60
- config.shared_context_metadata_behavior = :apply_to_host_groups
61
-
62
- # The settings below are suggested to provide a good initial experience
63
- # with RSpec, but feel free to customize to your heart's content.
64
- # # This allows you to limit a spec run to individual examples or groups
65
- # # you care about by tagging them with `:focus` metadata. When nothing
66
- # # is tagged with `:focus`, all examples get run. RSpec also provides
67
- # # aliases for `it`, `describe`, and `context` that include `:focus`
68
- # # metadata: `fit`, `fdescribe` and `fcontext`, respectively.
69
- # config.filter_run_when_matching :focus
70
- #
71
- # # Allows RSpec to persist some state between runs in order to support
72
- # # the `--only-failures` and `--next-failure` CLI options. We recommend
73
- # # you configure your source control system to ignore this file.
74
- # config.example_status_persistence_file_path = "spec/examples.txt"
75
- #
76
- # # Limits the available syntax to the non-monkey patched syntax that is
77
- # # recommended. For more details, see:
78
- # # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
79
- # # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
80
- # # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
81
- # config.disable_monkey_patching!
82
- #
83
- # # This setting enables warnings. It's recommended, but in some cases may
84
- # # be too noisy due to issues in dependencies.
85
- # config.warnings = true
86
- #
87
- # # Many RSpec users commonly either run the entire suite or an individual
88
- # # file, and it's useful to allow more verbose output when running an
89
- # # individual spec file.
90
- # if config.files_to_run.one?
91
- # # Use the documentation formatter for detailed output,
92
- # # unless a formatter has already been configured
93
- # # (e.g. via a command-line flag).
94
- # config.default_formatter = 'doc'
95
- # end
96
- #
97
- # # Print the 10 slowest examples and example groups at the
98
- # # end of the spec run, to help surface which specs are running
99
- # # particularly slow.
100
- # config.profile_examples = 10
101
- #
102
- # # Run specs in random order to surface order dependencies. If you find an
103
- # # order dependency and want to debug it, you can fix the order by providing
104
- # # the seed, which is printed after each run.
105
- # # --seed 1234
106
- # config.order = :random
107
- #
108
- # # Seed global randomization in this process using the `--seed` CLI option.
109
- # # Setting this allows you to use `--seed` to deterministically reproduce
110
- # # test failures related to randomization by passing the same `--seed` value
111
- # # as the one that triggered the failure.
112
- # Kernel.srand config.seed
113
- end
114
-
115
- VCR.configure do |config|
116
- config.hook_into :webmock
117
- config.cassette_library_dir = 'spec/vcr_cassettes'
118
- #config.allow_http_connections_when_no_cassette = true
119
- end
@@ -1,27 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://testing.signalwire.com/api/laml/2010-04-01/Accounts.json
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept-Charset:
11
- - utf-8
12
- Accept:
13
- - application/json
14
- Accept-Encoding:
15
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
- response:
17
- status:
18
- code: 200
19
- message: OK
20
- body:
21
- encoding: UTF-8
22
- string: '{"uri":"/api/laml/2010-04-01/Accounts?Page=1\u0026PageSize=50","start":0,"end":0,"first_page_uri":"/api/laml/2010-04-01/Accounts?Page=1\u0026PageSize=50","next_page_uri":null,"previous_page_uri":null,"page":0,"page_size":50,"accounts":[{"sid":"xyz123-xyz123-xyz123","friendly_name":"LAML
23
- testing","status":"active","auth_token":"redacted","date_created":"Mon, 20
24
- Aug 2018 12:54:10 +0000","date_updated":"Mon, 20 Aug 2018 12:54:10 +0000","type":"Full","uri":"/api/laml/2010-04-01/Accounts/xyz123-xyz123-xyz123","subresource_uris":{"addresses":null,"available_phone_numbers":"/api/laml/2010-04-01/Accounts/xyz123-xyz123-xyz123/AvailablePhoneNumbers","applications":"/api/laml/2010-04-01/Accounts/xyz123-xyz123-xyz123/Applications","authorized_connect_apps":null,"calls":"/api/laml/2010-04-01/Accounts/xyz123-xyz123-xyz123/Calls","conferences":"/api/laml/2010-04-01/Accounts/xyz123-xyz123-xyz123/Conferences","connect_apps":null,"incoming_phone_numbers":"/api/laml/2010-04-01/Accounts/xyz123-xyz123-xyz123/IncomingPhoneNumbers","keys":null,"notifications":null,"outgoing_caller_ids":null,"queues":"/api/laml/2010-04-01/Accounts/xyz123-xyz123-xyz123/Queues","recordings":"/api/laml/2010-04-01/Accounts/xyz123-xyz123-xyz123/Recordings","sandbox":null,"signing_keys":null,"sip":null,"short_codes":null,"messages":"/api/laml/2010-04-01/Accounts/xyz123-xyz123-xyz123/Messages","transcriptions":"/api/laml/2010-04-01/Accounts/xyz123-xyz123-xyz123/Transcriptions","usage":null}}]}'
25
- http_version:
26
- recorded_at: Wed, 26 Dec 2018 16:47:17 GMT
27
- recorded_with: VCR 4.0.0
@@ -1,29 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://testing.signalwire.com/api/laml/2010-04-01/Accounts/xyz123-xyz123-xyz123/Applications.json
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- User-Agent:
11
- - twilio-ruby/5.18.0 (ruby/x86_64-darwin17 2.5.0-p0)
12
- Accept-Charset:
13
- - utf-8
14
- Accept:
15
- - application/json
16
- Accept-Encoding:
17
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
- response:
19
- status:
20
- code: 200
21
- message: OK
22
- body:
23
- encoding: UTF-8
24
- string: '{"uri":"/api/laml/2010-04-01/Accounts/xyz123-xyz123-xyz123/Applications?Page=0\u0026PageSize=50","first_page_uri":"/api/laml/2010-04-01/Accounts/xyz123-xyz123-xyz123/Applications?Page=0\u0026PageSize=50","next_page_uri":null,"previous_page_uri":null,"page":0,"page_size":50,"applications":[{"sid":"34f49a97-a863-4a11-8fef-bc399c6f0928","date_created":"Wed,
25
- 19 Dec 2018 14:23:36 +0000","date_updated":"Wed, 19 Dec 2018 15:45:52 +0000","account_sid":"xyz123-xyz123-xyz123","friendly_name":"Test
26
- App","voice_url":"https://testing.signalwire.com/laml-bins/edfb6a6e-a60a-4a56-9a9c-04babd511882","voice_method":"GET","voice_fallback_url":"","voice_fallback_method":"POST","status_callback":"","status_callback_method":"POST","voice_caller_id_lookup":null,"sms_url":"","sms_method":"POST","sms_fallback_url":"","sms_fallback_method":"POST","sms_status_callback":"","sms_status_callback_method":"POST","api_version":"2010-04-01","uri":"/api/laml/2010-04-01/Accounts/xyz123-xyz123-xyz123/Calls/34f49a97-a863-4a11-8fef-bc399c6f0928"}]}'
27
- http_version:
28
- recorded_at: Wed, 26 Dec 2018 16:51:53 GMT
29
- recorded_with: VCR 4.0.0