vonage 7.20.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.
- checksums.yaml +4 -4
- data/README.md +87 -386
- data/lib/vonage/applications.rb +4 -12
- data/lib/vonage/client.rb +0 -42
- data/lib/vonage/client_error.rb +1 -1
- data/lib/vonage/config.rb +1 -9
- data/lib/vonage/errors.rb +20 -37
- data/lib/vonage/gsm7.rb +1 -1
- data/lib/vonage/jwt.rb +0 -17
- data/lib/vonage/keys.rb +0 -2
- data/lib/vonage/logger.rb +3 -5
- data/lib/vonage/messaging/channels/viber.rb +1 -8
- data/lib/vonage/messaging/channels/whats_app.rb +1 -3
- data/lib/vonage/messaging.rb +0 -11
- data/lib/vonage/namespace.rb +57 -128
- data/lib/vonage/numbers.rb +6 -29
- data/lib/vonage/server_error.rb +1 -1
- data/lib/vonage/signature.rb +5 -5
- data/lib/vonage/sms.rb +20 -20
- data/lib/vonage/version.rb +1 -1
- data/lib/vonage/video/archives.rb +53 -18
- data/lib/vonage/video/list_response.rb +11 -0
- data/lib/vonage/video/moderation.rb +22 -7
- data/lib/vonage/video/signals.rb +9 -4
- data/lib/vonage/video/streams.rb +12 -6
- data/lib/vonage/video.rb +13 -31
- data/lib/vonage/voice/actions/connect.rb +3 -27
- data/lib/vonage/voice/actions/conversation.rb +2 -2
- data/lib/vonage/voice/actions/pay.rb +107 -0
- data/lib/vonage/voice/actions/talk.rb +2 -11
- data/lib/vonage/voice/talk.rb +1 -11
- data/lib/vonage/voice.rb +0 -22
- data/lib/vonage.rb +0 -2
- data/vonage.gemspec +1 -2
- metadata +9 -65
- data/lib/vonage/api_error.rb +0 -33
- data/lib/vonage/meetings/applications.rb +0 -25
- data/lib/vonage/meetings/dial_in_numbers/list_response.rb +0 -11
- data/lib/vonage/meetings/dial_in_numbers.rb +0 -23
- data/lib/vonage/meetings/recordings.rb +0 -36
- data/lib/vonage/meetings/rooms/list_response.rb +0 -11
- data/lib/vonage/meetings/rooms.rb +0 -155
- data/lib/vonage/meetings/sessions/list_response.rb +0 -11
- data/lib/vonage/meetings/sessions.rb +0 -28
- data/lib/vonage/meetings/themes/list_response.rb +0 -11
- data/lib/vonage/meetings/themes.rb +0 -218
- data/lib/vonage/meetings.rb +0 -38
- data/lib/vonage/number_insight_2.rb +0 -36
- data/lib/vonage/proactive_connect/events/list_response.rb +0 -11
- data/lib/vonage/proactive_connect/events.rb +0 -68
- data/lib/vonage/proactive_connect/item.rb +0 -104
- data/lib/vonage/proactive_connect/items/file_response.rb +0 -32
- data/lib/vonage/proactive_connect/items/list_response.rb +0 -11
- data/lib/vonage/proactive_connect/items.rb +0 -107
- data/lib/vonage/proactive_connect/list.rb +0 -168
- data/lib/vonage/proactive_connect/lists/list_response.rb +0 -11
- data/lib/vonage/proactive_connect/lists.rb +0 -35
- data/lib/vonage/proactive_connect.rb +0 -33
- data/lib/vonage/subaccounts/balance_transfers/list_response.rb +0 -11
- data/lib/vonage/subaccounts/credit_transfers/list_response.rb +0 -11
- data/lib/vonage/subaccounts/list_response.rb +0 -15
- data/lib/vonage/subaccounts.rb +0 -203
- data/lib/vonage/users/list_response.rb +0 -11
- data/lib/vonage/users.rb +0 -156
- data/lib/vonage/verify2/channels/email.rb +0 -36
- data/lib/vonage/verify2/channels/silent_auth.rb +0 -45
- data/lib/vonage/verify2/channels/sms.rb +0 -53
- data/lib/vonage/verify2/channels/voice.rb +0 -32
- data/lib/vonage/verify2/channels/whats_app.rb +0 -38
- data/lib/vonage/verify2/channels/whats_app_interactive.rb +0 -32
- data/lib/vonage/verify2/start_verification_options.rb +0 -62
- data/lib/vonage/verify2/workflow.rb +0 -39
- data/lib/vonage/verify2/workflow_builder.rb +0 -25
- data/lib/vonage/verify2.rb +0 -93
- data/lib/vonage/video/archives/list_response.rb +0 -11
- data/lib/vonage/video/broadcasts/list_response.rb +0 -11
- data/lib/vonage/video/broadcasts.rb +0 -75
- data/lib/vonage/video/sip.rb +0 -48
- data/lib/vonage/video/streams/list_response.rb +0 -11
@@ -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,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,218 +0,0 @@
|
|
1
|
-
# typed: true
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module Vonage
|
5
|
-
class Meetings::Themes < 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 themes associated with the Vonage application.
|
15
|
-
#
|
16
|
-
# @return [ListResponse]
|
17
|
-
#
|
18
|
-
# @see https://developer.vonage.com/en/api/meetings#getThemes
|
19
|
-
def list
|
20
|
-
request("/v1/meetings/themes", response_class: ListResponse)
|
21
|
-
end
|
22
|
-
|
23
|
-
# Return information for specified theme.
|
24
|
-
#
|
25
|
-
# @param [required, String] theme_id The id of the theme for which the info should be returned
|
26
|
-
#
|
27
|
-
# @return [Response]
|
28
|
-
#
|
29
|
-
# @see https://developer.vonage.com/en/api/meetings#getThemeById
|
30
|
-
def info(theme_id:)
|
31
|
-
request("/v1/meetings/themes/" + theme_id)
|
32
|
-
end
|
33
|
-
|
34
|
-
# Create a new theme.
|
35
|
-
#
|
36
|
-
# @param [required, String] :main_color
|
37
|
-
# The main color that will be used for the meeting room.
|
38
|
-
#
|
39
|
-
# @param [required, String] :brand_text
|
40
|
-
# The text that will appear on the meeting homepage, in the case that there is no brand image
|
41
|
-
#
|
42
|
-
# @param [optional, String] :theme_name
|
43
|
-
# The name of the theme (must be unique). If null, a UUID will automatically be generated
|
44
|
-
#
|
45
|
-
# @param [optional, String] :short_company_url
|
46
|
-
# The URL that will represent every meeting room with this theme. The value must be unique across Vonage
|
47
|
-
#
|
48
|
-
# @return [Response]
|
49
|
-
#
|
50
|
-
# @see https://developer.vonage.com/en/api/meetings#createTheme
|
51
|
-
def create(main_color:, brand_text:, **params)
|
52
|
-
request(
|
53
|
-
"/v1/meetings/themes",
|
54
|
-
params: params.merge(main_color: main_color, brand_text: brand_text),
|
55
|
-
type: Post
|
56
|
-
)
|
57
|
-
end
|
58
|
-
|
59
|
-
# Update an existing theme.
|
60
|
-
#
|
61
|
-
# @param [required, String] theme_id The id of the theme to be updated
|
62
|
-
#
|
63
|
-
# @param [required, String] :main_color
|
64
|
-
# The main color that will be used for the meeting room.
|
65
|
-
#
|
66
|
-
# @param [required, String] :brand_text
|
67
|
-
# The text that will appear on the meeting homepage, in the case that there is no brand image
|
68
|
-
#
|
69
|
-
# @param [optional, String] :theme_name
|
70
|
-
# The name of the theme (must be unique). If null, a UUID will automatically be generated
|
71
|
-
#
|
72
|
-
# @param [optional, String] :short_company_url
|
73
|
-
# The URL that will represent every meeting room with this theme. The value must be unique across Vonage
|
74
|
-
#
|
75
|
-
# @return [Response]
|
76
|
-
#
|
77
|
-
# @see https://developer.vonage.com/en/api/meetings#updateTheme
|
78
|
-
def update(theme_id:, **params)
|
79
|
-
request(
|
80
|
-
"/v1/meetings/themes/" + theme_id,
|
81
|
-
params: {
|
82
|
-
update_details: params
|
83
|
-
},
|
84
|
-
type: Patch
|
85
|
-
)
|
86
|
-
end
|
87
|
-
|
88
|
-
# Delete an existing theme.
|
89
|
-
#
|
90
|
-
# @param [required, String] :theme_id The id of the theme to be deleted
|
91
|
-
#
|
92
|
-
# @param [optional, Boolean] :force. Set to `true` to force delete a theme currently being used for a room, or as
|
93
|
-
# a default theme. (Defaults to `false`)
|
94
|
-
#
|
95
|
-
# @return [Response]
|
96
|
-
#
|
97
|
-
# @see https://developer.vonage.com/en/api/meetings#deleteTheme
|
98
|
-
def delete(theme_id:, force: false)
|
99
|
-
request(
|
100
|
-
"/v1/meetings/themes/" + theme_id + "?force=#{force}",
|
101
|
-
type: Delete
|
102
|
-
)
|
103
|
-
end
|
104
|
-
|
105
|
-
# Get a list of rooms that are associated with a theme id.
|
106
|
-
#
|
107
|
-
# @param [required, String] theme_id THe ID of the theme to search for rooms associated with.
|
108
|
-
#
|
109
|
-
# @param [optional, Integer] :start_id
|
110
|
-
#
|
111
|
-
# @param [optional, Integer] :end_id
|
112
|
-
#
|
113
|
-
# @param [optional, Integer] :page_size
|
114
|
-
#
|
115
|
-
# @return [Response]
|
116
|
-
#
|
117
|
-
# @see https://developer.vonage.com/en/api/meetings#getRoomsByThemeId
|
118
|
-
def list_rooms(theme_id:, **params)
|
119
|
-
path = "/v1/meetings/themes/" + theme_id + "/rooms"
|
120
|
-
path += "?#{Params.encode(params)}" unless params.empty?
|
121
|
-
|
122
|
-
request(path, response_class: Meetings::Rooms::ListResponse)
|
123
|
-
end
|
124
|
-
|
125
|
-
# Set a logo for a theme.
|
126
|
-
#
|
127
|
-
# @param [required, String] :theme_id The ID of the theme for which the logo should be set
|
128
|
-
#
|
129
|
-
# @param [required, String] :filepath
|
130
|
-
# The filepath of the logo file. Logo files must conform to the following requirements:
|
131
|
-
# - Format: PNG
|
132
|
-
# - Maximum size: 1MB
|
133
|
-
# - Background must be transparent
|
134
|
-
# - Dimensions:
|
135
|
-
# - 1 px - 300 px (`white` and `colored` logos)
|
136
|
-
# - 16 x 16 - 32 x 32 and must be square (favicon)
|
137
|
-
#
|
138
|
-
# @param [required, String] :logo_type
|
139
|
-
# The type of logo to be set. Must be one of `white`, `colored`, `favicon`
|
140
|
-
#
|
141
|
-
# @return [Response]
|
142
|
-
#
|
143
|
-
# @see https://developer.vonage.com/en/meetings/guides/theme-management#uploading-icons-and-logos
|
144
|
-
# @see https://developer.vonage.com/en/api/meetings#getUploadUrlsForTheme
|
145
|
-
# @see https://developer.vonage.com/en/api/meetings#finalizeLogosForTheme
|
146
|
-
#
|
147
|
-
# TODO: add type signature
|
148
|
-
def set_logo(theme_id:, filepath:, logo_type:)
|
149
|
-
pn = Pathname.new(filepath)
|
150
|
-
valid_logo_types = ['white', 'colored', 'favicon']
|
151
|
-
raise ArgumentError, ':filepath not for a file' unless pn.file?
|
152
|
-
raise ArgumentError, 'file at :filepath not readable' unless pn.readable?
|
153
|
-
raise ArgumentError, "logo_type: must be one of #{valid_logo_types}" unless valid_logo_types.include?(logo_type)
|
154
|
-
|
155
|
-
logo_upload_credentials = get_logo_upload_credentials
|
156
|
-
|
157
|
-
filtered_logo_upload_credentials = logo_upload_credentials.select {|cred| cred.fields.logo_type == logo_type }.first
|
158
|
-
|
159
|
-
upload_logo_file(filepath: filepath, credentials: filtered_logo_upload_credentials)
|
160
|
-
|
161
|
-
finalize_logos(theme_id: theme_id, keys: [filtered_logo_upload_credentials.fields.key])
|
162
|
-
end
|
163
|
-
|
164
|
-
private
|
165
|
-
|
166
|
-
def get_logo_upload_credentials
|
167
|
-
request("/v1/meetings/themes/logos-upload-urls", response_class: ListResponse)
|
168
|
-
end
|
169
|
-
|
170
|
-
def upload_logo_file(filepath:, credentials:)
|
171
|
-
pn = Pathname.new(filepath)
|
172
|
-
|
173
|
-
params = format_s3_upload_credentials(credentials)
|
174
|
-
|
175
|
-
multipart_post_request(
|
176
|
-
nil,
|
177
|
-
filepath: filepath,
|
178
|
-
file_name: pn.basename,
|
179
|
-
mime_type: credentials.fields.content_type,
|
180
|
-
params: params,
|
181
|
-
override_uri: credentials.url,
|
182
|
-
no_auth: true
|
183
|
-
)
|
184
|
-
end
|
185
|
-
|
186
|
-
def finalize_logos(theme_id:, keys: [])
|
187
|
-
request(
|
188
|
-
"/v1/meetings/themes/" + theme_id + "/finalizeLogos",
|
189
|
-
params: {
|
190
|
-
keys: keys
|
191
|
-
},
|
192
|
-
type: Put
|
193
|
-
)
|
194
|
-
end
|
195
|
-
|
196
|
-
def format_s3_upload_credentials(credentials)
|
197
|
-
credentials_key_map = {
|
198
|
-
content_type: "Content-Type",
|
199
|
-
logo_type: "logoType",
|
200
|
-
x_amz_algorithm: "X-Amz-Algorithm",
|
201
|
-
x_amz_credential: "X-Amz-Credential",
|
202
|
-
x_amz_date: "X-Amz-Date",
|
203
|
-
x_amz_security_token: "X-Amz-Security-Token",
|
204
|
-
policy: "Policy",
|
205
|
-
x_amz_signature: "X-Amz-Signature"
|
206
|
-
}
|
207
|
-
|
208
|
-
params = credentials.fields.attributes
|
209
|
-
params.transform_keys do |k|
|
210
|
-
if credentials_key_map.keys.include?(k)
|
211
|
-
credentials_key_map[k]
|
212
|
-
else
|
213
|
-
k.to_s
|
214
|
-
end
|
215
|
-
end
|
216
|
-
end
|
217
|
-
end
|
218
|
-
end
|
data/lib/vonage/meetings.rb
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
# typed: strict
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module Vonage
|
5
|
-
class Meetings < Namespace
|
6
|
-
extend T::Sig
|
7
|
-
|
8
|
-
sig { returns(T.nilable(Vonage::Meetings::Rooms)) }
|
9
|
-
def rooms
|
10
|
-
@rooms ||= Rooms.new(@config)
|
11
|
-
end
|
12
|
-
|
13
|
-
sig { returns(T.nilable(Vonage::Meetings::Recordings)) }
|
14
|
-
def recordings
|
15
|
-
@recordings ||= Recordings.new(@config)
|
16
|
-
end
|
17
|
-
|
18
|
-
sig { returns(T.nilable(Vonage::Meetings::Sessions)) }
|
19
|
-
def sessions
|
20
|
-
@sessions ||= Sessions.new(@config)
|
21
|
-
end
|
22
|
-
|
23
|
-
sig { returns(T.nilable(Vonage::Meetings::Themes)) }
|
24
|
-
def themes
|
25
|
-
@themes ||= Themes.new(@config)
|
26
|
-
end
|
27
|
-
|
28
|
-
sig { returns(T.nilable(Vonage::Meetings::Applications)) }
|
29
|
-
def applications
|
30
|
-
@applications ||= Applications.new(@config)
|
31
|
-
end
|
32
|
-
|
33
|
-
sig { returns(T.nilable(Vonage::Meetings::DialInNumbers)) }
|
34
|
-
def dial_in_numbers
|
35
|
-
@dial_in_numbers ||= DialInNumbers.new(@config)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
# typed: strict
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module Vonage
|
5
|
-
class NumberInsight2 < Namespace
|
6
|
-
extend T::Sig
|
7
|
-
|
8
|
-
self.authentication = Basic
|
9
|
-
|
10
|
-
self.request_body = JSON
|
11
|
-
|
12
|
-
# Make fraud check requests with a phone number by looking up fraud score and/or by checking sim swap status.
|
13
|
-
#
|
14
|
-
# @example
|
15
|
-
# response = client.number_insight_2.fraud_check(type: 'phone', phone: '447900000000', insights: ['fraud_score'])
|
16
|
-
#
|
17
|
-
# @param [required, String] :type The type of number to check.
|
18
|
-
# Accepted value is “phone” when a phone number is provided.
|
19
|
-
#
|
20
|
-
# @param [required, String] :phone A single phone number that you need insight about in the E.164 format.
|
21
|
-
#
|
22
|
-
# @param [required, Array] :insights An array of strings indicating the fraud check insights required for the number.
|
23
|
-
# Must be least one of: `fraud_score`, `sim_swap`
|
24
|
-
#
|
25
|
-
# @return [Response]
|
26
|
-
#
|
27
|
-
# @see https://developer.vonage.com/en/api/number-insight.v2#fraud_check
|
28
|
-
#
|
29
|
-
sig { params(type: String, phone: String, insights: T::Array[String]).returns(Vonage::Response) }
|
30
|
-
def fraud_check(type:, phone:, insights:)
|
31
|
-
raise ArgumentError.new("`insights` must not be an empty") if insights.empty?
|
32
|
-
|
33
|
-
request('/v2/ni', params: {type: type, phone: phone, insights: insights}, type: Post)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,68 +0,0 @@
|
|
1
|
-
# typed: true
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module Vonage
|
5
|
-
class ProactiveConnect::Events < Namespace
|
6
|
-
extend T::Sig
|
7
|
-
|
8
|
-
self.authentication = BearerToken
|
9
|
-
|
10
|
-
self.host = :vonage_host
|
11
|
-
|
12
|
-
# Find all events
|
13
|
-
#
|
14
|
-
# @example
|
15
|
-
# response = proactive_connect.events.list
|
16
|
-
#
|
17
|
-
# @param [optional, String] :page
|
18
|
-
# Page of results to jump to
|
19
|
-
#
|
20
|
-
# @param [optional, String] :page_size
|
21
|
-
# Number of results per page
|
22
|
-
#
|
23
|
-
# @param [optional, String] order
|
24
|
-
# Sort in either ascending (asc, the default) or descending (desc) order
|
25
|
-
#
|
26
|
-
# @param [optional, String] :run_id
|
27
|
-
# Run IDs to filter by, if not specified, returns events for any run id
|
28
|
-
#
|
29
|
-
# @param [optional, String] :type
|
30
|
-
# Event types to filter by
|
31
|
-
#
|
32
|
-
# @param [optional, String] action_id
|
33
|
-
# Action IDs to filter by.
|
34
|
-
#
|
35
|
-
# @param [optional, String] :invocation_id
|
36
|
-
# Invocation IDs to filter by
|
37
|
-
#
|
38
|
-
# @param [optional, String] :recipient_id
|
39
|
-
# Recipient IDs to filter by
|
40
|
-
#
|
41
|
-
# @param [optional, String] :run_item_id
|
42
|
-
# Run item IDs to filter by
|
43
|
-
#
|
44
|
-
# @param [optional, String] src_ctx
|
45
|
-
# The name of the segment / matcher the item / event to filter by (exact string)
|
46
|
-
#
|
47
|
-
# @param [optional, String] :src_type
|
48
|
-
# Source types to filter by
|
49
|
-
#
|
50
|
-
# @param [optional, String] :trace_id
|
51
|
-
# Trace IDs to filter events by
|
52
|
-
#
|
53
|
-
# @param [optional, String] date_start
|
54
|
-
# ISO-8601 formatted date for when to begin events filter
|
55
|
-
#
|
56
|
-
# @param [optional, String] :date_end
|
57
|
-
# ISO-8601 formatted date for when to end events filter
|
58
|
-
#
|
59
|
-
# @see https://developer.vonage.com/en/api/proactive-connect#eventsFindAll
|
60
|
-
#
|
61
|
-
def list(**params)
|
62
|
-
path = "/v0.1/bulk/events"
|
63
|
-
path += "?#{Params.encode(params)}" unless params.empty?
|
64
|
-
|
65
|
-
request(path, response_class: ListResponse)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
@@ -1,104 +0,0 @@
|
|
1
|
-
# typed: true
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
module Vonage
|
5
|
-
class ProactiveConnect::Item < Namespace
|
6
|
-
extend T::Sig
|
7
|
-
|
8
|
-
self.authentication = BearerToken
|
9
|
-
|
10
|
-
self.host = :vonage_host
|
11
|
-
|
12
|
-
self.request_body = JSON
|
13
|
-
|
14
|
-
# Create a list item
|
15
|
-
#
|
16
|
-
# @example
|
17
|
-
# response = proactive_connect.item.create(list_id: 'e546eebe-8e23-4e4d-bb7c-29d4700c9865', data: {name: 'Joe Bloggs', email: 'joe@email.com'})
|
18
|
-
#
|
19
|
-
# @param [required, String] :list_id
|
20
|
-
# Unique identifier for the list
|
21
|
-
#
|
22
|
-
# @param [required, Hash] :data
|
23
|
-
# A hash of data containing the item's data attributes and values
|
24
|
-
#
|
25
|
-
# @see https://developer.vonage.com/en/api/proactive-connect#itemsCreate
|
26
|
-
#
|
27
|
-
def create(list_id:, data:)
|
28
|
-
raise ArgumentError.new(":data must be a Hash") unless data.is_a? Hash
|
29
|
-
request(
|
30
|
-
"/v0.1/bulk/lists/#{list_id}/items",
|
31
|
-
params: { data: data },
|
32
|
-
type: Post
|
33
|
-
)
|
34
|
-
end
|
35
|
-
|
36
|
-
# Get list item by id
|
37
|
-
#
|
38
|
-
# @example
|
39
|
-
# response = proactive_connect.item.find(list_id: 'e546eebe-8e23-4e4d-bb7c-29d4700c9865', item_id: 'd97ebf20-e4de-4e50-921a-7bb4dceb373a')
|
40
|
-
#
|
41
|
-
# @param [required, String] :list_id
|
42
|
-
# Unique identifier for the list
|
43
|
-
#
|
44
|
-
# @param [required, String] :item_id
|
45
|
-
# Unique identifier for the item
|
46
|
-
#
|
47
|
-
# @see https://developer.vonage.com/en/api/proactive-connect#itemsGet
|
48
|
-
#
|
49
|
-
def find(list_id:, item_id:)
|
50
|
-
request("/v0.1/bulk/lists/#{list_id}/items/#{item_id}")
|
51
|
-
end
|
52
|
-
|
53
|
-
# Update list item
|
54
|
-
#
|
55
|
-
# @example
|
56
|
-
# response = proactive_connect.item.create(
|
57
|
-
# list_id: 'e546eebe-8e23-4e4d-bb7c-29d4700c9865',
|
58
|
-
# item_id: 'd97ebf20-e4de-4e50-921a-7bb4dceb373a',
|
59
|
-
# data: {name: 'Jane Bloggs', email: 'joe@email.com'}
|
60
|
-
# )
|
61
|
-
#
|
62
|
-
# @param [required, String] :list_id
|
63
|
-
# Unique identifier for the list
|
64
|
-
#
|
65
|
-
# @param [required, String] :item_id
|
66
|
-
# Unique identifier for the item
|
67
|
-
#
|
68
|
-
# @param [required, Hash] :data
|
69
|
-
# A hash of data containing the item's data attributes and values
|
70
|
-
# All attributes for the item must be passed, even ones for which the value is not changing.
|
71
|
-
# If an attribute is omitted, existing data for that attribute will be deleted.
|
72
|
-
#
|
73
|
-
# @see https://developer.vonage.com/en/api/proactive-connect#itemsUpdate
|
74
|
-
#
|
75
|
-
def update(list_id:, item_id:, data:)
|
76
|
-
raise ArgumentError.new(":data must be a Hash") unless data.is_a? Hash
|
77
|
-
request(
|
78
|
-
"/v0.1/bulk/lists/#{list_id}/items/#{item_id}",
|
79
|
-
params: { data: data },
|
80
|
-
type: Put
|
81
|
-
)
|
82
|
-
end
|
83
|
-
|
84
|
-
# Delete list item
|
85
|
-
#
|
86
|
-
# @example
|
87
|
-
# response = proactive_connect.item.delete(list_id: 'e546eebe-8e23-4e4d-bb7c-29d4700c9865', item_id: 'd97ebf20-e4de-4e50-921a-7bb4dceb373a')
|
88
|
-
#
|
89
|
-
# @param [required, String] :list_id
|
90
|
-
# Unique identifier for the list
|
91
|
-
#
|
92
|
-
# @param [required, String] :item_id
|
93
|
-
# Unique identifier for the item
|
94
|
-
#
|
95
|
-
# @see https://developer.vonage.com/en/api/proactive-connect#itemsDelete
|
96
|
-
#
|
97
|
-
def delete(list_id:, item_id:)
|
98
|
-
request(
|
99
|
-
"/v0.1/bulk/lists/#{list_id}/items/#{item_id}",
|
100
|
-
type: Delete
|
101
|
-
)
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|