twilio-ruby 5.39.3 → 5.40.0

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 (30) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +24 -1
  3. data/CONTRIBUTING.md +2 -2
  4. data/README.md +2 -3
  5. data/lib/twilio-ruby/rest/api/v2010/account/application.rb +6 -4
  6. data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +3 -3
  7. data/lib/twilio-ruby/rest/client.rb +7 -0
  8. data/lib/twilio-ruby/rest/conversations/v1/conversation/participant.rb +12 -2
  9. data/lib/twilio-ruby/rest/events.rb +54 -0
  10. data/lib/twilio-ruby/rest/events/v1.rb +58 -0
  11. data/lib/twilio-ruby/rest/events/v1/sink.rb +379 -0
  12. data/lib/twilio-ruby/rest/events/v1/sink/sink_test.rb +115 -0
  13. data/lib/twilio-ruby/rest/events/v1/sink/sink_validate.rb +118 -0
  14. data/lib/twilio-ruby/rest/events/v1/subscription.rb +358 -0
  15. data/lib/twilio-ruby/rest/events/v1/subscription/subscribed_event.rb +322 -0
  16. data/lib/twilio-ruby/rest/proxy/v1/service/session.rb +33 -17
  17. data/lib/twilio-ruby/rest/proxy/v1/service/session/participant.rb +13 -1
  18. data/lib/twilio-ruby/rest/supersim/v1/fleet.rb +12 -11
  19. data/lib/twilio-ruby/rest/supersim/v1/usage_record.rb +75 -9
  20. data/lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb +0 -6
  21. data/lib/twilio-ruby/rest/wireless/v1/sim/data_session.rb +5 -19
  22. data/lib/twilio-ruby/version.rb +1 -1
  23. data/spec/integration/events/v1/sink/sink_test_spec.rb +42 -0
  24. data/spec/integration/events/v1/sink/sink_validate_spec.rb +44 -0
  25. data/spec/integration/events/v1/sink_spec.rb +217 -0
  26. data/spec/integration/events/v1/subscription/subscribed_event_spec.rb +212 -0
  27. data/spec/integration/events/v1/subscription_spec.rb +205 -0
  28. data/spec/integration/supersim/v1/usage_record_spec.rb +463 -18
  29. data/spec/integration/wireless/v1/sim/data_session_spec.rb +2 -2
  30. metadata +19 -2
@@ -29,8 +29,19 @@ module Twilio
29
29
  # Lists UsageRecordInstance records from the API as a list.
30
30
  # Unlike stream(), this operation is eager and will load `limit` records into
31
31
  # memory before returning.
32
- # @param [String] sim SID of a Sim resource. Only show UsageRecords representing
33
- # usage incurred by this Super SIM.
32
+ # @param [String] sim SID or unique name of a Sim resource. Only show UsageRecords
33
+ # representing usage incurred by this Super SIM.
34
+ # @param [String] fleet SID or unique name of a Fleet resource. Only show
35
+ # UsageRecords representing usage for Super SIMs belonging to this Fleet resource
36
+ # at the time the usage occurred.
37
+ # @param [String] network SID of a Network resource. Only show UsageRecords
38
+ # representing usage on this network.
39
+ # @param [String] iso_country Alpha-2 ISO Country Code. Only show UsageRecords
40
+ # representing usage in this country.
41
+ # @param [usage_record.Group] group Dimension over which to aggregate usage
42
+ # records. Can be: `sim`, `fleet`, `network`, `isoCountry`. Default is to not
43
+ # aggregate across any of these dimensions, UsageRecords will be aggregated into
44
+ # the time buckets described by the `Granularity` parameter.
34
45
  # @param [usage_record.Granularity] granularity Time-based grouping that
35
46
  # UsageRecords should be aggregated by. Can be: `hour`, `day`, or `all`. Default
36
47
  # is `all`. `all` returns one UsageRecord that describes the usage for the entire
@@ -48,9 +59,13 @@ module Twilio
48
59
  # but a limit is defined, stream() will attempt to read the limit with the most
49
60
  # efficient page size, i.e. min(limit, 1000)
50
61
  # @return [Array] Array of up to limit results
51
- def list(sim: :unset, granularity: :unset, start_time: :unset, end_time: :unset, limit: nil, page_size: nil)
62
+ def list(sim: :unset, fleet: :unset, network: :unset, iso_country: :unset, group: :unset, granularity: :unset, start_time: :unset, end_time: :unset, limit: nil, page_size: nil)
52
63
  self.stream(
53
64
  sim: sim,
65
+ fleet: fleet,
66
+ network: network,
67
+ iso_country: iso_country,
68
+ group: group,
54
69
  granularity: granularity,
55
70
  start_time: start_time,
56
71
  end_time: end_time,
@@ -63,8 +78,19 @@ module Twilio
63
78
  # Streams UsageRecordInstance records from the API as an Enumerable.
64
79
  # This operation lazily loads records as efficiently as possible until the limit
65
80
  # is reached.
66
- # @param [String] sim SID of a Sim resource. Only show UsageRecords representing
67
- # usage incurred by this Super SIM.
81
+ # @param [String] sim SID or unique name of a Sim resource. Only show UsageRecords
82
+ # representing usage incurred by this Super SIM.
83
+ # @param [String] fleet SID or unique name of a Fleet resource. Only show
84
+ # UsageRecords representing usage for Super SIMs belonging to this Fleet resource
85
+ # at the time the usage occurred.
86
+ # @param [String] network SID of a Network resource. Only show UsageRecords
87
+ # representing usage on this network.
88
+ # @param [String] iso_country Alpha-2 ISO Country Code. Only show UsageRecords
89
+ # representing usage in this country.
90
+ # @param [usage_record.Group] group Dimension over which to aggregate usage
91
+ # records. Can be: `sim`, `fleet`, `network`, `isoCountry`. Default is to not
92
+ # aggregate across any of these dimensions, UsageRecords will be aggregated into
93
+ # the time buckets described by the `Granularity` parameter.
68
94
  # @param [usage_record.Granularity] granularity Time-based grouping that
69
95
  # UsageRecords should be aggregated by. Can be: `hour`, `day`, or `all`. Default
70
96
  # is `all`. `all` returns one UsageRecord that describes the usage for the entire
@@ -82,11 +108,15 @@ module Twilio
82
108
  # but a limit is defined, stream() will attempt to read the limit with the most
83
109
  # efficient page size, i.e. min(limit, 1000)
84
110
  # @return [Enumerable] Enumerable that will yield up to limit results
85
- def stream(sim: :unset, granularity: :unset, start_time: :unset, end_time: :unset, limit: nil, page_size: nil)
111
+ def stream(sim: :unset, fleet: :unset, network: :unset, iso_country: :unset, group: :unset, granularity: :unset, start_time: :unset, end_time: :unset, limit: nil, page_size: nil)
86
112
  limits = @version.read_limits(limit, page_size)
87
113
 
88
114
  page = self.page(
89
115
  sim: sim,
116
+ fleet: fleet,
117
+ network: network,
118
+ iso_country: iso_country,
119
+ group: group,
90
120
  granularity: granularity,
91
121
  start_time: start_time,
92
122
  end_time: end_time,
@@ -113,8 +143,19 @@ module Twilio
113
143
  ##
114
144
  # Retrieve a single page of UsageRecordInstance records from the API.
115
145
  # Request is executed immediately.
116
- # @param [String] sim SID of a Sim resource. Only show UsageRecords representing
117
- # usage incurred by this Super SIM.
146
+ # @param [String] sim SID or unique name of a Sim resource. Only show UsageRecords
147
+ # representing usage incurred by this Super SIM.
148
+ # @param [String] fleet SID or unique name of a Fleet resource. Only show
149
+ # UsageRecords representing usage for Super SIMs belonging to this Fleet resource
150
+ # at the time the usage occurred.
151
+ # @param [String] network SID of a Network resource. Only show UsageRecords
152
+ # representing usage on this network.
153
+ # @param [String] iso_country Alpha-2 ISO Country Code. Only show UsageRecords
154
+ # representing usage in this country.
155
+ # @param [usage_record.Group] group Dimension over which to aggregate usage
156
+ # records. Can be: `sim`, `fleet`, `network`, `isoCountry`. Default is to not
157
+ # aggregate across any of these dimensions, UsageRecords will be aggregated into
158
+ # the time buckets described by the `Granularity` parameter.
118
159
  # @param [usage_record.Granularity] granularity Time-based grouping that
119
160
  # UsageRecords should be aggregated by. Can be: `hour`, `day`, or `all`. Default
120
161
  # is `all`. `all` returns one UsageRecord that describes the usage for the entire
@@ -129,9 +170,13 @@ module Twilio
129
170
  # @param [Integer] page_number Page Number, this value is simply for client state
130
171
  # @param [Integer] page_size Number of records to return, defaults to 50
131
172
  # @return [Page] Page of UsageRecordInstance
132
- def page(sim: :unset, granularity: :unset, start_time: :unset, end_time: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
173
+ def page(sim: :unset, fleet: :unset, network: :unset, iso_country: :unset, group: :unset, granularity: :unset, start_time: :unset, end_time: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
133
174
  params = Twilio::Values.of({
134
175
  'Sim' => sim,
176
+ 'Fleet' => fleet,
177
+ 'Network' => network,
178
+ 'IsoCountry' => iso_country,
179
+ 'Group' => group,
135
180
  'Granularity' => granularity,
136
181
  'StartTime' => Twilio.serialize_iso8601_datetime(start_time),
137
182
  'EndTime' => Twilio.serialize_iso8601_datetime(end_time),
@@ -211,6 +256,9 @@ module Twilio
211
256
  @properties = {
212
257
  'account_sid' => payload['account_sid'],
213
258
  'sim_sid' => payload['sim_sid'],
259
+ 'network_sid' => payload['network_sid'],
260
+ 'fleet_sid' => payload['fleet_sid'],
261
+ 'iso_country' => payload['iso_country'],
214
262
  'period' => payload['period'],
215
263
  'data_upload' => payload['data_upload'].to_i,
216
264
  'data_download' => payload['data_download'].to_i,
@@ -230,6 +278,24 @@ module Twilio
230
278
  @properties['sim_sid']
231
279
  end
232
280
 
281
+ ##
282
+ # @return [String] SID of the Network resource on which the usage occurred.
283
+ def network_sid
284
+ @properties['network_sid']
285
+ end
286
+
287
+ ##
288
+ # @return [String] SID of the Fleet resource on which the usage occurred.
289
+ def fleet_sid
290
+ @properties['fleet_sid']
291
+ end
292
+
293
+ ##
294
+ # @return [String] Alpha-2 ISO Country Code of the country the usage occurred in.
295
+ def iso_country
296
+ @properties['iso_country']
297
+ end
298
+
233
299
  ##
234
300
  # @return [Hash] The time period for which the usage is reported.
235
301
  def period
@@ -12,8 +12,6 @@ module Twilio
12
12
  class V1 < Version
13
13
  class RoomContext < InstanceContext
14
14
  class ParticipantContext < InstanceContext
15
- ##
16
- # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
17
15
  class SubscribeRulesList < ListResource
18
16
  ##
19
17
  # Initialize the SubscribeRulesList
@@ -71,8 +69,6 @@ module Twilio
71
69
  end
72
70
  end
73
71
 
74
- ##
75
- # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
76
72
  class SubscribeRulesPage < Page
77
73
  ##
78
74
  # Initialize the SubscribeRulesPage
@@ -107,8 +103,6 @@ module Twilio
107
103
  end
108
104
  end
109
105
 
110
- ##
111
- # PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
112
106
  class SubscribeRulesInstance < InstanceResource
113
107
  ##
114
108
  # Initialize the SubscribeRulesInstance
@@ -31,10 +31,6 @@ module Twilio
31
31
  # Lists DataSessionInstance records from the API as a list.
32
32
  # Unlike stream(), this operation is eager and will load `limit` records into
33
33
  # memory before returning.
34
- # @param [Time] end_ The date that the record ended, given as GMT in [ISO
35
- # 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
36
- # @param [Time] start The date that the Data Session started, given as GMT in [ISO
37
- # 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
38
34
  # @param [Integer] limit Upper limit for the number of records to return. stream()
39
35
  # guarantees to never return more than limit. Default is no limit
40
36
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -42,18 +38,14 @@ module Twilio
42
38
  # but a limit is defined, stream() will attempt to read the limit with the most
43
39
  # efficient page size, i.e. min(limit, 1000)
44
40
  # @return [Array] Array of up to limit results
45
- def list(end_: :unset, start: :unset, limit: nil, page_size: nil)
46
- self.stream(end_: end_, start: start, limit: limit, page_size: page_size).entries
41
+ def list(limit: nil, page_size: nil)
42
+ self.stream(limit: limit, page_size: page_size).entries
47
43
  end
48
44
 
49
45
  ##
50
46
  # Streams DataSessionInstance records from the API as an Enumerable.
51
47
  # This operation lazily loads records as efficiently as possible until the limit
52
48
  # is reached.
53
- # @param [Time] end_ The date that the record ended, given as GMT in [ISO
54
- # 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
55
- # @param [Time] start The date that the Data Session started, given as GMT in [ISO
56
- # 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
57
49
  # @param [Integer] limit Upper limit for the number of records to return. stream()
58
50
  # guarantees to never return more than limit. Default is no limit.
59
51
  # @param [Integer] page_size Number of records to fetch per request, when
@@ -61,10 +53,10 @@ module Twilio
61
53
  # but a limit is defined, stream() will attempt to read the limit with the most
62
54
  # efficient page size, i.e. min(limit, 1000)
63
55
  # @return [Enumerable] Enumerable that will yield up to limit results
64
- def stream(end_: :unset, start: :unset, limit: nil, page_size: nil)
56
+ def stream(limit: nil, page_size: nil)
65
57
  limits = @version.read_limits(limit, page_size)
66
58
 
67
- page = self.page(end_: end_, start: start, page_size: limits[:page_size], )
59
+ page = self.page(page_size: limits[:page_size], )
68
60
 
69
61
  @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit])
70
62
  end
@@ -86,18 +78,12 @@ module Twilio
86
78
  ##
87
79
  # Retrieve a single page of DataSessionInstance records from the API.
88
80
  # Request is executed immediately.
89
- # @param [Time] end_ The date that the record ended, given as GMT in [ISO
90
- # 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
91
- # @param [Time] start The date that the Data Session started, given as GMT in [ISO
92
- # 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
93
81
  # @param [String] page_token PageToken provided by the API
94
82
  # @param [Integer] page_number Page Number, this value is simply for client state
95
83
  # @param [Integer] page_size Number of records to return, defaults to 50
96
84
  # @return [Page] Page of DataSessionInstance
97
- def page(end_: :unset, start: :unset, page_token: :unset, page_number: :unset, page_size: :unset)
85
+ def page(page_token: :unset, page_number: :unset, page_size: :unset)
98
86
  params = Twilio::Values.of({
99
- 'End' => Twilio.serialize_iso8601_datetime(end_),
100
- 'Start' => Twilio.serialize_iso8601_datetime(start),
101
87
  'PageToken' => page_token,
102
88
  'Page' => page_number,
103
89
  'PageSize' => page_size,
@@ -1,3 +1,3 @@
1
1
  module Twilio
2
- VERSION = '5.39.3'
2
+ VERSION = '5.40.0'
3
3
  end
@@ -0,0 +1,42 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+ #
7
+ # frozen_string_literal: true
8
+
9
+ require 'spec_helper.rb'
10
+
11
+ describe 'SinkTest' do
12
+ it "can create" do
13
+ @holodeck.mock(Twilio::Response.new(500, ''))
14
+
15
+ expect {
16
+ @client.events.v1.sinks('DGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
17
+ .sink_test.create()
18
+ }.to raise_exception(Twilio::REST::TwilioError)
19
+
20
+ expect(
21
+ @holodeck.has_request?(Holodeck::Request.new(
22
+ method: 'post',
23
+ url: 'https://events.twilio.com/v1/Sinks/DGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Test',
24
+ ))).to eq(true)
25
+ end
26
+
27
+ it "receives create responses" do
28
+ @holodeck.mock(Twilio::Response.new(
29
+ 201,
30
+ %q[
31
+ {
32
+ "result": "valid"
33
+ }
34
+ ]
35
+ ))
36
+
37
+ actual = @client.events.v1.sinks('DGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
38
+ .sink_test.create()
39
+
40
+ expect(actual).to_not eq(nil)
41
+ end
42
+ end
@@ -0,0 +1,44 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+ #
7
+ # frozen_string_literal: true
8
+
9
+ require 'spec_helper.rb'
10
+
11
+ describe 'SinkValidate' do
12
+ it "can create" do
13
+ @holodeck.mock(Twilio::Response.new(500, ''))
14
+
15
+ expect {
16
+ @client.events.v1.sinks('DGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
17
+ .sink_validate.create(test_id: 'test_id')
18
+ }.to raise_exception(Twilio::REST::TwilioError)
19
+
20
+ values = {'TestId' => 'test_id', }
21
+ expect(
22
+ @holodeck.has_request?(Holodeck::Request.new(
23
+ method: 'post',
24
+ url: 'https://events.twilio.com/v1/Sinks/DGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Validate',
25
+ data: values,
26
+ ))).to eq(true)
27
+ end
28
+
29
+ it "receives create responses" do
30
+ @holodeck.mock(Twilio::Response.new(
31
+ 201,
32
+ %q[
33
+ {
34
+ "result": "valid"
35
+ }
36
+ ]
37
+ ))
38
+
39
+ actual = @client.events.v1.sinks('DGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
40
+ .sink_validate.create(test_id: 'test_id')
41
+
42
+ expect(actual).to_not eq(nil)
43
+ end
44
+ end
@@ -0,0 +1,217 @@
1
+ ##
2
+ # This code was generated by
3
+ # \ / _ _ _| _ _
4
+ # | (_)\/(_)(_|\/| |(/_ v1.0.0
5
+ # / /
6
+ #
7
+ # frozen_string_literal: true
8
+
9
+ require 'spec_helper.rb'
10
+
11
+ describe 'Sink' do
12
+ it "can fetch" do
13
+ @holodeck.mock(Twilio::Response.new(500, ''))
14
+
15
+ expect {
16
+ @client.events.v1.sinks('DGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').fetch()
17
+ }.to raise_exception(Twilio::REST::TwilioError)
18
+
19
+ expect(
20
+ @holodeck.has_request?(Holodeck::Request.new(
21
+ method: 'get',
22
+ url: 'https://events.twilio.com/v1/Sinks/DGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
23
+ ))).to eq(true)
24
+ end
25
+
26
+ it "receives fetch responses" do
27
+ @holodeck.mock(Twilio::Response.new(
28
+ 200,
29
+ %q[
30
+ {
31
+ "status": "initialized",
32
+ "sink_configuration": {},
33
+ "description": "description",
34
+ "sid": "DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
35
+ "date_created": "2015-07-30T20:00:00Z",
36
+ "sink_type": "kinesis",
37
+ "date_updated": "2015-07-30T20:00:00Z",
38
+ "url": "https://events.twilio.com/v1/Sinks/DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
39
+ "links": {
40
+ "sink_test": "https://events.twilio.com/v1/Sinks/DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Test",
41
+ "sink_validate": "https://events.twilio.com/v1/Sinks/DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Validate"
42
+ }
43
+ }
44
+ ]
45
+ ))
46
+
47
+ actual = @client.events.v1.sinks('DGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').fetch()
48
+
49
+ expect(actual).to_not eq(nil)
50
+ end
51
+
52
+ it "can create" do
53
+ @holodeck.mock(Twilio::Response.new(500, ''))
54
+
55
+ expect {
56
+ @client.events.v1.sinks.create(description: 'description', sink_configuration: {}, sink_type: 'kinesis')
57
+ }.to raise_exception(Twilio::REST::TwilioError)
58
+
59
+ values = {
60
+ 'Description' => 'description',
61
+ 'SinkConfiguration' => Twilio.serialize_object({}),
62
+ 'SinkType' => 'kinesis',
63
+ }
64
+ expect(
65
+ @holodeck.has_request?(Holodeck::Request.new(
66
+ method: 'post',
67
+ url: 'https://events.twilio.com/v1/Sinks',
68
+ data: values,
69
+ ))).to eq(true)
70
+ end
71
+
72
+ it "receives create responses" do
73
+ @holodeck.mock(Twilio::Response.new(
74
+ 201,
75
+ %q[
76
+ {
77
+ "status": "initialized",
78
+ "sink_configuration": {
79
+ "arn": "4242",
80
+ "role_arn": "abc123",
81
+ "external_id": "010101"
82
+ },
83
+ "description": "description",
84
+ "sid": "DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
85
+ "date_created": "2015-07-30T20:00:00Z",
86
+ "sink_type": "kinesis",
87
+ "date_updated": "2015-07-30T20:00:00Z",
88
+ "url": "https://events.twilio.com/v1/Sinks/DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
89
+ "links": {
90
+ "sink_test": "https://events.twilio.com/v1/Sinks/DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Test",
91
+ "sink_validate": "https://events.twilio.com/v1/Sinks/DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Validate"
92
+ }
93
+ }
94
+ ]
95
+ ))
96
+
97
+ actual = @client.events.v1.sinks.create(description: 'description', sink_configuration: {}, sink_type: 'kinesis')
98
+
99
+ expect(actual).to_not eq(nil)
100
+ end
101
+
102
+ it "can delete" do
103
+ @holodeck.mock(Twilio::Response.new(500, ''))
104
+
105
+ expect {
106
+ @client.events.v1.sinks('DGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').delete()
107
+ }.to raise_exception(Twilio::REST::TwilioError)
108
+
109
+ expect(
110
+ @holodeck.has_request?(Holodeck::Request.new(
111
+ method: 'delete',
112
+ url: 'https://events.twilio.com/v1/Sinks/DGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
113
+ ))).to eq(true)
114
+ end
115
+
116
+ it "receives delete responses" do
117
+ @holodeck.mock(Twilio::Response.new(
118
+ 204,
119
+ nil,
120
+ ))
121
+
122
+ actual = @client.events.v1.sinks('DGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').delete()
123
+
124
+ expect(actual).to eq(true)
125
+ end
126
+
127
+ it "can read" do
128
+ @holodeck.mock(Twilio::Response.new(500, ''))
129
+
130
+ expect {
131
+ @client.events.v1.sinks.list()
132
+ }.to raise_exception(Twilio::REST::TwilioError)
133
+
134
+ expect(
135
+ @holodeck.has_request?(Holodeck::Request.new(
136
+ method: 'get',
137
+ url: 'https://events.twilio.com/v1/Sinks',
138
+ ))).to eq(true)
139
+ end
140
+
141
+ it "receives read_empty responses" do
142
+ @holodeck.mock(Twilio::Response.new(
143
+ 200,
144
+ %q[
145
+ {
146
+ "sinks": [],
147
+ "meta": {
148
+ "page": 0,
149
+ "page_size": 10,
150
+ "first_page_url": "https://events.twilio.com/v1/Sinks?PageSize=10&Page=0",
151
+ "previous_page_url": null,
152
+ "url": "https://events.twilio.com/v1/Sinks?PageSize=10&Page=0",
153
+ "next_page_url": null,
154
+ "key": "sinks"
155
+ }
156
+ }
157
+ ]
158
+ ))
159
+
160
+ actual = @client.events.v1.sinks.list()
161
+
162
+ expect(actual).to_not eq(nil)
163
+ end
164
+
165
+ it "receives read_results responses" do
166
+ @holodeck.mock(Twilio::Response.new(
167
+ 200,
168
+ %q[
169
+ {
170
+ "sinks": [
171
+ {
172
+ "status": "initialized",
173
+ "sink_configuration": {},
174
+ "description": "A Sink",
175
+ "sid": "DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
176
+ "date_created": "2015-07-30T20:00:00Z",
177
+ "sink_type": "kinesis",
178
+ "date_updated": "2015-07-30T20:00:00Z",
179
+ "url": "https://events.twilio.com/v1/Sinks/DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
180
+ "links": {
181
+ "sink_test": "https://events.twilio.com/v1/Sinks/DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Test",
182
+ "sink_validate": "https://events.twilio.com/v1/Sinks/DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Validate"
183
+ }
184
+ },
185
+ {
186
+ "status": "initialized",
187
+ "sink_configuration": {},
188
+ "description": "ANOTHER Sink",
189
+ "sid": "DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab",
190
+ "date_created": "2015-07-30T20:00:00Z",
191
+ "sink_type": "kinesis",
192
+ "date_updated": "2015-07-30T20:00:00Z",
193
+ "url": "https://events.twilio.com/v1/Sinks/DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab",
194
+ "links": {
195
+ "sink_test": "https://events.twilio.com/v1/Sinks/DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab/Test",
196
+ "sink_validate": "https://events.twilio.com/v1/Sinks/DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab/Validate"
197
+ }
198
+ }
199
+ ],
200
+ "meta": {
201
+ "page": 0,
202
+ "page_size": 50,
203
+ "first_page_url": "https://events.twilio.com/v1/Sinks?PageSize=50&Page=0",
204
+ "previous_page_url": null,
205
+ "url": "https://events.twilio.com/v1/Sinks?PageSize=50&Page=0",
206
+ "next_page_url": null,
207
+ "key": "sinks"
208
+ }
209
+ }
210
+ ]
211
+ ))
212
+
213
+ actual = @client.events.v1.sinks.list()
214
+
215
+ expect(actual).to_not eq(nil)
216
+ end
217
+ end