twilio-ruby 5.39.3 → 5.40.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,212 @@
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 'SubscribedEvent' do
12
+ it "can read" do
13
+ @holodeck.mock(Twilio::Response.new(500, ''))
14
+
15
+ expect {
16
+ @client.events.v1.subscriptions('DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
17
+ .subscribed_events.list()
18
+ }.to raise_exception(Twilio::REST::TwilioError)
19
+
20
+ expect(
21
+ @holodeck.has_request?(Holodeck::Request.new(
22
+ method: 'get',
23
+ url: 'https://events.twilio.com/v1/Subscriptions/DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/SubscribedEvents',
24
+ ))).to eq(true)
25
+ end
26
+
27
+ it "receives read_empty responses" do
28
+ @holodeck.mock(Twilio::Response.new(
29
+ 200,
30
+ %q[
31
+ {
32
+ "types": [],
33
+ "meta": {
34
+ "page": 0,
35
+ "page_size": 10,
36
+ "first_page_url": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SubscribedEvents?PageSize=10&Page=0",
37
+ "previous_page_url": null,
38
+ "url": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SubscribedEvents?PageSize=10&Page=0",
39
+ "next_page_url": null,
40
+ "key": "types"
41
+ }
42
+ }
43
+ ]
44
+ ))
45
+
46
+ actual = @client.events.v1.subscriptions('DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
47
+ .subscribed_events.list()
48
+
49
+ expect(actual).to_not eq(nil)
50
+ end
51
+
52
+ it "receives read_results responses" do
53
+ @holodeck.mock(Twilio::Response.new(
54
+ 200,
55
+ %q[
56
+ {
57
+ "types": [
58
+ {
59
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
60
+ "type": "Voice.Calls",
61
+ "version": 2,
62
+ "subscription_sid": "DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
63
+ "url": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SubscribedEvents/Voice.Calls"
64
+ },
65
+ {
66
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
67
+ "type": "Video.Rooms",
68
+ "version": 15,
69
+ "subscription_sid": "DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
70
+ "url": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SubscribedEvents/Video.Rooms"
71
+ }
72
+ ],
73
+ "meta": {
74
+ "page": 0,
75
+ "page_size": 50,
76
+ "first_page_url": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SubscribedEvents?PageSize=50&Page=0",
77
+ "previous_page_url": null,
78
+ "url": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SubscribedEvents?PageSize=50&Page=0",
79
+ "next_page_url": null,
80
+ "key": "types"
81
+ }
82
+ }
83
+ ]
84
+ ))
85
+
86
+ actual = @client.events.v1.subscriptions('DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
87
+ .subscribed_events.list()
88
+
89
+ expect(actual).to_not eq(nil)
90
+ end
91
+
92
+ it "can create" do
93
+ @holodeck.mock(Twilio::Response.new(500, ''))
94
+
95
+ expect {
96
+ @client.events.v1.subscriptions('DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
97
+ .subscribed_events.create(type: 'type')
98
+ }.to raise_exception(Twilio::REST::TwilioError)
99
+
100
+ values = {'Type' => 'type', }
101
+ expect(
102
+ @holodeck.has_request?(Holodeck::Request.new(
103
+ method: 'post',
104
+ url: 'https://events.twilio.com/v1/Subscriptions/DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/SubscribedEvents',
105
+ data: values,
106
+ ))).to eq(true)
107
+ end
108
+
109
+ it "receives create_all_fields responses" do
110
+ @holodeck.mock(Twilio::Response.new(
111
+ 201,
112
+ %q[
113
+ {
114
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
115
+ "type": "com.twilio.voice.call.initiated",
116
+ "version": 5,
117
+ "subscription_sid": "DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
118
+ "url": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SubscribedEvents/com.twilio.voice.call.initiated"
119
+ }
120
+ ]
121
+ ))
122
+
123
+ actual = @client.events.v1.subscriptions('DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
124
+ .subscribed_events.create(type: 'type')
125
+
126
+ expect(actual).to_not eq(nil)
127
+ end
128
+
129
+ it "receives create_no_version responses" do
130
+ @holodeck.mock(Twilio::Response.new(
131
+ 201,
132
+ %q[
133
+ {
134
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
135
+ "type": "com.twilio.voice.call.recorded",
136
+ "version": 2,
137
+ "subscription_sid": "DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
138
+ "url": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SubscribedEvents/com.twilio.voice.call.recorded"
139
+ }
140
+ ]
141
+ ))
142
+
143
+ actual = @client.events.v1.subscriptions('DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
144
+ .subscribed_events.create(type: 'type')
145
+
146
+ expect(actual).to_not eq(nil)
147
+ end
148
+
149
+ it "can update" do
150
+ @holodeck.mock(Twilio::Response.new(500, ''))
151
+
152
+ expect {
153
+ @client.events.v1.subscriptions('DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
154
+ .subscribed_events('type').update(version: 1)
155
+ }.to raise_exception(Twilio::REST::TwilioError)
156
+
157
+ values = {'Version' => 1, }
158
+ expect(
159
+ @holodeck.has_request?(Holodeck::Request.new(
160
+ method: 'post',
161
+ url: 'https://events.twilio.com/v1/Subscriptions/DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/SubscribedEvents/type',
162
+ data: values,
163
+ ))).to eq(true)
164
+ end
165
+
166
+ it "receives update responses" do
167
+ @holodeck.mock(Twilio::Response.new(
168
+ 200,
169
+ %q[
170
+ {
171
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
172
+ "type": "com.twilio.voice.call.initiated",
173
+ "version": 6,
174
+ "subscription_sid": "DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
175
+ "url": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SubscribedEvents/com.twilio.voice.call.initiated"
176
+ }
177
+ ]
178
+ ))
179
+
180
+ actual = @client.events.v1.subscriptions('DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
181
+ .subscribed_events('type').update(version: 1)
182
+
183
+ expect(actual).to_not eq(nil)
184
+ end
185
+
186
+ it "can delete" do
187
+ @holodeck.mock(Twilio::Response.new(500, ''))
188
+
189
+ expect {
190
+ @client.events.v1.subscriptions('DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
191
+ .subscribed_events('type').delete()
192
+ }.to raise_exception(Twilio::REST::TwilioError)
193
+
194
+ expect(
195
+ @holodeck.has_request?(Holodeck::Request.new(
196
+ method: 'delete',
197
+ url: 'https://events.twilio.com/v1/Subscriptions/DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/SubscribedEvents/type',
198
+ ))).to eq(true)
199
+ end
200
+
201
+ it "receives delete responses" do
202
+ @holodeck.mock(Twilio::Response.new(
203
+ 204,
204
+ nil,
205
+ ))
206
+
207
+ actual = @client.events.v1.subscriptions('DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
208
+ .subscribed_events('type').delete()
209
+
210
+ expect(actual).to eq(true)
211
+ end
212
+ end
@@ -0,0 +1,205 @@
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 'Subscription' do
12
+ it "can read" do
13
+ @holodeck.mock(Twilio::Response.new(500, ''))
14
+
15
+ expect {
16
+ @client.events.v1.subscriptions.list()
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/Subscriptions',
23
+ ))).to eq(true)
24
+ end
25
+
26
+ it "receives read_empty responses" do
27
+ @holodeck.mock(Twilio::Response.new(
28
+ 200,
29
+ %q[
30
+ {
31
+ "subscriptions": [],
32
+ "meta": {
33
+ "page": 0,
34
+ "page_size": 10,
35
+ "first_page_url": "https://events.twilio.com/v1/Subscriptions?PageSize=10&Page=0",
36
+ "previous_page_url": null,
37
+ "url": "https://events.twilio.com/v1/Subscriptions?PageSize=10&Page=0",
38
+ "next_page_url": null,
39
+ "key": "subscriptions"
40
+ }
41
+ }
42
+ ]
43
+ ))
44
+
45
+ actual = @client.events.v1.subscriptions.list()
46
+
47
+ expect(actual).to_not eq(nil)
48
+ end
49
+
50
+ it "receives read_results responses" do
51
+ @holodeck.mock(Twilio::Response.new(
52
+ 200,
53
+ %q[
54
+ {
55
+ "subscriptions": [
56
+ {
57
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
58
+ "date_created": "2015-07-30T20:00:00Z",
59
+ "date_updated": "2015-07-30T20:01:33Z",
60
+ "sid": "DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
61
+ "sink_sid": "DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
62
+ "description": "A subscription",
63
+ "url": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
64
+ "links": {
65
+ "subscribed_events": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SubscribedEvents"
66
+ }
67
+ },
68
+ {
69
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
70
+ "date_created": "2015-07-30T20:00:00Z",
71
+ "date_updated": "2015-07-30T20:01:33Z",
72
+ "sid": "DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab",
73
+ "sink_sid": "DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
74
+ "description": "Another subscription",
75
+ "url": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab",
76
+ "links": {
77
+ "subscribed_events": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab/SubscribedEvents"
78
+ }
79
+ }
80
+ ],
81
+ "meta": {
82
+ "page": 0,
83
+ "page_size": 50,
84
+ "first_page_url": "https://events.twilio.com/v1/Subscriptions?PageSize=50&Page=0",
85
+ "previous_page_url": null,
86
+ "url": "https://events.twilio.com/v1/Subscriptions?PageSize=50&Page=0",
87
+ "next_page_url": null,
88
+ "key": "subscriptions"
89
+ }
90
+ }
91
+ ]
92
+ ))
93
+
94
+ actual = @client.events.v1.subscriptions.list()
95
+
96
+ expect(actual).to_not eq(nil)
97
+ end
98
+
99
+ it "can fetch" do
100
+ @holodeck.mock(Twilio::Response.new(500, ''))
101
+
102
+ expect {
103
+ @client.events.v1.subscriptions('DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').fetch()
104
+ }.to raise_exception(Twilio::REST::TwilioError)
105
+
106
+ expect(
107
+ @holodeck.has_request?(Holodeck::Request.new(
108
+ method: 'get',
109
+ url: 'https://events.twilio.com/v1/Subscriptions/DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
110
+ ))).to eq(true)
111
+ end
112
+
113
+ it "receives fetch responses" do
114
+ @holodeck.mock(Twilio::Response.new(
115
+ 200,
116
+ %q[
117
+ {
118
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
119
+ "date_created": "2015-07-30T20:00:00Z",
120
+ "date_updated": "2015-07-30T20:01:33Z",
121
+ "sid": "DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
122
+ "sink_sid": "DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
123
+ "description": "A subscription",
124
+ "url": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
125
+ "links": {
126
+ "subscribed_events": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SubscribedEvents"
127
+ }
128
+ }
129
+ ]
130
+ ))
131
+
132
+ actual = @client.events.v1.subscriptions('DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').fetch()
133
+
134
+ expect(actual).to_not eq(nil)
135
+ end
136
+
137
+ it "can create" do
138
+ @holodeck.mock(Twilio::Response.new(500, ''))
139
+
140
+ expect {
141
+ @client.events.v1.subscriptions.create(description: 'description', sink_sid: 'DGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', types: [{}])
142
+ }.to raise_exception(Twilio::REST::TwilioError)
143
+
144
+ values = {
145
+ 'Description' => 'description',
146
+ 'SinkSid' => 'DGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
147
+ 'Types' => Twilio.serialize_list([{}]) { |e| Twilio.serialize_object(e) },
148
+ }
149
+ expect(
150
+ @holodeck.has_request?(Holodeck::Request.new(
151
+ method: 'post',
152
+ url: 'https://events.twilio.com/v1/Subscriptions',
153
+ data: values,
154
+ ))).to eq(true)
155
+ end
156
+
157
+ it "receives create responses" do
158
+ @holodeck.mock(Twilio::Response.new(
159
+ 201,
160
+ %q[
161
+ {
162
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
163
+ "date_created": "2015-07-30T20:00:00Z",
164
+ "date_updated": "2015-07-30T20:01:33Z",
165
+ "sid": "DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
166
+ "sink_sid": "DGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
167
+ "description": "A subscription",
168
+ "url": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
169
+ "links": {
170
+ "subscribed_events": "https://events.twilio.com/v1/Subscriptions/DFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SubscribedEvents"
171
+ }
172
+ }
173
+ ]
174
+ ))
175
+
176
+ actual = @client.events.v1.subscriptions.create(description: 'description', sink_sid: 'DGXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', types: [{}])
177
+
178
+ expect(actual).to_not eq(nil)
179
+ end
180
+
181
+ it "can delete" do
182
+ @holodeck.mock(Twilio::Response.new(500, ''))
183
+
184
+ expect {
185
+ @client.events.v1.subscriptions('DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').delete()
186
+ }.to raise_exception(Twilio::REST::TwilioError)
187
+
188
+ expect(
189
+ @holodeck.has_request?(Holodeck::Request.new(
190
+ method: 'delete',
191
+ url: 'https://events.twilio.com/v1/Subscriptions/DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
192
+ ))).to eq(true)
193
+ end
194
+
195
+ it "receives delete responses" do
196
+ @holodeck.mock(Twilio::Response.new(
197
+ 204,
198
+ nil,
199
+ ))
200
+
201
+ actual = @client.events.v1.subscriptions('DFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').delete()
202
+
203
+ expect(actual).to eq(true)
204
+ end
205
+ end
@@ -38,7 +38,10 @@ describe 'UsageRecord' do
38
38
  "data_upload": 1000,
39
39
  "data_download": 1000,
40
40
  "data_total": 2000,
41
- "sim_sid": null
41
+ "sim_sid": null,
42
+ "fleet_sid": null,
43
+ "network_sid": null,
44
+ "iso_country": null
42
45
  }
43
46
  ],
44
47
  "meta": {
@@ -67,25 +70,31 @@ describe 'UsageRecord' do
67
70
  "usage_records": [
68
71
  {
69
72
  "period": {
70
- "start_time": "2019-05-01T00:00:00Z",
71
- "end_time": "2019-05-03T00:00:00Z"
73
+ "start_time": "2019-05-03T00:00:00Z",
74
+ "end_time": "2019-05-04T00:00:00Z"
72
75
  },
73
76
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
74
77
  "data_upload": 1000,
75
78
  "data_download": 1000,
76
79
  "data_total": 2000,
77
- "sim_sid": null
80
+ "sim_sid": null,
81
+ "fleet_sid": null,
82
+ "network_sid": null,
83
+ "iso_country": null
78
84
  },
79
85
  {
80
86
  "period": {
81
- "start_time": "2019-05-03T00:00:00Z",
82
- "end_time": "2019-05-04T00:00:00Z"
87
+ "start_time": "2019-05-02T00:00:00Z",
88
+ "end_time": "2019-05-03T00:00:00Z"
83
89
  },
84
90
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
85
91
  "data_upload": 1000,
86
92
  "data_download": 1000,
87
93
  "data_total": 2000,
88
- "sim_sid": null
94
+ "sim_sid": null,
95
+ "fleet_sid": null,
96
+ "network_sid": null,
97
+ "iso_country": null
89
98
  }
90
99
  ],
91
100
  "meta": {
@@ -114,25 +123,31 @@ describe 'UsageRecord' do
114
123
  "usage_records": [
115
124
  {
116
125
  "period": {
117
- "start_time": "2019-05-01T00:00:00Z",
118
- "end_time": "2019-05-01T01:00:00Z"
126
+ "start_time": "2019-05-01T01:00:00Z",
127
+ "end_time": "2019-05-01T02:00:00Z"
119
128
  },
120
129
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
121
130
  "data_upload": 1000,
122
131
  "data_download": 1000,
123
132
  "data_total": 2000,
124
- "sim_sid": null
133
+ "sim_sid": null,
134
+ "fleet_sid": null,
135
+ "network_sid": null,
136
+ "iso_country": null
125
137
  },
126
138
  {
127
139
  "period": {
128
- "start_time": "2019-05-01T01:00:00Z",
129
- "end_time": "2019-05-01T02:00:00Z"
140
+ "start_time": "2019-05-01T00:00:00Z",
141
+ "end_time": "2019-05-01T01:00:00Z"
130
142
  },
131
143
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
132
144
  "data_upload": 1000,
133
145
  "data_download": 1000,
134
146
  "data_total": 2000,
135
- "sim_sid": null
147
+ "sim_sid": null,
148
+ "fleet_sid": null,
149
+ "network_sid": null,
150
+ "iso_country": null
136
151
  }
137
152
  ],
138
153
  "meta": {
@@ -161,15 +176,163 @@ describe 'UsageRecord' do
161
176
  "usage_records": [
162
177
  {
163
178
  "period": {
164
- "start_time": "2019-05-01T00:00:00Z",
179
+ "start_time": "2019-05-03T00:00:00Z",
180
+ "end_time": "2019-05-04T00:00:00Z"
181
+ },
182
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
183
+ "data_upload": 1000,
184
+ "data_download": 1000,
185
+ "data_total": 2000,
186
+ "sim_sid": "HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
187
+ "fleet_sid": null,
188
+ "network_sid": null,
189
+ "iso_country": null
190
+ },
191
+ {
192
+ "period": {
193
+ "start_time": "2019-05-02T00:00:00Z",
194
+ "end_time": "2019-05-03T00:00:00Z"
195
+ },
196
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
197
+ "data_upload": 1000,
198
+ "data_download": 1000,
199
+ "data_total": 2000,
200
+ "sim_sid": "HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
201
+ "fleet_sid": null,
202
+ "network_sid": null,
203
+ "iso_country": null
204
+ }
205
+ ],
206
+ "meta": {
207
+ "first_page_url": "https://supersim.twilio.com/v1/UsageRecords?Sim=HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&Granularity=day&PageSize=50&Page=0",
208
+ "key": "usage_records",
209
+ "next_page_url": null,
210
+ "page": 0,
211
+ "page_size": 50,
212
+ "previous_page_url": null,
213
+ "url": "https://supersim.twilio.com/v1/UsageRecords?Sim=HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&Granularity=day&PageSize=50&Page=0"
214
+ }
215
+ }
216
+ ]
217
+ ))
218
+
219
+ actual = @client.supersim.v1.usage_records.list()
220
+
221
+ expect(actual).to_not eq(nil)
222
+ end
223
+
224
+ it "receives read_day_network_filter responses" do
225
+ @holodeck.mock(Twilio::Response.new(
226
+ 200,
227
+ %q[
228
+ {
229
+ "usage_records": [
230
+ {
231
+ "period": {
232
+ "start_time": "2019-05-03T00:00:00Z",
233
+ "end_time": "2019-05-04T00:00:00Z"
234
+ },
235
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
236
+ "data_upload": 1000,
237
+ "data_download": 1000,
238
+ "data_total": 2000,
239
+ "sim_sid": null,
240
+ "fleet_sid": null,
241
+ "network_sid": "HWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
242
+ "iso_country": null
243
+ },
244
+ {
245
+ "period": {
246
+ "start_time": "2019-05-02T00:00:00Z",
165
247
  "end_time": "2019-05-03T00:00:00Z"
166
248
  },
167
249
  "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
168
250
  "data_upload": 1000,
169
251
  "data_download": 1000,
170
252
  "data_total": 2000,
171
- "sim_sid": "HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
253
+ "sim_sid": null,
254
+ "fleet_sid": null,
255
+ "network_sid": "HWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
256
+ "iso_country": null
257
+ }
258
+ ],
259
+ "meta": {
260
+ "first_page_url": "https://supersim.twilio.com/v1/UsageRecords?Network=HWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&Granularity=day&PageSize=50&Page=0",
261
+ "key": "usage_records",
262
+ "next_page_url": null,
263
+ "page": 0,
264
+ "page_size": 50,
265
+ "previous_page_url": null,
266
+ "url": "https://supersim.twilio.com/v1/UsageRecords?Network=HWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&Granularity=day&PageSize=50&Page=0"
267
+ }
268
+ }
269
+ ]
270
+ ))
271
+
272
+ actual = @client.supersim.v1.usage_records.list()
273
+
274
+ expect(actual).to_not eq(nil)
275
+ end
276
+
277
+ it "receives read_day_country_filter responses" do
278
+ @holodeck.mock(Twilio::Response.new(
279
+ 200,
280
+ %q[
281
+ {
282
+ "usage_records": [
283
+ {
284
+ "period": {
285
+ "start_time": "2019-05-03T00:00:00Z",
286
+ "end_time": "2019-05-04T00:00:00Z"
287
+ },
288
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
289
+ "data_upload": 1000,
290
+ "data_download": 1000,
291
+ "data_total": 2000,
292
+ "sim_sid": null,
293
+ "fleet_sid": null,
294
+ "network_sid": null,
295
+ "iso_country": "FR"
172
296
  },
297
+ {
298
+ "period": {
299
+ "start_time": "2019-05-02T00:00:00Z",
300
+ "end_time": "2019-05-03T00:00:00Z"
301
+ },
302
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
303
+ "data_upload": 1000,
304
+ "data_download": 1000,
305
+ "data_total": 2000,
306
+ "sim_sid": null,
307
+ "fleet_sid": null,
308
+ "network_sid": null,
309
+ "iso_country": "FR"
310
+ }
311
+ ],
312
+ "meta": {
313
+ "first_page_url": "https://supersim.twilio.com/v1/UsageRecords?IsoCountry=FR&Granularity=day&PageSize=50&Page=0",
314
+ "key": "usage_records",
315
+ "next_page_url": null,
316
+ "page": 0,
317
+ "page_size": 50,
318
+ "previous_page_url": null,
319
+ "url": "https://supersim.twilio.com/v1/UsageRecords?IsoCountry=FR&Granularity=day&PageSize=50&Page=0"
320
+ }
321
+ }
322
+ ]
323
+ ))
324
+
325
+ actual = @client.supersim.v1.usage_records.list()
326
+
327
+ expect(actual).to_not eq(nil)
328
+ end
329
+
330
+ it "receives read_day_fleet_filter responses" do
331
+ @holodeck.mock(Twilio::Response.new(
332
+ 200,
333
+ %q[
334
+ {
335
+ "usage_records": [
173
336
  {
174
337
  "period": {
175
338
  "start_time": "2019-05-03T00:00:00Z",
@@ -179,17 +342,299 @@ describe 'UsageRecord' do
179
342
  "data_upload": 1000,
180
343
  "data_download": 1000,
181
344
  "data_total": 2000,
182
- "sim_sid": "HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
345
+ "sim_sid": null,
346
+ "fleet_sid": "HFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
347
+ "network_sid": null,
348
+ "iso_country": null
349
+ },
350
+ {
351
+ "period": {
352
+ "start_time": "2019-05-02T00:00:00Z",
353
+ "end_time": "2019-05-03T00:00:00Z"
354
+ },
355
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
356
+ "data_upload": 1000,
357
+ "data_download": 1000,
358
+ "data_total": 2000,
359
+ "sim_sid": null,
360
+ "fleet_sid": "HFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
361
+ "network_sid": null,
362
+ "iso_country": null
183
363
  }
184
364
  ],
185
365
  "meta": {
186
- "first_page_url": "https://supersim.twilio.com/v1/UsageRecords?Sim=HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&Granularity=day&PageSize=50&Page=0",
366
+ "first_page_url": "https://supersim.twilio.com/v1/UsageRecords?Fleet=HFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&Granularity=day&PageSize=50&Page=0",
187
367
  "key": "usage_records",
188
368
  "next_page_url": null,
189
369
  "page": 0,
190
370
  "page_size": 50,
191
371
  "previous_page_url": null,
192
- "url": "https://supersim.twilio.com/v1/UsageRecords?Sim=HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&Granularity=day&PageSize=50&Page=0"
372
+ "url": "https://supersim.twilio.com/v1/UsageRecords?Fleet=HFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&Granularity=day&PageSize=50&Page=0"
373
+ }
374
+ }
375
+ ]
376
+ ))
377
+
378
+ actual = @client.supersim.v1.usage_records.list()
379
+
380
+ expect(actual).to_not eq(nil)
381
+ end
382
+
383
+ it "receives read_day_group_by_sim responses" do
384
+ @holodeck.mock(Twilio::Response.new(
385
+ 200,
386
+ %q[
387
+ {
388
+ "usage_records": [
389
+ {
390
+ "period": {
391
+ "start_time": "2019-05-03T00:00:00Z",
392
+ "end_time": "2019-05-04T00:00:00Z"
393
+ },
394
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
395
+ "data_upload": 1000,
396
+ "data_download": 1000,
397
+ "data_total": 2000,
398
+ "sim_sid": "HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
399
+ "fleet_sid": null,
400
+ "network_sid": null,
401
+ "iso_country": null
402
+ },
403
+ {
404
+ "period": {
405
+ "start_time": "2019-05-03T00:00:00Z",
406
+ "end_time": "2019-05-04T00:00:00Z"
407
+ },
408
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
409
+ "data_upload": 500,
410
+ "data_download": 1500,
411
+ "data_total": 2000,
412
+ "sim_sid": "HSbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
413
+ "fleet_sid": null,
414
+ "network_sid": null,
415
+ "iso_country": null
416
+ }
417
+ ],
418
+ "meta": {
419
+ "first_page_url": "https://supersim.twilio.com/v1/UsageRecords?Group=sim&PageSize=50&Page=0",
420
+ "key": "usage_records",
421
+ "next_page_url": null,
422
+ "page": 0,
423
+ "page_size": 50,
424
+ "previous_page_url": null,
425
+ "url": "https://supersim.twilio.com/v1/UsageRecords?Group=sim&PageSize=50&Page=0"
426
+ }
427
+ }
428
+ ]
429
+ ))
430
+
431
+ actual = @client.supersim.v1.usage_records.list()
432
+
433
+ expect(actual).to_not eq(nil)
434
+ end
435
+
436
+ it "receives read_day_group_by_fleet responses" do
437
+ @holodeck.mock(Twilio::Response.new(
438
+ 200,
439
+ %q[
440
+ {
441
+ "usage_records": [
442
+ {
443
+ "period": {
444
+ "start_time": "2019-05-03T00:00:00Z",
445
+ "end_time": "2019-05-04T00:00:00Z"
446
+ },
447
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
448
+ "data_upload": 1000,
449
+ "data_download": 1000,
450
+ "data_total": 2000,
451
+ "sim_sid": null,
452
+ "fleet_sid": "HFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
453
+ "network_sid": null,
454
+ "iso_country": null
455
+ },
456
+ {
457
+ "period": {
458
+ "start_time": "2019-05-03T00:00:00Z",
459
+ "end_time": "2019-05-04T00:00:00Z"
460
+ },
461
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
462
+ "data_upload": 500,
463
+ "data_download": 1500,
464
+ "data_total": 2000,
465
+ "sim_sid": null,
466
+ "fleet_sid": "HFbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
467
+ "network_sid": null,
468
+ "iso_country": null
469
+ }
470
+ ],
471
+ "meta": {
472
+ "first_page_url": "https://supersim.twilio.com/v1/UsageRecords?Group=fleet&PageSize=50&Page=0",
473
+ "key": "usage_records",
474
+ "next_page_url": null,
475
+ "page": 0,
476
+ "page_size": 50,
477
+ "previous_page_url": null,
478
+ "url": "https://supersim.twilio.com/v1/UsageRecords?Group=fleet&PageSize=50&Page=0"
479
+ }
480
+ }
481
+ ]
482
+ ))
483
+
484
+ actual = @client.supersim.v1.usage_records.list()
485
+
486
+ expect(actual).to_not eq(nil)
487
+ end
488
+
489
+ it "receives read_day_group_by_network responses" do
490
+ @holodeck.mock(Twilio::Response.new(
491
+ 200,
492
+ %q[
493
+ {
494
+ "usage_records": [
495
+ {
496
+ "period": {
497
+ "start_time": "2019-05-03T00:00:00Z",
498
+ "end_time": "2019-05-04T00:00:00Z"
499
+ },
500
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
501
+ "data_upload": 1000,
502
+ "data_download": 1000,
503
+ "data_total": 2000,
504
+ "sim_sid": null,
505
+ "fleet_sid": null,
506
+ "network_sid": "HWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
507
+ "iso_country": null
508
+ },
509
+ {
510
+ "period": {
511
+ "start_time": "2019-05-03T00:00:00Z",
512
+ "end_time": "2019-05-04T00:00:00Z"
513
+ },
514
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
515
+ "data_upload": 500,
516
+ "data_download": 1500,
517
+ "data_total": 2000,
518
+ "sim_sid": null,
519
+ "fleet_sid": null,
520
+ "network_sid": "HWbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
521
+ "iso_country": null
522
+ }
523
+ ],
524
+ "meta": {
525
+ "first_page_url": "https://supersim.twilio.com/v1/UsageRecords?Group=network&PageSize=50&Page=0",
526
+ "key": "usage_records",
527
+ "next_page_url": null,
528
+ "page": 0,
529
+ "page_size": 50,
530
+ "previous_page_url": null,
531
+ "url": "https://supersim.twilio.com/v1/UsageRecords?Group=network&PageSize=50&Page=0"
532
+ }
533
+ }
534
+ ]
535
+ ))
536
+
537
+ actual = @client.supersim.v1.usage_records.list()
538
+
539
+ expect(actual).to_not eq(nil)
540
+ end
541
+
542
+ it "receives read_day_group_by_iso_country responses" do
543
+ @holodeck.mock(Twilio::Response.new(
544
+ 200,
545
+ %q[
546
+ {
547
+ "usage_records": [
548
+ {
549
+ "period": {
550
+ "start_time": "2019-05-03T00:00:00Z",
551
+ "end_time": "2019-05-04T00:00:00Z"
552
+ },
553
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
554
+ "data_upload": 1000,
555
+ "data_download": 1000,
556
+ "data_total": 2000,
557
+ "sim_sid": null,
558
+ "fleet_sid": null,
559
+ "network_sid": null,
560
+ "iso_country": "FR"
561
+ },
562
+ {
563
+ "period": {
564
+ "start_time": "2019-05-03T00:00:00Z",
565
+ "end_time": "2019-05-04T00:00:00Z"
566
+ },
567
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
568
+ "data_upload": 500,
569
+ "data_download": 1500,
570
+ "data_total": 2000,
571
+ "sim_sid": null,
572
+ "fleet_sid": null,
573
+ "network_sid": null,
574
+ "iso_country": "US"
575
+ }
576
+ ],
577
+ "meta": {
578
+ "first_page_url": "https://supersim.twilio.com/v1/UsageRecords?Group=isoCountry&PageSize=50&Page=0",
579
+ "key": "usage_records",
580
+ "next_page_url": null,
581
+ "page": 0,
582
+ "page_size": 50,
583
+ "previous_page_url": null,
584
+ "url": "https://supersim.twilio.com/v1/UsageRecords?Group=isoCountry&PageSize=50&Page=0"
585
+ }
586
+ }
587
+ ]
588
+ ))
589
+
590
+ actual = @client.supersim.v1.usage_records.list()
591
+
592
+ expect(actual).to_not eq(nil)
593
+ end
594
+
595
+ it "receives read_day_group_by_sim_and_filter_by_country responses" do
596
+ @holodeck.mock(Twilio::Response.new(
597
+ 200,
598
+ %q[
599
+ {
600
+ "usage_records": [
601
+ {
602
+ "period": {
603
+ "start_time": "2019-05-03T00:00:00Z",
604
+ "end_time": "2019-05-04T00:00:00Z"
605
+ },
606
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
607
+ "data_upload": 1000,
608
+ "data_download": 1000,
609
+ "data_total": 2000,
610
+ "sim_sid": "HSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
611
+ "fleet_sid": null,
612
+ "network_sid": null,
613
+ "iso_country": "FR"
614
+ },
615
+ {
616
+ "period": {
617
+ "start_time": "2019-05-03T00:00:00Z",
618
+ "end_time": "2019-05-04T00:00:00Z"
619
+ },
620
+ "account_sid": "ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
621
+ "data_upload": 500,
622
+ "data_download": 1500,
623
+ "data_total": 2000,
624
+ "sim_sid": "HSbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
625
+ "fleet_sid": null,
626
+ "network_sid": null,
627
+ "iso_country": "FR"
628
+ }
629
+ ],
630
+ "meta": {
631
+ "first_page_url": "https://supersim.twilio.com/v1/UsageRecords?IsoCountry=FR&Group=sim&PageSize=50&Page=0",
632
+ "key": "usage_records",
633
+ "next_page_url": null,
634
+ "page": 0,
635
+ "page_size": 50,
636
+ "previous_page_url": null,
637
+ "url": "https://supersim.twilio.com/v1/UsageRecords?IsoCountry=FR&Group=sim&PageSize=50&Page=0"
193
638
  }
194
639
  }
195
640
  ]