plivo 4.13.0 → 4.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/README.md +2 -5
- data/examples/regulatory_compliance.rb +167 -0
- data/lib/plivo/base.rb +1 -0
- data/lib/plivo/base/resource_interface.rb +6 -0
- data/lib/plivo/base_client.rb +23 -1
- data/lib/plivo/resources.rb +1 -0
- data/lib/plivo/resources/calls.rb +2 -5
- data/lib/plivo/resources/lookup.rb +2 -2
- data/lib/plivo/resources/numbers.rb +2 -1
- data/lib/plivo/resources/powerpacks.rb +11 -1
- data/lib/plivo/resources/regulatory_compliance.rb +610 -0
- data/lib/plivo/rest_client.rb +8 -0
- data/lib/plivo/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 432a8633325d5e44eee995dc40993c24b25251ae
|
4
|
+
data.tar.gz: f1c57049cd472b7f27912e15c34949e560994132
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eef8a0013b8f4eb0356c98bf70c6390b0be26b23bfc6236b78751df0d8c3496a29d0f556361a5068225beda650b6d8385cd95927c05bac3cc37fb761e635ed11
|
7
|
+
data.tar.gz: f2a93d08156446bfe73769f162c8bd8ade2d20314cadf636b8831ea91b02de673965638b3e0aea385d2c9a7dd5527b91432295c379ad88bfc16365a2d49a029a
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,20 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## [4.16.0](https://github.com/plivo/plivo-ruby/releases/tag/v4.16.0) (2021-02-08)
|
4
|
+
- Add support for Regulatory Compliance APIs.
|
5
|
+
|
6
|
+
## [4.15.2](https://github.com/plivo/plivo-ruby/releases/tag/v4.15.2) (2021-01-27)
|
7
|
+
- Fix Call API resource - Set answer_method as Optional param.
|
8
|
+
|
9
|
+
## [4.15.1](https://github.com/plivo/plivo-ruby/releases/tag/v4.15.1) (2021-01-06)
|
10
|
+
- Fix Search Phone Numbers API using City Attribute.
|
11
|
+
|
12
|
+
## [4.15.0](https://github.com/plivo/plivo-ruby/releases/tag/v4.15.0) (2020-11-17)
|
13
|
+
- Add number_priority support for Powerpack API.
|
14
|
+
|
15
|
+
## [4.14.0](https://github.com/plivo/plivo-ruby/releases/tag/v4.14.0) (2020-10-30)
|
16
|
+
- Change lookup API endpoint and response.
|
17
|
+
|
3
18
|
## [4.13.0](https://github.com/plivo/plivo-ruby/releases/tag/v4.13.0) (2020-09-30)
|
4
19
|
- Add support for Lookup API
|
5
20
|
|
data/README.md
CHANGED
@@ -8,7 +8,7 @@ The Plivo Ruby SDK makes it simpler to integrate communications into your Ruby a
|
|
8
8
|
Add this line to your application's Gemfile:
|
9
9
|
|
10
10
|
```ruby
|
11
|
-
gem 'plivo', '>= 4.
|
11
|
+
gem 'plivo', '>= 4.16.0'
|
12
12
|
```
|
13
13
|
|
14
14
|
And then execute:
|
@@ -114,10 +114,7 @@ require 'plivo'
|
|
114
114
|
include Plivo
|
115
115
|
|
116
116
|
client = RestClient.new
|
117
|
-
resp = client.lookup.get(
|
118
|
-
'<number-here>',
|
119
|
-
"carrier"
|
120
|
-
)
|
117
|
+
resp = client.lookup.get('<number-here>')
|
121
118
|
```
|
122
119
|
|
123
120
|
### Generate Plivo XML
|
@@ -0,0 +1,167 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "plivo"
|
3
|
+
|
4
|
+
include Plivo
|
5
|
+
include Plivo::Exceptions
|
6
|
+
|
7
|
+
AUTH_ID = ""
|
8
|
+
AUTH_TOKEN = ""
|
9
|
+
|
10
|
+
client = RestClient.new(AUTH_ID, AUTH_TOKEN)
|
11
|
+
|
12
|
+
# if credentials are stored in the PLIVO_AUTH_ID and the PLIVO_AUTH_TOKEN environment variables
|
13
|
+
# then initialize client as:
|
14
|
+
# client = RestClient.new
|
15
|
+
|
16
|
+
# 1. EndUSers
|
17
|
+
begin
|
18
|
+
resp = client.end_users.create('Sample First Name',
|
19
|
+
'Sample last name',
|
20
|
+
'individual')
|
21
|
+
puts resp
|
22
|
+
rescue PlivoRESTError => e
|
23
|
+
puts "Exception: " + e.message
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
# Response:
|
28
|
+
# {
|
29
|
+
# "api_id": "36989807-a76f-4555-84d1-9dfdccca7a80",
|
30
|
+
# "end_user_id": "36989807-a76f-4555-84d1-9dfdccca7a80",
|
31
|
+
# "name": "Sample First Name",
|
32
|
+
# "last_name": 'Sample last name',
|
33
|
+
# "end_user_type": 'individual',
|
34
|
+
# "created_on": '2021-02-08T05:28:49.238152984Z',
|
35
|
+
# "message": "created"
|
36
|
+
# }
|
37
|
+
|
38
|
+
# 2. Compliance Document Type
|
39
|
+
begin
|
40
|
+
resp = client.compliance_document_types.get('6264e9ee-5826-4f9a-80ce-00b00f7a6c0c')
|
41
|
+
puts resp
|
42
|
+
rescue PlivoRESTError => e
|
43
|
+
puts "Exception: " + e.message
|
44
|
+
end
|
45
|
+
|
46
|
+
# Response:
|
47
|
+
# {
|
48
|
+
# "api_id": "36989807-a76f-4555-84d1-9dfdccca7a80",
|
49
|
+
# "document_type_id": "36989807-a76f-4555-84d1-9dfdccca7a80",
|
50
|
+
# "document_name": "Address Information",
|
51
|
+
# "description": 'End User Residential Address information',
|
52
|
+
# "information": [
|
53
|
+
# {
|
54
|
+
# "enums": [
|
55
|
+
# "Water",
|
56
|
+
# "Electricity",
|
57
|
+
# "Gas",
|
58
|
+
# "Property Rental",
|
59
|
+
# "Others"
|
60
|
+
# ],
|
61
|
+
# "field_name": "type_of_utility",
|
62
|
+
# "field_type": "enum",
|
63
|
+
# "friendly_name": "Type of Utility"
|
64
|
+
# }
|
65
|
+
# ],
|
66
|
+
# "proof_required": "Scanned copy of the Bill",
|
67
|
+
# "created_at": '2018-11-03 19:32:33.240504+00:00'
|
68
|
+
# }
|
69
|
+
|
70
|
+
# 3. Compliance Documents
|
71
|
+
begin
|
72
|
+
resp = client.compliance_documents.list(
|
73
|
+
limit: 5,
|
74
|
+
offset: 0,
|
75
|
+
document_type_id: '15d48097-6fd6-4bbc-97ee-0c3dd0a8fe1a',
|
76
|
+
end_user_id: '4493840308')
|
77
|
+
puts resp
|
78
|
+
rescue PlivoRESTError => e
|
79
|
+
puts "Exception: " + e.message
|
80
|
+
end
|
81
|
+
|
82
|
+
# Response
|
83
|
+
# {
|
84
|
+
# "alias": "test alias",
|
85
|
+
# "api_id": "3cfabf1a-6579-11eb-b408-0242ac110005",
|
86
|
+
# "created_at": "2021-02-02 08:08:10.312992 +0000 UTC",
|
87
|
+
# "document_id": "4a9599cc-c58c-4804-8c04-1d4918cb6df7",
|
88
|
+
# "document_type_id": "be903190-cc96-4fd8-b3cd-97832fe7c086",
|
89
|
+
# "end_user_id": "652e1445-1657-4a80-972f-6dbd467b00b5",
|
90
|
+
# "meta_information": {
|
91
|
+
# "use_case_description": "test"
|
92
|
+
# }
|
93
|
+
#}
|
94
|
+
|
95
|
+
# 4. Compliance Requirements
|
96
|
+
begin
|
97
|
+
resp = client.compliance_requirements.list(
|
98
|
+
country_iso2: 'ES',
|
99
|
+
end_user_type: 'business',
|
100
|
+
number_type: 'local')
|
101
|
+
puts resp
|
102
|
+
rescue PlivoRESTError => e
|
103
|
+
puts "Exception: " + e.message
|
104
|
+
end
|
105
|
+
|
106
|
+
# Response:
|
107
|
+
#{
|
108
|
+
# "acceptable_document_types": [
|
109
|
+
# {
|
110
|
+
# "acceptable_documents": [
|
111
|
+
# {
|
112
|
+
# "document_type_id": "e68cf5fe-cea0-4b6c-a2b1-bef1d9add467",
|
113
|
+
# "document_type_name": "Address Information"
|
114
|
+
# }
|
115
|
+
# ],
|
116
|
+
# "name": "End User Address Details",
|
117
|
+
# "scope": "local"
|
118
|
+
# },
|
119
|
+
# {
|
120
|
+
# "acceptable_documents": [
|
121
|
+
# {
|
122
|
+
# "document_type_id": "e9b0b6fb-fd2f-44c1-9428-ee69afbd808b",
|
123
|
+
# "document_type_name": "Utility Bill"
|
124
|
+
# }
|
125
|
+
# ],
|
126
|
+
# "name": "Proof of Address ",
|
127
|
+
# "scope": "local"
|
128
|
+
# }
|
129
|
+
# ],
|
130
|
+
# "api_id": "75ea8886-6499-11eb-ad59-0242ac110005",
|
131
|
+
# "compliance_requirement_id": "4ae473b0-f154-41a4-aba8-ab76be12f27f",
|
132
|
+
# "country_iso2": "ES",
|
133
|
+
# "end_user_type": "individual",
|
134
|
+
# "number_type": "local"
|
135
|
+
#}
|
136
|
+
|
137
|
+
# 5. Compliance Applications
|
138
|
+
begin
|
139
|
+
resp = client.compliance_applications.create(
|
140
|
+
alias_: 'test',
|
141
|
+
compliance_requirement_id: '4ae473b0-f154-41a4-aba8-ab76be12f27f',
|
142
|
+
end_user_type: 'individual'
|
143
|
+
end_user_id: 'f7ba78e0-1d31-4f75-842c-cd2f91334d9f',
|
144
|
+
document_ids: ["a663bc92-5c8e-4e95-80d5-ba75d3569a98","4a9599cc-c58c-4804-8c04-1d4918cb6df7"],
|
145
|
+
country_iso2: 'FR',
|
146
|
+
number_type: 'mobile'
|
147
|
+
)
|
148
|
+
puts resp
|
149
|
+
rescue PlivoRESTError => e
|
150
|
+
puts "Exception: " + e.message
|
151
|
+
end
|
152
|
+
|
153
|
+
# Response:
|
154
|
+
# {
|
155
|
+
# "api_id": "36989807-a76f-4555-84d1-9dfdccca7a80",
|
156
|
+
# "alias": "test",
|
157
|
+
# "compliance_application_id": "7c83fd87-fb5d-4a88-bde0-7c96da35f1e6",
|
158
|
+
# "compliance_requirement_id": "4ae473b0-f154-41a4-aba8-ab76be12f27f",
|
159
|
+
# "country_iso2": "FR",
|
160
|
+
# "documents": [],
|
161
|
+
# "end_user_id": "f7ba78e0-1d31-4f75-842c-cd2f91334d9f",
|
162
|
+
# "end_user_type": "individual",
|
163
|
+
# "message": "created",
|
164
|
+
# "number_type": "local",
|
165
|
+
# "status": "draft",
|
166
|
+
# "created_at": '2021-02-08T19:32:33.240504+00:00'
|
167
|
+
# }
|
data/lib/plivo/base.rb
CHANGED
@@ -59,6 +59,12 @@ module Plivo
|
|
59
59
|
)
|
60
60
|
end
|
61
61
|
|
62
|
+
def perform_submit(identifier, params = nil)
|
63
|
+
valid_param?(:identifier, identifier, [String, Symbol], true)
|
64
|
+
response_json = @_client.send_request(@_resource_uri + identifier.to_s + '/Submit/', 'POST', params, nil, false, is_voice_request: @_is_voice_request)
|
65
|
+
@_resource_type.new(@_client, resource_json: response_json)
|
66
|
+
end
|
67
|
+
|
62
68
|
def perform_post(params)
|
63
69
|
response_json = @_client.send_request(@_resource_uri, 'POST', params, nil, false, is_voice_request: @_is_voice_request)
|
64
70
|
|
data/lib/plivo/base_client.rb
CHANGED
@@ -61,7 +61,12 @@ module Plivo
|
|
61
61
|
else
|
62
62
|
process_response(method, response.to_hash)
|
63
63
|
end
|
64
|
-
|
64
|
+
elsif options[:is_lookup_request] == true
|
65
|
+
response = case method
|
66
|
+
when 'GET' then send_get(resource_path, data, timeout, is_lookup_request: options[:is_lookup_request])
|
67
|
+
else raise_invalid_request("#{method} not supported by Plivo, yet")
|
68
|
+
end
|
69
|
+
process_response(method, response.to_hash)
|
65
70
|
else
|
66
71
|
response = case method
|
67
72
|
when 'GET' then send_get(resource_path, data, timeout)
|
@@ -191,6 +196,18 @@ module Plivo
|
|
191
196
|
faraday.adapter Faraday.default_adapter
|
192
197
|
end
|
193
198
|
|
199
|
+
@lookup_conn = Faraday.new(@lookup_base_uri) do |faraday|
|
200
|
+
faraday.headers = @headers
|
201
|
+
|
202
|
+
# DANGER: Basic auth should always come after headers, else
|
203
|
+
# The headers will replace the basic_auth
|
204
|
+
|
205
|
+
faraday.basic_auth(auth_id, auth_token)
|
206
|
+
|
207
|
+
faraday.proxy=@proxy_hash if @proxy_hash
|
208
|
+
faraday.response :json, content_type: /\bjson$/
|
209
|
+
faraday.adapter Faraday.default_adapter
|
210
|
+
end
|
194
211
|
end
|
195
212
|
|
196
213
|
def send_get(resource_path, data, timeout, options = nil)
|
@@ -210,6 +227,11 @@ module Plivo
|
|
210
227
|
req.url resource_path, data
|
211
228
|
req.options.timeout = timeout if timeout
|
212
229
|
end
|
230
|
+
elsif options[:is_lookup_request] == true
|
231
|
+
response = @lookup_conn.get do |req|
|
232
|
+
req.url resource_path, data
|
233
|
+
req.options.timeout = timeout if timeout
|
234
|
+
end
|
213
235
|
end
|
214
236
|
else
|
215
237
|
response = @conn.get do |req|
|
data/lib/plivo/resources.rb
CHANGED
@@ -252,7 +252,6 @@ module Plivo
|
|
252
252
|
# @param [String] from
|
253
253
|
# @param [Array] to
|
254
254
|
# @param [String] answer_url
|
255
|
-
# @param [String] answer_method
|
256
255
|
# @param [Hash] options
|
257
256
|
# @option options [String] :answer_method - The method used to call the answer_url. Defaults to POST.
|
258
257
|
# @option options [String] :ring_url - The URL that is notified by Plivo when the call is ringing. Defaults not set.
|
@@ -275,21 +274,19 @@ module Plivo
|
|
275
274
|
# @option options [String] :parent_call_uuid - The call_uuid of the first leg in an ongoing conference call. It is recommended to use this parameter in scenarios where a member who is already present in the conference intends to add new members by initiating outbound API calls. This minimizes the delay in adding a new memeber to the conference.
|
276
275
|
# @option options [Boolean] :error_parent_not_found - if set to true and the parent_call_uuid cannot be found, the API request would return an error. If set to false, the outbound call API request will be executed even if the parent_call_uuid is not found. Defaults to false.
|
277
276
|
# @return [Call] Call
|
278
|
-
def create(from, to, answer_url,
|
277
|
+
def create(from, to, answer_url, options = nil)
|
279
278
|
valid_param?(:from, from, [String, Symbol, Integer], true)
|
280
279
|
valid_param?(:to, to, Array, true)
|
281
280
|
to.each do |to_num|
|
282
281
|
valid_param?(:to_num, to_num, [Integer, String, Symbol], true)
|
283
282
|
end
|
284
283
|
valid_param?(:answer_url, answer_url, [String, Symbol], true)
|
285
|
-
|
286
|
-
true, %w[GET POST])
|
284
|
+
|
287
285
|
|
288
286
|
params = {
|
289
287
|
from: from,
|
290
288
|
to: to.join('<'),
|
291
289
|
answer_url: answer_url,
|
292
|
-
answer_method: answer_method
|
293
290
|
}
|
294
291
|
|
295
292
|
return perform_create(params, false) if options.nil?
|
@@ -63,7 +63,7 @@ module Plivo
|
|
63
63
|
@_identifier_string = "phone_number"
|
64
64
|
super
|
65
65
|
# Override _resource_uri only after calling super
|
66
|
-
@_resource_uri = "/v1/
|
66
|
+
@_resource_uri = "/v1/Number/"
|
67
67
|
end
|
68
68
|
|
69
69
|
##
|
@@ -80,7 +80,7 @@ module Plivo
|
|
80
80
|
# overridden to ensure 'Account' and extra shash isn't added to URL path
|
81
81
|
def perform_get(identifier, params = nil)
|
82
82
|
valid_param?(:identifier, identifier, [String, Symbol], true)
|
83
|
-
response_json = @_client.send_request(@_resource_uri + identifier.to_s, "GET", params, nil, false, is_voice_request: @_is_voice_request)
|
83
|
+
response_json = @_client.send_request(@_resource_uri + identifier.to_s, "GET", params, nil, false, is_voice_request: @_is_voice_request, is_lookup_request: true)
|
84
84
|
@_resource_type.new(@_client, resource_json: response_json)
|
85
85
|
end
|
86
86
|
end
|
@@ -59,6 +59,7 @@ module Plivo
|
|
59
59
|
# - By default, numbers that have either voice or sms or both enabled are returned.
|
60
60
|
# @option options [String] :lata Numbers can be searched using Local Access and Transport Area {http://en.wikipedia.org/wiki/Local_access_and_transport_area}. This filter is applicable only for country_iso US and CA.
|
61
61
|
# @option options [String] :rate_center Numbers can be searched using Rate Center {http://en.wikipedia.org/wiki/Telephone_exchange}. This filter is application only for country_iso US and CA.
|
62
|
+
# @option options [String] :city Filter phone number based on the city name. This filter is only applicable when the type is Local
|
62
63
|
# @option options [Boolean] :eligible If set to true, lists only those numbers that you are eligible to buy at the moment. To list all numbers, ignore this option.
|
63
64
|
# @option options [Int] :limit Used to display the number of results per page. The maximum number of results that can be fetched is 20.
|
64
65
|
# @option options [Int] :offset Denotes the number of value items by which the results should be offset. Eg:- If the result contains a 1000 values and limit is set to 10 and offset is set to 705, then values 706 through 715 are displayed in the results. This parameter is also used for pagination of the results.
|
@@ -71,7 +72,7 @@ module Plivo
|
|
71
72
|
|
72
73
|
return perform_list(params) if options.nil?
|
73
74
|
|
74
|
-
%i[type pattern region services lata rate_center].each do |param|
|
75
|
+
%i[type pattern region services lata rate_center city].each do |param|
|
75
76
|
if options.key?(param) &&
|
76
77
|
valid_param?(param, options[param], [String, Symbol], true)
|
77
78
|
params[param] = options[param]
|
@@ -47,6 +47,9 @@ module Plivo
|
|
47
47
|
if options.key?(:name)
|
48
48
|
params[:name] = options[:name]
|
49
49
|
end
|
50
|
+
if options.key?(:number_priority)
|
51
|
+
params[:number_priority] = options[:number_priority]
|
52
|
+
end
|
50
53
|
perform_action_apiresponse('', 'POST', params)
|
51
54
|
end
|
52
55
|
|
@@ -326,7 +329,8 @@ module Plivo
|
|
326
329
|
local_connect: @local_connect,
|
327
330
|
uuid: @uuid,
|
328
331
|
number_pool:@number_pool,
|
329
|
-
created_on:@created_on
|
332
|
+
created_on:@created_on,
|
333
|
+
number_priority:@number_priority
|
330
334
|
}.to_s
|
331
335
|
end
|
332
336
|
end
|
@@ -662,6 +666,12 @@ module Plivo
|
|
662
666
|
valid_param?(:local_connect, options[:local_connect], [TrueClass, FalseClass], true)
|
663
667
|
params[:local_connect] = options[:local_connect]
|
664
668
|
end
|
669
|
+
|
670
|
+
if options.key?(:number_priority) &&
|
671
|
+
valid_param?(:number_priority, options[:number_priority], Array, true)
|
672
|
+
params[:number_priority] = options[:number_priority]
|
673
|
+
end
|
674
|
+
|
665
675
|
perform_create(params)
|
666
676
|
end
|
667
677
|
|
@@ -0,0 +1,610 @@
|
|
1
|
+
module Plivo
|
2
|
+
module Resources
|
3
|
+
include Plivo::Utils
|
4
|
+
|
5
|
+
class EndUser < Base::Resource
|
6
|
+
def initialize(client, options = nil)
|
7
|
+
@_name = 'EndUser'
|
8
|
+
@_identifier_string = 'end_user'
|
9
|
+
super
|
10
|
+
end
|
11
|
+
|
12
|
+
def update(options = nil)
|
13
|
+
return perform_update({}) if options.nil?
|
14
|
+
|
15
|
+
valid_param?(:options, options, Hash, true)
|
16
|
+
|
17
|
+
params = {}
|
18
|
+
params_expected = %i[ name last_name ]
|
19
|
+
params_expected.each do |param|
|
20
|
+
if options.key?(param) &&
|
21
|
+
valid_param?(param, options[param], [String, Symbol], false)
|
22
|
+
params[param] = options[param]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
if options.key?(:end_user_type) &&
|
27
|
+
valid_param?(:end_user_type, options[:end_user_type].capitalize,[String, Symbol], false, %w[Business Individual])
|
28
|
+
params[:end_user_type] = options[:end_user_type].capitalize
|
29
|
+
end
|
30
|
+
|
31
|
+
perform_update(params)
|
32
|
+
end
|
33
|
+
|
34
|
+
def delete
|
35
|
+
perform_delete
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_s
|
39
|
+
{
|
40
|
+
api_id: @api_id,
|
41
|
+
end_user_id: @end_user_id,
|
42
|
+
end_user_type: @end_user_type,
|
43
|
+
name: @name,
|
44
|
+
last_name: @last_name,
|
45
|
+
created_at: @created_at
|
46
|
+
}.delete_if { |key, value| value.nil? }.to_s
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
class EndUsersInterface < Base::ResourceInterface
|
51
|
+
def initialize(client, resource_list_json = nil)
|
52
|
+
@_name = 'EndUser'
|
53
|
+
@_resource_type = EndUser
|
54
|
+
@_identifier_string = 'end_user'
|
55
|
+
super
|
56
|
+
end
|
57
|
+
|
58
|
+
##
|
59
|
+
# Get an EndUser
|
60
|
+
# @param [String] end_user_id
|
61
|
+
# return [EndUser]
|
62
|
+
def get(end_user_id)
|
63
|
+
valid_param?(:end_user_id, end_user_id, [String, Symbol], true)
|
64
|
+
perform_get(end_user_id)
|
65
|
+
end
|
66
|
+
|
67
|
+
##
|
68
|
+
# List all EndUser
|
69
|
+
# @param [Hash] options
|
70
|
+
# @option options [Int] :offset
|
71
|
+
# @option options [Int] :limit
|
72
|
+
# @return [Hash]
|
73
|
+
def list(options = nil)
|
74
|
+
return perform_list if options.nil?
|
75
|
+
valid_param?(:options, options, Hash, true)
|
76
|
+
|
77
|
+
params = {}
|
78
|
+
params_expected = %i[ name last_name ]
|
79
|
+
params_expected.each do |param|
|
80
|
+
if options.key?(param) &&
|
81
|
+
valid_param?(param, options[param], [String, Symbol], false)
|
82
|
+
params[param] = options[param]
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
if options.key?(:end_user_type) &&
|
87
|
+
valid_param?(:end_user_type, options[:end_user_type].capitalize,[String, Symbol], false, %w[Business Individual])
|
88
|
+
params[:end_user_type] = options[:end_user_type].capitalize
|
89
|
+
end
|
90
|
+
|
91
|
+
%i[offset limit].each do |param|
|
92
|
+
if options.key?(param) && valid_param?(param, options[param],
|
93
|
+
[Integer], true)
|
94
|
+
params[param] = options[param]
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
raise_invalid_request("Offset can't be negative") if options.key?(:offset) && options[:offset] < 0
|
99
|
+
|
100
|
+
if options.key?(:limit) && (options[:limit] > 20 || options[:limit] <= 0)
|
101
|
+
raise_invalid_request('The maximum number of results that can be '\
|
102
|
+
"fetched is 20. limit can't be more than 20 or less than 1")
|
103
|
+
end
|
104
|
+
|
105
|
+
perform_list(params)
|
106
|
+
end
|
107
|
+
|
108
|
+
##
|
109
|
+
# Create an EndUser
|
110
|
+
# @param [String] name
|
111
|
+
# @param [String] last_name
|
112
|
+
# @param [String] end_user_type
|
113
|
+
# return [EndUser] EndUser
|
114
|
+
def create(name, last_name = nil , end_user_type)
|
115
|
+
valid_param?(:name, name, [String, Symbol], true)
|
116
|
+
valid_param?(:last_name, last_name, [String, Symbol], false)
|
117
|
+
valid_param?(:end_user_type, end_user_type.capitalize, [String, Symbol], true, %w[Business Individual])
|
118
|
+
|
119
|
+
params = {
|
120
|
+
name: name,
|
121
|
+
last_name: last_name,
|
122
|
+
end_user_type: end_user_type.capitalize
|
123
|
+
}
|
124
|
+
|
125
|
+
return perform_create(params)
|
126
|
+
end
|
127
|
+
|
128
|
+
##
|
129
|
+
# Update an EndUser
|
130
|
+
# @param [String] end_user_id
|
131
|
+
# @param [Hash] options
|
132
|
+
# return [EndUser]
|
133
|
+
def update(end_user_id, options = nil)
|
134
|
+
valid_param?(:end_user_id, end_user_id, [String, Symbol], true)
|
135
|
+
EndUser.new(@_client,
|
136
|
+
resource_id: end_user_id).update(options)
|
137
|
+
end
|
138
|
+
|
139
|
+
##
|
140
|
+
# Delete an EndUser.
|
141
|
+
# @param [String] end_user_id
|
142
|
+
def delete(end_user_id)
|
143
|
+
valid_param?(:end_user_id, end_user_id, [String, Symbol], true)
|
144
|
+
EndUser.new(@_client,
|
145
|
+
resource_id: end_user_id).delete
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
class ComplianceDocumentType < Base::Resource
|
150
|
+
def initialize(client, options = nil)
|
151
|
+
@_name = 'ComplianceDocumentType'
|
152
|
+
@_identifier_string = 'compliance_document_type'
|
153
|
+
super
|
154
|
+
end
|
155
|
+
|
156
|
+
def to_s
|
157
|
+
{
|
158
|
+
api_id: @api_id,
|
159
|
+
document_type_id: @document_type_id,
|
160
|
+
document_name: @document_name,
|
161
|
+
description: @description,
|
162
|
+
information: @information,
|
163
|
+
proof_required: @proof_required,
|
164
|
+
created_at: @created_at
|
165
|
+
}.delete_if { |key, value| key==:api_id && value.nil? }.to_s
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
class ComplianceDocumentTypesInterface < Base::ResourceInterface
|
170
|
+
def initialize(client, resource_list_json = nil)
|
171
|
+
@_name = 'ComplianceDocumentType'
|
172
|
+
@_resource_type = ComplianceDocumentType
|
173
|
+
@_identifier_string = 'compliance_document_type'
|
174
|
+
super
|
175
|
+
end
|
176
|
+
|
177
|
+
# Get a ComplianceDocumentType
|
178
|
+
# @param [String] document_type_id
|
179
|
+
# @return [ComplianceDocumentType] ComplianceDocumentType
|
180
|
+
def get(document_type_id)
|
181
|
+
valid_param?(:document_type_id, document_type_id, [String, Symbol], true)
|
182
|
+
perform_get(document_type_id)
|
183
|
+
end
|
184
|
+
|
185
|
+
##
|
186
|
+
# List all ComplianceDocumentTypes
|
187
|
+
# @option options [Int] :offset
|
188
|
+
# @option options [Int] :limit
|
189
|
+
# @return [Hash]
|
190
|
+
def list(options = nil)
|
191
|
+
return perform_list if options.nil?
|
192
|
+
valid_param?(:options, options, Hash, false)
|
193
|
+
|
194
|
+
params = {}
|
195
|
+
%i[offset limit].each do |param|
|
196
|
+
if options.key?(param) && valid_param?(param, options[param],
|
197
|
+
[Integer], false)
|
198
|
+
params[param] = options[param]
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
raise_invalid_request("Offset can't be negative") if options.key?(:offset) && options[:offset] < 0
|
203
|
+
|
204
|
+
if options.key?(:limit) && (options[:limit] > 20 || options[:limit] <= 0)
|
205
|
+
raise_invalid_request('The maximum number of results that can be '\
|
206
|
+
"fetched is 20. limit can't be more than 20 or less than 1")
|
207
|
+
end
|
208
|
+
|
209
|
+
perform_list(params)
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
class ComplianceDocument < Base::Resource
|
214
|
+
def initialize(client, options = nil)
|
215
|
+
@_name = 'ComplianceDocument'
|
216
|
+
@_identifier_string = 'compliance_document'
|
217
|
+
super
|
218
|
+
end
|
219
|
+
|
220
|
+
def delete
|
221
|
+
perform_delete
|
222
|
+
end
|
223
|
+
|
224
|
+
def update(params)
|
225
|
+
perform_update(params, use_multipart_conn: true)
|
226
|
+
end
|
227
|
+
|
228
|
+
def to_s
|
229
|
+
{
|
230
|
+
api_id: @api_id,
|
231
|
+
end_user_id: @end_user_id,
|
232
|
+
document_type_id: @document_type_id,
|
233
|
+
compliance_document_id: @compliance_document_id,
|
234
|
+
document_id: @document_id,
|
235
|
+
alias: @alias,
|
236
|
+
meta_information: @meta_information,
|
237
|
+
file: @file,
|
238
|
+
file_name: @file_name,
|
239
|
+
created_at: @created_at
|
240
|
+
}.delete_if { |key, value| value.nil? }.to_s
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
244
|
+
class ComplianceDocumentsInterface < Base::ResourceInterface
|
245
|
+
def initialize(client, resource_list_json = nil)
|
246
|
+
@_name = 'ComplianceDocument'
|
247
|
+
@_resource_type = ComplianceDocument
|
248
|
+
@_identifier_string = 'compliance_document'
|
249
|
+
super
|
250
|
+
end
|
251
|
+
|
252
|
+
# Get a ComplianceDocument
|
253
|
+
# @param [String] compliance_document_id
|
254
|
+
# @return [ComplianceDocument] ComplianceDocument
|
255
|
+
def get(compliance_document_id)
|
256
|
+
valid_param?(:compliance_document_id, compliance_document_id, [String, Symbol], true)
|
257
|
+
perform_get(compliance_document_id)
|
258
|
+
end
|
259
|
+
|
260
|
+
# List all ComplianceDocuments
|
261
|
+
# @option options [Hash] :options
|
262
|
+
# @option options [Int] :offset
|
263
|
+
# @option options [Int] :limit
|
264
|
+
# @return [Hash]
|
265
|
+
def list(options = nil)
|
266
|
+
return perform_list if options.nil?
|
267
|
+
valid_param?(:options, options, Hash, false)
|
268
|
+
|
269
|
+
params = {}
|
270
|
+
|
271
|
+
params_expected = %i[ end_user_id document_type_id ]
|
272
|
+
params_expected.each do |param|
|
273
|
+
if options.key?(param) &&
|
274
|
+
valid_param?(param, options[param], [String, Symbol], false)
|
275
|
+
params[param] = options[param]
|
276
|
+
end
|
277
|
+
end
|
278
|
+
|
279
|
+
if options.key?(:alias) && valid_param?(:alias, options[:alias],[String, Symbol], false)
|
280
|
+
params[:alias] = options[:alias]
|
281
|
+
end
|
282
|
+
|
283
|
+
%i[offset limit].each do |param|
|
284
|
+
if options.key?(param) && valid_param?(param, options[param],
|
285
|
+
[Integer], true)
|
286
|
+
params[param] = options[param]
|
287
|
+
end
|
288
|
+
end
|
289
|
+
|
290
|
+
raise_invalid_request("Offset can't be negative") if options.key?(:offset) && options[:offset] < 0
|
291
|
+
|
292
|
+
if options.key?(:limit) && (options[:limit] > 20 || options[:limit] <= 0)
|
293
|
+
raise_invalid_request('The maximum number of results that can be '\
|
294
|
+
"fetched is 20. limit can't be more than 20 or less than 1")
|
295
|
+
end
|
296
|
+
|
297
|
+
perform_list(params)
|
298
|
+
end
|
299
|
+
|
300
|
+
# Create a ComplianceDocument
|
301
|
+
# @param [String] end_user_id
|
302
|
+
# @param [String] document_type_id
|
303
|
+
# @param [String] alias_
|
304
|
+
# @param [String] file
|
305
|
+
# @param [Hash] options
|
306
|
+
# @return [ComplianceDocument] ComplianceDocument
|
307
|
+
def create(end_user_id: nil , document_type_id: nil, alias_: nil, file: nil, **options)
|
308
|
+
valid_param?(:end_user_id, end_user_id, [String, Symbol], true)
|
309
|
+
valid_param?(:document_type_id, document_type_id, [String, Symbol], true)
|
310
|
+
valid_param?(:alias, :alias_, [String, Symbol], true)
|
311
|
+
|
312
|
+
params = {
|
313
|
+
end_user_id: end_user_id,
|
314
|
+
document_type_id: document_type_id,
|
315
|
+
alias: alias_
|
316
|
+
}
|
317
|
+
|
318
|
+
if !options.nil?
|
319
|
+
valid_param?(:options, options, Hash, false)
|
320
|
+
options.each do |key, value|
|
321
|
+
if valid_param?(key, value, [String, Symbol], false)
|
322
|
+
params[key] = value
|
323
|
+
end
|
324
|
+
end
|
325
|
+
end
|
326
|
+
|
327
|
+
upload(file, params) if !file.nil?
|
328
|
+
|
329
|
+
perform_create(params, use_multipart_conn: true)
|
330
|
+
end
|
331
|
+
|
332
|
+
# Update a ComplianceDocument
|
333
|
+
# @param [String] compliance_document_id
|
334
|
+
# @param [Hash] options
|
335
|
+
# return [ComplianceDocument] ComplianceDocument
|
336
|
+
def update(compliance_document_id, options = nil)
|
337
|
+
valid_param?(:compliance_document_id, compliance_document_id, [String, Symbol], true)
|
338
|
+
valid_param?(:options, options, Hash, true) if !options.nil?
|
339
|
+
params = {}
|
340
|
+
|
341
|
+
options.each do |key, value|
|
342
|
+
params[key] = value
|
343
|
+
end
|
344
|
+
|
345
|
+
upload(params[:file], params) if params.key?(:file)
|
346
|
+
|
347
|
+
ComplianceDocument.new(@_client, resource_id: compliance_document_id).update(params)
|
348
|
+
end
|
349
|
+
|
350
|
+
# Delete a ComplianceDocument
|
351
|
+
# @param [String] compliance_document_id
|
352
|
+
def delete(compliance_document_id)
|
353
|
+
valid_param?(:compliance_document_id, compliance_document_id, [String, Symbol], true)
|
354
|
+
ComplianceDocument.new(@_client, resource_id: compliance_document_id).delete
|
355
|
+
end
|
356
|
+
|
357
|
+
private
|
358
|
+
|
359
|
+
def upload(filepath, params)
|
360
|
+
file_extension = filepath.split('.')[-1]
|
361
|
+
|
362
|
+
content_type = case file_extension
|
363
|
+
when 'jpeg' then 'image/jpeg'
|
364
|
+
when 'jpg' then 'image/jpeg'
|
365
|
+
when 'png' then 'image/png'
|
366
|
+
when 'pdf' then 'application/pdf'
|
367
|
+
else raise_invalid_request("#{file_extension} is not supported for upload")
|
368
|
+
end
|
369
|
+
|
370
|
+
params[:file] = Faraday::UploadIO.new(filepath, content_type)
|
371
|
+
end
|
372
|
+
end
|
373
|
+
|
374
|
+
class ComplianceRequirement < Base::Resource
|
375
|
+
def initialize(client, options = nil)
|
376
|
+
@_name = 'ComplianceRequirement'
|
377
|
+
@_identifier_string = 'compliance_requirement'
|
378
|
+
super
|
379
|
+
end
|
380
|
+
|
381
|
+
def to_s
|
382
|
+
{
|
383
|
+
api_id: @api_id,
|
384
|
+
compliance_requirement_id: @compliance_requirement_id,
|
385
|
+
country_iso2: @country_iso2,
|
386
|
+
number_type: @number_type,
|
387
|
+
end_user_type: @end_user_type,
|
388
|
+
acceptable_document_types: @acceptable_document_types
|
389
|
+
}.delete_if { |key, value| value.nil? }.to_s
|
390
|
+
end
|
391
|
+
end
|
392
|
+
|
393
|
+
class ComplianceRequirementsInterface < Base::ResourceInterface
|
394
|
+
def initialize(client, resource_list_json = nil)
|
395
|
+
@_name = 'ComplianceRequirement'
|
396
|
+
@_resource_type = ComplianceRequirement
|
397
|
+
@_identifier_string = 'compliance_requirement'
|
398
|
+
super
|
399
|
+
end
|
400
|
+
|
401
|
+
# Get a ComplianceRequirement
|
402
|
+
# @param [String] compliance_requirement_id
|
403
|
+
# @return [ComplianceRequirement] ComplianceRequirement
|
404
|
+
def get(compliance_requirement_id)
|
405
|
+
valid_param?(:compliance_requirement_id, compliance_requirement_id, [String, Symbol], true)
|
406
|
+
perform_get(compliance_requirement_id)
|
407
|
+
end
|
408
|
+
|
409
|
+
# List all ComplianceRequirements
|
410
|
+
# @option options [String] :country_iso2
|
411
|
+
# @option options [String] :number_type
|
412
|
+
# @option options [String] :phone_number
|
413
|
+
# @option options [String] :end_user_type
|
414
|
+
# A combination of country_iso2, number_type, end_user_type OR
|
415
|
+
# phone_number, end_user_type can be used to fetch compliance requirements.
|
416
|
+
def list(options = nil)
|
417
|
+
valid_param?(:options, options, Hash, true)
|
418
|
+
|
419
|
+
params = {}
|
420
|
+
params_expected = %i[ country_iso2 number_type phone_number ]
|
421
|
+
params_expected.each do |param|
|
422
|
+
if options.key?(param) &&
|
423
|
+
valid_param?(param, options[param], [String, Symbol], false)
|
424
|
+
params[param] = options[param]
|
425
|
+
end
|
426
|
+
end
|
427
|
+
|
428
|
+
if options.key?(:end_user_type) &&
|
429
|
+
valid_param?(:end_user_type, options[:end_user_type].capitalize, [String, Symbol], false, %w[Business Individual])
|
430
|
+
params[:end_user_type] = options[:end_user_type].capitalize
|
431
|
+
end
|
432
|
+
|
433
|
+
perform_get_without_identifier(params)
|
434
|
+
end
|
435
|
+
end
|
436
|
+
|
437
|
+
class ComplianceApplication < Base::Resource
|
438
|
+
def initialize(client, options = nil)
|
439
|
+
@_name = 'ComplianceApplication'
|
440
|
+
@_identifier_string = 'compliance_application'
|
441
|
+
super
|
442
|
+
end
|
443
|
+
|
444
|
+
def to_s
|
445
|
+
{
|
446
|
+
api_id: @api_id,
|
447
|
+
created_at: @created_at,
|
448
|
+
compliance_application_id: @compliance_application_id,
|
449
|
+
alias: @alias,
|
450
|
+
status: @status,
|
451
|
+
end_user_id: @end_user_id,
|
452
|
+
end_user_type: @end_user_type,
|
453
|
+
country_iso2: @country_iso2,
|
454
|
+
number_type: @number_type,
|
455
|
+
compliance_requirement_id: @compliance_requirement_id,
|
456
|
+
documents: @documents,
|
457
|
+
}.delete_if { |key, value| value.nil? }.to_s
|
458
|
+
end
|
459
|
+
|
460
|
+
def update(params)
|
461
|
+
perform_update(params)
|
462
|
+
end
|
463
|
+
|
464
|
+
def delete
|
465
|
+
perform_delete
|
466
|
+
end
|
467
|
+
end
|
468
|
+
|
469
|
+
class ComplianceApplicationsInterface < Base::ResourceInterface
|
470
|
+
def initialize(client, resource_list_json = nil)
|
471
|
+
@_name = 'ComplianceApplication'
|
472
|
+
@_resource_type = ComplianceApplication
|
473
|
+
@_identifier_string = 'compliance_application'
|
474
|
+
super
|
475
|
+
end
|
476
|
+
|
477
|
+
# Get a ComplianceApplication
|
478
|
+
# @param [String] compliance_application_id
|
479
|
+
# @return [ComplianceApplication] ComplianceApplication
|
480
|
+
def get(compliance_application_id)
|
481
|
+
valid_param?(:compliance_application_id, compliance_application_id, [String, Symbol], true)
|
482
|
+
perform_get(compliance_application_id)
|
483
|
+
end
|
484
|
+
|
485
|
+
# List all ComplianceApplications
|
486
|
+
# @option options [Hash] :options
|
487
|
+
# @option options [Int] :offset
|
488
|
+
# @option options [Int] :limit
|
489
|
+
# @return [Hash]
|
490
|
+
def list(options = nil)
|
491
|
+
return perform_list if options.nil?
|
492
|
+
valid_param?(:options, options, Hash, true)
|
493
|
+
|
494
|
+
params = {}
|
495
|
+
params_expected = %i[ end_user_id country_iso2 number_type status ]
|
496
|
+
params_expected.each do |param|
|
497
|
+
if options.key?(param) &&
|
498
|
+
valid_param?(param, options[param], [String, Symbol], false)
|
499
|
+
params[param] = options[param]
|
500
|
+
end
|
501
|
+
end
|
502
|
+
|
503
|
+
if options.key?(:end_user_type) &&
|
504
|
+
valid_param?(:end_user_type, options[:end_user_type].capitalize, [String, Symbol], false, %w[Business Individual])
|
505
|
+
params[:end_user_type] = options[:end_user_type].capitalize
|
506
|
+
end
|
507
|
+
|
508
|
+
if options.key?(:alias) && valid_param?(:alias, options[:alias],[String, Symbol], false)
|
509
|
+
params[:alias] = options[:alias]
|
510
|
+
end
|
511
|
+
|
512
|
+
%i[offset limit].each do |param|
|
513
|
+
if options.key?(param) && valid_param?(param, options[param],
|
514
|
+
[Integer], true)
|
515
|
+
params[param] = options[param]
|
516
|
+
end
|
517
|
+
end
|
518
|
+
|
519
|
+
raise_invalid_request("Offset can't be negative") if options.key?(:offset) && options[:offset] < 0
|
520
|
+
|
521
|
+
if options.key?(:limit) && (options[:limit] > 20 || options[:limit] <= 0)
|
522
|
+
raise_invalid_request('The maximum number of results that can be '\
|
523
|
+
"fetched is 20. limit can't be more than 20 or less than 1")
|
524
|
+
end
|
525
|
+
|
526
|
+
perform_list(params)
|
527
|
+
end
|
528
|
+
|
529
|
+
# Create a ComplianceApplication
|
530
|
+
# @param [String] compliance_requirement_id
|
531
|
+
# @param [String] end_user_id
|
532
|
+
# @param [String] alias_
|
533
|
+
# @param [Array] document_ids
|
534
|
+
# @param [String] end_user_type
|
535
|
+
# @param [String] country_iso2
|
536
|
+
# @param [String] number_type
|
537
|
+
# @return [ComplianceApplication] ComplianceApplication
|
538
|
+
def create(compliance_requirement_id: nil, end_user_id: nil, alias_: nil,
|
539
|
+
document_ids: nil,
|
540
|
+
end_user_type: nil,
|
541
|
+
country_iso2: nil,
|
542
|
+
number_type: nil
|
543
|
+
)
|
544
|
+
valid_param?(:compliance_requirement_id, compliance_requirement_id, [String, Symbol], false)
|
545
|
+
valid_param?(:end_user_id, end_user_id, [String, Symbol], false)
|
546
|
+
valid_param?(:alias_, alias_, [String, Symbol], false)
|
547
|
+
valid_param?(:country_iso2, country_iso2, [String, Symbol], false)
|
548
|
+
valid_param?(:number_type, number_type, [String, Symbol], false)
|
549
|
+
valid_param?(:document_ids, document_ids, [Array], false)
|
550
|
+
if !document_ids.nil?
|
551
|
+
document_ids.each do |document_id|
|
552
|
+
valid_param?(:document_id, document_id, [String, Symbol], true)
|
553
|
+
end
|
554
|
+
end
|
555
|
+
|
556
|
+
if !end_user_type.nil?
|
557
|
+
end_user_type = end_user_type.downcase
|
558
|
+
valid_param?(:end_user_type, end_user_type, [String, Symbol], false, %w[business individual])
|
559
|
+
end
|
560
|
+
|
561
|
+
params = {
|
562
|
+
compliance_requirement_id: compliance_requirement_id,
|
563
|
+
end_user_id: end_user_id,
|
564
|
+
end_user_type: end_user_type,
|
565
|
+
country_iso2: country_iso2,
|
566
|
+
number_type: number_type,
|
567
|
+
document_ids: document_ids,
|
568
|
+
alias: alias_
|
569
|
+
}.delete_if { |key, value| value.nil? }
|
570
|
+
|
571
|
+
perform_create(params, false)
|
572
|
+
end
|
573
|
+
|
574
|
+
# Update a ComplianceApplication
|
575
|
+
# @param [String] compliance_application_id
|
576
|
+
# @param [Array] document_ids
|
577
|
+
# @return [ComplianceApplication] ComplianceApplication
|
578
|
+
def update(compliance_application_id, document_ids)
|
579
|
+
valid_param?(:compliance_application_id, compliance_application_id, [String, Symbol], true)
|
580
|
+
valid_param?(:document_ids, document_ids, [Array], true)
|
581
|
+
document_ids.each do |document_id|
|
582
|
+
valid_param?(:document_id, document_id, [String, Symbol], true)
|
583
|
+
end
|
584
|
+
|
585
|
+
params = {
|
586
|
+
compliance_application_id: compliance_application_id,
|
587
|
+
document_ids: document_ids
|
588
|
+
}
|
589
|
+
|
590
|
+
ComplianceApplication.new(@_client,
|
591
|
+
resource_id: compliance_application_id).update(params)
|
592
|
+
end
|
593
|
+
|
594
|
+
# Delete a ComplianceApplication
|
595
|
+
# @param [String] compliance_application_id
|
596
|
+
def delete(compliance_application_id)
|
597
|
+
valid_param?(:compliance_application_id, compliance_application_id, [String, Symbol], true)
|
598
|
+
ComplianceApplication.new(@_client,
|
599
|
+
resource_id: compliance_application_id).delete
|
600
|
+
end
|
601
|
+
|
602
|
+
# Submit a ComplianceApplication
|
603
|
+
# @param [String] compliance_application_id
|
604
|
+
def submit(compliance_application_id)
|
605
|
+
valid_param?(:compliance_application_id, compliance_application_id, [String, Symbol], true)
|
606
|
+
perform_submit(compliance_application_id)
|
607
|
+
end
|
608
|
+
end
|
609
|
+
end
|
610
|
+
end
|
data/lib/plivo/rest_client.rb
CHANGED
@@ -14,6 +14,8 @@ module Plivo
|
|
14
14
|
attr_reader :powerpacks
|
15
15
|
attr_reader :powerpacks, :media
|
16
16
|
attr_reader :lookup
|
17
|
+
attr_reader :end_users
|
18
|
+
attr_reader :compliance_document_types, :compliance_documents, :compliance_requirements, :compliance_applications
|
17
19
|
|
18
20
|
def initialize(auth_id = nil, auth_token = nil, proxy_options = nil, timeout = 5)
|
19
21
|
configure_base_uri
|
@@ -29,6 +31,7 @@ module Plivo
|
|
29
31
|
@voice_base_uri_fallback_1 = Base::API_VOICE_FALLBACK_1
|
30
32
|
@voice_base_uri_fallback_2 = Base::API_VOICE_FALLBACK_2
|
31
33
|
@callinsights_base_uri = Base::CALLINSIGHTS_API_URL
|
34
|
+
@lookup_base_uri = Base::LOOKUP_API_URL
|
32
35
|
end
|
33
36
|
|
34
37
|
def configure_interfaces
|
@@ -49,6 +52,11 @@ module Plivo
|
|
49
52
|
@identities = Resources::IdentityInterface.new(self)
|
50
53
|
@call_feedback = Resources::CallFeedbackInterface.new(self)
|
51
54
|
@lookup = Resources::LookupInterface.new(self)
|
55
|
+
@end_users = Resources::EndUsersInterface.new(self)
|
56
|
+
@compliance_document_types = Resources::ComplianceDocumentTypesInterface.new(self)
|
57
|
+
@compliance_documents = Resources::ComplianceDocumentsInterface.new(self)
|
58
|
+
@compliance_requirements = Resources::ComplianceRequirementsInterface.new(self)
|
59
|
+
@compliance_applications = Resources::ComplianceApplicationsInterface.new(self)
|
52
60
|
end
|
53
61
|
end
|
54
62
|
end
|
data/lib/plivo/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: plivo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- The Plivo SDKs Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -168,6 +168,7 @@ files:
|
|
168
168
|
- examples/lookup.rb
|
169
169
|
- examples/multi_party_call.rb
|
170
170
|
- examples/phlos.rb
|
171
|
+
- examples/regulatory_compliance.rb
|
171
172
|
- lib/plivo.rb
|
172
173
|
- lib/plivo/base.rb
|
173
174
|
- lib/plivo/base/resource.rb
|
@@ -196,6 +197,7 @@ files:
|
|
196
197
|
- lib/plivo/resources/powerpacks.rb
|
197
198
|
- lib/plivo/resources/pricings.rb
|
198
199
|
- lib/plivo/resources/recordings.rb
|
200
|
+
- lib/plivo/resources/regulatory_compliance.rb
|
199
201
|
- lib/plivo/rest_client.rb
|
200
202
|
- lib/plivo/utils.rb
|
201
203
|
- lib/plivo/version.rb
|