didit-sdk 1.0.0

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 (234) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +25 -0
  3. data/LICENSE +21 -0
  4. data/README.md +277 -0
  5. data/lib/didit/authentication/base64_url.rb +34 -0
  6. data/lib/didit/authentication/cache.rb +201 -0
  7. data/lib/didit/authentication/http.rb +150 -0
  8. data/lib/didit/authentication/issuer.rb +115 -0
  9. data/lib/didit/authentication/jws.rb +231 -0
  10. data/lib/didit/authentication/key_set.rb +89 -0
  11. data/lib/didit/authentication/pkce.rb +64 -0
  12. data/lib/didit/authentication/types.rb +175 -0
  13. data/lib/didit/authentication.rb +546 -0
  14. data/lib/didit/client.rb +211 -0
  15. data/lib/didit/errors.rb +153 -0
  16. data/lib/didit/file_part.rb +85 -0
  17. data/lib/didit/internal/config.rb +94 -0
  18. data/lib/didit/internal/errors.rb +83 -0
  19. data/lib/didit/internal/log.rb +41 -0
  20. data/lib/didit/internal/multipart.rb +60 -0
  21. data/lib/didit/internal/request.rb +322 -0
  22. data/lib/didit/internal/transport.rb +198 -0
  23. data/lib/didit/internal/util.rb +76 -0
  24. data/lib/didit/internal.rb +15 -0
  25. data/lib/didit/model.rb +199 -0
  26. data/lib/didit/page.rb +130 -0
  27. data/lib/didit/raw_response.rb +57 -0
  28. data/lib/didit/resource.rb +15 -0
  29. data/lib/didit/resources/account.rb +309 -0
  30. data/lib/didit/resources/address_validation.rb +73 -0
  31. data/lib/didit/resources/age_estimation.rb +110 -0
  32. data/lib/didit/resources/aml.rb +166 -0
  33. data/lib/didit/resources/aml_monitoring.rb +30 -0
  34. data/lib/didit/resources/analytics.rb +87 -0
  35. data/lib/didit/resources/bank.rb +65 -0
  36. data/lib/didit/resources/billing.rb +61 -0
  37. data/lib/didit/resources/biometric_templates.rb +234 -0
  38. data/lib/didit/resources/blocklist.rb +130 -0
  39. data/lib/didit/resources/business_sessions.rb +29 -0
  40. data/lib/didit/resources/businesses.rb +471 -0
  41. data/lib/didit/resources/cases.rb +2116 -0
  42. data/lib/didit/resources/customization.rb +153 -0
  43. data/lib/didit/resources/database_validation.rb +327 -0
  44. data/lib/didit/resources/document_ai.rb +145 -0
  45. data/lib/didit/resources/email.rb +254 -0
  46. data/lib/didit/resources/face_match.rb +103 -0
  47. data/lib/didit/resources/face_search.rb +103 -0
  48. data/lib/didit/resources/fraud_checks.rb +130 -0
  49. data/lib/didit/resources/id_verification.rb +163 -0
  50. data/lib/didit/resources/id_wallets.rb +1468 -0
  51. data/lib/didit/resources/investigator.rb +419 -0
  52. data/lib/didit/resources/ip.rb +68 -0
  53. data/lib/didit/resources/kyb.rb +256 -0
  54. data/lib/didit/resources/lists.rb +332 -0
  55. data/lib/didit/resources/monitoring_events.rb +466 -0
  56. data/lib/didit/resources/networks.rb +427 -0
  57. data/lib/didit/resources/passive_liveness.rb +103 -0
  58. data/lib/didit/resources/phone.rb +271 -0
  59. data/lib/didit/resources/pricing.rb +40 -0
  60. data/lib/didit/resources/proof_of_address.rb +167 -0
  61. data/lib/didit/resources/questionnaires.rb +170 -0
  62. data/lib/didit/resources/regulatory_reports.rb +314 -0
  63. data/lib/didit/resources/report_templates.rb +146 -0
  64. data/lib/didit/resources/sessions.rb +2820 -0
  65. data/lib/didit/resources/transactions.rb +981 -0
  66. data/lib/didit/resources/travel_rule.rb +1202 -0
  67. data/lib/didit/resources/users.rb +521 -0
  68. data/lib/didit/resources/wallet_screening.rb +190 -0
  69. data/lib/didit/resources/webhooks.rb +396 -0
  70. data/lib/didit/resources/workflows.rb +214 -0
  71. data/lib/didit/resources.rb +263 -0
  72. data/lib/didit/types/account.rb +11 -0
  73. data/lib/didit/types/account_components.rb +105 -0
  74. data/lib/didit/types/address_validation.rb +8 -0
  75. data/lib/didit/types/age_estimation.rb +89 -0
  76. data/lib/didit/types/aml.rb +193 -0
  77. data/lib/didit/types/aml_monitoring.rb +73 -0
  78. data/lib/didit/types/analytics.rb +62 -0
  79. data/lib/didit/types/bank.rb +8 -0
  80. data/lib/didit/types/billing.rb +18 -0
  81. data/lib/didit/types/biometric_templates.rb +292 -0
  82. data/lib/didit/types/blocklist.rb +31 -0
  83. data/lib/didit/types/businesses.rb +45 -0
  84. data/lib/didit/types/cases.rb +368 -0
  85. data/lib/didit/types/components.rb +12206 -0
  86. data/lib/didit/types/customization.rb +8 -0
  87. data/lib/didit/types/database_validation.rb +177 -0
  88. data/lib/didit/types/document_ai.rb +135 -0
  89. data/lib/didit/types/email.rb +116 -0
  90. data/lib/didit/types/face_match.rb +93 -0
  91. data/lib/didit/types/face_search.rb +129 -0
  92. data/lib/didit/types/fraud_checks.rb +8 -0
  93. data/lib/didit/types/id_verification.rb +231 -0
  94. data/lib/didit/types/id_wallets.rb +8 -0
  95. data/lib/didit/types/investigator.rb +221 -0
  96. data/lib/didit/types/ip.rb +8 -0
  97. data/lib/didit/types/kyb.rb +1391 -0
  98. data/lib/didit/types/lists.rb +111 -0
  99. data/lib/didit/types/monitoring_events.rb +235 -0
  100. data/lib/didit/types/networks.rb +120 -0
  101. data/lib/didit/types/passive_liveness.rb +95 -0
  102. data/lib/didit/types/phone.rb +69 -0
  103. data/lib/didit/types/proof_of_address.rb +166 -0
  104. data/lib/didit/types/questionnaires.rb +29 -0
  105. data/lib/didit/types/regulatory_reports.rb +100 -0
  106. data/lib/didit/types/report_templates.rb +41 -0
  107. data/lib/didit/types/sessions.rb +1441 -0
  108. data/lib/didit/types/transactions.rb +245 -0
  109. data/lib/didit/types/travel_rule.rb +168 -0
  110. data/lib/didit/types/users.rb +180 -0
  111. data/lib/didit/types/wallet_screening.rb +49 -0
  112. data/lib/didit/types/webhooks.rb +355 -0
  113. data/lib/didit/types/workflows.rb +32 -0
  114. data/lib/didit/types.rb +1681 -0
  115. data/lib/didit/version.rb +5 -0
  116. data/lib/didit/webhooks/canonical_json.rb +187 -0
  117. data/lib/didit/webhooks/client_methods.rb +23 -0
  118. data/lib/didit/webhooks/events.rb +221 -0
  119. data/lib/didit/webhooks/headers.rb +83 -0
  120. data/lib/didit/webhooks/verifier.rb +260 -0
  121. data/lib/didit/webhooks.rb +99 -0
  122. data/lib/didit-sdk.rb +4 -0
  123. data/lib/didit.rb +31 -0
  124. data/sig/didit/authentication/base64_url.rbs +10 -0
  125. data/sig/didit/authentication/cache.rbs +60 -0
  126. data/sig/didit/authentication/http.rbs +37 -0
  127. data/sig/didit/authentication/issuer.rbs +17 -0
  128. data/sig/didit/authentication/jws.rbs +41 -0
  129. data/sig/didit/authentication/jwt.rbs +14 -0
  130. data/sig/didit/authentication/key_set.rbs +25 -0
  131. data/sig/didit/authentication/pkce.rbs +20 -0
  132. data/sig/didit/authentication/types.rbs +114 -0
  133. data/sig/didit/authentication.rbs +81 -0
  134. data/sig/didit/client.rbs +61 -0
  135. data/sig/didit/errors.rbs +80 -0
  136. data/sig/didit/file_part.rbs +19 -0
  137. data/sig/didit/internal.rbs +199 -0
  138. data/sig/didit/model.rbs +42 -0
  139. data/sig/didit/page.rbs +34 -0
  140. data/sig/didit/raw_response.rbs +20 -0
  141. data/sig/didit/resource.rbs +8 -0
  142. data/sig/didit/resources/account.rbs +23 -0
  143. data/sig/didit/resources/address_validation.rbs +9 -0
  144. data/sig/didit/resources/age_estimation.rbs +9 -0
  145. data/sig/didit/resources/aml.rbs +10 -0
  146. data/sig/didit/resources/aml_monitoring.rbs +9 -0
  147. data/sig/didit/resources/analytics.rbs +9 -0
  148. data/sig/didit/resources/bank.rbs +9 -0
  149. data/sig/didit/resources/billing.rbs +10 -0
  150. data/sig/didit/resources/biometric_templates.rbs +13 -0
  151. data/sig/didit/resources/blocklist.rbs +11 -0
  152. data/sig/didit/resources/business_sessions.rbs +9 -0
  153. data/sig/didit/resources/businesses.rbs +22 -0
  154. data/sig/didit/resources/cases.rbs +103 -0
  155. data/sig/didit/resources/customization.rbs +10 -0
  156. data/sig/didit/resources/database_validation.rbs +9 -0
  157. data/sig/didit/resources/document_ai.rbs +9 -0
  158. data/sig/didit/resources/email.rbs +11 -0
  159. data/sig/didit/resources/face_match.rbs +9 -0
  160. data/sig/didit/resources/face_search.rbs +9 -0
  161. data/sig/didit/resources/fraud_checks.rbs +11 -0
  162. data/sig/didit/resources/id_verification.rbs +9 -0
  163. data/sig/didit/resources/id_wallets.rbs +37 -0
  164. data/sig/didit/resources/investigator.rbs +23 -0
  165. data/sig/didit/resources/ip.rbs +9 -0
  166. data/sig/didit/resources/kyb.rbs +12 -0
  167. data/sig/didit/resources/lists.rbs +20 -0
  168. data/sig/didit/resources/monitoring_events.rbs +16 -0
  169. data/sig/didit/resources/networks.rbs +25 -0
  170. data/sig/didit/resources/passive_liveness.rbs +9 -0
  171. data/sig/didit/resources/phone.rbs +11 -0
  172. data/sig/didit/resources/pricing.rbs +9 -0
  173. data/sig/didit/resources/proof_of_address.rbs +9 -0
  174. data/sig/didit/resources/questionnaires.rbs +13 -0
  175. data/sig/didit/resources/regulatory_reports.rbs +16 -0
  176. data/sig/didit/resources/report_templates.rbs +13 -0
  177. data/sig/didit/resources/sessions.rbs +78 -0
  178. data/sig/didit/resources/transactions.rbs +43 -0
  179. data/sig/didit/resources/travel_rule.rbs +62 -0
  180. data/sig/didit/resources/users.rbs +21 -0
  181. data/sig/didit/resources/wallet_screening.rbs +11 -0
  182. data/sig/didit/resources/webhooks.rbs +23 -0
  183. data/sig/didit/resources/workflows.rbs +13 -0
  184. data/sig/didit/resources.rbs +50 -0
  185. data/sig/didit/types/account.rbs +22 -0
  186. data/sig/didit/types/account_components.rbs +94 -0
  187. data/sig/didit/types/address_validation.rbs +7 -0
  188. data/sig/didit/types/age_estimation.rbs +80 -0
  189. data/sig/didit/types/aml.rbs +174 -0
  190. data/sig/didit/types/aml_monitoring.rbs +67 -0
  191. data/sig/didit/types/analytics.rbs +57 -0
  192. data/sig/didit/types/bank.rbs +9 -0
  193. data/sig/didit/types/billing.rbs +19 -0
  194. data/sig/didit/types/biometric_templates.rbs +268 -0
  195. data/sig/didit/types/blocklist.rbs +33 -0
  196. data/sig/didit/types/businesses.rbs +54 -0
  197. data/sig/didit/types/cases.rbs +414 -0
  198. data/sig/didit/types/components.rbs +10920 -0
  199. data/sig/didit/types/customization.rbs +7 -0
  200. data/sig/didit/types/database_validation.rbs +152 -0
  201. data/sig/didit/types/document_ai.rbs +123 -0
  202. data/sig/didit/types/email.rbs +112 -0
  203. data/sig/didit/types/face_match.rbs +86 -0
  204. data/sig/didit/types/face_search.rbs +112 -0
  205. data/sig/didit/types/fraud_checks.rbs +9 -0
  206. data/sig/didit/types/id_verification.rbs +196 -0
  207. data/sig/didit/types/id_wallets.rbs +55 -0
  208. data/sig/didit/types/investigator.rbs +212 -0
  209. data/sig/didit/types/ip.rbs +7 -0
  210. data/sig/didit/types/kyb.rbs +1254 -0
  211. data/sig/didit/types/lists.rbs +106 -0
  212. data/sig/didit/types/monitoring_events.rbs +234 -0
  213. data/sig/didit/types/networks.rbs +113 -0
  214. data/sig/didit/types/passive_liveness.rbs +87 -0
  215. data/sig/didit/types/phone.rbs +65 -0
  216. data/sig/didit/types/proof_of_address.rbs +144 -0
  217. data/sig/didit/types/questionnaires.rbs +30 -0
  218. data/sig/didit/types/regulatory_reports.rbs +101 -0
  219. data/sig/didit/types/report_templates.rbs +42 -0
  220. data/sig/didit/types/sessions.rbs +1349 -0
  221. data/sig/didit/types/transactions.rbs +273 -0
  222. data/sig/didit/types/travel_rule.rbs +188 -0
  223. data/sig/didit/types/users.rbs +181 -0
  224. data/sig/didit/types/wallet_screening.rbs +40 -0
  225. data/sig/didit/types/webhooks.rbs +311 -0
  226. data/sig/didit/types/workflows.rbs +30 -0
  227. data/sig/didit/webhooks/canonical_json.rbs +25 -0
  228. data/sig/didit/webhooks/client_methods.rbs +11 -0
  229. data/sig/didit/webhooks/events.rbs +125 -0
  230. data/sig/didit/webhooks/headers.rbs +22 -0
  231. data/sig/didit/webhooks/verifier.rbs +54 -0
  232. data/sig/didit/webhooks.rbs +37 -0
  233. data/sig/didit.rbs +20 -0
  234. metadata +300 -0
@@ -0,0 +1,314 @@
1
+ # Code generated by codegen from openapi/*.json. DO NOT EDIT.
2
+ # frozen_string_literal: true
3
+
4
+ module Didit
5
+ module Resources
6
+ # The +regulatory_reports+ resource.
7
+ class RegulatoryReports < Didit::Resource
8
+ # Create standalone report
9
+ #
10
+ # Create a draft FIU report from the standalone Reports page: both case and template are required (unlike the
11
+ # case-scoped create, which can omit template).
12
+ #
13
+ # +POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/+
14
+ #
15
+ # @param case [String]
16
+ # @param template [String]
17
+ # @param report_type [String] Required unless a template is given; the template's report_type is used otherwise.
18
+ # @param jurisdiction [String] Required unless a template is given.
19
+ # @param transactions [Array<String>, nil] Transactions to attach; defaults to the case's linked transactions.
20
+ # @param rentity_id [String, nil]
21
+ # @param rentity_branch [String, nil]
22
+ # @param submission_code [String]
23
+ # @param entity_reference [String, nil]
24
+ # @param fiu_ref_number [String, nil]
25
+ # @param currency_code_local [String, nil]
26
+ # @param submission_date [Time, String, nil]
27
+ # @param reporting_person [Hash]
28
+ # @param location [Hash]
29
+ # @param reason [String, nil]
30
+ # @param action [String, nil]
31
+ # @param activity [String, nil]
32
+ # @param narrative [Hash]
33
+ # @param report_indicators [Array<String>]
34
+ # @param included_fields [Array<String>]
35
+ # @param request_options [Hash, nil] :timeout, :max_retries, :extra_headers, :extra_query, :extra_body
36
+ # @return [Didit::Types::RegulatoryReportDetail]
37
+ def create(
38
+ case:,
39
+ template:,
40
+ report_type: OMIT,
41
+ jurisdiction: OMIT,
42
+ transactions: OMIT,
43
+ rentity_id: OMIT,
44
+ rentity_branch: OMIT,
45
+ submission_code: OMIT,
46
+ entity_reference: OMIT,
47
+ fiu_ref_number: OMIT,
48
+ currency_code_local: OMIT,
49
+ submission_date: OMIT,
50
+ reporting_person: OMIT,
51
+ location: OMIT,
52
+ reason: OMIT,
53
+ action: OMIT,
54
+ activity: OMIT,
55
+ narrative: OMIT,
56
+ report_indicators: OMIT,
57
+ included_fields: OMIT,
58
+ request_options: nil
59
+ )
60
+ @client.request(
61
+ :post,
62
+ "/v3/organization/{organization_id}/application/{application_id}/regulatory-reports/",
63
+ body: {
64
+ "case" => binding.local_variable_get(:case),
65
+ "template" => template,
66
+ "report_type" => report_type,
67
+ "jurisdiction" => jurisdiction,
68
+ "transactions" => transactions,
69
+ "rentity_id" => rentity_id,
70
+ "rentity_branch" => rentity_branch,
71
+ "submission_code" => submission_code,
72
+ "entity_reference" => entity_reference,
73
+ "fiu_ref_number" => fiu_ref_number,
74
+ "currency_code_local" => currency_code_local,
75
+ "submission_date" => submission_date,
76
+ "reporting_person" => reporting_person,
77
+ "location" => location,
78
+ "reason" => reason,
79
+ "action" => action,
80
+ "activity" => activity,
81
+ "narrative" => narrative,
82
+ "report_indicators" => report_indicators,
83
+ "included_fields" => included_fields
84
+ },
85
+ scope: :application,
86
+ response: Types::RegulatoryReportDetail,
87
+ request_options: request_options
88
+ )
89
+ end
90
+
91
+ # Delete report
92
+ #
93
+ # Delete a regulatory report permanently. The report, its copied narrative and reasons, its transaction links,
94
+ # and its generated goAML XML and PDF are erased, including every stored version of those files. The report
95
+ # disappears from lists and download URLs stop working. Other records, including the case, transactions, people
96
+ # and companies, are not deleted. There is no undo.
97
+ #
98
+ # A draft or validated report can be deleted without a request body. Deleting a finalized report requires
99
+ # `confirm_delete: true` in the request body. If the report is missing, the request returns `404`; if a
100
+ # finalized report is sent without confirmation, it returns `400` and nothing is deleted.
101
+ #
102
+ # +DELETE /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/+
103
+ #
104
+ # @param report_uuid [String] Report UUID.
105
+ # @param confirm_delete [Boolean] Set to true to confirm that a finalized report and its generated files are
106
+ # deleted permanently.
107
+ # @param request_options [Hash, nil] :timeout, :max_retries, :extra_headers, :extra_query, :extra_body
108
+ # @return [nil]
109
+ def delete(report_uuid, confirm_delete: OMIT, request_options: nil)
110
+ @client.request(
111
+ :delete,
112
+ "/v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/",
113
+ path_params: { "report_uuid" => report_uuid },
114
+ body: {
115
+ "confirm_delete" => confirm_delete
116
+ },
117
+ scope: :application,
118
+ request_options: request_options
119
+ )
120
+ end
121
+
122
+ # Finalize report
123
+ #
124
+ # Re-validate, then render the goAML XML and PDF and upload both to S3. On SAR/STR/TFR reports, this also moves
125
+ # the case's transaction alerts from Pending SAR to SAR filed.
126
+ #
127
+ # +POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/finalize/+
128
+ #
129
+ # @param report_uuid [String] Report UUID.
130
+ # @param request_options [Hash, nil] :timeout, :max_retries, :extra_headers, :extra_query, :extra_body
131
+ # @return [Didit::Types::RegulatoryReportDetail]
132
+ def finalize(report_uuid, request_options: nil)
133
+ @client.request(
134
+ :post,
135
+ "/v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/finalize/",
136
+ path_params: { "report_uuid" => report_uuid },
137
+ scope: :application,
138
+ response: Types::RegulatoryReportDetail,
139
+ request_options: request_options
140
+ )
141
+ end
142
+
143
+ # List reports
144
+ #
145
+ # Application-wide FIU report list, optionally filtered by status, report_type, or case.
146
+ #
147
+ # +GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/+
148
+ #
149
+ # @param limit [Integer] Page size.
150
+ # @param offset [Integer] Zero-based offset.
151
+ # @param status [String] Filter by status.
152
+ # @param report_type [String] Filter by report type.
153
+ # @param case [String] Filter to reports on this case.
154
+ # @param request_options [Hash, nil] :timeout, :max_retries, :extra_headers, :extra_query, :extra_body
155
+ # @return [Didit::Page<Didit::Types::RegulatoryReportDetail>]
156
+ def list(limit: OMIT, offset: OMIT, status: OMIT, report_type: OMIT, case: OMIT, request_options: nil)
157
+ @client.request(
158
+ :get,
159
+ "/v3/organization/{organization_id}/application/{application_id}/regulatory-reports/",
160
+ query: {
161
+ "limit" => limit,
162
+ "offset" => offset,
163
+ "status" => status,
164
+ "report_type" => report_type,
165
+ "case" => binding.local_variable_get(:case)
166
+ },
167
+ scope: :application,
168
+ page: Types::RegulatoryReportDetail,
169
+ request_options: request_options
170
+ )
171
+ end
172
+
173
+ # Get report
174
+ #
175
+ # Retrieve a regulatory report.
176
+ #
177
+ # +GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/+
178
+ #
179
+ # @param report_uuid [String] Report UUID.
180
+ # @param request_options [Hash, nil] :timeout, :max_retries, :extra_headers, :extra_query, :extra_body
181
+ # @return [Didit::Types::RegulatoryReportDetail]
182
+ def retrieve(report_uuid, request_options: nil)
183
+ @client.request(
184
+ :get,
185
+ "/v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/",
186
+ path_params: { "report_uuid" => report_uuid },
187
+ scope: :application,
188
+ response: Types::RegulatoryReportDetail,
189
+ request_options: request_options
190
+ )
191
+ end
192
+
193
+ # Get report download URL
194
+ #
195
+ # Mint a presigned URL for a finalized report's goAML XML or PDF.
196
+ #
197
+ # +GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/download-url/+
198
+ #
199
+ # @param report_uuid [String] Report UUID.
200
+ # @param file [String] Which file to download.
201
+ # @param request_options [Hash, nil] :timeout, :max_retries, :extra_headers, :extra_query, :extra_body
202
+ # @return [Didit::Types::RegulatoryReportsRetrieveDownloadUrlResponse]
203
+ def retrieve_download_url(report_uuid, file: OMIT, request_options: nil)
204
+ @client.request(
205
+ :get,
206
+ "/v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/download-url/",
207
+ path_params: { "report_uuid" => report_uuid },
208
+ query: {
209
+ "file" => file
210
+ },
211
+ scope: :application,
212
+ response: Types::RegulatoryReportsRetrieveDownloadUrlResponse,
213
+ request_options: request_options
214
+ )
215
+ end
216
+
217
+ # Update report
218
+ #
219
+ # Edit a draft or validated report's fields. Finalized reports cannot be edited (409).
220
+ #
221
+ # +PATCH /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/+
222
+ #
223
+ # @param report_uuid [String] Report UUID.
224
+ # @param jurisdiction [String]
225
+ # @param rentity_id [String, nil]
226
+ # @param rentity_branch [String, nil]
227
+ # @param submission_code [String]
228
+ # @param entity_reference [String, nil]
229
+ # @param fiu_ref_number [String, nil]
230
+ # @param currency_code_local [String, nil]
231
+ # @param submission_date [Time, String, nil]
232
+ # @param reporting_person [Hash]
233
+ # @param location [Hash]
234
+ # @param reason [String, nil]
235
+ # @param action [String, nil]
236
+ # @param activity [String, nil]
237
+ # @param narrative [Hash]
238
+ # @param report_indicators [Array<String>]
239
+ # @param included_fields [Array<String>]
240
+ # @param request_options [Hash, nil] :timeout, :max_retries, :extra_headers, :extra_query, :extra_body
241
+ # @return [Didit::Types::RegulatoryReportDetail]
242
+ def update(
243
+ report_uuid,
244
+ jurisdiction: OMIT,
245
+ rentity_id: OMIT,
246
+ rentity_branch: OMIT,
247
+ submission_code: OMIT,
248
+ entity_reference: OMIT,
249
+ fiu_ref_number: OMIT,
250
+ currency_code_local: OMIT,
251
+ submission_date: OMIT,
252
+ reporting_person: OMIT,
253
+ location: OMIT,
254
+ reason: OMIT,
255
+ action: OMIT,
256
+ activity: OMIT,
257
+ narrative: OMIT,
258
+ report_indicators: OMIT,
259
+ included_fields: OMIT,
260
+ request_options: nil
261
+ )
262
+ @client.request(
263
+ :patch,
264
+ "/v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/",
265
+ path_params: { "report_uuid" => report_uuid },
266
+ body: {
267
+ "jurisdiction" => jurisdiction,
268
+ "rentity_id" => rentity_id,
269
+ "rentity_branch" => rentity_branch,
270
+ "submission_code" => submission_code,
271
+ "entity_reference" => entity_reference,
272
+ "fiu_ref_number" => fiu_ref_number,
273
+ "currency_code_local" => currency_code_local,
274
+ "submission_date" => submission_date,
275
+ "reporting_person" => reporting_person,
276
+ "location" => location,
277
+ "reason" => reason,
278
+ "action" => action,
279
+ "activity" => activity,
280
+ "narrative" => narrative,
281
+ "report_indicators" => report_indicators,
282
+ "included_fields" => included_fields
283
+ },
284
+ scope: :application,
285
+ response: Types::RegulatoryReportDetail,
286
+ request_options: request_options
287
+ )
288
+ end
289
+
290
+ # Validate report
291
+ #
292
+ # Check the report against the obligatory goAML header fields (reporting entity ID, submission code, local
293
+ # currency, action taken, submission date), plus at least one attached transaction and a 2-letter jurisdiction,
294
+ # without generating any files. Also stores the result on the report: validation_errors and validated_at are
295
+ # updated, and a non-finalized report's status moves to VALIDATED (no errors) or back to DRAFT (errors).
296
+ #
297
+ # +POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/validate/+
298
+ #
299
+ # @param report_uuid [String] Report UUID.
300
+ # @param request_options [Hash, nil] :timeout, :max_retries, :extra_headers, :extra_query, :extra_body
301
+ # @return [Didit::Types::RegulatoryReportsValidateResponse]
302
+ def validate(report_uuid, request_options: nil)
303
+ @client.request(
304
+ :post,
305
+ "/v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/validate/",
306
+ path_params: { "report_uuid" => report_uuid },
307
+ scope: :application,
308
+ response: Types::RegulatoryReportsValidateResponse,
309
+ request_options: request_options
310
+ )
311
+ end
312
+ end
313
+ end
314
+ end
@@ -0,0 +1,146 @@
1
+ # Code generated by codegen from openapi/*.json. DO NOT EDIT.
2
+ # frozen_string_literal: true
3
+
4
+ module Didit
5
+ module Resources
6
+ # The +report_templates+ resource.
7
+ class ReportTemplates < Didit::Resource
8
+ # Create report template
9
+ #
10
+ # Create a reusable per-jurisdiction, per-report-type goAML header template. Rejected with 400 if any of the
11
+ # template-level obligatory fields (rentity_id, submission_code, currency_code_local) is missing from
12
+ # field_config; an invalid template cannot be saved or used to create a report. Per-filing header fields
13
+ # (action, submission_date, transactions) are enforced at report validate/finalize time instead.
14
+ #
15
+ # +POST /v3/organization/{organization_id}/application/{application_id}/report-templates/+
16
+ #
17
+ # @param name [String]
18
+ # @param jurisdiction [String] ISO 3166-1 alpha-2 country code, upper-cased on save.
19
+ # @param report_type [String]
20
+ # @param field_config [Hash] Reusable goAML header defaults. Template-level obligatory fields: rentity_id,
21
+ # submission_code, and currency_code_local (3-letter). Optional: enabled_fields (which optional report blocks to
22
+ # include) plus reporting_person, location, reason, and action defaults. Per-filing header fields (action,
23
+ # submission_date, transactions, jurisdiction) are enforced when the report is validated or finalized, not...
24
+ # @param request_options [Hash, nil] :timeout, :max_retries, :extra_headers, :extra_query, :extra_body
25
+ # @return [Didit::Types::ReportTemplateDetail]
26
+ def create(name:, jurisdiction:, report_type:, field_config: OMIT, request_options: nil)
27
+ @client.request(
28
+ :post,
29
+ "/v3/organization/{organization_id}/application/{application_id}/report-templates/",
30
+ body: {
31
+ "name" => name,
32
+ "jurisdiction" => jurisdiction,
33
+ "report_type" => report_type,
34
+ "field_config" => field_config
35
+ },
36
+ scope: :application,
37
+ response: Types::ReportTemplateDetail,
38
+ request_options: request_options
39
+ )
40
+ end
41
+
42
+ # Delete report template
43
+ #
44
+ # Delete a report template. Reports already created from it are unaffected.
45
+ #
46
+ # +DELETE /v3/organization/{organization_id}/application/{application_id}/report-templates/{template_uuid}/+
47
+ #
48
+ # @param template_uuid [String] Report template UUID.
49
+ # @param request_options [Hash, nil] :timeout, :max_retries, :extra_headers, :extra_query, :extra_body
50
+ # @return [nil]
51
+ def delete(template_uuid, request_options: nil)
52
+ @client.request(
53
+ :delete,
54
+ "/v3/organization/{organization_id}/application/{application_id}/report-templates/{template_uuid}/",
55
+ path_params: { "template_uuid" => template_uuid },
56
+ scope: :application,
57
+ request_options: request_options
58
+ )
59
+ end
60
+
61
+ # List report templates
62
+ #
63
+ # List FIU report templates for the application.
64
+ #
65
+ # +GET /v3/organization/{organization_id}/application/{application_id}/report-templates/+
66
+ #
67
+ # @param limit [Integer] Page size.
68
+ # @param offset [Integer] Zero-based offset.
69
+ # @param request_options [Hash, nil] :timeout, :max_retries, :extra_headers, :extra_query, :extra_body
70
+ # @return [Didit::Page<Didit::Types::ReportTemplateDetail>]
71
+ def list(limit: OMIT, offset: OMIT, request_options: nil)
72
+ @client.request(
73
+ :get,
74
+ "/v3/organization/{organization_id}/application/{application_id}/report-templates/",
75
+ query: {
76
+ "limit" => limit,
77
+ "offset" => offset
78
+ },
79
+ scope: :application,
80
+ page: Types::ReportTemplateDetail,
81
+ request_options: request_options
82
+ )
83
+ end
84
+
85
+ # Get report template
86
+ #
87
+ # Retrieve a report template.
88
+ #
89
+ # +GET /v3/organization/{organization_id}/application/{application_id}/report-templates/{template_uuid}/+
90
+ #
91
+ # @param template_uuid [String] Report template UUID.
92
+ # @param request_options [Hash, nil] :timeout, :max_retries, :extra_headers, :extra_query, :extra_body
93
+ # @return [Didit::Types::ReportTemplateDetail]
94
+ def retrieve(template_uuid, request_options: nil)
95
+ @client.request(
96
+ :get,
97
+ "/v3/organization/{organization_id}/application/{application_id}/report-templates/{template_uuid}/",
98
+ path_params: { "template_uuid" => template_uuid },
99
+ scope: :application,
100
+ response: Types::ReportTemplateDetail,
101
+ request_options: request_options
102
+ )
103
+ end
104
+
105
+ # Update report template
106
+ #
107
+ # Partially update a report template. Re-validates obligatory goAML fields on save.
108
+ #
109
+ # +PATCH /v3/organization/{organization_id}/application/{application_id}/report-templates/{template_uuid}/+
110
+ #
111
+ # @param template_uuid [String] Report template UUID.
112
+ # @param name [String]
113
+ # @param jurisdiction [String] ISO 3166-1 alpha-2 country code, upper-cased on save.
114
+ # @param report_type [String]
115
+ # @param field_config [Hash] Reusable goAML header defaults. Template-level obligatory fields: rentity_id,
116
+ # submission_code, and currency_code_local (3-letter). Optional: enabled_fields (which optional report blocks to
117
+ # include) plus reporting_person, location, reason, and action defaults. Per-filing header fields (action,
118
+ # submission_date, transactions, jurisdiction) are enforced when the report is validated or finalized, not...
119
+ # @param request_options [Hash, nil] :timeout, :max_retries, :extra_headers, :extra_query, :extra_body
120
+ # @return [Didit::Types::ReportTemplateDetail]
121
+ def update(
122
+ template_uuid,
123
+ name: OMIT,
124
+ jurisdiction: OMIT,
125
+ report_type: OMIT,
126
+ field_config: OMIT,
127
+ request_options: nil
128
+ )
129
+ @client.request(
130
+ :patch,
131
+ "/v3/organization/{organization_id}/application/{application_id}/report-templates/{template_uuid}/",
132
+ path_params: { "template_uuid" => template_uuid },
133
+ body: {
134
+ "name" => name,
135
+ "jurisdiction" => jurisdiction,
136
+ "report_type" => report_type,
137
+ "field_config" => field_config
138
+ },
139
+ scope: :application,
140
+ response: Types::ReportTemplateDetail,
141
+ request_options: request_options
142
+ )
143
+ end
144
+ end
145
+ end
146
+ end