twilio-ruby 5.61.1 → 5.63.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test-and-deploy.yml +124 -0
- data/.rubocop.yml +1 -1
- data/.rubocop_todo.yml +84 -21
- data/CHANGES.md +96 -0
- data/Makefile +3 -6
- data/README.md +4 -4
- data/lib/rack/twilio_webhook_authentication.rb +25 -1
- data/lib/twilio-ruby/rest/api/v2010/account/message.rb +19 -5
- data/lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb +269 -0
- data/lib/twilio-ruby/rest/conversations/v1/service/configuration.rb +8 -0
- data/lib/twilio-ruby/rest/flex_api/v1/configuration.rb +14 -0
- data/lib/twilio-ruby/rest/flex_api/v1/flex_flow.rb +33 -18
- data/lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb +483 -0
- data/lib/twilio-ruby/rest/insights/v1/conference.rb +484 -0
- data/lib/twilio-ruby/rest/insights/v1/setting.rb +215 -0
- data/lib/twilio-ruby/rest/insights/v1.rb +23 -0
- data/lib/twilio-ruby/rest/insights.rb +14 -0
- data/lib/twilio-ruby/rest/media/v1/media_processor.rb +14 -1
- data/lib/twilio-ruby/rest/messaging/v1/brand_registration.rb +23 -0
- data/lib/twilio-ruby/rest/numbers/v2/regulatory_compliance/bundle/bundle_copy.rb +80 -0
- data/lib/twilio-ruby/rest/supersim/v1/esim_profile.rb +372 -0
- data/lib/twilio-ruby/rest/supersim/v1/ip_command.rb +416 -0
- data/lib/twilio-ruby/rest/supersim/v1.rb +32 -0
- data/lib/twilio-ruby/rest/supersim.rb +18 -0
- data/lib/twilio-ruby/rest/verify/v2/service/access_token.rb +138 -10
- data/lib/twilio-ruby/rest/verify/v2/service.rb +8 -2
- data/lib/twilio-ruby/rest/video/v1/composition.rb +7 -0
- data/lib/twilio-ruby/rest/video/v1/recording.rb +7 -0
- data/lib/twilio-ruby/rest/video/v1/room/recording.rb +7 -0
- data/lib/twilio-ruby/rest/video/v1/room.rb +34 -1
- data/lib/twilio-ruby/rest/voice/v1/archived_call.rb +184 -0
- data/lib/twilio-ruby/rest/voice/v1.rb +21 -0
- data/lib/twilio-ruby/rest/voice.rb +8 -0
- data/lib/twilio-ruby/rest/wireless/v1/sim.rb +4 -4
- data/lib/twilio-ruby/version.rb +1 -1
- data/sonar-project.properties +1 -1
- data/twilio-ruby.gemspec +0 -1
- metadata +10 -18
- data/.github/workflows/deploy.yml +0 -65
- data/.github/workflows/test.yml +0 -51
@@ -442,8 +442,14 @@ module Twilio
|
|
442
442
|
##
|
443
443
|
# Access the access_tokens
|
444
444
|
# @return [AccessTokenList]
|
445
|
-
# @return [AccessTokenContext]
|
446
|
-
def access_tokens
|
445
|
+
# @return [AccessTokenContext] if sid was passed.
|
446
|
+
def access_tokens(sid=:unset)
|
447
|
+
raise ArgumentError, 'sid cannot be nil' if sid.nil?
|
448
|
+
|
449
|
+
if sid != :unset
|
450
|
+
return AccessTokenContext.new(@version, @solution[:sid], sid, )
|
451
|
+
end
|
452
|
+
|
447
453
|
unless @access_tokens
|
448
454
|
@access_tokens = AccessTokenList.new(@version, service_sid: @solution[:sid], )
|
449
455
|
end
|
@@ -334,6 +334,7 @@ module Twilio
|
|
334
334
|
'bitrate' => payload['bitrate'].to_i,
|
335
335
|
'size' => payload['size'].to_i,
|
336
336
|
'duration' => payload['duration'].to_i,
|
337
|
+
'media_external_location' => payload['media_external_location'],
|
337
338
|
'url' => payload['url'],
|
338
339
|
'links' => payload['links'],
|
339
340
|
}
|
@@ -450,6 +451,12 @@ module Twilio
|
|
450
451
|
@properties['duration']
|
451
452
|
end
|
452
453
|
|
454
|
+
##
|
455
|
+
# @return [String] The URL of the media file associated with the composition when stored externally
|
456
|
+
def media_external_location
|
457
|
+
@properties['media_external_location']
|
458
|
+
end
|
459
|
+
|
453
460
|
##
|
454
461
|
# @return [String] The absolute URL of the resource
|
455
462
|
def url
|
@@ -272,6 +272,7 @@ module Twilio
|
|
272
272
|
'grouping_sids' => payload['grouping_sids'],
|
273
273
|
'track_name' => payload['track_name'],
|
274
274
|
'offset' => payload['offset'].to_i,
|
275
|
+
'media_external_location' => payload['media_external_location'],
|
275
276
|
'links' => payload['links'],
|
276
277
|
}
|
277
278
|
|
@@ -375,6 +376,12 @@ module Twilio
|
|
375
376
|
@properties['offset']
|
376
377
|
end
|
377
378
|
|
379
|
+
##
|
380
|
+
# @return [String] The URL of the media file associated with the recording when stored externally
|
381
|
+
def media_external_location
|
382
|
+
@properties['media_external_location']
|
383
|
+
end
|
384
|
+
|
378
385
|
##
|
379
386
|
# @return [String] The URLs of related resources
|
380
387
|
def links
|
@@ -255,6 +255,7 @@ module Twilio
|
|
255
255
|
'grouping_sids' => payload['grouping_sids'],
|
256
256
|
'track_name' => payload['track_name'],
|
257
257
|
'offset' => payload['offset'].to_i,
|
258
|
+
'media_external_location' => payload['media_external_location'],
|
258
259
|
'room_sid' => payload['room_sid'],
|
259
260
|
'links' => payload['links'],
|
260
261
|
}
|
@@ -359,6 +360,12 @@ module Twilio
|
|
359
360
|
@properties['offset']
|
360
361
|
end
|
361
362
|
|
363
|
+
##
|
364
|
+
# @return [String] The URL of the media file associated with the recording when stored externally
|
365
|
+
def media_external_location
|
366
|
+
@properties['media_external_location']
|
367
|
+
end
|
368
|
+
|
362
369
|
##
|
363
370
|
# @return [String] The SID of the Room resource the recording is associated with
|
364
371
|
def room_sid
|
@@ -60,8 +60,17 @@ module Twilio
|
|
60
60
|
# @param [Boolean] audio_only When set to true, indicates that the participants in
|
61
61
|
# the room will only publish audio. No video tracks will be allowed. Group rooms
|
62
62
|
# only.
|
63
|
+
# @param [String] max_participant_duration The maximum number of seconds a
|
64
|
+
# Participant can be connected to the room. The maximum possible value is 86400
|
65
|
+
# seconds (24 hours). The default is 14400 seconds (4 hours).
|
66
|
+
# @param [String] empty_room_timeout Configures how long (in minutes) a room will
|
67
|
+
# remain active after last participant leaves. Valid values range from 1 to 60
|
68
|
+
# minutes (no fractions).
|
69
|
+
# @param [String] unused_room_timeout Configures how long (in minutes) a room will
|
70
|
+
# remain active if no one joins. Valid values range from 1 to 60 minutes (no
|
71
|
+
# fractions).
|
63
72
|
# @return [RoomInstance] Created RoomInstance
|
64
|
-
def create(enable_turn: :unset, type: :unset, unique_name: :unset, status_callback: :unset, status_callback_method: :unset, max_participants: :unset, record_participants_on_connect: :unset, video_codecs: :unset, media_region: :unset, recording_rules: :unset, audio_only: :unset)
|
73
|
+
def create(enable_turn: :unset, type: :unset, unique_name: :unset, status_callback: :unset, status_callback_method: :unset, max_participants: :unset, record_participants_on_connect: :unset, video_codecs: :unset, media_region: :unset, recording_rules: :unset, audio_only: :unset, max_participant_duration: :unset, empty_room_timeout: :unset, unused_room_timeout: :unset)
|
65
74
|
data = Twilio::Values.of({
|
66
75
|
'EnableTurn' => enable_turn,
|
67
76
|
'Type' => type,
|
@@ -74,6 +83,9 @@ module Twilio
|
|
74
83
|
'MediaRegion' => media_region,
|
75
84
|
'RecordingRules' => Twilio.serialize_object(recording_rules),
|
76
85
|
'AudioOnly' => audio_only,
|
86
|
+
'MaxParticipantDuration' => max_participant_duration,
|
87
|
+
'EmptyRoomTimeout' => empty_room_timeout,
|
88
|
+
'UnusedRoomTimeout' => unused_room_timeout,
|
77
89
|
})
|
78
90
|
|
79
91
|
payload = @version.create('POST', @uri, data: data)
|
@@ -364,11 +376,14 @@ module Twilio
|
|
364
376
|
'duration' => payload['duration'] == nil ? payload['duration'] : payload['duration'].to_i,
|
365
377
|
'type' => payload['type'],
|
366
378
|
'max_participants' => payload['max_participants'].to_i,
|
379
|
+
'max_participant_duration' => payload['max_participant_duration'].to_i,
|
367
380
|
'max_concurrent_published_tracks' => payload['max_concurrent_published_tracks'] == nil ? payload['max_concurrent_published_tracks'] : payload['max_concurrent_published_tracks'].to_i,
|
368
381
|
'record_participants_on_connect' => payload['record_participants_on_connect'],
|
369
382
|
'video_codecs' => payload['video_codecs'],
|
370
383
|
'media_region' => payload['media_region'],
|
371
384
|
'audio_only' => payload['audio_only'],
|
385
|
+
'empty_room_timeout' => payload['empty_room_timeout'].to_i,
|
386
|
+
'unused_room_timeout' => payload['unused_room_timeout'].to_i,
|
372
387
|
'url' => payload['url'],
|
373
388
|
'links' => payload['links'],
|
374
389
|
}
|
@@ -467,6 +482,12 @@ module Twilio
|
|
467
482
|
@properties['max_participants']
|
468
483
|
end
|
469
484
|
|
485
|
+
##
|
486
|
+
# @return [String] The maximum number of seconds a Participant can be connected to the room
|
487
|
+
def max_participant_duration
|
488
|
+
@properties['max_participant_duration']
|
489
|
+
end
|
490
|
+
|
470
491
|
##
|
471
492
|
# @return [String] The maximum number of published tracks allowed in the room at the same time
|
472
493
|
def max_concurrent_published_tracks
|
@@ -497,6 +518,18 @@ module Twilio
|
|
497
518
|
@properties['audio_only']
|
498
519
|
end
|
499
520
|
|
521
|
+
##
|
522
|
+
# @return [String] The time a room will remain active after last participant leaves.
|
523
|
+
def empty_room_timeout
|
524
|
+
@properties['empty_room_timeout']
|
525
|
+
end
|
526
|
+
|
527
|
+
##
|
528
|
+
# @return [String] The time a room will remain active when no one joins.
|
529
|
+
def unused_room_timeout
|
530
|
+
@properties['unused_room_timeout']
|
531
|
+
end
|
532
|
+
|
500
533
|
##
|
501
534
|
# @return [String] The absolute URL of the resource
|
502
535
|
def url
|
@@ -0,0 +1,184 @@
|
|
1
|
+
##
|
2
|
+
# This code was generated by
|
3
|
+
# \ / _ _ _| _ _
|
4
|
+
# | (_)\/(_)(_|\/| |(/_ v1.0.0
|
5
|
+
# / /
|
6
|
+
#
|
7
|
+
# frozen_string_literal: true
|
8
|
+
|
9
|
+
module Twilio
|
10
|
+
module REST
|
11
|
+
class Voice < Domain
|
12
|
+
class V1 < Version
|
13
|
+
##
|
14
|
+
# PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
|
15
|
+
class ArchivedCallList < ListResource
|
16
|
+
##
|
17
|
+
# Initialize the ArchivedCallList
|
18
|
+
# @param [Version] version Version that contains the resource
|
19
|
+
# @return [ArchivedCallList] ArchivedCallList
|
20
|
+
def initialize(version)
|
21
|
+
super(version)
|
22
|
+
|
23
|
+
# Path Solution
|
24
|
+
@solution = {}
|
25
|
+
end
|
26
|
+
|
27
|
+
##
|
28
|
+
# Provide a user friendly representation
|
29
|
+
def to_s
|
30
|
+
'#<Twilio.Voice.V1.ArchivedCallList>'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
##
|
35
|
+
# PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
|
36
|
+
class ArchivedCallPage < Page
|
37
|
+
##
|
38
|
+
# Initialize the ArchivedCallPage
|
39
|
+
# @param [Version] version Version that contains the resource
|
40
|
+
# @param [Response] response Response from the API
|
41
|
+
# @param [Hash] solution Path solution for the resource
|
42
|
+
# @return [ArchivedCallPage] ArchivedCallPage
|
43
|
+
def initialize(version, response, solution)
|
44
|
+
super(version, response)
|
45
|
+
|
46
|
+
# Path Solution
|
47
|
+
@solution = solution
|
48
|
+
end
|
49
|
+
|
50
|
+
##
|
51
|
+
# Build an instance of ArchivedCallInstance
|
52
|
+
# @param [Hash] payload Payload response from the API
|
53
|
+
# @return [ArchivedCallInstance] ArchivedCallInstance
|
54
|
+
def get_instance(payload)
|
55
|
+
ArchivedCallInstance.new(@version, payload, )
|
56
|
+
end
|
57
|
+
|
58
|
+
##
|
59
|
+
# Provide a user friendly representation
|
60
|
+
def to_s
|
61
|
+
'<Twilio.Voice.V1.ArchivedCallPage>'
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
##
|
66
|
+
# PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
|
67
|
+
class ArchivedCallContext < InstanceContext
|
68
|
+
##
|
69
|
+
# Initialize the ArchivedCallContext
|
70
|
+
# @param [Version] version Version that contains the resource
|
71
|
+
# @param [Date] date The date of the Call in UTC.
|
72
|
+
# @param [String] sid The Twilio-provided Call SID that uniquely identifies the
|
73
|
+
# Call resource to delete
|
74
|
+
# @return [ArchivedCallContext] ArchivedCallContext
|
75
|
+
def initialize(version, date, sid)
|
76
|
+
super(version)
|
77
|
+
|
78
|
+
# Path Solution
|
79
|
+
@solution = {date: date, sid: sid, }
|
80
|
+
@uri = "/Archives/#{@solution[:date]}/Calls/#{@solution[:sid]}"
|
81
|
+
end
|
82
|
+
|
83
|
+
##
|
84
|
+
# Delete the ArchivedCallInstance
|
85
|
+
# @return [Boolean] true if delete succeeds, false otherwise
|
86
|
+
def delete
|
87
|
+
@version.delete('DELETE', @uri)
|
88
|
+
end
|
89
|
+
|
90
|
+
##
|
91
|
+
# Provide a user friendly representation
|
92
|
+
def to_s
|
93
|
+
context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
|
94
|
+
"#<Twilio.Voice.V1.ArchivedCallContext #{context}>"
|
95
|
+
end
|
96
|
+
|
97
|
+
##
|
98
|
+
# Provide a detailed, user friendly representation
|
99
|
+
def inspect
|
100
|
+
context = @solution.map {|k, v| "#{k}: #{v}"}.join(',')
|
101
|
+
"#<Twilio.Voice.V1.ArchivedCallContext #{context}>"
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
##
|
106
|
+
# PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
|
107
|
+
class ArchivedCallInstance < InstanceResource
|
108
|
+
##
|
109
|
+
# Initialize the ArchivedCallInstance
|
110
|
+
# @param [Version] version Version that contains the resource
|
111
|
+
# @param [Hash] payload payload that contains response from Twilio
|
112
|
+
# @param [Date] date The date of the Call in UTC.
|
113
|
+
# @param [String] sid The Twilio-provided Call SID that uniquely identifies the
|
114
|
+
# Call resource to delete
|
115
|
+
# @return [ArchivedCallInstance] ArchivedCallInstance
|
116
|
+
def initialize(version, payload, date: nil, sid: nil)
|
117
|
+
super(version)
|
118
|
+
|
119
|
+
# Marshaled Properties
|
120
|
+
@properties = {
|
121
|
+
'date' => Twilio.deserialize_iso8601_date(payload['date']),
|
122
|
+
'sid' => payload['sid'],
|
123
|
+
'url' => payload['url'],
|
124
|
+
}
|
125
|
+
|
126
|
+
# Context
|
127
|
+
@instance_context = nil
|
128
|
+
@params = {'date' => date || @properties['date'], 'sid' => sid || @properties['sid'], }
|
129
|
+
end
|
130
|
+
|
131
|
+
##
|
132
|
+
# Generate an instance context for the instance, the context is capable of
|
133
|
+
# performing various actions. All instance actions are proxied to the context
|
134
|
+
# @return [ArchivedCallContext] ArchivedCallContext for this ArchivedCallInstance
|
135
|
+
def context
|
136
|
+
unless @instance_context
|
137
|
+
@instance_context = ArchivedCallContext.new(@version, @params['date'], @params['sid'], )
|
138
|
+
end
|
139
|
+
@instance_context
|
140
|
+
end
|
141
|
+
|
142
|
+
##
|
143
|
+
# @return [Date] date
|
144
|
+
def date
|
145
|
+
@properties['date']
|
146
|
+
end
|
147
|
+
|
148
|
+
##
|
149
|
+
# @return [String] sid
|
150
|
+
def sid
|
151
|
+
@properties['sid']
|
152
|
+
end
|
153
|
+
|
154
|
+
##
|
155
|
+
# @return [String] The absolute URL of the resource
|
156
|
+
def url
|
157
|
+
@properties['url']
|
158
|
+
end
|
159
|
+
|
160
|
+
##
|
161
|
+
# Delete the ArchivedCallInstance
|
162
|
+
# @return [Boolean] true if delete succeeds, false otherwise
|
163
|
+
def delete
|
164
|
+
context.delete
|
165
|
+
end
|
166
|
+
|
167
|
+
##
|
168
|
+
# Provide a user friendly representation
|
169
|
+
def to_s
|
170
|
+
values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
|
171
|
+
"<Twilio.Voice.V1.ArchivedCallInstance #{values}>"
|
172
|
+
end
|
173
|
+
|
174
|
+
##
|
175
|
+
# Provide a detailed, user friendly representation
|
176
|
+
def inspect
|
177
|
+
values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
|
178
|
+
"<Twilio.Voice.V1.ArchivedCallInstance #{values}>"
|
179
|
+
end
|
180
|
+
end
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
@@ -15,6 +15,7 @@ module Twilio
|
|
15
15
|
def initialize(domain)
|
16
16
|
super
|
17
17
|
@version = 'v1'
|
18
|
+
@archived_calls = nil
|
18
19
|
@byoc_trunks = nil
|
19
20
|
@connection_policies = nil
|
20
21
|
@dialing_permissions = nil
|
@@ -22,6 +23,26 @@ module Twilio
|
|
22
23
|
@source_ip_mappings = nil
|
23
24
|
end
|
24
25
|
|
26
|
+
##
|
27
|
+
# @param [Date] date The date of the Call in UTC.
|
28
|
+
# @param [String] sid The Twilio-provided Call SID that uniquely identifies the
|
29
|
+
# Call resource to delete
|
30
|
+
# @return [Twilio::REST::Voice::V1::ArchivedCallContext] if sid was passed.
|
31
|
+
# @return [Twilio::REST::Voice::V1::ArchivedCallList]
|
32
|
+
def archived_calls(date=:unset, sid=:unset)
|
33
|
+
if date.nil?
|
34
|
+
raise ArgumentError, 'date cannot be nil'
|
35
|
+
end
|
36
|
+
if sid.nil?
|
37
|
+
raise ArgumentError, 'sid cannot be nil'
|
38
|
+
end
|
39
|
+
if date == :unset && sid == :unset
|
40
|
+
@archived_calls ||= ArchivedCallList.new self
|
41
|
+
else
|
42
|
+
ArchivedCallContext.new(self, date, sid)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
25
46
|
##
|
26
47
|
# @param [String] sid The Twilio-provided string that uniquely identifies the BYOC
|
27
48
|
# Trunk resource to fetch.
|
@@ -28,6 +28,14 @@ module Twilio
|
|
28
28
|
@v1 ||= V1.new self
|
29
29
|
end
|
30
30
|
|
31
|
+
##
|
32
|
+
# @param [String] sid The call sid
|
33
|
+
# @return [Twilio::REST::Voice::V1::ArchivedCallInstance] if sid was passed.
|
34
|
+
# @return [Twilio::REST::Voice::V1::ArchivedCallList]
|
35
|
+
def archived_calls(date=:unset, sid=:unset)
|
36
|
+
self.v1.archived_calls(date, sid)
|
37
|
+
end
|
38
|
+
|
31
39
|
##
|
32
40
|
# @param [String] sid The unique string that that we created to identify the BYOC
|
33
41
|
# Trunk resource.
|
@@ -458,25 +458,25 @@ module Twilio
|
|
458
458
|
end
|
459
459
|
|
460
460
|
##
|
461
|
-
# @return [String] Deprecated
|
461
|
+
# @return [String] Deprecated
|
462
462
|
def sms_fallback_method
|
463
463
|
@properties['sms_fallback_method']
|
464
464
|
end
|
465
465
|
|
466
466
|
##
|
467
|
-
# @return [String] Deprecated
|
467
|
+
# @return [String] Deprecated
|
468
468
|
def sms_fallback_url
|
469
469
|
@properties['sms_fallback_url']
|
470
470
|
end
|
471
471
|
|
472
472
|
##
|
473
|
-
# @return [String] Deprecated
|
473
|
+
# @return [String] Deprecated
|
474
474
|
def sms_method
|
475
475
|
@properties['sms_method']
|
476
476
|
end
|
477
477
|
|
478
478
|
##
|
479
|
-
# @return [String] Deprecated
|
479
|
+
# @return [String] Deprecated
|
480
480
|
def sms_url
|
481
481
|
@properties['sms_url']
|
482
482
|
end
|
data/lib/twilio-ruby/version.rb
CHANGED
data/sonar-project.properties
CHANGED
data/twilio-ruby.gemspec
CHANGED
@@ -36,7 +36,6 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.add_development_dependency 'rack', '~> 2.0'
|
37
37
|
spec.add_development_dependency 'rake', '~> 13.0'
|
38
38
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
39
|
-
spec.add_development_dependency 'rubocop', '~> 0.82.0'
|
40
39
|
spec.add_development_dependency 'yard', '~> 0.9.9'
|
41
40
|
spec.add_development_dependency 'logger', '~> 1.4.2'
|
42
41
|
end
|
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.
|
4
|
+
version: 5.63.1
|
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:
|
11
|
+
date: 2022-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jwt
|
@@ -160,20 +160,6 @@ dependencies:
|
|
160
160
|
- - "~>"
|
161
161
|
- !ruby/object:Gem::Version
|
162
162
|
version: '3.0'
|
163
|
-
- !ruby/object:Gem::Dependency
|
164
|
-
name: rubocop
|
165
|
-
requirement: !ruby/object:Gem::Requirement
|
166
|
-
requirements:
|
167
|
-
- - "~>"
|
168
|
-
- !ruby/object:Gem::Version
|
169
|
-
version: 0.82.0
|
170
|
-
type: :development
|
171
|
-
prerelease: false
|
172
|
-
version_requirements: !ruby/object:Gem::Requirement
|
173
|
-
requirements:
|
174
|
-
- - "~>"
|
175
|
-
- !ruby/object:Gem::Version
|
176
|
-
version: 0.82.0
|
177
163
|
- !ruby/object:Gem::Dependency
|
178
164
|
name: yard
|
179
165
|
requirement: !ruby/object:Gem::Requirement
|
@@ -212,8 +198,7 @@ extra_rdoc_files:
|
|
212
198
|
- LICENSE
|
213
199
|
files:
|
214
200
|
- ".dockerignore"
|
215
|
-
- ".github/workflows/deploy.yml"
|
216
|
-
- ".github/workflows/test.yml"
|
201
|
+
- ".github/workflows/test-and-deploy.yml"
|
217
202
|
- ".gitignore"
|
218
203
|
- ".rubocop.yml"
|
219
204
|
- ".rubocop_todo.yml"
|
@@ -406,6 +391,7 @@ files:
|
|
406
391
|
- lib/twilio-ruby/rest/conversations/v1/service/binding.rb
|
407
392
|
- lib/twilio-ruby/rest/conversations/v1/service/configuration.rb
|
408
393
|
- lib/twilio-ruby/rest/conversations/v1/service/configuration/notification.rb
|
394
|
+
- lib/twilio-ruby/rest/conversations/v1/service/configuration/webhook.rb
|
409
395
|
- lib/twilio-ruby/rest/conversations/v1/service/conversation.rb
|
410
396
|
- lib/twilio-ruby/rest/conversations/v1/service/conversation/message.rb
|
411
397
|
- lib/twilio-ruby/rest/conversations/v1/service/conversation/message/delivery_receipt.rb
|
@@ -447,8 +433,11 @@ files:
|
|
447
433
|
- lib/twilio-ruby/rest/insights/v1/call/metric.rb
|
448
434
|
- lib/twilio-ruby/rest/insights/v1/call/summary.rb
|
449
435
|
- lib/twilio-ruby/rest/insights/v1/call_summaries.rb
|
436
|
+
- lib/twilio-ruby/rest/insights/v1/conference.rb
|
437
|
+
- lib/twilio-ruby/rest/insights/v1/conference/conference_participant.rb
|
450
438
|
- lib/twilio-ruby/rest/insights/v1/room.rb
|
451
439
|
- lib/twilio-ruby/rest/insights/v1/room/participant.rb
|
440
|
+
- lib/twilio-ruby/rest/insights/v1/setting.rb
|
452
441
|
- lib/twilio-ruby/rest/ip_messaging.rb
|
453
442
|
- lib/twilio-ruby/rest/ip_messaging/v1.rb
|
454
443
|
- lib/twilio-ruby/rest/ip_messaging/v1/credential.rb
|
@@ -636,7 +625,9 @@ files:
|
|
636
625
|
- lib/twilio-ruby/rest/supersim.rb
|
637
626
|
- lib/twilio-ruby/rest/supersim/v1.rb
|
638
627
|
- lib/twilio-ruby/rest/supersim/v1/command.rb
|
628
|
+
- lib/twilio-ruby/rest/supersim/v1/esim_profile.rb
|
639
629
|
- lib/twilio-ruby/rest/supersim/v1/fleet.rb
|
630
|
+
- lib/twilio-ruby/rest/supersim/v1/ip_command.rb
|
640
631
|
- lib/twilio-ruby/rest/supersim/v1/network.rb
|
641
632
|
- lib/twilio-ruby/rest/supersim/v1/network_access_profile.rb
|
642
633
|
- lib/twilio-ruby/rest/supersim/v1/network_access_profile/network_access_profile_network.rb
|
@@ -741,6 +732,7 @@ files:
|
|
741
732
|
- lib/twilio-ruby/rest/video/v1/room/room_recording_rule.rb
|
742
733
|
- lib/twilio-ruby/rest/voice.rb
|
743
734
|
- lib/twilio-ruby/rest/voice/v1.rb
|
735
|
+
- lib/twilio-ruby/rest/voice/v1/archived_call.rb
|
744
736
|
- lib/twilio-ruby/rest/voice/v1/byoc_trunk.rb
|
745
737
|
- lib/twilio-ruby/rest/voice/v1/connection_policy.rb
|
746
738
|
- lib/twilio-ruby/rest/voice/v1/connection_policy/connection_policy_target.rb
|
@@ -1,65 +0,0 @@
|
|
1
|
-
name: Deploy
|
2
|
-
on:
|
3
|
-
push:
|
4
|
-
tags:
|
5
|
-
- '*'
|
6
|
-
workflow_dispatch:
|
7
|
-
|
8
|
-
jobs:
|
9
|
-
deploy:
|
10
|
-
name: Deploy to Rubygems
|
11
|
-
runs-on: ubuntu-latest
|
12
|
-
steps:
|
13
|
-
- name: Checkout twilio-ruby
|
14
|
-
uses: actions/checkout@v2
|
15
|
-
with:
|
16
|
-
fetch-depth: 0
|
17
|
-
|
18
|
-
- name: Login to Docker Hub
|
19
|
-
uses: docker/login-action@v1
|
20
|
-
with:
|
21
|
-
username: ${{ secrets.DOCKER_USERNAME }}
|
22
|
-
password: ${{ secrets.DOCKER_AUTH_TOKEN }}
|
23
|
-
|
24
|
-
# The expression strips off the shortest match from the front of the string to yield just the tag name as the output
|
25
|
-
- name: Get tagged version
|
26
|
-
run: echo "GITHUB_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
27
|
-
|
28
|
-
- name: Build and Push image
|
29
|
-
run: make docker-build && make docker-push
|
30
|
-
|
31
|
-
- name: Set up Ruby
|
32
|
-
uses: ruby/setup-ruby@v1
|
33
|
-
with:
|
34
|
-
ruby-version: 2.4
|
35
|
-
bundler-cache: true
|
36
|
-
|
37
|
-
- run: bundle install
|
38
|
-
- name: Publish to Rubygems
|
39
|
-
env:
|
40
|
-
GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_AUTH_TOKEN }}
|
41
|
-
run: |
|
42
|
-
mkdir -p $HOME/.gem
|
43
|
-
touch $HOME/.gem/credentials
|
44
|
-
chmod 0600 $HOME/.gem/credentials
|
45
|
-
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
46
|
-
gem build *.gemspec
|
47
|
-
gem push *.gem
|
48
|
-
|
49
|
-
notify-on-failure:
|
50
|
-
name: Slack notify on failure
|
51
|
-
if: ${{ failure() }}
|
52
|
-
needs: [deploy]
|
53
|
-
runs-on: ubuntu-latest
|
54
|
-
steps:
|
55
|
-
- uses: rtCamp/action-slack-notify@v2
|
56
|
-
env:
|
57
|
-
SLACK_COLOR: ${{ needs.deploy.status }}
|
58
|
-
SLACK_ICON_EMOJI: ':github:'
|
59
|
-
SLACK_MESSAGE: ${{ format('Failed to publish {1} to RubyGems{3} {0}/{1}/actions/runs/{2}', github.server_url, github.repository, github.run_id, ':') }}
|
60
|
-
SLACK_TITLE: Deployment Failure
|
61
|
-
SLACK_USERNAME: GitHub Actions
|
62
|
-
SLACK_MSG_AUTHOR: twilio-dx
|
63
|
-
SLACK_FOOTER: Posted automatically using GitHub Actions
|
64
|
-
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
65
|
-
MSG_MINIMAL: true
|
data/.github/workflows/test.yml
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
name: Tests
|
2
|
-
on:
|
3
|
-
push:
|
4
|
-
branches: [ '*' ]
|
5
|
-
pull_request:
|
6
|
-
branches: [ main ]
|
7
|
-
schedule:
|
8
|
-
# Run automatically at 8AM PST Monday-Friday
|
9
|
-
- cron: '0 15 * * 1-5'
|
10
|
-
workflow_dispatch:
|
11
|
-
|
12
|
-
jobs:
|
13
|
-
test:
|
14
|
-
name: Test
|
15
|
-
runs-on: ubuntu-latest
|
16
|
-
timeout-minutes: 20
|
17
|
-
strategy:
|
18
|
-
matrix:
|
19
|
-
ruby: [2.4, 2.5, 2.6, 2.7, '3.0', ruby-head, jruby-9.2]
|
20
|
-
steps:
|
21
|
-
- name: Checkout twilio-ruby
|
22
|
-
uses: actions/checkout@v2
|
23
|
-
|
24
|
-
- name: Set up Ruby
|
25
|
-
uses: ruby/setup-ruby@v1
|
26
|
-
with:
|
27
|
-
ruby-version: ${{ matrix.ruby }}
|
28
|
-
bundler-cache: true
|
29
|
-
|
30
|
-
- run: bundle install --with development
|
31
|
-
- run: bundle exec rake install
|
32
|
-
- name: Run Unit Tests
|
33
|
-
run: make test
|
34
|
-
|
35
|
-
notify-on-failure:
|
36
|
-
name: Slack notify on failure
|
37
|
-
if: ${{ failure() && github.ref == 'refs/heads/main' && github.event_name != 'pull_request' }}
|
38
|
-
needs: [test]
|
39
|
-
runs-on: ubuntu-latest
|
40
|
-
steps:
|
41
|
-
- uses: rtCamp/action-slack-notify@v2
|
42
|
-
env:
|
43
|
-
SLACK_COLOR: ${{ needs.test.status }}
|
44
|
-
SLACK_ICON_EMOJI: ':github:'
|
45
|
-
SLACK_MESSAGE: ${{ format('Build {2} in {1} failed{3} {0}/{1}/actions/runs/{2}', github.server_url, github.repository, github.run_id, ':') }}
|
46
|
-
SLACK_TITLE: Build Failure
|
47
|
-
SLACK_USERNAME: GitHub Actions
|
48
|
-
SLACK_MSG_AUTHOR: twilio-dx
|
49
|
-
SLACK_FOOTER: Posted automatically using GitHub Actions
|
50
|
-
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
|
51
|
-
MSG_MINIMAL: true
|