dataleon 0.1.0.pre.alpha.1
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 +7 -0
- data/.ignore +2 -0
- data/CHANGELOG.md +50 -0
- data/README.md +257 -0
- data/SECURITY.md +27 -0
- data/lib/dataleon/client.rb +80 -0
- data/lib/dataleon/errors.rb +214 -0
- data/lib/dataleon/file_part.rb +55 -0
- data/lib/dataleon/internal/transport/base_client.rb +563 -0
- data/lib/dataleon/internal/transport/pooled_net_requester.rb +201 -0
- data/lib/dataleon/internal/type/array_of.rb +168 -0
- data/lib/dataleon/internal/type/base_model.rb +531 -0
- data/lib/dataleon/internal/type/base_page.rb +55 -0
- data/lib/dataleon/internal/type/boolean.rb +77 -0
- data/lib/dataleon/internal/type/converter.rb +327 -0
- data/lib/dataleon/internal/type/enum.rb +131 -0
- data/lib/dataleon/internal/type/file_input.rb +108 -0
- data/lib/dataleon/internal/type/hash_of.rb +188 -0
- data/lib/dataleon/internal/type/request_parameters.rb +42 -0
- data/lib/dataleon/internal/type/union.rb +237 -0
- data/lib/dataleon/internal/type/unknown.rb +81 -0
- data/lib/dataleon/internal/util.rb +914 -0
- data/lib/dataleon/internal.rb +20 -0
- data/lib/dataleon/models/check.rb +50 -0
- data/lib/dataleon/models/companies/document_list_params.rb +16 -0
- data/lib/dataleon/models/companies/document_upload_params.rb +82 -0
- data/lib/dataleon/models/company_create_params.rb +228 -0
- data/lib/dataleon/models/company_delete_params.rb +14 -0
- data/lib/dataleon/models/company_list_params.rb +108 -0
- data/lib/dataleon/models/company_list_response.rb +8 -0
- data/lib/dataleon/models/company_registration.rb +964 -0
- data/lib/dataleon/models/company_retrieve_params.rb +30 -0
- data/lib/dataleon/models/company_update_params.rb +228 -0
- data/lib/dataleon/models/individual.rb +805 -0
- data/lib/dataleon/models/individual_create_params.rb +174 -0
- data/lib/dataleon/models/individual_delete_params.rb +14 -0
- data/lib/dataleon/models/individual_list_params.rb +108 -0
- data/lib/dataleon/models/individual_list_response.rb +8 -0
- data/lib/dataleon/models/individual_retrieve_params.rb +30 -0
- data/lib/dataleon/models/individual_update_params.rb +174 -0
- data/lib/dataleon/models/individuals/document_list_params.rb +16 -0
- data/lib/dataleon/models/individuals/document_response.rb +98 -0
- data/lib/dataleon/models/individuals/document_upload_params.rb +82 -0
- data/lib/dataleon/models/individuals/generic_document.rb +132 -0
- data/lib/dataleon/models/individuals/kbis.rb +326 -0
- data/lib/dataleon/models.rb +71 -0
- data/lib/dataleon/request_options.rb +77 -0
- data/lib/dataleon/resources/companies/documents.rb +65 -0
- data/lib/dataleon/resources/companies.rb +164 -0
- data/lib/dataleon/resources/individuals/documents.rb +65 -0
- data/lib/dataleon/resources/individuals.rb +164 -0
- data/lib/dataleon/version.rb +5 -0
- data/lib/dataleon.rb +79 -0
- data/manifest.yaml +15 -0
- data/rbi/dataleon/client.rbi +56 -0
- data/rbi/dataleon/errors.rbi +178 -0
- data/rbi/dataleon/file_part.rbi +37 -0
- data/rbi/dataleon/internal/transport/base_client.rbi +293 -0
- data/rbi/dataleon/internal/transport/pooled_net_requester.rbi +79 -0
- data/rbi/dataleon/internal/type/array_of.rbi +104 -0
- data/rbi/dataleon/internal/type/base_model.rbi +302 -0
- data/rbi/dataleon/internal/type/base_page.rbi +42 -0
- data/rbi/dataleon/internal/type/boolean.rbi +58 -0
- data/rbi/dataleon/internal/type/converter.rbi +216 -0
- data/rbi/dataleon/internal/type/enum.rbi +82 -0
- data/rbi/dataleon/internal/type/file_input.rbi +59 -0
- data/rbi/dataleon/internal/type/hash_of.rbi +104 -0
- data/rbi/dataleon/internal/type/request_parameters.rbi +29 -0
- data/rbi/dataleon/internal/type/union.rbi +128 -0
- data/rbi/dataleon/internal/type/unknown.rbi +58 -0
- data/rbi/dataleon/internal/util.rbi +487 -0
- data/rbi/dataleon/internal.rbi +16 -0
- data/rbi/dataleon/models/check.rbi +83 -0
- data/rbi/dataleon/models/companies/document_list_params.rbi +32 -0
- data/rbi/dataleon/models/companies/document_upload_params.rbi +266 -0
- data/rbi/dataleon/models/company_create_params.rbi +361 -0
- data/rbi/dataleon/models/company_delete_params.rbi +27 -0
- data/rbi/dataleon/models/company_list_params.rbi +182 -0
- data/rbi/dataleon/models/company_list_response.rbi +11 -0
- data/rbi/dataleon/models/company_registration.rbi +1628 -0
- data/rbi/dataleon/models/company_retrieve_params.rbi +57 -0
- data/rbi/dataleon/models/company_update_params.rbi +361 -0
- data/rbi/dataleon/models/individual.rbi +1281 -0
- data/rbi/dataleon/models/individual_create_params.rbi +323 -0
- data/rbi/dataleon/models/individual_delete_params.rbi +27 -0
- data/rbi/dataleon/models/individual_list_params.rbi +193 -0
- data/rbi/dataleon/models/individual_list_response.rbi +11 -0
- data/rbi/dataleon/models/individual_retrieve_params.rbi +57 -0
- data/rbi/dataleon/models/individual_update_params.rbi +323 -0
- data/rbi/dataleon/models/individuals/document_list_params.rbi +32 -0
- data/rbi/dataleon/models/individuals/document_response.rbi +190 -0
- data/rbi/dataleon/models/individuals/document_upload_params.rbi +266 -0
- data/rbi/dataleon/models/individuals/generic_document.rbi +252 -0
- data/rbi/dataleon/models/individuals/kbis.rbi +513 -0
- data/rbi/dataleon/models.rbi +33 -0
- data/rbi/dataleon/request_options.rbi +59 -0
- data/rbi/dataleon/resources/companies/documents.rbi +52 -0
- data/rbi/dataleon/resources/companies.rbi +135 -0
- data/rbi/dataleon/resources/individuals/documents.rbi +52 -0
- data/rbi/dataleon/resources/individuals.rbi +137 -0
- data/rbi/dataleon/version.rbi +5 -0
- data/sig/dataleon/client.rbs +28 -0
- data/sig/dataleon/errors.rbs +110 -0
- data/sig/dataleon/file_part.rbs +21 -0
- data/sig/dataleon/internal/transport/base_client.rbs +131 -0
- data/sig/dataleon/internal/transport/pooled_net_requester.rbs +45 -0
- data/sig/dataleon/internal/type/array_of.rbs +48 -0
- data/sig/dataleon/internal/type/base_model.rbs +102 -0
- data/sig/dataleon/internal/type/base_page.rbs +24 -0
- data/sig/dataleon/internal/type/boolean.rbs +26 -0
- data/sig/dataleon/internal/type/converter.rbs +79 -0
- data/sig/dataleon/internal/type/enum.rbs +32 -0
- data/sig/dataleon/internal/type/file_input.rbs +25 -0
- data/sig/dataleon/internal/type/hash_of.rbs +48 -0
- data/sig/dataleon/internal/type/request_parameters.rbs +17 -0
- data/sig/dataleon/internal/type/union.rbs +52 -0
- data/sig/dataleon/internal/type/unknown.rbs +26 -0
- data/sig/dataleon/internal/util.rbs +185 -0
- data/sig/dataleon/internal.rbs +9 -0
- data/sig/dataleon/models/check.rbs +50 -0
- data/sig/dataleon/models/companies/document_list_params.rbs +17 -0
- data/sig/dataleon/models/companies/document_upload_params.rbs +119 -0
- data/sig/dataleon/models/company_create_params.rbs +209 -0
- data/sig/dataleon/models/company_delete_params.rbs +15 -0
- data/sig/dataleon/models/company_list_params.rbs +120 -0
- data/sig/dataleon/models/company_list_response.rbs +7 -0
- data/sig/dataleon/models/company_registration.rbs +847 -0
- data/sig/dataleon/models/company_retrieve_params.rbs +32 -0
- data/sig/dataleon/models/company_update_params.rbs +209 -0
- data/sig/dataleon/models/individual.rbs +717 -0
- data/sig/dataleon/models/individual_create_params.rbs +172 -0
- data/sig/dataleon/models/individual_delete_params.rbs +15 -0
- data/sig/dataleon/models/individual_list_params.rbs +120 -0
- data/sig/dataleon/models/individual_list_response.rbs +7 -0
- data/sig/dataleon/models/individual_retrieve_params.rbs +32 -0
- data/sig/dataleon/models/individual_update_params.rbs +172 -0
- data/sig/dataleon/models/individuals/document_list_params.rbs +17 -0
- data/sig/dataleon/models/individuals/document_response.rbs +101 -0
- data/sig/dataleon/models/individuals/document_upload_params.rbs +119 -0
- data/sig/dataleon/models/individuals/generic_document.rbs +132 -0
- data/sig/dataleon/models/individuals/kbis.rbs +303 -0
- data/sig/dataleon/models.rbs +31 -0
- data/sig/dataleon/request_options.rbs +34 -0
- data/sig/dataleon/resources/companies/documents.rbs +22 -0
- data/sig/dataleon/resources/companies.rbs +50 -0
- data/sig/dataleon/resources/individuals/documents.rbs +22 -0
- data/sig/dataleon/resources/individuals.rbs +50 -0
- data/sig/dataleon/version.rbs +3 -0
- metadata +206 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Dataleon
|
|
4
|
+
module Resources
|
|
5
|
+
class Companies
|
|
6
|
+
class Documents
|
|
7
|
+
# Get documents to an company
|
|
8
|
+
#
|
|
9
|
+
# @overload list(company_id, request_options: {})
|
|
10
|
+
#
|
|
11
|
+
# @param company_id [String] ID of the company to upload document
|
|
12
|
+
#
|
|
13
|
+
# @param request_options [Dataleon::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
14
|
+
#
|
|
15
|
+
# @return [Dataleon::Models::Individuals::DocumentResponse]
|
|
16
|
+
#
|
|
17
|
+
# @see Dataleon::Models::Companies::DocumentListParams
|
|
18
|
+
def list(company_id, params = {})
|
|
19
|
+
@client.request(
|
|
20
|
+
method: :get,
|
|
21
|
+
path: ["companies/%1$s/documents", company_id],
|
|
22
|
+
model: Dataleon::Individuals::DocumentResponse,
|
|
23
|
+
options: params[:request_options]
|
|
24
|
+
)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Upload documents to an company
|
|
28
|
+
#
|
|
29
|
+
# @overload upload(company_id, document_type:, file: nil, url: nil, request_options: {})
|
|
30
|
+
#
|
|
31
|
+
# @param company_id [String] ID of the company to upload document
|
|
32
|
+
#
|
|
33
|
+
# @param document_type [Symbol, Dataleon::Models::Companies::DocumentUploadParams::DocumentType] Filter by document type for upload (must be one of the allowed values)
|
|
34
|
+
#
|
|
35
|
+
# @param file [Pathname, StringIO, IO, String, Dataleon::FilePart] File to upload (required)
|
|
36
|
+
#
|
|
37
|
+
# @param url [String] URL of the file to upload (either `file` or `url` is required)
|
|
38
|
+
#
|
|
39
|
+
# @param request_options [Dataleon::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
40
|
+
#
|
|
41
|
+
# @return [Dataleon::Models::Individuals::GenericDocument]
|
|
42
|
+
#
|
|
43
|
+
# @see Dataleon::Models::Companies::DocumentUploadParams
|
|
44
|
+
def upload(company_id, params)
|
|
45
|
+
parsed, options = Dataleon::Companies::DocumentUploadParams.dump_request(params)
|
|
46
|
+
@client.request(
|
|
47
|
+
method: :post,
|
|
48
|
+
path: ["companies/%1$s/documents", company_id],
|
|
49
|
+
headers: {"content-type" => "multipart/form-data"},
|
|
50
|
+
body: parsed,
|
|
51
|
+
model: Dataleon::Individuals::GenericDocument,
|
|
52
|
+
options: options
|
|
53
|
+
)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# @api private
|
|
57
|
+
#
|
|
58
|
+
# @param client [Dataleon::Client]
|
|
59
|
+
def initialize(client:)
|
|
60
|
+
@client = client
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Dataleon
|
|
4
|
+
module Resources
|
|
5
|
+
class Companies
|
|
6
|
+
# @return [Dataleon::Resources::Companies::Documents]
|
|
7
|
+
attr_reader :documents
|
|
8
|
+
|
|
9
|
+
# Some parameter documentations has been truncated, see
|
|
10
|
+
# {Dataleon::Models::CompanyCreateParams} for more details.
|
|
11
|
+
#
|
|
12
|
+
# Create a new company
|
|
13
|
+
#
|
|
14
|
+
# @overload create(company:, workspace_id:, source_id: nil, technical_data: nil, request_options: {})
|
|
15
|
+
#
|
|
16
|
+
# @param company [Dataleon::Models::CompanyCreateParams::Company] Main information about the company being registered.
|
|
17
|
+
#
|
|
18
|
+
# @param workspace_id [String] Unique identifier of the workspace in which the company is being created.
|
|
19
|
+
#
|
|
20
|
+
# @param source_id [String] Optional identifier to track the origin of the request or integration from your
|
|
21
|
+
#
|
|
22
|
+
# @param technical_data [Dataleon::Models::CompanyCreateParams::TechnicalData] Technical metadata and callback configuration.
|
|
23
|
+
#
|
|
24
|
+
# @param request_options [Dataleon::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
25
|
+
#
|
|
26
|
+
# @return [Dataleon::Models::CompanyRegistration]
|
|
27
|
+
#
|
|
28
|
+
# @see Dataleon::Models::CompanyCreateParams
|
|
29
|
+
def create(params)
|
|
30
|
+
parsed, options = Dataleon::CompanyCreateParams.dump_request(params)
|
|
31
|
+
@client.request(
|
|
32
|
+
method: :post,
|
|
33
|
+
path: "companies",
|
|
34
|
+
body: parsed,
|
|
35
|
+
model: Dataleon::CompanyRegistration,
|
|
36
|
+
options: options
|
|
37
|
+
)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Get a company by ID
|
|
41
|
+
#
|
|
42
|
+
# @overload retrieve(company_id, document: nil, scope: nil, request_options: {})
|
|
43
|
+
#
|
|
44
|
+
# @param company_id [String] ID of the company
|
|
45
|
+
#
|
|
46
|
+
# @param document [Boolean] Include document signed url
|
|
47
|
+
#
|
|
48
|
+
# @param scope [String] Scope filter (id or scope)
|
|
49
|
+
#
|
|
50
|
+
# @param request_options [Dataleon::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
51
|
+
#
|
|
52
|
+
# @return [Dataleon::Models::CompanyRegistration]
|
|
53
|
+
#
|
|
54
|
+
# @see Dataleon::Models::CompanyRetrieveParams
|
|
55
|
+
def retrieve(company_id, params = {})
|
|
56
|
+
parsed, options = Dataleon::CompanyRetrieveParams.dump_request(params)
|
|
57
|
+
@client.request(
|
|
58
|
+
method: :get,
|
|
59
|
+
path: ["companies/%1$s", company_id],
|
|
60
|
+
query: parsed,
|
|
61
|
+
model: Dataleon::CompanyRegistration,
|
|
62
|
+
options: options
|
|
63
|
+
)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Some parameter documentations has been truncated, see
|
|
67
|
+
# {Dataleon::Models::CompanyUpdateParams} for more details.
|
|
68
|
+
#
|
|
69
|
+
# Update a company by ID
|
|
70
|
+
#
|
|
71
|
+
# @overload update(company_id, company:, workspace_id:, source_id: nil, technical_data: nil, request_options: {})
|
|
72
|
+
#
|
|
73
|
+
# @param company_id [String] ID of the company to update
|
|
74
|
+
#
|
|
75
|
+
# @param company [Dataleon::Models::CompanyUpdateParams::Company] Main information about the company being registered.
|
|
76
|
+
#
|
|
77
|
+
# @param workspace_id [String] Unique identifier of the workspace in which the company is being created.
|
|
78
|
+
#
|
|
79
|
+
# @param source_id [String] Optional identifier to track the origin of the request or integration from your
|
|
80
|
+
#
|
|
81
|
+
# @param technical_data [Dataleon::Models::CompanyUpdateParams::TechnicalData] Technical metadata and callback configuration.
|
|
82
|
+
#
|
|
83
|
+
# @param request_options [Dataleon::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
84
|
+
#
|
|
85
|
+
# @return [Dataleon::Models::CompanyRegistration]
|
|
86
|
+
#
|
|
87
|
+
# @see Dataleon::Models::CompanyUpdateParams
|
|
88
|
+
def update(company_id, params)
|
|
89
|
+
parsed, options = Dataleon::CompanyUpdateParams.dump_request(params)
|
|
90
|
+
@client.request(
|
|
91
|
+
method: :put,
|
|
92
|
+
path: ["companies/%1$s", company_id],
|
|
93
|
+
body: parsed,
|
|
94
|
+
model: Dataleon::CompanyRegistration,
|
|
95
|
+
options: options
|
|
96
|
+
)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Get all companies
|
|
100
|
+
#
|
|
101
|
+
# @overload list(end_date: nil, limit: nil, offset: nil, source_id: nil, start_date: nil, state: nil, status: nil, workspace_id: nil, request_options: {})
|
|
102
|
+
#
|
|
103
|
+
# @param end_date [Date] Filter companies created before this date (format YYYY-MM-DD)
|
|
104
|
+
#
|
|
105
|
+
# @param limit [Integer] Number of results to return (between 1 and 100)
|
|
106
|
+
#
|
|
107
|
+
# @param offset [Integer] Number of results to skip (must be ≥ 0)
|
|
108
|
+
#
|
|
109
|
+
# @param source_id [String] Filter by source ID
|
|
110
|
+
#
|
|
111
|
+
# @param start_date [Date] Filter companies created after this date (format YYYY-MM-DD)
|
|
112
|
+
#
|
|
113
|
+
# @param state [Symbol, Dataleon::Models::CompanyListParams::State] Filter by company state (must be one of the allowed values)
|
|
114
|
+
#
|
|
115
|
+
# @param status [Symbol, Dataleon::Models::CompanyListParams::Status] Filter by individual status (must be one of the allowed values)
|
|
116
|
+
#
|
|
117
|
+
# @param workspace_id [String] Filter by workspace ID
|
|
118
|
+
#
|
|
119
|
+
# @param request_options [Dataleon::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
120
|
+
#
|
|
121
|
+
# @return [Array<Dataleon::Models::CompanyRegistration>]
|
|
122
|
+
#
|
|
123
|
+
# @see Dataleon::Models::CompanyListParams
|
|
124
|
+
def list(params = {})
|
|
125
|
+
parsed, options = Dataleon::CompanyListParams.dump_request(params)
|
|
126
|
+
@client.request(
|
|
127
|
+
method: :get,
|
|
128
|
+
path: "companies",
|
|
129
|
+
query: parsed,
|
|
130
|
+
model: Dataleon::Internal::Type::ArrayOf[Dataleon::CompanyRegistration],
|
|
131
|
+
options: options
|
|
132
|
+
)
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
# Delete a company by ID
|
|
136
|
+
#
|
|
137
|
+
# @overload delete(company_id, request_options: {})
|
|
138
|
+
#
|
|
139
|
+
# @param company_id [String] ID of the company to delete
|
|
140
|
+
#
|
|
141
|
+
# @param request_options [Dataleon::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
142
|
+
#
|
|
143
|
+
# @return [nil]
|
|
144
|
+
#
|
|
145
|
+
# @see Dataleon::Models::CompanyDeleteParams
|
|
146
|
+
def delete(company_id, params = {})
|
|
147
|
+
@client.request(
|
|
148
|
+
method: :delete,
|
|
149
|
+
path: ["companies/%1$s", company_id],
|
|
150
|
+
model: NilClass,
|
|
151
|
+
options: params[:request_options]
|
|
152
|
+
)
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
# @api private
|
|
156
|
+
#
|
|
157
|
+
# @param client [Dataleon::Client]
|
|
158
|
+
def initialize(client:)
|
|
159
|
+
@client = client
|
|
160
|
+
@documents = Dataleon::Resources::Companies::Documents.new(client: client)
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Dataleon
|
|
4
|
+
module Resources
|
|
5
|
+
class Individuals
|
|
6
|
+
class Documents
|
|
7
|
+
# Get documents to an individuals
|
|
8
|
+
#
|
|
9
|
+
# @overload list(individual_id, request_options: {})
|
|
10
|
+
#
|
|
11
|
+
# @param individual_id [String] ID of the individual to upload document
|
|
12
|
+
#
|
|
13
|
+
# @param request_options [Dataleon::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
14
|
+
#
|
|
15
|
+
# @return [Dataleon::Models::Individuals::DocumentResponse]
|
|
16
|
+
#
|
|
17
|
+
# @see Dataleon::Models::Individuals::DocumentListParams
|
|
18
|
+
def list(individual_id, params = {})
|
|
19
|
+
@client.request(
|
|
20
|
+
method: :get,
|
|
21
|
+
path: ["individuals/%1$s/documents", individual_id],
|
|
22
|
+
model: Dataleon::Individuals::DocumentResponse,
|
|
23
|
+
options: params[:request_options]
|
|
24
|
+
)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Upload documents to an individual
|
|
28
|
+
#
|
|
29
|
+
# @overload upload(individual_id, document_type:, file: nil, url: nil, request_options: {})
|
|
30
|
+
#
|
|
31
|
+
# @param individual_id [String] ID of the individual to upload document
|
|
32
|
+
#
|
|
33
|
+
# @param document_type [Symbol, Dataleon::Models::Individuals::DocumentUploadParams::DocumentType] Filter by document type for upload (must be one of the allowed values)
|
|
34
|
+
#
|
|
35
|
+
# @param file [Pathname, StringIO, IO, String, Dataleon::FilePart] File to upload (required)
|
|
36
|
+
#
|
|
37
|
+
# @param url [String] URL of the file to upload (either `file` or `url` is required)
|
|
38
|
+
#
|
|
39
|
+
# @param request_options [Dataleon::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
40
|
+
#
|
|
41
|
+
# @return [Dataleon::Models::Individuals::GenericDocument]
|
|
42
|
+
#
|
|
43
|
+
# @see Dataleon::Models::Individuals::DocumentUploadParams
|
|
44
|
+
def upload(individual_id, params)
|
|
45
|
+
parsed, options = Dataleon::Individuals::DocumentUploadParams.dump_request(params)
|
|
46
|
+
@client.request(
|
|
47
|
+
method: :post,
|
|
48
|
+
path: ["individuals/%1$s/documents", individual_id],
|
|
49
|
+
headers: {"content-type" => "multipart/form-data"},
|
|
50
|
+
body: parsed,
|
|
51
|
+
model: Dataleon::Individuals::GenericDocument,
|
|
52
|
+
options: options
|
|
53
|
+
)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# @api private
|
|
57
|
+
#
|
|
58
|
+
# @param client [Dataleon::Client]
|
|
59
|
+
def initialize(client:)
|
|
60
|
+
@client = client
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Dataleon
|
|
4
|
+
module Resources
|
|
5
|
+
class Individuals
|
|
6
|
+
# @return [Dataleon::Resources::Individuals::Documents]
|
|
7
|
+
attr_reader :documents
|
|
8
|
+
|
|
9
|
+
# Some parameter documentations has been truncated, see
|
|
10
|
+
# {Dataleon::Models::IndividualCreateParams} for more details.
|
|
11
|
+
#
|
|
12
|
+
# Create a new individual
|
|
13
|
+
#
|
|
14
|
+
# @overload create(workspace_id:, person: nil, source_id: nil, technical_data: nil, request_options: {})
|
|
15
|
+
#
|
|
16
|
+
# @param workspace_id [String] Unique identifier of the workspace where the individual is being registered.
|
|
17
|
+
#
|
|
18
|
+
# @param person [Dataleon::Models::IndividualCreateParams::Person] Personal information about the individual.
|
|
19
|
+
#
|
|
20
|
+
# @param source_id [String] Optional identifier for tracking the source system or integration from your syst
|
|
21
|
+
#
|
|
22
|
+
# @param technical_data [Dataleon::Models::IndividualCreateParams::TechnicalData] Technical metadata related to the request or processing.
|
|
23
|
+
#
|
|
24
|
+
# @param request_options [Dataleon::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
25
|
+
#
|
|
26
|
+
# @return [Dataleon::Models::Individual]
|
|
27
|
+
#
|
|
28
|
+
# @see Dataleon::Models::IndividualCreateParams
|
|
29
|
+
def create(params)
|
|
30
|
+
parsed, options = Dataleon::IndividualCreateParams.dump_request(params)
|
|
31
|
+
@client.request(
|
|
32
|
+
method: :post,
|
|
33
|
+
path: "individuals",
|
|
34
|
+
body: parsed,
|
|
35
|
+
model: Dataleon::Individual,
|
|
36
|
+
options: options
|
|
37
|
+
)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Get an individual by ID
|
|
41
|
+
#
|
|
42
|
+
# @overload retrieve(individual_id, document: nil, scope: nil, request_options: {})
|
|
43
|
+
#
|
|
44
|
+
# @param individual_id [String] ID of the individual
|
|
45
|
+
#
|
|
46
|
+
# @param document [Boolean] Include document information
|
|
47
|
+
#
|
|
48
|
+
# @param scope [String] Scope filter (id or scope)
|
|
49
|
+
#
|
|
50
|
+
# @param request_options [Dataleon::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
51
|
+
#
|
|
52
|
+
# @return [Dataleon::Models::Individual]
|
|
53
|
+
#
|
|
54
|
+
# @see Dataleon::Models::IndividualRetrieveParams
|
|
55
|
+
def retrieve(individual_id, params = {})
|
|
56
|
+
parsed, options = Dataleon::IndividualRetrieveParams.dump_request(params)
|
|
57
|
+
@client.request(
|
|
58
|
+
method: :get,
|
|
59
|
+
path: ["individuals/%1$s", individual_id],
|
|
60
|
+
query: parsed,
|
|
61
|
+
model: Dataleon::Individual,
|
|
62
|
+
options: options
|
|
63
|
+
)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Some parameter documentations has been truncated, see
|
|
67
|
+
# {Dataleon::Models::IndividualUpdateParams} for more details.
|
|
68
|
+
#
|
|
69
|
+
# Update an individual by ID
|
|
70
|
+
#
|
|
71
|
+
# @overload update(individual_id, workspace_id:, person: nil, source_id: nil, technical_data: nil, request_options: {})
|
|
72
|
+
#
|
|
73
|
+
# @param individual_id [String] ID of the individual to update
|
|
74
|
+
#
|
|
75
|
+
# @param workspace_id [String] Unique identifier of the workspace where the individual is being registered.
|
|
76
|
+
#
|
|
77
|
+
# @param person [Dataleon::Models::IndividualUpdateParams::Person] Personal information about the individual.
|
|
78
|
+
#
|
|
79
|
+
# @param source_id [String] Optional identifier for tracking the source system or integration from your syst
|
|
80
|
+
#
|
|
81
|
+
# @param technical_data [Dataleon::Models::IndividualUpdateParams::TechnicalData] Technical metadata related to the request or processing.
|
|
82
|
+
#
|
|
83
|
+
# @param request_options [Dataleon::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
84
|
+
#
|
|
85
|
+
# @return [Dataleon::Models::Individual]
|
|
86
|
+
#
|
|
87
|
+
# @see Dataleon::Models::IndividualUpdateParams
|
|
88
|
+
def update(individual_id, params)
|
|
89
|
+
parsed, options = Dataleon::IndividualUpdateParams.dump_request(params)
|
|
90
|
+
@client.request(
|
|
91
|
+
method: :put,
|
|
92
|
+
path: ["individuals/%1$s", individual_id],
|
|
93
|
+
body: parsed,
|
|
94
|
+
model: Dataleon::Individual,
|
|
95
|
+
options: options
|
|
96
|
+
)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Get all individuals
|
|
100
|
+
#
|
|
101
|
+
# @overload list(end_date: nil, limit: nil, offset: nil, source_id: nil, start_date: nil, state: nil, status: nil, workspace_id: nil, request_options: {})
|
|
102
|
+
#
|
|
103
|
+
# @param end_date [Date] Filter individuals created before this date (format YYYY-MM-DD)
|
|
104
|
+
#
|
|
105
|
+
# @param limit [Integer] Number of results to return (between 1 and 100)
|
|
106
|
+
#
|
|
107
|
+
# @param offset [Integer] Number of results to offset (must be ≥ 0)
|
|
108
|
+
#
|
|
109
|
+
# @param source_id [String] Filter by source ID
|
|
110
|
+
#
|
|
111
|
+
# @param start_date [Date] Filter individuals created after this date (format YYYY-MM-DD)
|
|
112
|
+
#
|
|
113
|
+
# @param state [Symbol, Dataleon::Models::IndividualListParams::State] Filter by individual status (must be one of the allowed values)
|
|
114
|
+
#
|
|
115
|
+
# @param status [Symbol, Dataleon::Models::IndividualListParams::Status] Filter by individual status (must be one of the allowed values)
|
|
116
|
+
#
|
|
117
|
+
# @param workspace_id [String] Filter by workspace ID
|
|
118
|
+
#
|
|
119
|
+
# @param request_options [Dataleon::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
120
|
+
#
|
|
121
|
+
# @return [Array<Dataleon::Models::Individual>]
|
|
122
|
+
#
|
|
123
|
+
# @see Dataleon::Models::IndividualListParams
|
|
124
|
+
def list(params = {})
|
|
125
|
+
parsed, options = Dataleon::IndividualListParams.dump_request(params)
|
|
126
|
+
@client.request(
|
|
127
|
+
method: :get,
|
|
128
|
+
path: "individuals",
|
|
129
|
+
query: parsed,
|
|
130
|
+
model: Dataleon::Internal::Type::ArrayOf[Dataleon::Individual],
|
|
131
|
+
options: options
|
|
132
|
+
)
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
# Delete an individual by ID
|
|
136
|
+
#
|
|
137
|
+
# @overload delete(individual_id, request_options: {})
|
|
138
|
+
#
|
|
139
|
+
# @param individual_id [String] ID of the individual to delete
|
|
140
|
+
#
|
|
141
|
+
# @param request_options [Dataleon::RequestOptions, Hash{Symbol=>Object}, nil]
|
|
142
|
+
#
|
|
143
|
+
# @return [nil]
|
|
144
|
+
#
|
|
145
|
+
# @see Dataleon::Models::IndividualDeleteParams
|
|
146
|
+
def delete(individual_id, params = {})
|
|
147
|
+
@client.request(
|
|
148
|
+
method: :delete,
|
|
149
|
+
path: ["individuals/%1$s", individual_id],
|
|
150
|
+
model: NilClass,
|
|
151
|
+
options: params[:request_options]
|
|
152
|
+
)
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
# @api private
|
|
156
|
+
#
|
|
157
|
+
# @param client [Dataleon::Client]
|
|
158
|
+
def initialize(client:)
|
|
159
|
+
@client = client
|
|
160
|
+
@documents = Dataleon::Resources::Individuals::Documents.new(client: client)
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|
data/lib/dataleon.rb
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Standard libraries.
|
|
4
|
+
# rubocop:disable Lint/RedundantRequireStatement
|
|
5
|
+
require "English"
|
|
6
|
+
require "cgi"
|
|
7
|
+
require "date"
|
|
8
|
+
require "erb"
|
|
9
|
+
require "etc"
|
|
10
|
+
require "json"
|
|
11
|
+
require "net/http"
|
|
12
|
+
require "pathname"
|
|
13
|
+
require "rbconfig"
|
|
14
|
+
require "securerandom"
|
|
15
|
+
require "set"
|
|
16
|
+
require "stringio"
|
|
17
|
+
require "time"
|
|
18
|
+
require "uri"
|
|
19
|
+
# rubocop:enable Lint/RedundantRequireStatement
|
|
20
|
+
|
|
21
|
+
# We already ship the preferred sorbet manifests in the package itself.
|
|
22
|
+
# `tapioca` currently does not offer us a way to opt out of unnecessary compilation.
|
|
23
|
+
if Object.const_defined?(:Tapioca) &&
|
|
24
|
+
caller.chain([$PROGRAM_NAME]).chain(ARGV).any?(/tapioca/) &&
|
|
25
|
+
ARGV.none?(/dsl/)
|
|
26
|
+
return
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Gems.
|
|
30
|
+
require "connection_pool"
|
|
31
|
+
|
|
32
|
+
# Package files.
|
|
33
|
+
require_relative "dataleon/version"
|
|
34
|
+
require_relative "dataleon/internal/util"
|
|
35
|
+
require_relative "dataleon/internal/type/converter"
|
|
36
|
+
require_relative "dataleon/internal/type/unknown"
|
|
37
|
+
require_relative "dataleon/internal/type/boolean"
|
|
38
|
+
require_relative "dataleon/internal/type/file_input"
|
|
39
|
+
require_relative "dataleon/internal/type/enum"
|
|
40
|
+
require_relative "dataleon/internal/type/union"
|
|
41
|
+
require_relative "dataleon/internal/type/array_of"
|
|
42
|
+
require_relative "dataleon/internal/type/hash_of"
|
|
43
|
+
require_relative "dataleon/internal/type/base_model"
|
|
44
|
+
require_relative "dataleon/internal/type/base_page"
|
|
45
|
+
require_relative "dataleon/internal/type/request_parameters"
|
|
46
|
+
require_relative "dataleon/internal"
|
|
47
|
+
require_relative "dataleon/request_options"
|
|
48
|
+
require_relative "dataleon/file_part"
|
|
49
|
+
require_relative "dataleon/errors"
|
|
50
|
+
require_relative "dataleon/internal/transport/base_client"
|
|
51
|
+
require_relative "dataleon/internal/transport/pooled_net_requester"
|
|
52
|
+
require_relative "dataleon/client"
|
|
53
|
+
require_relative "dataleon/models/check"
|
|
54
|
+
require_relative "dataleon/models/companies/document_list_params"
|
|
55
|
+
require_relative "dataleon/models/companies/document_upload_params"
|
|
56
|
+
require_relative "dataleon/models/company_create_params"
|
|
57
|
+
require_relative "dataleon/models/company_delete_params"
|
|
58
|
+
require_relative "dataleon/models/company_list_params"
|
|
59
|
+
require_relative "dataleon/models/company_list_response"
|
|
60
|
+
require_relative "dataleon/models/company_registration"
|
|
61
|
+
require_relative "dataleon/models/company_retrieve_params"
|
|
62
|
+
require_relative "dataleon/models/company_update_params"
|
|
63
|
+
require_relative "dataleon/models/individual"
|
|
64
|
+
require_relative "dataleon/models/individual_create_params"
|
|
65
|
+
require_relative "dataleon/models/individual_delete_params"
|
|
66
|
+
require_relative "dataleon/models/individual_list_params"
|
|
67
|
+
require_relative "dataleon/models/individual_list_response"
|
|
68
|
+
require_relative "dataleon/models/individual_retrieve_params"
|
|
69
|
+
require_relative "dataleon/models/individuals/document_list_params"
|
|
70
|
+
require_relative "dataleon/models/individuals/document_response"
|
|
71
|
+
require_relative "dataleon/models/individuals/document_upload_params"
|
|
72
|
+
require_relative "dataleon/models/individuals/generic_document"
|
|
73
|
+
require_relative "dataleon/models/individuals/kbis"
|
|
74
|
+
require_relative "dataleon/models/individual_update_params"
|
|
75
|
+
require_relative "dataleon/models"
|
|
76
|
+
require_relative "dataleon/resources/companies"
|
|
77
|
+
require_relative "dataleon/resources/companies/documents"
|
|
78
|
+
require_relative "dataleon/resources/individuals"
|
|
79
|
+
require_relative "dataleon/resources/individuals/documents"
|
data/manifest.yaml
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Dataleon
|
|
4
|
+
class Client < Dataleon::Internal::Transport::BaseClient
|
|
5
|
+
DEFAULT_MAX_RETRIES = 2
|
|
6
|
+
|
|
7
|
+
DEFAULT_TIMEOUT_IN_SECONDS = T.let(60.0, Float)
|
|
8
|
+
|
|
9
|
+
DEFAULT_INITIAL_RETRY_DELAY = T.let(0.5, Float)
|
|
10
|
+
|
|
11
|
+
DEFAULT_MAX_RETRY_DELAY = T.let(8.0, Float)
|
|
12
|
+
|
|
13
|
+
# API key needed to authorize requests. You must provide a valid API key in the
|
|
14
|
+
# `Api-Key` header. Get your API key from the Dataleon dashboard.
|
|
15
|
+
sig { returns(String) }
|
|
16
|
+
attr_reader :api_key
|
|
17
|
+
|
|
18
|
+
sig { returns(Dataleon::Resources::Individuals) }
|
|
19
|
+
attr_reader :individuals
|
|
20
|
+
|
|
21
|
+
sig { returns(Dataleon::Resources::Companies) }
|
|
22
|
+
attr_reader :companies
|
|
23
|
+
|
|
24
|
+
# @api private
|
|
25
|
+
sig { override.returns(T::Hash[String, String]) }
|
|
26
|
+
private def auth_headers
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Creates and returns a new client for interacting with the API.
|
|
30
|
+
sig do
|
|
31
|
+
params(
|
|
32
|
+
api_key: T.nilable(String),
|
|
33
|
+
base_url: T.nilable(String),
|
|
34
|
+
max_retries: Integer,
|
|
35
|
+
timeout: Float,
|
|
36
|
+
initial_retry_delay: Float,
|
|
37
|
+
max_retry_delay: Float
|
|
38
|
+
).returns(T.attached_class)
|
|
39
|
+
end
|
|
40
|
+
def self.new(
|
|
41
|
+
# API key needed to authorize requests. You must provide a valid API key in the
|
|
42
|
+
# `Api-Key` header. Get your API key from the Dataleon dashboard. Defaults to
|
|
43
|
+
# `ENV["DATALEON_API_KEY"]`
|
|
44
|
+
api_key: ENV["DATALEON_API_KEY"],
|
|
45
|
+
# Override the default base URL for the API, e.g.,
|
|
46
|
+
# `"https://api.example.com/v2/"`. Defaults to `ENV["DATALEON_BASE_URL"]`
|
|
47
|
+
base_url: ENV["DATALEON_BASE_URL"],
|
|
48
|
+
# Max number of retries to attempt after a failed retryable request.
|
|
49
|
+
max_retries: Dataleon::Client::DEFAULT_MAX_RETRIES,
|
|
50
|
+
timeout: Dataleon::Client::DEFAULT_TIMEOUT_IN_SECONDS,
|
|
51
|
+
initial_retry_delay: Dataleon::Client::DEFAULT_INITIAL_RETRY_DELAY,
|
|
52
|
+
max_retry_delay: Dataleon::Client::DEFAULT_MAX_RETRY_DELAY
|
|
53
|
+
)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|