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.
Files changed (149) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +50 -0
  4. data/README.md +257 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/dataleon/client.rb +80 -0
  7. data/lib/dataleon/errors.rb +214 -0
  8. data/lib/dataleon/file_part.rb +55 -0
  9. data/lib/dataleon/internal/transport/base_client.rb +563 -0
  10. data/lib/dataleon/internal/transport/pooled_net_requester.rb +201 -0
  11. data/lib/dataleon/internal/type/array_of.rb +168 -0
  12. data/lib/dataleon/internal/type/base_model.rb +531 -0
  13. data/lib/dataleon/internal/type/base_page.rb +55 -0
  14. data/lib/dataleon/internal/type/boolean.rb +77 -0
  15. data/lib/dataleon/internal/type/converter.rb +327 -0
  16. data/lib/dataleon/internal/type/enum.rb +131 -0
  17. data/lib/dataleon/internal/type/file_input.rb +108 -0
  18. data/lib/dataleon/internal/type/hash_of.rb +188 -0
  19. data/lib/dataleon/internal/type/request_parameters.rb +42 -0
  20. data/lib/dataleon/internal/type/union.rb +237 -0
  21. data/lib/dataleon/internal/type/unknown.rb +81 -0
  22. data/lib/dataleon/internal/util.rb +914 -0
  23. data/lib/dataleon/internal.rb +20 -0
  24. data/lib/dataleon/models/check.rb +50 -0
  25. data/lib/dataleon/models/companies/document_list_params.rb +16 -0
  26. data/lib/dataleon/models/companies/document_upload_params.rb +82 -0
  27. data/lib/dataleon/models/company_create_params.rb +228 -0
  28. data/lib/dataleon/models/company_delete_params.rb +14 -0
  29. data/lib/dataleon/models/company_list_params.rb +108 -0
  30. data/lib/dataleon/models/company_list_response.rb +8 -0
  31. data/lib/dataleon/models/company_registration.rb +964 -0
  32. data/lib/dataleon/models/company_retrieve_params.rb +30 -0
  33. data/lib/dataleon/models/company_update_params.rb +228 -0
  34. data/lib/dataleon/models/individual.rb +805 -0
  35. data/lib/dataleon/models/individual_create_params.rb +174 -0
  36. data/lib/dataleon/models/individual_delete_params.rb +14 -0
  37. data/lib/dataleon/models/individual_list_params.rb +108 -0
  38. data/lib/dataleon/models/individual_list_response.rb +8 -0
  39. data/lib/dataleon/models/individual_retrieve_params.rb +30 -0
  40. data/lib/dataleon/models/individual_update_params.rb +174 -0
  41. data/lib/dataleon/models/individuals/document_list_params.rb +16 -0
  42. data/lib/dataleon/models/individuals/document_response.rb +98 -0
  43. data/lib/dataleon/models/individuals/document_upload_params.rb +82 -0
  44. data/lib/dataleon/models/individuals/generic_document.rb +132 -0
  45. data/lib/dataleon/models/individuals/kbis.rb +326 -0
  46. data/lib/dataleon/models.rb +71 -0
  47. data/lib/dataleon/request_options.rb +77 -0
  48. data/lib/dataleon/resources/companies/documents.rb +65 -0
  49. data/lib/dataleon/resources/companies.rb +164 -0
  50. data/lib/dataleon/resources/individuals/documents.rb +65 -0
  51. data/lib/dataleon/resources/individuals.rb +164 -0
  52. data/lib/dataleon/version.rb +5 -0
  53. data/lib/dataleon.rb +79 -0
  54. data/manifest.yaml +15 -0
  55. data/rbi/dataleon/client.rbi +56 -0
  56. data/rbi/dataleon/errors.rbi +178 -0
  57. data/rbi/dataleon/file_part.rbi +37 -0
  58. data/rbi/dataleon/internal/transport/base_client.rbi +293 -0
  59. data/rbi/dataleon/internal/transport/pooled_net_requester.rbi +79 -0
  60. data/rbi/dataleon/internal/type/array_of.rbi +104 -0
  61. data/rbi/dataleon/internal/type/base_model.rbi +302 -0
  62. data/rbi/dataleon/internal/type/base_page.rbi +42 -0
  63. data/rbi/dataleon/internal/type/boolean.rbi +58 -0
  64. data/rbi/dataleon/internal/type/converter.rbi +216 -0
  65. data/rbi/dataleon/internal/type/enum.rbi +82 -0
  66. data/rbi/dataleon/internal/type/file_input.rbi +59 -0
  67. data/rbi/dataleon/internal/type/hash_of.rbi +104 -0
  68. data/rbi/dataleon/internal/type/request_parameters.rbi +29 -0
  69. data/rbi/dataleon/internal/type/union.rbi +128 -0
  70. data/rbi/dataleon/internal/type/unknown.rbi +58 -0
  71. data/rbi/dataleon/internal/util.rbi +487 -0
  72. data/rbi/dataleon/internal.rbi +16 -0
  73. data/rbi/dataleon/models/check.rbi +83 -0
  74. data/rbi/dataleon/models/companies/document_list_params.rbi +32 -0
  75. data/rbi/dataleon/models/companies/document_upload_params.rbi +266 -0
  76. data/rbi/dataleon/models/company_create_params.rbi +361 -0
  77. data/rbi/dataleon/models/company_delete_params.rbi +27 -0
  78. data/rbi/dataleon/models/company_list_params.rbi +182 -0
  79. data/rbi/dataleon/models/company_list_response.rbi +11 -0
  80. data/rbi/dataleon/models/company_registration.rbi +1628 -0
  81. data/rbi/dataleon/models/company_retrieve_params.rbi +57 -0
  82. data/rbi/dataleon/models/company_update_params.rbi +361 -0
  83. data/rbi/dataleon/models/individual.rbi +1281 -0
  84. data/rbi/dataleon/models/individual_create_params.rbi +323 -0
  85. data/rbi/dataleon/models/individual_delete_params.rbi +27 -0
  86. data/rbi/dataleon/models/individual_list_params.rbi +193 -0
  87. data/rbi/dataleon/models/individual_list_response.rbi +11 -0
  88. data/rbi/dataleon/models/individual_retrieve_params.rbi +57 -0
  89. data/rbi/dataleon/models/individual_update_params.rbi +323 -0
  90. data/rbi/dataleon/models/individuals/document_list_params.rbi +32 -0
  91. data/rbi/dataleon/models/individuals/document_response.rbi +190 -0
  92. data/rbi/dataleon/models/individuals/document_upload_params.rbi +266 -0
  93. data/rbi/dataleon/models/individuals/generic_document.rbi +252 -0
  94. data/rbi/dataleon/models/individuals/kbis.rbi +513 -0
  95. data/rbi/dataleon/models.rbi +33 -0
  96. data/rbi/dataleon/request_options.rbi +59 -0
  97. data/rbi/dataleon/resources/companies/documents.rbi +52 -0
  98. data/rbi/dataleon/resources/companies.rbi +135 -0
  99. data/rbi/dataleon/resources/individuals/documents.rbi +52 -0
  100. data/rbi/dataleon/resources/individuals.rbi +137 -0
  101. data/rbi/dataleon/version.rbi +5 -0
  102. data/sig/dataleon/client.rbs +28 -0
  103. data/sig/dataleon/errors.rbs +110 -0
  104. data/sig/dataleon/file_part.rbs +21 -0
  105. data/sig/dataleon/internal/transport/base_client.rbs +131 -0
  106. data/sig/dataleon/internal/transport/pooled_net_requester.rbs +45 -0
  107. data/sig/dataleon/internal/type/array_of.rbs +48 -0
  108. data/sig/dataleon/internal/type/base_model.rbs +102 -0
  109. data/sig/dataleon/internal/type/base_page.rbs +24 -0
  110. data/sig/dataleon/internal/type/boolean.rbs +26 -0
  111. data/sig/dataleon/internal/type/converter.rbs +79 -0
  112. data/sig/dataleon/internal/type/enum.rbs +32 -0
  113. data/sig/dataleon/internal/type/file_input.rbs +25 -0
  114. data/sig/dataleon/internal/type/hash_of.rbs +48 -0
  115. data/sig/dataleon/internal/type/request_parameters.rbs +17 -0
  116. data/sig/dataleon/internal/type/union.rbs +52 -0
  117. data/sig/dataleon/internal/type/unknown.rbs +26 -0
  118. data/sig/dataleon/internal/util.rbs +185 -0
  119. data/sig/dataleon/internal.rbs +9 -0
  120. data/sig/dataleon/models/check.rbs +50 -0
  121. data/sig/dataleon/models/companies/document_list_params.rbs +17 -0
  122. data/sig/dataleon/models/companies/document_upload_params.rbs +119 -0
  123. data/sig/dataleon/models/company_create_params.rbs +209 -0
  124. data/sig/dataleon/models/company_delete_params.rbs +15 -0
  125. data/sig/dataleon/models/company_list_params.rbs +120 -0
  126. data/sig/dataleon/models/company_list_response.rbs +7 -0
  127. data/sig/dataleon/models/company_registration.rbs +847 -0
  128. data/sig/dataleon/models/company_retrieve_params.rbs +32 -0
  129. data/sig/dataleon/models/company_update_params.rbs +209 -0
  130. data/sig/dataleon/models/individual.rbs +717 -0
  131. data/sig/dataleon/models/individual_create_params.rbs +172 -0
  132. data/sig/dataleon/models/individual_delete_params.rbs +15 -0
  133. data/sig/dataleon/models/individual_list_params.rbs +120 -0
  134. data/sig/dataleon/models/individual_list_response.rbs +7 -0
  135. data/sig/dataleon/models/individual_retrieve_params.rbs +32 -0
  136. data/sig/dataleon/models/individual_update_params.rbs +172 -0
  137. data/sig/dataleon/models/individuals/document_list_params.rbs +17 -0
  138. data/sig/dataleon/models/individuals/document_response.rbs +101 -0
  139. data/sig/dataleon/models/individuals/document_upload_params.rbs +119 -0
  140. data/sig/dataleon/models/individuals/generic_document.rbs +132 -0
  141. data/sig/dataleon/models/individuals/kbis.rbs +303 -0
  142. data/sig/dataleon/models.rbs +31 -0
  143. data/sig/dataleon/request_options.rbs +34 -0
  144. data/sig/dataleon/resources/companies/documents.rbs +22 -0
  145. data/sig/dataleon/resources/companies.rbs +50 -0
  146. data/sig/dataleon/resources/individuals/documents.rbs +22 -0
  147. data/sig/dataleon/resources/individuals.rbs +50 -0
  148. data/sig/dataleon/version.rbs +3 -0
  149. 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
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dataleon
4
+ VERSION = "0.1.0.pre.alpha.1"
5
+ 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,15 @@
1
+ dependencies:
2
+ - English
3
+ - cgi
4
+ - date
5
+ - erb
6
+ - etc
7
+ - json
8
+ - net/http
9
+ - pathname
10
+ - rbconfig
11
+ - securerandom
12
+ - set
13
+ - stringio
14
+ - time
15
+ - uri
@@ -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