twilio-ruby 5.41.0 → 5.42.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +28 -0
  3. data/{LICENSE.md → LICENSE} +0 -0
  4. data/PULL_REQUEST_TEMPLATE.md +3 -3
  5. data/README.md +2 -2
  6. data/lib/twilio-ruby/jwt/access_token.rb +7 -2
  7. data/lib/twilio-ruby/rest/bulkexports/v1/export/day.rb +5 -22
  8. data/lib/twilio-ruby/rest/bulkexports/v1/export/export_custom_job.rb +25 -40
  9. data/lib/twilio-ruby/rest/insights.rb +8 -0
  10. data/lib/twilio-ruby/rest/insights/v1.rb +15 -0
  11. data/lib/twilio-ruby/rest/insights/v1/room.rb +487 -0
  12. data/lib/twilio-ruby/rest/insights/v1/room/participant.rb +385 -0
  13. data/lib/twilio-ruby/rest/ip_messaging.rb +8 -10
  14. data/lib/twilio-ruby/rest/ip_messaging/v1.rb +6 -8
  15. data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +29 -68
  16. data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +198 -313
  17. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +32 -59
  18. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +23 -55
  19. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +28 -71
  20. data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +31 -59
  21. data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +19 -39
  22. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +29 -51
  23. data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +12 -18
  24. data/lib/twilio-ruby/rest/ip_messaging/v2.rb +6 -6
  25. data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +29 -66
  26. data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +116 -205
  27. data/lib/twilio-ruby/rest/ip_messaging/v2/service/binding.rb +23 -50
  28. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +41 -91
  29. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +23 -50
  30. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +42 -118
  31. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +46 -100
  32. data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/webhook.rb +36 -89
  33. data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +19 -41
  34. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +29 -53
  35. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_binding.rb +23 -53
  36. data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +27 -56
  37. data/lib/twilio-ruby/rest/preview/bulk_exports/export/day.rb +5 -22
  38. data/lib/twilio-ruby/rest/preview/bulk_exports/export/export_custom_job.rb +21 -39
  39. data/lib/twilio-ruby/rest/verify/v2/form.rb +4 -4
  40. data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +3 -3
  41. data/lib/twilio-ruby/rest/verify/v2/service/entity.rb +20 -34
  42. data/lib/twilio-ruby/rest/verify/v2/service/entity/challenge.rb +22 -46
  43. data/lib/twilio-ruby/rest/verify/v2/service/entity/factor.rb +24 -42
  44. data/lib/twilio-ruby/rest/verify/v2/service/webhook.rb +4 -4
  45. data/lib/twilio-ruby/rest/video/v1/room.rb +20 -0
  46. data/lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb +150 -0
  47. data/lib/twilio-ruby/version.rb +1 -1
  48. data/spec/integration/bulkexports/v1/export/export_custom_job_spec.rb +4 -2
  49. data/spec/integration/events/v1/sink/sink_test_spec.rb +1 -1
  50. data/spec/integration/insights/v1/room/participant_spec.rb +149 -0
  51. data/spec/integration/insights/v1/room_spec.rb +164 -0
  52. data/spec/integration/ip_messaging/v1/credential_spec.rb +13 -13
  53. data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +11 -11
  54. data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +14 -14
  55. data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +14 -14
  56. data/spec/integration/ip_messaging/v1/service/channel_spec.rb +25 -25
  57. data/spec/integration/ip_messaging/v1/service/role_spec.rb +13 -13
  58. data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +7 -7
  59. data/spec/integration/ip_messaging/v1/service/user_spec.rb +17 -17
  60. data/spec/integration/ip_messaging/v1/service_spec.rb +9 -9
  61. data/spec/integration/ip_messaging/v2/credential_spec.rb +13 -13
  62. data/spec/integration/ip_messaging/v2/service/binding_spec.rb +11 -11
  63. data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +11 -11
  64. data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +13 -13
  65. data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +17 -17
  66. data/spec/integration/ip_messaging/v2/service/channel/webhook_spec.rb +15 -15
  67. data/spec/integration/ip_messaging/v2/service/channel_spec.rb +29 -29
  68. data/spec/integration/ip_messaging/v2/service/role_spec.rb +13 -13
  69. data/spec/integration/ip_messaging/v2/service/user/user_binding_spec.rb +9 -9
  70. data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +20 -20
  71. data/spec/integration/ip_messaging/v2/service/user_spec.rb +21 -21
  72. data/spec/integration/ip_messaging/v2/service_spec.rb +29 -29
  73. data/spec/integration/preview/bulk_exports/export/export_custom_job_spec.rb +4 -2
  74. data/spec/integration/verify/v2/service/entity/challenge_spec.rb +4 -12
  75. data/spec/integration/verify/v2/service/entity/factor_spec.rb +5 -15
  76. data/spec/integration/verify/v2/service/entity_spec.rb +4 -12
  77. data/spec/integration/video/v1/room/room_recording_rule_spec.rb +89 -0
  78. data/spec/integration/video/v1/room_spec.rb +10 -5
  79. data/spec/jwt/access_token_spec.rb +9 -1
  80. data/twilio-ruby.gemspec +1 -1
  81. metadata +13 -4
@@ -91,13 +91,15 @@ describe 'ExportCustomJob' do
91
91
 
92
92
  expect {
93
93
  @client.preview.bulk_exports.exports('resource_type') \
94
- .export_custom_jobs.create()
94
+ .export_custom_jobs.create(start_day: 'start_day', end_day: 'end_day', friendly_name: 'friendly_name')
95
95
  }.to raise_exception(Twilio::REST::TwilioError)
96
96
 
97
+ values = {'StartDay' => 'start_day', 'EndDay' => 'end_day', 'FriendlyName' => 'friendly_name', }
97
98
  expect(
98
99
  @holodeck.has_request?(Holodeck::Request.new(
99
100
  method: 'post',
100
101
  url: 'https://preview.twilio.com/BulkExports/Exports/resource_type/Jobs',
102
+ data: values,
101
103
  ))).to eq(true)
102
104
  end
103
105
 
@@ -120,7 +122,7 @@ describe 'ExportCustomJob' do
120
122
  ))
121
123
 
122
124
  actual = @client.preview.bulk_exports.exports('resource_type') \
123
- .export_custom_jobs.create()
125
+ .export_custom_jobs.create(start_day: 'start_day', end_day: 'end_day', friendly_name: 'friendly_name')
124
126
 
125
127
  expect(actual).to_not eq(nil)
126
128
  end
@@ -15,17 +15,15 @@ describe 'Challenge' do
15
15
  expect {
16
16
  @client.verify.v2.services('VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
17
17
  .entities('identity') \
18
- .challenges.create(factor_sid: 'YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', twilio_sandbox_mode: 'twilio_sandbox_mode')
18
+ .challenges.create(factor_sid: 'YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')
19
19
  }.to raise_exception(Twilio::REST::TwilioError)
20
20
 
21
21
  values = {'FactorSid' => 'YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', }
22
- headers = {'Twilio-Sandbox-Mode' => 'twilio_sandbox_mode', }
23
22
  expect(
24
23
  @holodeck.has_request?(Holodeck::Request.new(
25
24
  method: 'post',
26
25
  url: 'https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities/identity/Challenges',
27
26
  data: values,
28
- headers: headers,
29
27
  ))).to eq(true)
30
28
  end
31
29
 
@@ -78,15 +76,13 @@ describe 'Challenge' do
78
76
  expect {
79
77
  @client.verify.v2.services('VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
80
78
  .entities('identity') \
81
- .challenges('YCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').fetch(twilio_sandbox_mode: 'twilio_sandbox_mode')
79
+ .challenges('YCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').fetch()
82
80
  }.to raise_exception(Twilio::REST::TwilioError)
83
81
 
84
- headers = {'Twilio-Sandbox-Mode' => 'twilio_sandbox_mode', }
85
82
  expect(
86
83
  @holodeck.has_request?(Holodeck::Request.new(
87
84
  method: 'get',
88
85
  url: 'https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities/identity/Challenges/YCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
89
- headers: headers,
90
86
  ))).to eq(true)
91
87
  end
92
88
 
@@ -139,15 +135,13 @@ describe 'Challenge' do
139
135
  expect {
140
136
  @client.verify.v2.services('VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
141
137
  .entities('identity') \
142
- .challenges.list(twilio_sandbox_mode: 'twilio_sandbox_mode')
138
+ .challenges.list()
143
139
  }.to raise_exception(Twilio::REST::TwilioError)
144
140
 
145
- headers = {'Twilio-Sandbox-Mode' => 'twilio_sandbox_mode', }
146
141
  expect(
147
142
  @holodeck.has_request?(Holodeck::Request.new(
148
143
  method: 'get',
149
144
  url: 'https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities/identity/Challenges',
150
- headers: headers,
151
145
  ))).to eq(true)
152
146
  end
153
147
 
@@ -239,15 +233,13 @@ describe 'Challenge' do
239
233
  expect {
240
234
  @client.verify.v2.services('VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
241
235
  .entities('identity') \
242
- .challenges('YCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').update(twilio_sandbox_mode: 'twilio_sandbox_mode')
236
+ .challenges('YCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').update()
243
237
  }.to raise_exception(Twilio::REST::TwilioError)
244
238
 
245
- headers = {'Twilio-Sandbox-Mode' => 'twilio_sandbox_mode', }
246
239
  expect(
247
240
  @holodeck.has_request?(Holodeck::Request.new(
248
241
  method: 'post',
249
242
  url: 'https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities/identity/Challenges/YCXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
250
- headers: headers,
251
243
  ))).to eq(true)
252
244
  end
253
245
 
@@ -15,17 +15,15 @@ describe 'Factor' do
15
15
  expect {
16
16
  @client.verify.v2.services('VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
17
17
  .entities('identity') \
18
- .factors.create(friendly_name: 'friendly_name', factor_type: 'push', twilio_sandbox_mode: 'twilio_sandbox_mode')
18
+ .factors.create(friendly_name: 'friendly_name', factor_type: 'push')
19
19
  }.to raise_exception(Twilio::REST::TwilioError)
20
20
 
21
21
  values = {'FriendlyName' => 'friendly_name', 'FactorType' => 'push', }
22
- headers = {'Twilio-Sandbox-Mode' => 'twilio_sandbox_mode', }
23
22
  expect(
24
23
  @holodeck.has_request?(Holodeck::Request.new(
25
24
  method: 'post',
26
25
  url: 'https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities/identity/Factors',
27
26
  data: values,
28
- headers: headers,
29
27
  ))).to eq(true)
30
28
  end
31
29
 
@@ -68,15 +66,13 @@ describe 'Factor' do
68
66
  expect {
69
67
  @client.verify.v2.services('VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
70
68
  .entities('identity') \
71
- .factors('YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').delete(twilio_sandbox_mode: 'twilio_sandbox_mode')
69
+ .factors('YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').delete()
72
70
  }.to raise_exception(Twilio::REST::TwilioError)
73
71
 
74
- headers = {'Twilio-Sandbox-Mode' => 'twilio_sandbox_mode', }
75
72
  expect(
76
73
  @holodeck.has_request?(Holodeck::Request.new(
77
74
  method: 'delete',
78
75
  url: 'https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities/identity/Factors/YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
79
- headers: headers,
80
76
  ))).to eq(true)
81
77
  end
82
78
 
@@ -99,15 +95,13 @@ describe 'Factor' do
99
95
  expect {
100
96
  @client.verify.v2.services('VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
101
97
  .entities('identity') \
102
- .factors('YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').fetch(twilio_sandbox_mode: 'twilio_sandbox_mode')
98
+ .factors('YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').fetch()
103
99
  }.to raise_exception(Twilio::REST::TwilioError)
104
100
 
105
- headers = {'Twilio-Sandbox-Mode' => 'twilio_sandbox_mode', }
106
101
  expect(
107
102
  @holodeck.has_request?(Holodeck::Request.new(
108
103
  method: 'get',
109
104
  url: 'https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities/identity/Factors/YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
110
- headers: headers,
111
105
  ))).to eq(true)
112
106
  end
113
107
 
@@ -150,15 +144,13 @@ describe 'Factor' do
150
144
  expect {
151
145
  @client.verify.v2.services('VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
152
146
  .entities('identity') \
153
- .factors.list(twilio_sandbox_mode: 'twilio_sandbox_mode')
147
+ .factors.list()
154
148
  }.to raise_exception(Twilio::REST::TwilioError)
155
149
 
156
- headers = {'Twilio-Sandbox-Mode' => 'twilio_sandbox_mode', }
157
150
  expect(
158
151
  @holodeck.has_request?(Holodeck::Request.new(
159
152
  method: 'get',
160
153
  url: 'https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities/identity/Factors',
161
- headers: headers,
162
154
  ))).to eq(true)
163
155
  end
164
156
 
@@ -240,15 +232,13 @@ describe 'Factor' do
240
232
  expect {
241
233
  @client.verify.v2.services('VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
242
234
  .entities('identity') \
243
- .factors('YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').update(twilio_sandbox_mode: 'twilio_sandbox_mode')
235
+ .factors('YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX').update()
244
236
  }.to raise_exception(Twilio::REST::TwilioError)
245
237
 
246
- headers = {'Twilio-Sandbox-Mode' => 'twilio_sandbox_mode', }
247
238
  expect(
248
239
  @holodeck.has_request?(Holodeck::Request.new(
249
240
  method: 'post',
250
241
  url: 'https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities/identity/Factors/YFXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
251
- headers: headers,
252
242
  ))).to eq(true)
253
243
  end
254
244
 
@@ -14,17 +14,15 @@ describe 'Entity' do
14
14
 
15
15
  expect {
16
16
  @client.verify.v2.services('VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
17
- .entities.create(identity: 'identity', twilio_sandbox_mode: 'twilio_sandbox_mode')
17
+ .entities.create(identity: 'identity')
18
18
  }.to raise_exception(Twilio::REST::TwilioError)
19
19
 
20
20
  values = {'Identity' => 'identity', }
21
- headers = {'Twilio-Sandbox-Mode' => 'twilio_sandbox_mode', }
22
21
  expect(
23
22
  @holodeck.has_request?(Holodeck::Request.new(
24
23
  method: 'post',
25
24
  url: 'https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities',
26
25
  data: values,
27
- headers: headers,
28
26
  ))).to eq(true)
29
27
  end
30
28
 
@@ -59,15 +57,13 @@ describe 'Entity' do
59
57
 
60
58
  expect {
61
59
  @client.verify.v2.services('VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
62
- .entities('identity').delete(twilio_sandbox_mode: 'twilio_sandbox_mode')
60
+ .entities('identity').delete()
63
61
  }.to raise_exception(Twilio::REST::TwilioError)
64
62
 
65
- headers = {'Twilio-Sandbox-Mode' => 'twilio_sandbox_mode', }
66
63
  expect(
67
64
  @holodeck.has_request?(Holodeck::Request.new(
68
65
  method: 'delete',
69
66
  url: 'https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities/identity',
70
- headers: headers,
71
67
  ))).to eq(true)
72
68
  end
73
69
 
@@ -88,15 +84,13 @@ describe 'Entity' do
88
84
 
89
85
  expect {
90
86
  @client.verify.v2.services('VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
91
- .entities('identity').fetch(twilio_sandbox_mode: 'twilio_sandbox_mode')
87
+ .entities('identity').fetch()
92
88
  }.to raise_exception(Twilio::REST::TwilioError)
93
89
 
94
- headers = {'Twilio-Sandbox-Mode' => 'twilio_sandbox_mode', }
95
90
  expect(
96
91
  @holodeck.has_request?(Holodeck::Request.new(
97
92
  method: 'get',
98
93
  url: 'https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities/identity',
99
- headers: headers,
100
94
  ))).to eq(true)
101
95
  end
102
96
 
@@ -131,15 +125,13 @@ describe 'Entity' do
131
125
 
132
126
  expect {
133
127
  @client.verify.v2.services('VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
134
- .entities.list(twilio_sandbox_mode: 'twilio_sandbox_mode')
128
+ .entities.list()
135
129
  }.to raise_exception(Twilio::REST::TwilioError)
136
130
 
137
- headers = {'Twilio-Sandbox-Mode' => 'twilio_sandbox_mode', }
138
131
  expect(
139
132
  @holodeck.has_request?(Holodeck::Request.new(
140
133
  method: 'get',
141
134
  url: 'https://verify.twilio.com/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Entities',
142
- headers: headers,
143
135
  ))).to eq(true)
144
136
  end
145
137
 
@@ -0,0 +1,89 @@
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 'RecordingRules' do
12
+ it "can fetch" do
13
+ @holodeck.mock(Twilio::Response.new(500, ''))
14
+
15
+ expect {
16
+ @client.video.v1.rooms('RMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
17
+ .recording_rules.fetch()
18
+ }.to raise_exception(Twilio::REST::TwilioError)
19
+
20
+ expect(
21
+ @holodeck.has_request?(Holodeck::Request.new(
22
+ method: 'get',
23
+ url: 'https://video.twilio.com/v1/Rooms/RMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/RecordingRules',
24
+ ))).to eq(true)
25
+ end
26
+
27
+ it "receives fetch responses" do
28
+ @holodeck.mock(Twilio::Response.new(
29
+ 200,
30
+ %q[
31
+ {
32
+ "room_sid": "RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
33
+ "date_created": "2015-07-30T20:00:00Z",
34
+ "date_updated": "2015-07-30T20:00:00Z",
35
+ "rules": [
36
+ {
37
+ "type": "include",
38
+ "all": true
39
+ }
40
+ ]
41
+ }
42
+ ]
43
+ ))
44
+
45
+ actual = @client.video.v1.rooms('RMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
46
+ .recording_rules.fetch()
47
+
48
+ expect(actual).to_not eq(nil)
49
+ end
50
+
51
+ it "can update" do
52
+ @holodeck.mock(Twilio::Response.new(500, ''))
53
+
54
+ expect {
55
+ @client.video.v1.rooms('RMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
56
+ .recording_rules.update()
57
+ }.to raise_exception(Twilio::REST::TwilioError)
58
+
59
+ expect(
60
+ @holodeck.has_request?(Holodeck::Request.new(
61
+ method: 'post',
62
+ url: 'https://video.twilio.com/v1/Rooms/RMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/RecordingRules',
63
+ ))).to eq(true)
64
+ end
65
+
66
+ it "receives update responses" do
67
+ @holodeck.mock(Twilio::Response.new(
68
+ 200,
69
+ %q[
70
+ {
71
+ "room_sid": "RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
72
+ "date_created": "2015-07-30T20:00:00Z",
73
+ "date_updated": "2015-07-30T20:00:00Z",
74
+ "rules": [
75
+ {
76
+ "type": "include",
77
+ "all": true
78
+ }
79
+ ]
80
+ }
81
+ ]
82
+ ))
83
+
84
+ actual = @client.video.v1.rooms('RMXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') \
85
+ .recording_rules.update()
86
+
87
+ expect(actual).to_not eq(nil)
88
+ end
89
+ end
@@ -49,7 +49,8 @@ describe 'Room' do
49
49
  "url": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
50
50
  "links": {
51
51
  "participants": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants",
52
- "recordings": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings"
52
+ "recordings": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings",
53
+ "recording_rules": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/RecordingRules"
53
54
  }
54
55
  }
55
56
  ]
@@ -100,7 +101,8 @@ describe 'Room' do
100
101
  "url": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
101
102
  "links": {
102
103
  "participants": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants",
103
- "recordings": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings"
104
+ "recordings": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings",
105
+ "recording_rules": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/RecordingRules"
104
106
  }
105
107
  }
106
108
  ]
@@ -137,7 +139,8 @@ describe 'Room' do
137
139
  "url": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
138
140
  "links": {
139
141
  "participants": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants",
140
- "recordings": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings"
142
+ "recordings": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings",
143
+ "recording_rules": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/RecordingRules"
141
144
  }
142
145
  }
143
146
  ]
@@ -214,7 +217,8 @@ describe 'Room' do
214
217
  "url": "https://video.twilio.com/v1/Rooms/RM4070b618362c1682b2385b1f9982833c",
215
218
  "links": {
216
219
  "participants": "https://video.twilio.com/v1/Rooms/RM4070b618362c1682b2385b1f9982833c/Participants",
217
- "recordings": "https://video.twilio.com/v1/Rooms/RM4070b618362c1682b2385b1f9982833c/Recordings"
220
+ "recordings": "https://video.twilio.com/v1/Rooms/RM4070b618362c1682b2385b1f9982833c/Recordings",
221
+ "recording_rules": "https://video.twilio.com/v1/Rooms/RM4070b618362c1682b2385b1f9982833c/RecordingRules"
218
222
  }
219
223
  }
220
224
  ],
@@ -278,7 +282,8 @@ describe 'Room' do
278
282
  "url": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
279
283
  "links": {
280
284
  "participants": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Participants",
281
- "recordings": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings"
285
+ "recordings": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Recordings",
286
+ "recording_rules": "https://video.twilio.com/v1/Rooms/RMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/RecordingRules"
282
287
  }
283
288
  }
284
289
  ]
@@ -14,10 +14,18 @@ describe Twilio::JWT::AccessToken do
14
14
  expect(payload['grants'].count).to eq(0)
15
15
  end
16
16
 
17
- it 'should add the proper headers' do
17
+ it 'should add the proper headers without region' do
18
18
  scat = Twilio::JWT::AccessToken.new 'AC123', 'SK123', 'secret'
19
19
  _, headers = JWT.decode scat.to_s, 'secret'
20
20
  expect(headers['cty']).to eq('twilio-fpa;v=1')
21
+ expect(headers['twr']).to be_nil
22
+ end
23
+
24
+ it 'should add the proper headers with region' do
25
+ scat = Twilio::JWT::AccessToken.new 'AC123', 'SK123', 'secret', region: 'foo'
26
+ _, headers = JWT.decode scat.to_s, 'secret'
27
+ expect(headers['cty']).to eq('twilio-fpa;v=1')
28
+ expect(headers['twr']).to eq('foo')
21
29
  end
22
30
 
23
31
  it 'identity should exist in the grants' do
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
22
22
  spec.require_paths = ['lib']
23
23
  spec.required_ruby_version = '>= 2.0.0'
24
- spec.extra_rdoc_files = ['README.md', 'LICENSE.md']
24
+ spec.extra_rdoc_files = ['README.md', 'LICENSE']
25
25
  spec.rdoc_options = ['--line-numbers', '--inline-source', '--title', 'twilio-ruby', '--main', 'README.md']
26
26
 
27
27
  spec.add_dependency('jwt', '>= 1.5', '<= 2.5')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twilio-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.41.0
4
+ version: 5.42.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Twilio API Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-14 00:00:00.000000000 Z
11
+ date: 2020-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jwt
@@ -195,7 +195,7 @@ executables: []
195
195
  extensions: []
196
196
  extra_rdoc_files:
197
197
  - README.md
198
- - LICENSE.md
198
+ - LICENSE
199
199
  files:
200
200
  - ".dockerignore"
201
201
  - ".gitignore"
@@ -209,7 +209,7 @@ files:
209
209
  - Dockerfile
210
210
  - Gemfile
211
211
  - ISSUE_TEMPLATE.md
212
- - LICENSE.md
212
+ - LICENSE
213
213
  - Makefile
214
214
  - PULL_REQUEST_TEMPLATE.md
215
215
  - README.md
@@ -420,6 +420,8 @@ files:
420
420
  - lib/twilio-ruby/rest/insights/v1/call/event.rb
421
421
  - lib/twilio-ruby/rest/insights/v1/call/metric.rb
422
422
  - lib/twilio-ruby/rest/insights/v1/call/summary.rb
423
+ - lib/twilio-ruby/rest/insights/v1/room.rb
424
+ - lib/twilio-ruby/rest/insights/v1/room/participant.rb
423
425
  - lib/twilio-ruby/rest/ip_messaging.rb
424
426
  - lib/twilio-ruby/rest/ip_messaging/v1.rb
425
427
  - lib/twilio-ruby/rest/ip_messaging/v1/credential.rb
@@ -678,6 +680,7 @@ files:
678
680
  - lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_published_track.rb
679
681
  - lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribe_rule.rb
680
682
  - lib/twilio-ruby/rest/video/v1/room/room_participant/room_participant_subscribed_track.rb
683
+ - lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb
681
684
  - lib/twilio-ruby/rest/voice.rb
682
685
  - lib/twilio-ruby/rest/voice/v1.rb
683
686
  - lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb
@@ -871,6 +874,8 @@ files:
871
874
  - spec/integration/insights/v1/call/metric_spec.rb
872
875
  - spec/integration/insights/v1/call/summary_spec.rb
873
876
  - spec/integration/insights/v1/call_spec.rb
877
+ - spec/integration/insights/v1/room/participant_spec.rb
878
+ - spec/integration/insights/v1/room_spec.rb
874
879
  - spec/integration/ip_messaging/v1/credential_spec.rb
875
880
  - spec/integration/ip_messaging/v1/service/channel/invite_spec.rb
876
881
  - spec/integration/ip_messaging/v1/service/channel/member_spec.rb
@@ -1084,6 +1089,7 @@ files:
1084
1089
  - spec/integration/video/v1/room/room_participant/room_participant_subscribe_rule_spec.rb
1085
1090
  - spec/integration/video/v1/room/room_participant/room_participant_subscribed_track_spec.rb
1086
1091
  - spec/integration/video/v1/room/room_participant_spec.rb
1092
+ - spec/integration/video/v1/room/room_recording_rule_spec.rb
1087
1093
  - spec/integration/video/v1/room_spec.rb
1088
1094
  - spec/integration/voice/v1/byoc_trunk_spec.rb
1089
1095
  - spec/integration/voice/v1/connection_policy/connection_policy_target_spec.rb
@@ -1312,6 +1318,8 @@ test_files:
1312
1318
  - spec/integration/insights/v1/call/metric_spec.rb
1313
1319
  - spec/integration/insights/v1/call/summary_spec.rb
1314
1320
  - spec/integration/insights/v1/call_spec.rb
1321
+ - spec/integration/insights/v1/room/participant_spec.rb
1322
+ - spec/integration/insights/v1/room_spec.rb
1315
1323
  - spec/integration/ip_messaging/v1/credential_spec.rb
1316
1324
  - spec/integration/ip_messaging/v1/service/channel/invite_spec.rb
1317
1325
  - spec/integration/ip_messaging/v1/service/channel/member_spec.rb
@@ -1525,6 +1533,7 @@ test_files:
1525
1533
  - spec/integration/video/v1/room/room_participant/room_participant_subscribe_rule_spec.rb
1526
1534
  - spec/integration/video/v1/room/room_participant/room_participant_subscribed_track_spec.rb
1527
1535
  - spec/integration/video/v1/room/room_participant_spec.rb
1536
+ - spec/integration/video/v1/room/room_recording_rule_spec.rb
1528
1537
  - spec/integration/video/v1/room_spec.rb
1529
1538
  - spec/integration/voice/v1/byoc_trunk_spec.rb
1530
1539
  - spec/integration/voice/v1/connection_policy/connection_policy_target_spec.rb