vonage 7.18.0 → 8.0.0.beta

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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +10 -271
  3. data/lib/vonage/applications.rb +4 -12
  4. data/lib/vonage/client.rb +4 -32
  5. data/lib/vonage/client_error.rb +1 -1
  6. data/lib/vonage/config.rb +3 -7
  7. data/lib/vonage/errors.rb +20 -37
  8. data/lib/vonage/gsm7.rb +1 -1
  9. data/lib/vonage/jwt.rb +0 -17
  10. data/lib/vonage/keys.rb +7 -1
  11. data/lib/vonage/logger.rb +3 -5
  12. data/lib/vonage/messaging/channels/viber.rb +1 -8
  13. data/lib/vonage/messaging/channels/whats_app.rb +1 -3
  14. data/lib/vonage/messaging.rb +0 -11
  15. data/lib/vonage/namespace.rb +58 -128
  16. data/lib/vonage/numbers.rb +6 -29
  17. data/lib/vonage/server_error.rb +1 -1
  18. data/lib/vonage/signature.rb +5 -5
  19. data/lib/vonage/sms.rb +20 -20
  20. data/lib/vonage/version.rb +1 -1
  21. data/lib/vonage/video/archives.rb +187 -0
  22. data/lib/vonage/video/list_response.rb +11 -0
  23. data/lib/vonage/video/moderation.rb +73 -0
  24. data/lib/vonage/video/signals.rb +55 -0
  25. data/lib/vonage/video/streams.rb +76 -0
  26. data/lib/vonage/video.rb +91 -0
  27. data/lib/vonage/voice/actions/connect.rb +3 -27
  28. data/lib/vonage/voice/actions/pay.rb +107 -0
  29. data/lib/vonage/voice/actions/talk.rb +2 -11
  30. data/lib/vonage/voice/talk.rb +1 -11
  31. data/lib/vonage/voice.rb +0 -22
  32. data/lib/vonage.rb +0 -1
  33. data/vonage.gemspec +1 -2
  34. metadata +14 -59
  35. data/lib/vonage/api_error.rb +0 -33
  36. data/lib/vonage/meetings/applications.rb +0 -25
  37. data/lib/vonage/meetings/dial_in_numbers/list_response.rb +0 -11
  38. data/lib/vonage/meetings/dial_in_numbers.rb +0 -23
  39. data/lib/vonage/meetings/recordings.rb +0 -36
  40. data/lib/vonage/meetings/rooms/list_response.rb +0 -11
  41. data/lib/vonage/meetings/rooms.rb +0 -155
  42. data/lib/vonage/meetings/sessions/list_response.rb +0 -11
  43. data/lib/vonage/meetings/sessions.rb +0 -28
  44. data/lib/vonage/meetings/themes/list_response.rb +0 -11
  45. data/lib/vonage/meetings/themes.rb +0 -218
  46. data/lib/vonage/meetings.rb +0 -38
  47. data/lib/vonage/proactive_connect/events/list_response.rb +0 -11
  48. data/lib/vonage/proactive_connect/events.rb +0 -68
  49. data/lib/vonage/proactive_connect/item.rb +0 -104
  50. data/lib/vonage/proactive_connect/items/file_response.rb +0 -32
  51. data/lib/vonage/proactive_connect/items/list_response.rb +0 -11
  52. data/lib/vonage/proactive_connect/items.rb +0 -107
  53. data/lib/vonage/proactive_connect/list.rb +0 -168
  54. data/lib/vonage/proactive_connect/lists/list_response.rb +0 -11
  55. data/lib/vonage/proactive_connect/lists.rb +0 -35
  56. data/lib/vonage/proactive_connect.rb +0 -33
  57. data/lib/vonage/subaccounts/balance_transfers/list_response.rb +0 -11
  58. data/lib/vonage/subaccounts/credit_transfers/list_response.rb +0 -11
  59. data/lib/vonage/subaccounts/list_response.rb +0 -15
  60. data/lib/vonage/subaccounts.rb +0 -203
  61. data/lib/vonage/users/list_response.rb +0 -11
  62. data/lib/vonage/users.rb +0 -156
  63. data/lib/vonage/verify2/channels/email.rb +0 -38
  64. data/lib/vonage/verify2/channels/silent_auth.rb +0 -32
  65. data/lib/vonage/verify2/channels/sms.rb +0 -39
  66. data/lib/vonage/verify2/channels/voice.rb +0 -32
  67. data/lib/vonage/verify2/channels/whats_app.rb +0 -38
  68. data/lib/vonage/verify2/channels/whats_app_interactive.rb +0 -32
  69. data/lib/vonage/verify2/start_verification_options.rb +0 -62
  70. data/lib/vonage/verify2/workflow.rb +0 -39
  71. data/lib/vonage/verify2/workflow_builder.rb +0 -25
  72. data/lib/vonage/verify2.rb +0 -93
@@ -2,7 +2,7 @@
2
2
  # frozen_string_literal: true
3
3
  module Vonage
4
4
  class Voice::Actions::Talk
5
- attr_accessor :text, :bargeIn, :loop, :level, :language, :style, :premium
5
+ attr_accessor :text, :bargeIn, :loop, :level, :language, :style
6
6
 
7
7
  def initialize(attributes= {})
8
8
  @text = attributes.fetch(:text)
@@ -11,7 +11,6 @@ module Vonage
11
11
  @level = attributes.fetch(:level, nil)
12
12
  @language = attributes.fetch(:language, nil)
13
13
  @style = attributes.fetch(:style, nil)
14
- @premium = attributes.fetch(:premium, nil)
15
14
 
16
15
  after_initialize!
17
16
  end
@@ -32,10 +31,6 @@ module Vonage
32
31
  if self.style
33
32
  verify_style
34
33
  end
35
-
36
- if self.premium
37
- verify_premium
38
- end
39
34
  end
40
35
 
41
36
  def verify_barge_in
@@ -54,10 +49,6 @@ module Vonage
54
49
  raise ClientError.new("Expected 'style' value to be an Integer") unless self.style.is_a?(Integer)
55
50
  end
56
51
 
57
- def verify_premium
58
- raise ClientError.new("Expected 'premium' value to be a Boolean") unless self.premium == true || self.premium == false
59
- end
60
-
61
52
  def action
62
53
  create_talk!(self)
63
54
  end
@@ -79,4 +70,4 @@ module Vonage
79
70
  ncco
80
71
  end
81
72
  end
82
- end
73
+ end
@@ -12,18 +12,8 @@ module Vonage
12
12
  # @option params [required, String] :text
13
13
  # The text to read.
14
14
  #
15
- # @option params [String] :language
16
- # The language to use. See {https://developer.vonage.com/en/api/voice#startTalk-req-body} for a list of valid language codes.
17
- #
18
- # @option params [Integer] :style
19
- # The vocal style, as identified by an assigned integer.
20
- # See {https://developer.vonage.com/en/voice/voice-api/concepts/text-to-speech#supported-languages} for a list of available styles.
21
- #
22
- # @option params [Boolean] :premium
23
- # Set to `true` to use the premium version of the specified style if available, otherwise the standard version will be used.
24
- #
25
15
  # @option params [String] :voice_name
26
- # The voice & language to use. [DEPRECATED: use `language` and `style` instead].
16
+ # The voice & language to use.
27
17
  #
28
18
  # @option params [Integer] :loop
29
19
  # The number of times to repeat the text the file, 0 for infinite.
data/lib/vonage/voice.rb CHANGED
@@ -48,17 +48,6 @@ module Vonage
48
48
  # @option params [String] :machine_detection
49
49
  # Configure the behavior when Vonage detects that the call is answered by voicemail.
50
50
  #
51
- # @option params [Hash] :advanced_machine_detection
52
- # Configure the behavior of Vonage's advanced machine detection. Overrides machine_detection if both are set.
53
- # Hash with three possible properties:
54
- # - :behavior [String]: Must be one of `continue` or `hangup`. When hangup is used, the call will be terminated if a
55
- # machine is detected. When continue is used, the call will continue even if a machine is detected.
56
- # - :mode [String]: Must be one of `detect` or `detect_beep`. Detect if machine answered and sends a human or
57
- # machine status in the webhook payload. When set to `detect_beep`, the system also attempts to detect
58
- # voice mail beep and sends an additional parameter `sub_state` in the webhook with the value `beep_start`.
59
- # - :beep_timeout [Integer]: Min: 45, Max: 120. Maximum time in seconds Vonage should wait for a machine beep
60
- # to be detected. A machine event with `sub_state` set to `beep_timeout` will be sent if the timeout is exceeded.
61
- #
62
51
  # @option params [Integer] :length_timer
63
52
  # Set the number of seconds that elapse before Vonage hangs up after the call state changes to in_progress.
64
53
  #
@@ -279,16 +268,5 @@ module Vonage
279
268
  def dtmf
280
269
  @dtmf ||= DTMF.new(@config)
281
270
  end
282
-
283
- # Validate a JSON Web Token from a Voice API Webhook.
284
- #
285
- # @param [String, required] :token The JWT from the Webhook's Authorization header
286
- # @param [String, optional] :signature_secret The account signature secret. Required, unless `signature_secret`
287
- # is set in `Config`
288
- #
289
- # @return [Boolean] true, if the JWT is verified, false otherwise
290
- def verify_webhook_token(token:, signature_secret: @config.signature_secret)
291
- JWT.verify_hs256_signature(token: token, signature_secret: signature_secret)
292
- end
293
271
  end
294
272
  end
data/lib/vonage.rb CHANGED
@@ -7,7 +7,6 @@ module Vonage
7
7
  loader = Zeitwerk::Loader.new
8
8
  loader.tag = File.basename(__FILE__, '.rb')
9
9
  loader.inflector.inflect({
10
- 'api_error' => 'APIError',
11
10
  'dtmf' => 'DTMF',
12
11
  'gsm7' => 'GSM7',
13
12
  'http' => 'HTTP',
data/vonage.gemspec CHANGED
@@ -12,10 +12,9 @@ Gem::Specification.new do |s|
12
12
  s.summary = 'This is the Ruby Server SDK for Vonage APIs. To use it you\'ll need a Vonage account. Sign up for free at https://www.vonage.com'
13
13
  s.files = Dir.glob('lib/**/*.rb') + %w(LICENSE.txt README.md vonage.gemspec)
14
14
  s.required_ruby_version = '>= 2.5.0'
15
- s.add_dependency('vonage-jwt', '~> 0.2.0')
15
+ s.add_dependency('vonage-jwt', '~> 0.1.0')
16
16
  s.add_dependency('zeitwerk', '~> 2', '>= 2.2')
17
17
  s.add_dependency('sorbet-runtime', '~> 0.5')
18
- s.add_dependency('multipart-post', '~> 2.0')
19
18
  s.add_runtime_dependency('rexml')
20
19
  s.add_runtime_dependency('phonelib')
21
20
  s.require_path = 'lib'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vonage
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.18.0
4
+ version: 8.0.0.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vonage
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-01 00:00:00.000000000 Z
11
+ date: 2022-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: vonage-jwt
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.2.0
19
+ version: 0.1.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.2.0
26
+ version: 0.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: zeitwerk
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,20 +58,6 @@ dependencies:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0.5'
61
- - !ruby/object:Gem::Dependency
62
- name: multipart-post
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '2.0'
68
- type: :runtime
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '2.0'
75
61
  - !ruby/object:Gem::Dependency
76
62
  name: rexml
77
63
  requirement: !ruby/object:Gem::Requirement
@@ -113,7 +99,6 @@ files:
113
99
  - lib/vonage/abstract_authentication.rb
114
100
  - lib/vonage/account.rb
115
101
  - lib/vonage/alerts.rb
116
- - lib/vonage/api_error.rb
117
102
  - lib/vonage/applications.rb
118
103
  - lib/vonage/applications/list_response.rb
119
104
  - lib/vonage/authentication_error.rb
@@ -140,17 +125,6 @@ files:
140
125
  - lib/vonage/key_secret_params.rb
141
126
  - lib/vonage/keys.rb
142
127
  - lib/vonage/logger.rb
143
- - lib/vonage/meetings.rb
144
- - lib/vonage/meetings/applications.rb
145
- - lib/vonage/meetings/dial_in_numbers.rb
146
- - lib/vonage/meetings/dial_in_numbers/list_response.rb
147
- - lib/vonage/meetings/recordings.rb
148
- - lib/vonage/meetings/rooms.rb
149
- - lib/vonage/meetings/rooms/list_response.rb
150
- - lib/vonage/meetings/sessions.rb
151
- - lib/vonage/meetings/sessions/list_response.rb
152
- - lib/vonage/meetings/themes.rb
153
- - lib/vonage/meetings/themes/list_response.rb
154
128
  - lib/vonage/messages.rb
155
129
  - lib/vonage/messaging.rb
156
130
  - lib/vonage/messaging/channels/messenger.rb
@@ -167,16 +141,6 @@ files:
167
141
  - lib/vonage/params.rb
168
142
  - lib/vonage/pricing.rb
169
143
  - lib/vonage/pricing_types.rb
170
- - lib/vonage/proactive_connect.rb
171
- - lib/vonage/proactive_connect/events.rb
172
- - lib/vonage/proactive_connect/events/list_response.rb
173
- - lib/vonage/proactive_connect/item.rb
174
- - lib/vonage/proactive_connect/items.rb
175
- - lib/vonage/proactive_connect/items/file_response.rb
176
- - lib/vonage/proactive_connect/items/list_response.rb
177
- - lib/vonage/proactive_connect/list.rb
178
- - lib/vonage/proactive_connect/lists.rb
179
- - lib/vonage/proactive_connect/lists/list_response.rb
180
144
  - lib/vonage/redact.rb
181
145
  - lib/vonage/response.rb
182
146
  - lib/vonage/secrets.rb
@@ -185,31 +149,22 @@ files:
185
149
  - lib/vonage/service_error.rb
186
150
  - lib/vonage/signature.rb
187
151
  - lib/vonage/sms.rb
188
- - lib/vonage/subaccounts.rb
189
- - lib/vonage/subaccounts/balance_transfers/list_response.rb
190
- - lib/vonage/subaccounts/credit_transfers/list_response.rb
191
- - lib/vonage/subaccounts/list_response.rb
192
152
  - lib/vonage/tfa.rb
193
153
  - lib/vonage/user_agent.rb
194
- - lib/vonage/users.rb
195
- - lib/vonage/users/list_response.rb
196
154
  - lib/vonage/verify.rb
197
- - lib/vonage/verify2.rb
198
- - lib/vonage/verify2/channels/email.rb
199
- - lib/vonage/verify2/channels/silent_auth.rb
200
- - lib/vonage/verify2/channels/sms.rb
201
- - lib/vonage/verify2/channels/voice.rb
202
- - lib/vonage/verify2/channels/whats_app.rb
203
- - lib/vonage/verify2/channels/whats_app_interactive.rb
204
- - lib/vonage/verify2/start_verification_options.rb
205
- - lib/vonage/verify2/workflow.rb
206
- - lib/vonage/verify2/workflow_builder.rb
207
155
  - lib/vonage/version.rb
156
+ - lib/vonage/video.rb
157
+ - lib/vonage/video/archives.rb
158
+ - lib/vonage/video/list_response.rb
159
+ - lib/vonage/video/moderation.rb
160
+ - lib/vonage/video/signals.rb
161
+ - lib/vonage/video/streams.rb
208
162
  - lib/vonage/voice.rb
209
163
  - lib/vonage/voice/actions/connect.rb
210
164
  - lib/vonage/voice/actions/conversation.rb
211
165
  - lib/vonage/voice/actions/input.rb
212
166
  - lib/vonage/voice/actions/notify.rb
167
+ - lib/vonage/voice/actions/pay.rb
213
168
  - lib/vonage/voice/actions/record.rb
214
169
  - lib/vonage/voice/actions/stream.rb
215
170
  - lib/vonage/voice/actions/talk.rb
@@ -239,11 +194,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
239
194
  version: 2.5.0
240
195
  required_rubygems_version: !ruby/object:Gem::Requirement
241
196
  requirements:
242
- - - ">="
197
+ - - ">"
243
198
  - !ruby/object:Gem::Version
244
- version: '0'
199
+ version: 1.3.1
245
200
  requirements: []
246
- rubygems_version: 3.4.10
201
+ rubygems_version: 3.3.26
247
202
  signing_key:
248
203
  specification_version: 4
249
204
  summary: This is the Ruby Server SDK for Vonage APIs. To use it you'll need a Vonage
@@ -1,33 +0,0 @@
1
- # typed: strong
2
- require "json"
3
-
4
- module Vonage
5
- class APIError < Error
6
- extend T::Sig
7
-
8
- sig { returns(Net::HTTPResponse) }
9
- attr_reader :http_response
10
-
11
- sig { params(message: T.nilable(String), http_response: T.nilable(Net::HTTPResponse)).void }
12
- def initialize(message = nil, http_response: nil)
13
- super(message)
14
- @http_response = http_response
15
- end
16
-
17
- def http_response_code
18
- return nil unless http_response
19
- http_response.code
20
- end
21
-
22
- def http_response_headers
23
- return nil unless http_response
24
- http_response.to_hash
25
- end
26
-
27
- def http_response_body
28
- return nil unless http_response
29
- return {} unless http_response.content_type && http_response.content_type.include?("json")
30
- ::JSON.parse(http_response.body)
31
- end
32
- end
33
- end
@@ -1,25 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class Meetings::Applications < Namespace
6
- extend T::Sig
7
-
8
- self.authentication = BearerToken
9
-
10
- self.request_body = JSON
11
-
12
- self.host = :vonage_host
13
-
14
- # Update an existing application.
15
- #
16
- # @param [required, String] :default_theme_id The id of the theme to set as application default theme
17
- #
18
- # @return [Response]
19
- #
20
- # @see https://developer.vonage.com/en/api/meetings#updateApplication
21
- def update(default_theme_id:)
22
- request("/v1/meetings/applications", params: {update_details: {default_theme_id: default_theme_id}}, type: Patch)
23
- end
24
- end
25
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
-
3
- class Vonage::Meetings::DialInNumbers::ListResponse < Vonage::Response
4
- include Enumerable
5
-
6
- def each
7
- return enum_for(:each) unless block_given?
8
-
9
- @entity.each { |item| yield item }
10
- end
11
- end
@@ -1,23 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class Meetings::DialInNumbers < Namespace
6
- extend T::Sig
7
-
8
- self.authentication = BearerToken
9
-
10
- self.request_body = JSON
11
-
12
- self.host = :vonage_host
13
-
14
- # Get numbers that can be used to dial into a meeting.
15
- #
16
- # @return [ListResponse]
17
- #
18
- # @see https://developer.vonage.com/en/api/meetings#getDialInNumbers
19
- def list
20
- request("/v1/meetings/dial-in-numbers", response_class: ListResponse)
21
- end
22
- end
23
- end
@@ -1,36 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class Meetings::Recordings < Namespace
6
- extend T::Sig
7
-
8
- self.authentication = BearerToken
9
-
10
- self.request_body = JSON
11
-
12
- self.host = :vonage_host
13
-
14
- # Return information for specified recording.
15
- #
16
- # @param [required, String] recording_id The id of the recoring for which the info should be returned
17
- #
18
- # @return [Response]
19
- #
20
- # @see https://developer.vonage.com/en/api/meetings#getRecording
21
- def info(recording_id:)
22
- request("/v1/meetings/recordings/" + recording_id)
23
- end
24
-
25
- # Delete a specified recording.
26
- #
27
- # @param [required, String] recording_id The id of the recoring to be deleted
28
- #
29
- # @return [Response]
30
- #
31
- # @see https://developer.vonage.com/en/api/meetings#deleteRecording
32
- def delete(recording_id:)
33
- request("/v1/meetings/recordings/" + recording_id, type: Delete)
34
- end
35
- end
36
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
-
3
- class Vonage::Meetings::Rooms::ListResponse < Vonage::Response
4
- include Enumerable
5
-
6
- def each
7
- return enum_for(:each) unless block_given?
8
-
9
- @entity._embedded.each { |item| yield item }
10
- end
11
- end
@@ -1,155 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class Meetings::Rooms < Namespace
6
- extend T::Sig
7
-
8
- self.authentication = BearerToken
9
-
10
- self.request_body = JSON
11
-
12
- self.host = :vonage_host
13
-
14
- # Get a list of rooms associated with the Vonage application.
15
- #
16
- # @param [optional, Integer] :start_id
17
- #
18
- # @param [optional, Integer] :end_id
19
- #
20
- # @param [optional, Integer] :page_size
21
- #
22
- # @return [ListResponse]
23
- #
24
- # @see https://developer.vonage.com/en/api/meetings#getRooms
25
- def list(**params)
26
- path = "/v1/meetings/rooms"
27
- path += "?#{Params.encode(params)}" unless params.empty?
28
-
29
- request(path, response_class: ListResponse)
30
- end
31
-
32
- # Return information for specified room.
33
- #
34
- # @param [required, String] room_id
35
- # The id of the room for which the info should be returned
36
- #
37
- # @return [Response]
38
- #
39
- # @see https://developer.vonage.com/en/api/meetings#getRoom
40
- def info(room_id:)
41
- request("/v1/meetings/rooms/" + room_id)
42
- end
43
-
44
- # Create a new room.
45
- #
46
- # @param [required, String] :display_name
47
- #
48
- # @param [optional, String] :metadata
49
- # Free text that can be attached to a room. This will be passed in the form of a header in events related to this room.
50
- #
51
- # @param [optional, String] :type
52
- # The type of room. Must be one of `instant` (the default) or `long_term`.
53
- #
54
- # @param [String(date)] :expires_at
55
- # The time for when the room will be expired, expressed in ISO 8601 format.
56
- # The value must be greater than 10 minutes from now.
57
- # Must be set if `type` is `long_term`. Should not be set if `type` is `instant`
58
- #
59
- # @param [optional, Boolean] :expire_after_use
60
- # Close the room after a session ends. Only relevant for rooms where the `type` is `long_term`
61
- #
62
- # @param [optional, string(uuid)] :theme_id
63
- # When specified, the meeting room will use the theme indicated by the ID.
64
- #
65
- # @param [optional, String] :join_approval_level
66
- # The level of approval needed to join the meeting in the room. Must be one of: `none`, `after_owner_only`, `explicit_approval`
67
- #
68
- # @param [optional, Hash] :recording_options
69
- # @option :recording_options [Boolean] :auto_record Automatically record all sessions in this room. Recording cannot be stopped when this is set to `true`.
70
- # @option :recording_options [Boolean] :record_only_owner Record only the owner screen or any share screen of the video.
71
- #
72
- # @param [optional, Hash] :initial_join_options
73
- # @option :initial_join_options [String] :microphone_state
74
- # Set the default microphone option for users in the pre-join screen of this room.
75
- # Must be one of: `on`, `off`, `default`
76
- #
77
- # @param [optional, Hash] :callback_urls Provides callback URLs to listen to events. If specified, over-rides the callback URLs specified at Application-level
78
- # @option :callback_urls [String] :rooms_callback_url Callback url for rooms events
79
- # @option :callback_urls [String] :sessions_callback_url Callback url for sessions events
80
- # @option :callback_urls [String] :recordings_callback_url Callback url for recordings events
81
- #
82
- # @param [optional, Hash] :available_features
83
- # @option :available_features [Boolean] :is_recording_available Determine if recording feature is available in the UI (default `true`)
84
- # @option :available_features [Boolean] :is_chat_available Determine if chat feature is available in the UI (default `true`)
85
- # @option :available_features [Boolean] :is_whiteboard_available Determine if whiteboard feature is available in the UI (default `true`)
86
- # @option :available_features [Boolean] :is_locale_switcher_available Determine if locale switche feature is available in the UI (default `true`)
87
- # @option :available_features [Boolean] :is_captions_available Determine if captions feature is available in the UI
88
- #
89
- # @param [optional, Hash] :ui_settings Provides options to customize the user interface
90
- # @option :ui_settings [String] :language
91
- # The desired language of the UI. The default is `en` (English).
92
- # Must be one of: `ar`, `pt-br`, `ca`, `zh-tw`, `zh-cn`, `en`, `fr`, `de`, `he`, `it`, `es`
93
- #
94
- # @return [Response]
95
- #
96
- # @see https://developer.vonage.com/en/api/meetings#createRoom
97
- def create(display_name:, **params)
98
- request(
99
- "/v1/meetings/rooms",
100
- params: params.merge({ display_name: display_name }),
101
- type: Post
102
- )
103
- end
104
-
105
- # Update an existing room.
106
- # Although paramaters (other than `room_id`) are optional, at least one other parameter must be provided or an error
107
- # response will be received.
108
- #
109
- # @param [required, String] room_id The ID of the Room to be updated
110
- #
111
- # @param [optional, String(date)] :expires_at
112
- # The time for when the room will be expired, expressed in ISO 8601 format.
113
- # Only relevant for rooms where the `type` is `long_term``
114
- #
115
- # @param [optional, Boolean] :expire_after_use
116
- # Close the room after a session ends. Only relevant for rooms where the `type` is `long_term`
117
- #
118
- # @param [optional, string(uuid)] :theme_id
119
- # When specified, the meeting room will use the theme indicated by the ID.
120
- #
121
- # @param [optional, String] :join_approval_level
122
- # The level of approval needed to join the meeting in the room. Must be one of: `none`, `after_owner_only`, `explicit_approval`
123
- #
124
- # @param [optional, Hash] :initial_join_options
125
- # @option :initial_join_options [String] :microphone_state
126
- # Set the default microphone option for users in the pre-join screen of this room.
127
- # Must be one of: `on`, `off`, `default`
128
- #
129
- # @param [optional, Hash] :callback_urls Provides callback URLs to listen to events. If specified, over-rides the callback URLs specified at Application-level
130
- # @option :callback_urls [String] :rooms_callback_url Callback url for rooms events
131
- # @option :callback_urls [String] :sessions_callback_url Callback url for sessions events
132
- # @option :callback_urls [String] :recordings_callback_url Callback url for recordings events
133
- #
134
- # @param [optional, Hash] :available_features
135
- # @option :available_features [Boolean] :is_recording_available Determine if recording feature is available in the UI (default `true`)
136
- # @option :available_features [Boolean] :is_chat_available Determine if chat feature is available in the UI (default `true`)
137
- # @option :available_features [Boolean] :is_whiteboard_available Determine if whiteboard feature is available in the UI (default `true`)
138
- # @option :available_features [Boolean] :is_locale_switcher_available Determine if locale switche feature is available in the UI (default `true`)
139
- # @option :available_features [Boolean] :is_captions_available Determine if captions feature is available in the UI
140
- #
141
- # @return [Response]
142
- #
143
- # @see https://developer.vonage.com/en/api/meetings#updateRoom
144
- def update(room_id:, **params)
145
- raise ArgumentError, 'must provide at least one other param in addition to :room_id' if params.empty?
146
- request(
147
- "/v1/meetings/rooms/" + room_id,
148
- params: {
149
- update_details: params
150
- },
151
- type: Patch
152
- )
153
- end
154
- end
155
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
-
3
- class Vonage::Meetings::Sessions::ListResponse < Vonage::Response
4
- include Enumerable
5
-
6
- def each
7
- return enum_for(:each) unless block_given?
8
-
9
- @entity._embedded.recordings.each { |item| yield item }
10
- end
11
- end
@@ -1,28 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class Meetings::Sessions < Namespace
6
- extend T::Sig
7
-
8
- self.authentication = BearerToken
9
-
10
- self.request_body = JSON
11
-
12
- self.host = :vonage_host
13
-
14
- # Return a list of recordings for a specified session.
15
- #
16
- # @param [required, String] session_id The id of the session for which the recordings list should be returned
17
- #
18
- # @return [ListResponse]
19
- #
20
- # @see https://developer.vonage.com/en/api/meetings#getSessionRecordings
21
- def list_recordings(session_id:)
22
- request(
23
- "/v1/meetings/sessions/" + session_id + "/recordings",
24
- response_class: ListResponse
25
- )
26
- end
27
- end
28
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
-
3
- class Vonage::Meetings::Themes::ListResponse < Vonage::Response
4
- include Enumerable
5
-
6
- def each
7
- return enum_for(:each) unless block_given?
8
-
9
- @entity.each { |item| yield item }
10
- end
11
- end