vonage 7.24.0 → 8.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +87 -387
  3. data/lib/vonage/applications.rb +4 -12
  4. data/lib/vonage/client.rb +0 -51
  5. data/lib/vonage/client_error.rb +1 -1
  6. data/lib/vonage/config.rb +1 -9
  7. data/lib/vonage/conversations/events.rb +0 -12
  8. data/lib/vonage/conversations/legs.rb +0 -6
  9. data/lib/vonage/conversations/members.rb +0 -15
  10. data/lib/vonage/conversations/users.rb +0 -15
  11. data/lib/vonage/conversations.rb +0 -30
  12. data/lib/vonage/errors.rb +20 -37
  13. data/lib/vonage/gsm7.rb +1 -1
  14. data/lib/vonage/jwt.rb +0 -17
  15. data/lib/vonage/keys.rb +1 -8
  16. data/lib/vonage/logger.rb +3 -5
  17. data/lib/vonage/messaging/channels/viber.rb +1 -8
  18. data/lib/vonage/messaging/channels/whats_app.rb +1 -3
  19. data/lib/vonage/messaging.rb +3 -19
  20. data/lib/vonage/namespace.rb +60 -132
  21. data/lib/vonage/numbers.rb +6 -29
  22. data/lib/vonage/server_error.rb +1 -1
  23. data/lib/vonage/signature.rb +5 -5
  24. data/lib/vonage/sms.rb +20 -20
  25. data/lib/vonage/version.rb +1 -1
  26. data/lib/vonage/video/archives.rb +53 -18
  27. data/lib/vonage/video/list_response.rb +11 -0
  28. data/lib/vonage/video/moderation.rb +22 -7
  29. data/lib/vonage/video/signals.rb +9 -4
  30. data/lib/vonage/video/streams.rb +12 -6
  31. data/lib/vonage/video.rb +13 -50
  32. data/lib/vonage/voice/actions/connect.rb +3 -27
  33. data/lib/vonage/voice/actions/conversation.rb +2 -2
  34. data/lib/vonage/voice/actions/pay.rb +107 -0
  35. data/lib/vonage/voice/actions/talk.rb +2 -11
  36. data/lib/vonage/voice/talk.rb +1 -11
  37. data/lib/vonage/voice.rb +0 -22
  38. data/lib/vonage.rb +0 -2
  39. data/vonage.gemspec +1 -3
  40. metadata +9 -98
  41. data/lib/vonage/api_error.rb +0 -33
  42. data/lib/vonage/conversation/event/list_response.rb +0 -11
  43. data/lib/vonage/conversation/event.rb +0 -108
  44. data/lib/vonage/conversation/list_response.rb +0 -11
  45. data/lib/vonage/conversation/member/list_response.rb +0 -11
  46. data/lib/vonage/conversation/member.rb +0 -134
  47. data/lib/vonage/conversation/user/conversations_list_response.rb +0 -11
  48. data/lib/vonage/conversation/user/sessions_list_response.rb +0 -11
  49. data/lib/vonage/conversation/user.rb +0 -67
  50. data/lib/vonage/conversation.rb +0 -164
  51. data/lib/vonage/meetings/applications.rb +0 -25
  52. data/lib/vonage/meetings/dial_in_numbers/list_response.rb +0 -11
  53. data/lib/vonage/meetings/dial_in_numbers.rb +0 -23
  54. data/lib/vonage/meetings/recordings.rb +0 -36
  55. data/lib/vonage/meetings/rooms/list_response.rb +0 -11
  56. data/lib/vonage/meetings/rooms.rb +0 -155
  57. data/lib/vonage/meetings/sessions/list_response.rb +0 -11
  58. data/lib/vonage/meetings/sessions.rb +0 -28
  59. data/lib/vonage/meetings/themes/list_response.rb +0 -11
  60. data/lib/vonage/meetings/themes.rb +0 -218
  61. data/lib/vonage/meetings.rb +0 -38
  62. data/lib/vonage/number_insight_2.rb +0 -36
  63. data/lib/vonage/proactive_connect/events/list_response.rb +0 -11
  64. data/lib/vonage/proactive_connect/events.rb +0 -68
  65. data/lib/vonage/proactive_connect/item.rb +0 -104
  66. data/lib/vonage/proactive_connect/items/file_response.rb +0 -32
  67. data/lib/vonage/proactive_connect/items/list_response.rb +0 -11
  68. data/lib/vonage/proactive_connect/items.rb +0 -107
  69. data/lib/vonage/proactive_connect/list.rb +0 -168
  70. data/lib/vonage/proactive_connect/lists/list_response.rb +0 -11
  71. data/lib/vonage/proactive_connect/lists.rb +0 -35
  72. data/lib/vonage/proactive_connect.rb +0 -33
  73. data/lib/vonage/subaccounts/balance_transfers/list_response.rb +0 -11
  74. data/lib/vonage/subaccounts/credit_transfers/list_response.rb +0 -11
  75. data/lib/vonage/subaccounts/list_response.rb +0 -15
  76. data/lib/vonage/subaccounts.rb +0 -203
  77. data/lib/vonage/users/list_response.rb +0 -11
  78. data/lib/vonage/users.rb +0 -156
  79. data/lib/vonage/verify2/channels/email.rb +0 -36
  80. data/lib/vonage/verify2/channels/silent_auth.rb +0 -45
  81. data/lib/vonage/verify2/channels/sms.rb +0 -53
  82. data/lib/vonage/verify2/channels/voice.rb +0 -32
  83. data/lib/vonage/verify2/channels/whats_app.rb +0 -38
  84. data/lib/vonage/verify2/channels/whats_app_interactive.rb +0 -32
  85. data/lib/vonage/verify2/start_verification_options.rb +0 -62
  86. data/lib/vonage/verify2/workflow.rb +0 -39
  87. data/lib/vonage/verify2/workflow_builder.rb +0 -25
  88. data/lib/vonage/verify2.rb +0 -97
  89. data/lib/vonage/video/archives/list_response.rb +0 -11
  90. data/lib/vonage/video/broadcasts/list_response.rb +0 -11
  91. data/lib/vonage/video/broadcasts.rb +0 -75
  92. data/lib/vonage/video/captions.rb +0 -67
  93. data/lib/vonage/video/renders/list_response.rb +0 -11
  94. data/lib/vonage/video/renders.rb +0 -107
  95. data/lib/vonage/video/sip.rb +0 -48
  96. data/lib/vonage/video/streams/list_response.rb +0 -11
  97. data/lib/vonage/video/web_socket.rb +0 -61
@@ -1,164 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class Conversation < Namespace
6
- extend T::Sig
7
-
8
- self.authentication = BearerToken
9
-
10
- self.request_body = JSON
11
-
12
- # List conversations associated with a Vonage application.
13
- #
14
- # @example
15
- # response = client.conversation.list
16
- #
17
- # @param [String] :date_start
18
- # Return the records that occurred after this point in time.
19
- #
20
- # @param [String] :date_end
21
- # Return the records that occurred before this point in time.
22
- #
23
- # @param [Integer] :page_size
24
- # Return this amount of records in the response.
25
- #
26
- # @param ['asc', 'desc'] :order
27
- # Return the records in ascending or descending order.
28
- #
29
- # @param [String] :cursor
30
- # The cursor to start returning results from.
31
- #
32
- # @return [Conversation::ListResponse]
33
- #
34
- # @see https://developer.vonage.com/en/api/conversation#listConversations
35
- #
36
- def list(**params)
37
- request('/v1/conversations', params: params, response_class: ListResponse)
38
- end
39
-
40
- # Create a conversation.
41
- #
42
- # @example
43
- # response = client.conversation.create(name: 'Example Conversation', display_name: 'Example Display Name')
44
- #
45
- # @param [String] :name
46
- # Your internal conversation name. Must be unique.
47
- #
48
- # @param [String] :display_name
49
- # The public facing name of the conversation.
50
- #
51
- # @param [String] :image_url
52
- # An image URL that you associate with the conversation
53
- #
54
- # @param [Hash] :properties
55
- # - :ttl (Integer) After how many seconds an empty conversation is deleted
56
- # - :type (String)
57
- # - :custom_sort_key (String)
58
- # - :custom_data (Hash) Custom key/value pairs to be included with conversation data
59
- #
60
- # @option params [Array] :numbers An array of Hashes containing number information for different channels.
61
- #
62
- # @option params [Hash] :callback
63
- # - @option callback :url (String)
64
- # - @option callback :event_mask (String)
65
- # - @option callback :params (Hash)
66
- # - @option params :applicationId (String)
67
- # - @option params :ncco_url (String)
68
- # - @option callback :method (String) Must be one of ['POST', 'GET']
69
- #
70
- # @return [Response]
71
- #
72
- # @see https://developer.vonage.com/en/api/conversation#createConversation
73
- #
74
- def create(**params)
75
- request('/v1/conversations', params: params, type: Post)
76
- end
77
-
78
- # Retrieve a conversation.
79
- #
80
- # @example
81
- # response = client.conversation.find(conversation_id: 'CON-d66d47de-5bcb-4300-94f0-0c9d4b948e9a')
82
- #
83
- # @param [String] :conversation_id
84
- #
85
- # @return [Response]
86
- #
87
- # @see https://developer.vonage.com/en/api/conversation#retrieveConversation
88
- #
89
- def find(conversation_id:)
90
- request("/v1/conversations/#{conversation_id}")
91
- end
92
-
93
- # Update a conversation.
94
- #
95
- # @example
96
- # response = client.conversation.update(conversation_id: 'CON-d66d47de-5bcb-4300-94f0-0c9d4b948e9a', display_name: 'Updated conversation')
97
- #
98
- # @param [String] :name
99
- # Your internal conversation name. Must be unique.
100
- #
101
- # @param [String] :display_name
102
- # The public facing name of the conversation.
103
- #
104
- # @param [String] :image_url
105
- # An image URL that you associate with the conversation
106
- #
107
- # @param [Hash] :properties
108
- # - @option properties :ttl (Integer) After how many seconds an empty conversation is deleted
109
- # - @option properties :type (String)
110
- # - @option properties :custom_sort_key (String)
111
- # - @option properties :custom_data (Hash) Custom key/value pairs to be included with conversation data
112
- #
113
- # @param [Array] :numbers An array of Hashes containing number information for different channels.
114
- #
115
- # @option params [Hash] :callback
116
- # - @option callback :url (String)
117
- # - @option callback :event_mask (String)
118
- # - @option callback :params (Hash)
119
- # - @option params :applicationId (String)
120
- # - @option params :ncco_url (String)
121
- # - @option callback :method (String) Must be one of ['POST', 'GET']
122
- #
123
- # @return [Response]
124
- #
125
- # @see https://developer.vonage.com/en/api/conversation#replaceConversation
126
- #
127
- def update(conversation_id:, **params)
128
- request("/v1/conversations/#{conversation_id}", params: params, type: Put)
129
- end
130
-
131
- # Delete a conversation.
132
- #
133
- # @example
134
- # response = client.conversation.delete(conversation_id: 'CON-d66d47de-5bcb-4300-94f0-0c9d4b948e9a')
135
- #
136
- # @param [String] :conversation_id
137
- #
138
- # @return [Response]
139
- #
140
- # @see https://developer.vonage.com/en/api/conversation#deleteConversation
141
- #
142
- def delete(conversation_id:)
143
- request("/v1/conversations/#{conversation_id}", type: Delete)
144
- end
145
-
146
- # @return [Conversation::User]
147
- sig { returns(T.nilable(Vonage::Conversation::User)) }
148
- def user
149
- @user ||= User.new(@config)
150
- end
151
-
152
- # @return [Conversation::Member]
153
- sig { returns(T.nilable(Vonage::Conversation::Member)) }
154
- def member
155
- @member ||= Member.new(@config)
156
- end
157
-
158
- # @return [Conversation::Event]
159
- sig { returns(T.nilable(Vonage::Conversation::Event)) }
160
- def event
161
- @event ||= Event.new(@config)
162
- end
163
- end
164
- 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