vonage 7.23.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 (93) 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 +0 -2
  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 +0 -11
  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 -31
  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 -94
  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/sip.rb +0 -48
  93. data/lib/vonage/video/streams/list_response.rb +0 -11
@@ -1,168 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class ProactiveConnect::List < 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 list
15
- #
16
- # @example
17
- # response = proactive_connect.list.create(name: 'List Number 1')
18
- #
19
- # @param [required, String] :name
20
- # A name for the list
21
- #
22
- # @param [optional, String] :description
23
- # A description of the list
24
- #
25
- # @param [optional, Array] :tags
26
- # An Array of up to 10 Strings assigining tags to the list. Each String must be between 1 and 15 characters
27
- #
28
- # @param [optional, Array] :attributes
29
- # Array of Hash objects. Each Hash represents an attribute for the list.
30
- #
31
- # @option attributes [required, String] :name
32
- # The name of the attribute
33
- #
34
- # @option attributes [optional, String] :alias
35
- # Alternative name to use for this attribute.
36
- # Use when you wish to correlate between 2 or more list that are using different attribute names for the same semantic data
37
- #
38
- # @option attributes [optional, Boolean] :key
39
- # Set to `true` if this attribute should be used to correlate between 2 or more lists. Default is `false`
40
- #
41
- # @param [optional, Hash] :datasource
42
- # Datasource for the list
43
- #
44
- # @option datasource [required, String] :type
45
- # Must be set to `manual`, which is the default
46
- #
47
- # @see https://developer.vonage.com/en/api/proactive-connect#listsCreate
48
- #
49
- def create(name:, **params)
50
- request(
51
- "/v0.1/bulk/lists",
52
- params: params.merge({ name: name }),
53
- type: Post
54
- )
55
- end
56
-
57
- # Get list by id
58
- #
59
- # @example
60
- # response = proactive_connect.list.find(id: 'e546eebe-8e23-4e4d-bb7c-29d4700c9865')
61
- #
62
- # @param [required, String] :id
63
- # Unique identifier for the list
64
- #
65
- # @see https://developer.vonage.com/en/api/proactive-connect#listsGet
66
- #
67
- def find(id:)
68
- request("/v0.1/bulk/lists/#{id}")
69
- end
70
-
71
- # Update list
72
- #
73
- # @example
74
- # response = proactive_connect.list.update(name: 'List Number 1')
75
- #
76
- # @param [required, String] :id
77
- # The id of the list to update
78
- #
79
- # @param [required, String] :name
80
- # The name of the list
81
- #
82
- # @param [optional, String] :description
83
- # A description of the list
84
- #
85
- # @param [optional, Array] :tags
86
- # An Array of up to 10 Strings assigining tags to the list. Each String must be between 1 and 15 characters
87
- #
88
- # @param [optional, Array] :attributes
89
- # Array of Hash objects. Each Hash represents an attribute for the list.
90
- #
91
- # @option attributes [required, String] :name
92
- # The name of the attribute
93
- #
94
- # @option attributes [optional, String] :alias
95
- # Alternative name to use for this attribute.
96
- # Use when you wish to correlate between 2 or more list that are using different attribute names for the same semantic data
97
- #
98
- # @option attributes [optional, Boolean] :key
99
- # Set to `true` if this attribute should be used to correlate between 2 or more lists. Default is `false`
100
- #
101
- # @param [optional, Hash] :datasource
102
- # Datasource for the list
103
- #
104
- # @option datasource [required, String] :type
105
- # Must be set to `manual`, which is the default
106
- #
107
- # @see https://developer.vonage.com/en/api/proactive-connect#listsUpdate
108
- #
109
- def update(id:, name:, **params)
110
- request(
111
- "/v0.1/bulk/lists/#{id}",
112
- params: params.merge({ name: name }),
113
- type: Put
114
- )
115
- end
116
-
117
- # Delete a list by id
118
- #
119
- # @example
120
- # response = proactive_connect.list.delete(id: '74ea1ecf-06c9-4072-a285-61677bd353e8')
121
- #
122
- # @param [required, String] :id
123
- # Unique identifier for the list
124
- #
125
- # @see https://developer.vonage.com/en/api/proactive-connect#listsDelete
126
- #
127
- def delete(id:)
128
- request(
129
- "/v0.1/bulk/lists/#{id}",
130
- type: Delete
131
- )
132
- end
133
-
134
- # Clear list by deleting all items
135
- #
136
- # @example
137
- # response = proactive_connect.list.clear_items(id: 'e546eebe-8e23-4e4d-bb7c-29d4700c9865')
138
- #
139
- # @param [required, String] :id
140
- # Unique identifier for the list
141
- #
142
- # @see https://developer.vonage.com/en/api/proactive-connect#listsClear
143
- #
144
- def clear_items(id:)
145
- request(
146
- "/v0.1/bulk/lists/#{id}/clear",
147
- type: Post
148
- )
149
- end
150
-
151
- # Fetch and replace all items from datasource
152
- #
153
- # @example
154
- # response = proactive_connect.list.fetch_and_replace_items(id: 'e546eebe-8e23-4e4d-bb7c-29d4700c9865')
155
- #
156
- # @param [required, String] :id
157
- # Unique identifier for the list
158
- #
159
- # @see https://developer.vonage.com/en/api/proactive-connect#listsFetch
160
- #
161
- def fetch_and_replace_items(id:)
162
- request(
163
- "/v0.1/bulk/lists/#{id}/fetch",
164
- type: Post
165
- )
166
- end
167
- end
168
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
-
3
- class Vonage::ProactiveConnect::Lists::ListResponse < Vonage::Response
4
- include Enumerable
5
-
6
- def each
7
- return enum_for(:each) unless block_given?
8
-
9
- @entity._embedded.lists.each { |item| yield item }
10
- end
11
- end
@@ -1,35 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class ProactiveConnect::Lists < Namespace
6
- extend T::Sig
7
-
8
- self.authentication = BearerToken
9
-
10
- self.host = :vonage_host
11
-
12
- # Find all lists
13
- #
14
- # @example
15
- # response = proactive_connect.lists.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
- # @see https://developer.vonage.com/en/api/proactive-connect#listsFindAll
27
- #
28
- def list(**params)
29
- path = "/v0.1/bulk/lists"
30
- path += "?#{Params.encode(params)}" unless params.empty?
31
-
32
- request(path, response_class: ListResponse)
33
- end
34
- end
35
- end
@@ -1,33 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class ProactiveConnect < Namespace
6
- extend T::Sig
7
-
8
- sig { returns(T.nilable(Vonage::ProactiveConnect::Lists)) }
9
- def lists
10
- @lists ||= Lists.new(@config)
11
- end
12
-
13
- sig { returns(T.nilable(Vonage::ProactiveConnect::List)) }
14
- def list
15
- @list ||= List.new(@config)
16
- end
17
-
18
- sig { returns(T.nilable(Vonage::ProactiveConnect::Items)) }
19
- def items
20
- @items ||= Items.new(@config)
21
- end
22
-
23
- sig { returns(T.nilable(Vonage::ProactiveConnect::Item)) }
24
- def item
25
- @item ||= Item.new(@config)
26
- end
27
-
28
- sig { returns(T.nilable(Vonage::ProactiveConnect::Events)) }
29
- def events
30
- @events ||= Events.new(@config)
31
- end
32
- end
33
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
-
3
- class Vonage::Subaccounts::BalanceTransfers::ListResponse < Vonage::Response
4
- include Enumerable
5
-
6
- def each
7
- return enum_for(:each) unless block_given?
8
-
9
- @entity._embedded.balance_transfers.each { |item| yield item }
10
- end
11
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
-
3
- class Vonage::Subaccounts::CreditTransfers::ListResponse < Vonage::Response
4
- include Enumerable
5
-
6
- def each
7
- return enum_for(:each) unless block_given?
8
-
9
- @entity._embedded.credit_transfers.each { |item| yield item }
10
- end
11
- end
@@ -1,15 +0,0 @@
1
- # typed: true
2
-
3
- class Vonage::Subaccounts::ListResponse < Vonage::Response
4
- include Enumerable
5
-
6
- def primary_account
7
- @entity._embedded.primary_account
8
- end
9
-
10
- def each
11
- return enum_for(:each) unless block_given?
12
-
13
- @entity._embedded.subaccounts.each { |item| yield item }
14
- end
15
- end
@@ -1,203 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class Subaccounts < Namespace
6
- self.authentication = Basic
7
-
8
- self.request_body = JSON
9
-
10
- # Retrieve list of subaccounts.
11
- #
12
- # @example
13
- # response = client.subaccounts.list
14
- #
15
- # @see https://developer.vonage.com/en/api/subaccounts#retrieveSubaccountsList
16
- #
17
- def list
18
- request("/accounts/#{@config.api_key}/subaccounts", response_class: ListResponse)
19
- end
20
-
21
- # Retrieve a subaccount.
22
- #
23
- # @example
24
- # response = client.subaccounts.find(subaccount_key: 'abc123')
25
- #
26
- # @option params [required, String] :subaccount_key
27
- # The API key for the subaccount you want to retrieve
28
- #
29
- # @see https://developer.vonage.com/en/api/subaccounts#retrieveSubaccount
30
- #
31
- def find(subaccount_key:)
32
- request("/accounts/#{@config.api_key}/subaccounts/#{subaccount_key}")
33
- end
34
-
35
- # Create a subaccount.
36
- #
37
- # @example
38
- # response = client.subaccounts.create(name: 'Foo')
39
- #
40
- # @option params [required, String] :name
41
- # The name of the subaccount
42
- #
43
- # @option params [optional, String] :secret
44
- # An account secret for use by the subaccount. Can be used in combination with your API key to authenticate your API requests.
45
- # Requirements:
46
- # - 8 characters and no more than 25
47
- # - 1 lower-case letter
48
- # - 1 capital letter
49
- # - 1 digit
50
- # - must be unique
51
- #
52
- # @option params [optional, Boolean] :use_primary_account_balance
53
- # Whether the subaccount uses the primary account balance (true, the default) or has its own balance (false).
54
- # Once set to `false` cannot be changed back to `true`
55
- #
56
- # @see https://developer.vonage.com/en/api/subaccounts#createSubAccount
57
- #
58
- def create(name:, **params)
59
- request("/accounts/#{@config.api_key}/subaccounts", params: params.merge(name: name), type: Post)
60
- end
61
-
62
- # Modify a subaccount.
63
- #
64
- # @example
65
- # response = client.subaccounts.update(name: 'Bar')
66
- #
67
- # @option params [required, String] :subaccount_key
68
- # The API key for the subaccount you want to modify
69
- #
70
- # @option params [optional, String] :name
71
- # The name of the subaccount
72
- #
73
- # @option params [optional, Boolean] :use_primary_account_balance
74
- # Whether the subaccount uses the primary account balance (true, the default) or has its own balance (false).
75
- # Once set to `false` cannot be changed back to `true`
76
- #
77
- # @option params [optional, String] :suspended
78
- # Whether the subaccount is suspended (true) or not (false, the default)
79
- #
80
- # @see https://developer.vonage.com/en/api/subaccounts#modifySubaccount
81
- #
82
- def update(subaccount_key:, **params)
83
- request("/accounts/#{@config.api_key}/subaccounts/#{subaccount_key}", params: params, type: Patch)
84
- end
85
-
86
- # Retrieve list of credit transfers.
87
- #
88
- # @example
89
- # response = client.subaccounts.list_credit_transfers(start_date: "2023-06-15T15:53:50Z")
90
- #
91
- # @option params [optional, String] :start_date
92
- # The ISO format datetime from which to list transfers. Example: 2019-03-02T16:34:49Z.
93
- # Defaults to "1970-01-01T00:00:00Z" if omitted
94
- #
95
- # @option params [optional, String] :end_date
96
- # The ISO format datetime to which to list transfers. Example: 2019-03-02T16:34:49Z.
97
- # If absent then all transfers until now is returned.
98
- #
99
- # @option params [optional, String] :subaccount
100
- # Subaccount to filter by.
101
- #
102
- # @see https://developer.vonage.com/en/api/subaccounts#retrieveCreditTransfers
103
- #
104
- def list_credit_transfers(start_date: "1970-01-01T00:00:00Z", **params)
105
- path = "/accounts/#{@config.api_key}/credit-transfers?#{Params.encode(params.merge(start_date: start_date))}"
106
-
107
- request(path, response_class: CreditTransfers::ListResponse)
108
- end
109
-
110
- # Transfer credit.
111
- #
112
- # @example
113
- # response = client.subaccounts.transfer_credit(from: 'abc123', to: 'def456', amount: 10.00)
114
- #
115
- # @option params [required, String] :from
116
- # The API key of the account or subaccount to transfer credit from.
117
- #
118
- # @option params [required, String] :to
119
- # The API key of the account or subaccount to transfer credit to.
120
- #
121
- # @option params [required, Number] :amount
122
- # The amount to transfer
123
- #
124
- # @option params [optional, String] :reference
125
- # A reference for the transfer.
126
- #
127
- # @see https://developer.vonage.com/en/api/subaccounts#transferCredit
128
- #
129
- def transfer_credit(from:, to:, amount:, **params)
130
- request("/accounts/#{@config.api_key}/credit-transfers", params: params.merge(from: from, to: to, amount: amount), type: Post)
131
- end
132
-
133
- # Retrieve list of balance transfers.
134
- #
135
- # @example
136
- # response = client.subaccounts.list_balance_transfers(start_date: "2023-06-15T15:53:50Z")
137
- #
138
- # @option params [optional, String] :start_date
139
- # The ISO format datetime from which to list transfers. Example: 2019-03-02T16:34:49Z.
140
- # Defaults to "1970-01-01T00:00:00Z" if omitted
141
- #
142
- # @option params [optional, String] :end_date
143
- # The ISO format datetime to which to list transfers. Example: 2019-03-02T16:34:49Z.
144
- # If absent then all transfers until now is returned.
145
- #
146
- # @option params [optional, String] :subaccount
147
- # Subaccount to filter by.
148
- #
149
- # @see https://developer.vonage.com/en/api/subaccounts#retrieveBalanceTransfers
150
- #
151
- def list_balance_transfers(start_date: "1970-01-01T00:00:00Z", **params)
152
- path = "/accounts/#{@config.api_key}/balance-transfers?#{Params.encode(params.merge(start_date: start_date))}"
153
-
154
- request(path, response_class: BalanceTransfers::ListResponse)
155
- end
156
-
157
- # Transfer balance.
158
- #
159
- # @example
160
- # response = client.subaccounts.transfer_balance(from: 'abc123', to: 'def456', amount: 10.00)
161
- #
162
- # @option params [required, String] :from
163
- # The API key of the account or subaccount to transfer balance from.
164
- #
165
- # @option params [required, String] :to
166
- # The API key of the account or subaccount to transfer balance to.
167
- #
168
- # @option params [required, Number] :amount
169
- # The amount to transfer
170
- #
171
- # @option params [optional, String] :reference
172
- # A reference for the transfer.
173
- #
174
- # @see https://developer.vonage.com/en/api/subaccounts#transferBalance
175
- #
176
- def transfer_balance(from:, to:, amount:, **params)
177
- request("/accounts/#{@config.api_key}/balance-transfers", params: params.merge(from: from, to: to, amount: amount), type: Post)
178
- end
179
-
180
- # Transfer number.
181
- #
182
- # @example
183
- # response = client.subaccounts.transfer_number(from: 'abc123', to: 'def456', number: 447900000000, country: 'GB')
184
- #
185
- # @option params [required, String] :from
186
- # The API key of the account or subaccount to transfer the number from.
187
- #
188
- # @option params [required, String] :to
189
- # The API key of the account or subaccount to transfer the number to.
190
- #
191
- # @option params [required, Number] :number
192
- # The number to transfer
193
- #
194
- # @option params [required, String] :country
195
- # An ISO-3166-1 alpha 2 code representing the country for the number, e.g. GB.
196
- #
197
- # @see https://developer.vonage.com/en/api/subaccounts#transferNumber
198
- #
199
- def transfer_number(from:, to:, number:, country:)
200
- request("/accounts/#{@config.api_key}/transfer-number", params: {from: from, to: to, number: number, country: country}, type: Post)
201
- end
202
- end
203
- end
@@ -1,11 +0,0 @@
1
- # typed: true
2
-
3
- class Vonage::Users::ListResponse < Vonage::Response
4
- include Enumerable
5
-
6
- def each
7
- return enum_for(:each) unless block_given?
8
-
9
- @entity._embedded.users.each { |item| yield item }
10
- end
11
- end
data/lib/vonage/users.rb DELETED
@@ -1,156 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Vonage
5
- class Users < Namespace
6
- extend T::Sig
7
- self.authentication = BearerToken
8
-
9
- self.request_body = JSON
10
-
11
- # Get a list of Users associated with the Vonage Application.
12
- #
13
- # @param [optional, Integer] :page_size
14
- # Specifies the number of records to be returned in the response.
15
- #
16
- # @param [optional, String] :order
17
- # Specifies the order in which the records should be returned.
18
- # Must be one of `asc`, `ASC`, `desc`, or `DESC`
19
- #
20
- # @param [optional, String] :cursor
21
- # Specficy a cursor point from which to start returning results, for example the values of the `next` or `prev`
22
- # `_links` contained in a response.
23
- #
24
- # @param [optional, String] :name
25
- # Specify a user name with which to filter results
26
- #
27
- # @return [ListResponse]
28
- #
29
- # @see https://developer.vonage.com/en/api/application.v2#getUsers
30
- #
31
- def list(**params)
32
- request('/v1/users', params: params, response_class: ListResponse)
33
- end
34
-
35
- # Get a specified User associated with the Vonage Application.
36
- #
37
- # @param [required, String] :id
38
- # The unique ID or name for the user.
39
- #
40
- # @return [Vonage::Response]
41
- #
42
- # @see https://developer.vonage.com/en/api/application.v2#getUser
43
- #
44
- def find(id:)
45
- request("/v1/users/#{id}")
46
- end
47
-
48
- # Create a new User associated with the Vonage Application.
49
- #
50
- # @param [optional, String] :name
51
- # A unique name for the user. If not provided, a name will be auto-generated.
52
- #
53
- # @param [optional, String] :display_name
54
- # A string to be displayed as user name. It does not need to be unique.
55
- #
56
- # @param [optional, String] :image_url
57
- # A publicly accessible URL to an image file for an image to be associated with the user.
58
- #
59
- # @param [optional, Hash] :properties A hash defining properties for the User.
60
- # @option properties [Hash] :custom_data A hash of custom data as key/value pairs.
61
- #
62
- # @param [optional, Hash] :channels A hash defining details of various channels.
63
- # @option channels [Array] :pstn An array containing a Hash which defines data for the pstn channel.
64
- # @option pstn [Integer] :number The pstn number.
65
- # @option channels [Array] :sip An array containing a Hash which defines data for the sip channel.
66
- # @option sip [String] :uri The sip uri.
67
- # @option sip [String] :username The sip username.
68
- # @option sip [String] :password The sip password.
69
- # @option channels [Array] :vbc An array containing a Hash which defines data for the vbc channel.
70
- # @option vbc [String] :extension The vbc extension.
71
- # @option channels [Array] :websocket An array containing a Hash which defines data for the websocket channel.
72
- # @option websocket [String] :uri The websocket uri.
73
- # @option websocket [String] :content-type The websocket audio type. Must be one of: `audio/l16;rate=8000`, `audio/l16;rate=16000`.
74
- # @option websocket [Hash] :headers A hash of custom websocket headers provided as key/value pairs.
75
- # @option channels [Array] :sms An array containing a Hash which defines data for the sms channel.
76
- # @option sms [Integer] :number The sms number.
77
- # @option channels [Array] :mms An array containing a Hash which defines data for the mms channel.
78
- # @option mms [Integer] :number The mms number.
79
- # @option channels [Array] :whatsapp An array containing a Hash which defines data for the whatsapp channel.
80
- # @option whatsapp [Integer] :number The whatsapp number.
81
- # @option channels [Array] :viber An array containing a Hash which defines data for the sms channel.
82
- # @option viber [Integer] :number The viber number.
83
- # @option channels [Array] :messenger An array containing a Hash which defines data for the messenger channel.
84
- # @option messenger [Integer] :id The messenger id.
85
- #
86
- # @return [Vonage::Response]
87
- #
88
- # @see https://developer.vonage.com/en/api/application.v2#createUser
89
- #
90
- def create(**params)
91
- request('/v1/users', params: params, type: Post)
92
- end
93
-
94
- # Update an existing User associated with the Vonage Application.
95
- #
96
- # @param [required, String] :id
97
- # The unique ID or name for the user to be updated.
98
- #
99
- # @param [optional, String] :name
100
- # A unique name for the user.
101
- #
102
- # @param [optional, String] :display_name
103
- # A string to be displayed as user name. It does not need to be unique.
104
- #
105
- # @param [optional, String] :image_url
106
- # A publicly accessible URL to an image file for an image to be associated with the user.
107
- #
108
- # @param [optional, Hash] :properties A hash defining properties for the User.
109
- # @option properties [Hash] :custom_data A hash of custom data as key/value pairs.
110
- #
111
- # @param [optional, Hash] :channels A hash defining details of various channels.
112
- # @option channels [Array] :pstn An array containing a Hash which defines data for the pstn channel.
113
- # @option pstn [Integer] :number The pstn number.
114
- # @option channels [Array] :sip An array containing a Hash which defines data for the sip channel.
115
- # @option sip [String] :uri The sip uri.
116
- # @option sip [String] :username The sip username.
117
- # @option sip [String] :password The sip password.
118
- # @option channels [Array] :vbc An array containing a Hash which defines data for the vbc channel.
119
- # @option vbc [String] :extension The vbc extension.
120
- # @option channels [Array] :websocket An array containing a Hash which defines data for the websocket channel.
121
- # @option websocket [String] :uri The websocket uri.
122
- # @option websocket [String] :content-type The websocket audio type. Must be one of: `audio/l16;rate=8000`, `audio/l16;rate=16000`.
123
- # @option websocket [Hash] :headers A hash of custom websocket headers provided as key/value pairs.
124
- # @option channels [Array] :sms An array containing a Hash which defines data for the sms channel.
125
- # @option sms [Integer] :number The sms number.
126
- # @option channels [Array] :mms An array containing a Hash which defines data for the mms channel.
127
- # @option mms [Integer] :number The mms number.
128
- # @option channels [Array] :whatsapp An array containing a Hash which defines data for the whatsapp channel.
129
- # @option whatsapp [Integer] :number The whatsapp number.
130
- # @option channels [Array] :viber An array containing a Hash which defines data for the sms channel.
131
- # @option viber [Integer] :number The viber number.
132
- # @option channels [Array] :messenger An array containing a Hash which defines data for the messenger channel.
133
- # @option messenger [Integer] :id The messenger id.
134
- #
135
- # @return [Vonage::Response]
136
- #
137
- # @see https://developer.vonage.com/en/api/application.v2#createUser
138
- #
139
- def update(id:, **params)
140
- request("/v1/users/#{id}", params: params, type: Patch)
141
- end
142
-
143
- # Delete a specified User associated with the Vonage Application.
144
- #
145
- # @param [required, String] :id
146
- # The unique ID or name for the user.
147
- #
148
- # @return [Vonage::Response]
149
- #
150
- # @see https://developer.vonage.com/en/api/application.v2#deleteUser
151
- #
152
- def delete(id:)
153
- request("/v1/users/#{id}", type: Delete)
154
- end
155
- end
156
- end