vonage 7.18.0 → 8.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.
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