voltaria_sdk 2.34.5

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 (209) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +69 -0
  3. data/README.md +202 -0
  4. data/Rakefile +20 -0
  5. data/custom.gemspec.rb +16 -0
  6. data/lib/voltaria/accounts/client.rb +168 -0
  7. data/lib/voltaria/accounts/types/get_client_account_request.rb +12 -0
  8. data/lib/voltaria/accounts/types/list_client_account_fields_request.rb +11 -0
  9. data/lib/voltaria/accounts/types/list_client_accounts_request.rb +14 -0
  10. data/lib/voltaria/accounts/types/partner_client_account_create_request.rb +23 -0
  11. data/lib/voltaria/accounts/types/partner_client_account_create_request_status.rb +14 -0
  12. data/lib/voltaria/client.rb +74 -0
  13. data/lib/voltaria/clients/client.rb +557 -0
  14. data/lib/voltaria/clients/types/approve_onboarding_request.rb +11 -0
  15. data/lib/voltaria/clients/types/client_create_payload.rb +16 -0
  16. data/lib/voltaria/clients/types/client_data_create_payload.rb +12 -0
  17. data/lib/voltaria/clients/types/client_user_invite_request.rb +16 -0
  18. data/lib/voltaria/clients/types/delete_client_request.rb +11 -0
  19. data/lib/voltaria/clients/types/get_client_by_id_request.rb +11 -0
  20. data/lib/voltaria/clients/types/get_limit_request_request.rb +11 -0
  21. data/lib/voltaria/clients/types/limit_request_create_payload.rb +14 -0
  22. data/lib/voltaria/clients/types/limit_request_create_payload_requested_limit.rb +15 -0
  23. data/lib/voltaria/clients/types/list_client_checklist_summaries_request.rb +13 -0
  24. data/lib/voltaria/clients/types/list_client_waivers_request.rb +15 -0
  25. data/lib/voltaria/clients/types/list_clients_request.rb +14 -0
  26. data/lib/voltaria/clients/types/list_limit_requests_request.rb +15 -0
  27. data/lib/voltaria/clients/types/list_onboarding_clients_request.rb +12 -0
  28. data/lib/voltaria/clients/types/reject_onboarding_request.rb +11 -0
  29. data/lib/voltaria/documents/client.rb +221 -0
  30. data/lib/voltaria/documents/types/delete_document_request.rb +11 -0
  31. data/lib/voltaria/documents/types/document_create_payload.rb +14 -0
  32. data/lib/voltaria/documents/types/get_document_by_id_request.rb +11 -0
  33. data/lib/voltaria/documents/types/list_documents_request.rb +18 -0
  34. data/lib/voltaria/drawdowns/client.rb +141 -0
  35. data/lib/voltaria/drawdowns/types/drawdown_create_payload.rb +12 -0
  36. data/lib/voltaria/drawdowns/types/drawdown_create_payload_amount.rb +15 -0
  37. data/lib/voltaria/drawdowns/types/list_drawdown_checklists_request.rb +15 -0
  38. data/lib/voltaria/drawdowns/types/list_drawdowns_request.rb +14 -0
  39. data/lib/voltaria/environment.rb +8 -0
  40. data/lib/voltaria/errors/api_error.rb +8 -0
  41. data/lib/voltaria/errors/client_error.rb +17 -0
  42. data/lib/voltaria/errors/redirect_error.rb +8 -0
  43. data/lib/voltaria/errors/response_error.rb +42 -0
  44. data/lib/voltaria/errors/server_error.rb +11 -0
  45. data/lib/voltaria/errors/timeout_error.rb +8 -0
  46. data/lib/voltaria/installments/client.rb +292 -0
  47. data/lib/voltaria/installments/types/delete_installment_request.rb +11 -0
  48. data/lib/voltaria/installments/types/get_installment_by_id_request.rb +11 -0
  49. data/lib/voltaria/installments/types/installment_create_payload.rb +12 -0
  50. data/lib/voltaria/installments/types/installment_edit_payload.rb +13 -0
  51. data/lib/voltaria/installments/types/installment_edit_payload_amount.rb +15 -0
  52. data/lib/voltaria/installments/types/list_installments_request.rb +16 -0
  53. data/lib/voltaria/installments/types/list_payment_promises_request.rb +16 -0
  54. data/lib/voltaria/installments/types/payment_promise_create_payload.rb +14 -0
  55. data/lib/voltaria/installments/types/payment_promise_create_payload_amount.rb +15 -0
  56. data/lib/voltaria/internal/errors/constraint_error.rb +10 -0
  57. data/lib/voltaria/internal/errors/type_error.rb +10 -0
  58. data/lib/voltaria/internal/http/base_request.rb +51 -0
  59. data/lib/voltaria/internal/http/raw_client.rb +214 -0
  60. data/lib/voltaria/internal/iterators/cursor_item_iterator.rb +28 -0
  61. data/lib/voltaria/internal/iterators/cursor_page_iterator.rb +51 -0
  62. data/lib/voltaria/internal/iterators/item_iterator.rb +59 -0
  63. data/lib/voltaria/internal/iterators/offset_item_iterator.rb +30 -0
  64. data/lib/voltaria/internal/iterators/offset_page_iterator.rb +83 -0
  65. data/lib/voltaria/internal/json/request.rb +41 -0
  66. data/lib/voltaria/internal/json/serializable.rb +25 -0
  67. data/lib/voltaria/internal/multipart/multipart_encoder.rb +141 -0
  68. data/lib/voltaria/internal/multipart/multipart_form_data.rb +78 -0
  69. data/lib/voltaria/internal/multipart/multipart_form_data_part.rb +51 -0
  70. data/lib/voltaria/internal/multipart/multipart_request.rb +40 -0
  71. data/lib/voltaria/internal/types/array.rb +47 -0
  72. data/lib/voltaria/internal/types/boolean.rb +34 -0
  73. data/lib/voltaria/internal/types/enum.rb +56 -0
  74. data/lib/voltaria/internal/types/hash.rb +36 -0
  75. data/lib/voltaria/internal/types/model/field.rb +38 -0
  76. data/lib/voltaria/internal/types/model.rb +208 -0
  77. data/lib/voltaria/internal/types/type.rb +35 -0
  78. data/lib/voltaria/internal/types/union.rb +161 -0
  79. data/lib/voltaria/internal/types/unknown.rb +15 -0
  80. data/lib/voltaria/internal/types/utils.rb +116 -0
  81. data/lib/voltaria/investors/client.rb +312 -0
  82. data/lib/voltaria/investors/types/investor_get_client_request.rb +11 -0
  83. data/lib/voltaria/investors/types/investor_get_installment_request.rb +11 -0
  84. data/lib/voltaria/investors/types/investor_get_loan_request.rb +11 -0
  85. data/lib/voltaria/investors/types/investor_list_clients_request.rb +14 -0
  86. data/lib/voltaria/investors/types/investor_list_installments_request.rb +16 -0
  87. data/lib/voltaria/investors/types/investor_list_loans_request.rb +15 -0
  88. data/lib/voltaria/investors/types/investor_list_repayments_request.rb +17 -0
  89. data/lib/voltaria/loans/client.rb +271 -0
  90. data/lib/voltaria/loans/types/bulk_loan_create_payload.rb +11 -0
  91. data/lib/voltaria/loans/types/delete_loan_request.rb +11 -0
  92. data/lib/voltaria/loans/types/get_bulk_loan_status_request.rb +11 -0
  93. data/lib/voltaria/loans/types/get_loan_by_id_request.rb +11 -0
  94. data/lib/voltaria/loans/types/list_loans_request.rb +15 -0
  95. data/lib/voltaria/loans/types/loan_create_payload.rb +17 -0
  96. data/lib/voltaria/loans/types/loan_create_payload_amount.rb +15 -0
  97. data/lib/voltaria/loans/types/loan_default_payload.rb +13 -0
  98. data/lib/voltaria/loans/types/loan_default_payload_sold_amount.rb +15 -0
  99. data/lib/voltaria/partners/client.rb +129 -0
  100. data/lib/voltaria/partners/types/list_partner_waterfalls_request.rb +14 -0
  101. data/lib/voltaria/partners/types/partner_data_create_payload.rb +11 -0
  102. data/lib/voltaria/prefix_routing.rb +80 -0
  103. data/lib/voltaria/repayments/client.rb +183 -0
  104. data/lib/voltaria/repayments/types/bulk_repayment_create_payload.rb +11 -0
  105. data/lib/voltaria/repayments/types/get_bulk_repayment_status_request.rb +11 -0
  106. data/lib/voltaria/repayments/types/list_repayment_logs_request.rb +17 -0
  107. data/lib/voltaria/repayments/types/repayment_create_payload.rb +17 -0
  108. data/lib/voltaria/repayments/types/repayment_create_payload_amount.rb +15 -0
  109. data/lib/voltaria/sandbox/client.rb +124 -0
  110. data/lib/voltaria/sandbox/types/client_update_sandbox.rb +13 -0
  111. data/lib/voltaria/sandbox/types/client_update_sandbox_limit.rb +15 -0
  112. data/lib/voltaria/sandbox/types/loan_update_sandbox.rb +12 -0
  113. data/lib/voltaria/sandbox/types/webhook_test_sandbox.rb +12 -0
  114. data/lib/voltaria/types/account_address.rb +14 -0
  115. data/lib/voltaria/types/account_holder_type_enum.rb +12 -0
  116. data/lib/voltaria/types/account_status_enum.rb +13 -0
  117. data/lib/voltaria/types/available_document_categories_response.rb +9 -0
  118. data/lib/voltaria/types/available_funding.rb +15 -0
  119. data/lib/voltaria/types/bulk_loan_item_payload.rb +15 -0
  120. data/lib/voltaria/types/bulk_loan_item_payload_amount.rb +13 -0
  121. data/lib/voltaria/types/bulk_loan_item_result.rb +15 -0
  122. data/lib/voltaria/types/bulk_loan_result.rb +13 -0
  123. data/lib/voltaria/types/bulk_loan_task_response.rb +11 -0
  124. data/lib/voltaria/types/bulk_loan_task_status.rb +14 -0
  125. data/lib/voltaria/types/bulk_repayment_item_payload.rb +15 -0
  126. data/lib/voltaria/types/bulk_repayment_item_payload_amount.rb +13 -0
  127. data/lib/voltaria/types/bulk_repayment_item_result.rb +15 -0
  128. data/lib/voltaria/types/bulk_repayment_result.rb +13 -0
  129. data/lib/voltaria/types/bulk_repayment_task_response.rb +11 -0
  130. data/lib/voltaria/types/bulk_repayment_task_status.rb +14 -0
  131. data/lib/voltaria/types/checklist_summary_partner_response.rb +14 -0
  132. data/lib/voltaria/types/checklist_type_enum.rb +12 -0
  133. data/lib/voltaria/types/client_account_response.rb +21 -0
  134. data/lib/voltaria/types/client_base_info.rb +13 -0
  135. data/lib/voltaria/types/client_data_response.rb +12 -0
  136. data/lib/voltaria/types/client_investor_response.rb +17 -0
  137. data/lib/voltaria/types/client_limit_response.rb +16 -0
  138. data/lib/voltaria/types/client_response.rb +19 -0
  139. data/lib/voltaria/types/client_status_enum.rb +18 -0
  140. data/lib/voltaria/types/client_type_enum.rb +12 -0
  141. data/lib/voltaria/types/client_user_response.rb +24 -0
  142. data/lib/voltaria/types/client_user_status_enum.rb +13 -0
  143. data/lib/voltaria/types/currency_enum.rb +16 -0
  144. data/lib/voltaria/types/currency_field_spec.rb +10 -0
  145. data/lib/voltaria/types/document_response.rb +20 -0
  146. data/lib/voltaria/types/drawdown_checklist_response.rb +16 -0
  147. data/lib/voltaria/types/drawdown_response.rb +15 -0
  148. data/lib/voltaria/types/drawdown_status_enum.rb +13 -0
  149. data/lib/voltaria/types/http_validation_error.rb +9 -0
  150. data/lib/voltaria/types/installment_response.rb +24 -0
  151. data/lib/voltaria/types/installment_response_with_client_info.rb +25 -0
  152. data/lib/voltaria/types/installment_status_enum.rb +19 -0
  153. data/lib/voltaria/types/jurisdiction_enum.rb +13 -0
  154. data/lib/voltaria/types/kyc_status_enum.rb +14 -0
  155. data/lib/voltaria/types/limit_request_response.rb +16 -0
  156. data/lib/voltaria/types/limit_request_status_enum.rb +13 -0
  157. data/lib/voltaria/types/loan_installment_create_payload.rb +10 -0
  158. data/lib/voltaria/types/loan_installment_create_payload_amount.rb +13 -0
  159. data/lib/voltaria/types/loan_installment_response.rb +15 -0
  160. data/lib/voltaria/types/loan_investor_response.rb +27 -0
  161. data/lib/voltaria/types/loan_payment_status_enum.rb +12 -0
  162. data/lib/voltaria/types/loan_response_with_client_info.rb +26 -0
  163. data/lib/voltaria/types/loan_response_with_installments.rb +26 -0
  164. data/lib/voltaria/types/loan_status_enum.rb +21 -0
  165. data/lib/voltaria/types/paginated_response_checklist_summary_partner_response.rb +16 -0
  166. data/lib/voltaria/types/paginated_response_client_account_response.rb +16 -0
  167. data/lib/voltaria/types/paginated_response_client_investor_response.rb +16 -0
  168. data/lib/voltaria/types/paginated_response_client_response.rb +16 -0
  169. data/lib/voltaria/types/paginated_response_document_response.rb +16 -0
  170. data/lib/voltaria/types/paginated_response_drawdown_checklist_response.rb +16 -0
  171. data/lib/voltaria/types/paginated_response_drawdown_response.rb +16 -0
  172. data/lib/voltaria/types/paginated_response_installment_response_with_client_info.rb +16 -0
  173. data/lib/voltaria/types/paginated_response_limit_request_response.rb +16 -0
  174. data/lib/voltaria/types/paginated_response_loan_investor_response.rb +16 -0
  175. data/lib/voltaria/types/paginated_response_loan_response_with_client_info.rb +16 -0
  176. data/lib/voltaria/types/paginated_response_payment_promise_response.rb +16 -0
  177. data/lib/voltaria/types/paginated_response_repayment_response_with_client_info.rb +16 -0
  178. data/lib/voltaria/types/paginated_response_waiver_response.rb +16 -0
  179. data/lib/voltaria/types/paginated_response_waterfall_response.rb +16 -0
  180. data/lib/voltaria/types/paginated_response_webhook_log_response.rb +16 -0
  181. data/lib/voltaria/types/paginated_response_webhook_subscription_response.rb +16 -0
  182. data/lib/voltaria/types/partner_data_response.rb +11 -0
  183. data/lib/voltaria/types/payment_promise_response.rb +19 -0
  184. data/lib/voltaria/types/payment_promise_status_enum.rb +14 -0
  185. data/lib/voltaria/types/repayment_response.rb +21 -0
  186. data/lib/voltaria/types/repayment_response_with_client_info.rb +22 -0
  187. data/lib/voltaria/types/role_response.rb +11 -0
  188. data/lib/voltaria/types/validation_error.rb +13 -0
  189. data/lib/voltaria/types/validation_error_loc_item.rb +12 -0
  190. data/lib/voltaria/types/waiver_response.rb +18 -0
  191. data/lib/voltaria/types/waiver_status_enum.rb +14 -0
  192. data/lib/voltaria/types/waterfall_response.rb +19 -0
  193. data/lib/voltaria/types/waterfall_status_enum.rb +12 -0
  194. data/lib/voltaria/types/webhook_event_type_enum.rb +15 -0
  195. data/lib/voltaria/types/webhook_log_response.rb +19 -0
  196. data/lib/voltaria/types/webhook_log_response_request_body.rb +13 -0
  197. data/lib/voltaria/types/webhook_status_enum.rb +13 -0
  198. data/lib/voltaria/types/webhook_subscription_response.rb +17 -0
  199. data/lib/voltaria/version.rb +5 -0
  200. data/lib/voltaria/webhooks/client.rb +241 -0
  201. data/lib/voltaria/webhooks/types/delete_webhook_subscription_request.rb +11 -0
  202. data/lib/voltaria/webhooks/types/get_webhook_subscription_request.rb +11 -0
  203. data/lib/voltaria/webhooks/types/list_webhook_logs_request.rb +13 -0
  204. data/lib/voltaria/webhooks/types/list_webhook_subscriptions_request.rb +13 -0
  205. data/lib/voltaria/webhooks/types/webhook_create_payload.rb +16 -0
  206. data/lib/voltaria/webhooks/types/webhook_update_payload.rb +17 -0
  207. data/lib/voltaria.rb +205 -0
  208. data/reference.md +5135 -0
  209. metadata +250 -0
@@ -0,0 +1,241 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Voltaria
4
+ module Webhooks
5
+ class Client
6
+ # @param client [Voltaria::Internal::Http::RawClient]
7
+ #
8
+ # @return [void]
9
+ def initialize(client:)
10
+ @client = client
11
+ end
12
+
13
+ # List all webhook subscriptions for your partner account.
14
+ #
15
+ # @param request_options [Hash]
16
+ # @param params [Hash]
17
+ # @option request_options [String] :base_url
18
+ # @option request_options [Hash{String => Object}] :additional_headers
19
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
20
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
21
+ # @option request_options [Integer] :timeout_in_seconds
22
+ # @option params [Integer, nil] :page
23
+ # @option params [Integer, nil] :page_size
24
+ # @option params [Voltaria::Types::WebhookEventTypeEnum, nil] :event_type
25
+ #
26
+ # @return [Voltaria::Types::PaginatedResponseWebhookSubscriptionResponse]
27
+ def list_webhook_subscriptions(request_options: {}, **params)
28
+ params = Voltaria::Internal::Types::Utils.normalize_keys(params)
29
+ query_param_names = %i[page page_size event_type]
30
+ query_params = {}
31
+ query_params["page"] = params[:page] if params.key?(:page)
32
+ query_params["page_size"] = params[:page_size] if params.key?(:page_size)
33
+ query_params["event_type"] = params[:event_type] if params.key?(:event_type)
34
+ params.except(*query_param_names)
35
+
36
+ request = Voltaria::Internal::JSON::Request.new(
37
+ base_url: request_options[:base_url],
38
+ method: "GET",
39
+ path: "v2/webhooks/subscriptions",
40
+ query: query_params,
41
+ request_options: request_options
42
+ )
43
+ begin
44
+ response = @client.send(request)
45
+ rescue Net::HTTPRequestTimeout
46
+ raise Voltaria::Errors::TimeoutError
47
+ end
48
+ code = response.code.to_i
49
+ if code.between?(200, 299)
50
+ Voltaria::Types::PaginatedResponseWebhookSubscriptionResponse.load(response.body)
51
+ else
52
+ error_class = Voltaria::Errors::ResponseError.subclass_for_code(code)
53
+ raise error_class.new(response.body, code: code)
54
+ end
55
+ end
56
+
57
+ # Create a new webhook subscription for a specific event type.
58
+ #
59
+ # @param request_options [Hash]
60
+ # @param params [Voltaria::Webhooks::Types::WebhookCreatePayload]
61
+ # @option request_options [String] :base_url
62
+ # @option request_options [Hash{String => Object}] :additional_headers
63
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
64
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
65
+ # @option request_options [Integer] :timeout_in_seconds
66
+ #
67
+ # @return [Voltaria::Types::WebhookSubscriptionResponse]
68
+ def create_webhook_subscription(request_options: {}, **params)
69
+ params = Voltaria::Internal::Types::Utils.normalize_keys(params)
70
+ request = Voltaria::Internal::JSON::Request.new(
71
+ base_url: request_options[:base_url],
72
+ method: "POST",
73
+ path: "v2/webhooks/subscriptions",
74
+ body: Voltaria::Webhooks::Types::WebhookCreatePayload.new(params).to_h,
75
+ request_options: request_options
76
+ )
77
+ begin
78
+ response = @client.send(request)
79
+ rescue Net::HTTPRequestTimeout
80
+ raise Voltaria::Errors::TimeoutError
81
+ end
82
+ code = response.code.to_i
83
+ if code.between?(200, 299)
84
+ Voltaria::Types::WebhookSubscriptionResponse.load(response.body)
85
+ else
86
+ error_class = Voltaria::Errors::ResponseError.subclass_for_code(code)
87
+ raise error_class.new(response.body, code: code)
88
+ end
89
+ end
90
+
91
+ # Retrieve details for a specific webhook subscription with its webhook ID.
92
+ #
93
+ # @param request_options [Hash]
94
+ # @param params [Hash]
95
+ # @option request_options [String] :base_url
96
+ # @option request_options [Hash{String => Object}] :additional_headers
97
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
98
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
99
+ # @option request_options [Integer] :timeout_in_seconds
100
+ # @option params [String] :webhook_id
101
+ #
102
+ # @return [Voltaria::Types::WebhookSubscriptionResponse]
103
+ def get_webhook_subscription(request_options: {}, **params)
104
+ params = Voltaria::Internal::Types::Utils.normalize_keys(params)
105
+ request = Voltaria::Internal::JSON::Request.new(
106
+ base_url: request_options[:base_url],
107
+ method: "GET",
108
+ path: "v2/webhooks/subscriptions/#{URI.encode_uri_component(params[:webhook_id].to_s)}",
109
+ request_options: request_options
110
+ )
111
+ begin
112
+ response = @client.send(request)
113
+ rescue Net::HTTPRequestTimeout
114
+ raise Voltaria::Errors::TimeoutError
115
+ end
116
+ code = response.code.to_i
117
+ if code.between?(200, 299)
118
+ Voltaria::Types::WebhookSubscriptionResponse.load(response.body)
119
+ else
120
+ error_class = Voltaria::Errors::ResponseError.subclass_for_code(code)
121
+ raise error_class.new(response.body, code: code)
122
+ end
123
+ end
124
+
125
+ # Update a webhook subscription with its specific webhook ID.
126
+ #
127
+ # @param request_options [Hash]
128
+ # @param params [Voltaria::Webhooks::Types::WebhookUpdatePayload]
129
+ # @option request_options [String] :base_url
130
+ # @option request_options [Hash{String => Object}] :additional_headers
131
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
132
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
133
+ # @option request_options [Integer] :timeout_in_seconds
134
+ # @option params [String] :webhook_id
135
+ #
136
+ # @return [Voltaria::Types::WebhookSubscriptionResponse]
137
+ def update_webhook_subscription(request_options: {}, **params)
138
+ params = Voltaria::Internal::Types::Utils.normalize_keys(params)
139
+ request_data = Voltaria::Webhooks::Types::WebhookUpdatePayload.new(params).to_h
140
+ non_body_param_names = ["webhook_id"]
141
+ body = request_data.except(*non_body_param_names)
142
+
143
+ request = Voltaria::Internal::JSON::Request.new(
144
+ base_url: request_options[:base_url],
145
+ method: "PUT",
146
+ path: "v2/webhooks/subscriptions/#{URI.encode_uri_component(params[:webhook_id].to_s)}",
147
+ body: body,
148
+ request_options: request_options
149
+ )
150
+ begin
151
+ response = @client.send(request)
152
+ rescue Net::HTTPRequestTimeout
153
+ raise Voltaria::Errors::TimeoutError
154
+ end
155
+ code = response.code.to_i
156
+ if code.between?(200, 299)
157
+ Voltaria::Types::WebhookSubscriptionResponse.load(response.body)
158
+ else
159
+ error_class = Voltaria::Errors::ResponseError.subclass_for_code(code)
160
+ raise error_class.new(response.body, code: code)
161
+ end
162
+ end
163
+
164
+ # Delete a specific webhook subscription.
165
+ #
166
+ # @param request_options [Hash]
167
+ # @param params [Hash]
168
+ # @option request_options [String] :base_url
169
+ # @option request_options [Hash{String => Object}] :additional_headers
170
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
171
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
172
+ # @option request_options [Integer] :timeout_in_seconds
173
+ # @option params [String] :webhook_id
174
+ #
175
+ # @return [Hash[String, Object]]
176
+ def delete_webhook_subscription(request_options: {}, **params)
177
+ params = Voltaria::Internal::Types::Utils.normalize_keys(params)
178
+ request = Voltaria::Internal::JSON::Request.new(
179
+ base_url: request_options[:base_url],
180
+ method: "DELETE",
181
+ path: "v2/webhooks/subscriptions/#{URI.encode_uri_component(params[:webhook_id].to_s)}",
182
+ request_options: request_options
183
+ )
184
+ begin
185
+ response = @client.send(request)
186
+ rescue Net::HTTPRequestTimeout
187
+ raise Voltaria::Errors::TimeoutError
188
+ end
189
+ code = response.code.to_i
190
+ return if code.between?(200, 299)
191
+
192
+ error_class = Voltaria::Errors::ResponseError.subclass_for_code(code)
193
+ raise error_class.new(response.body, code: code)
194
+ end
195
+
196
+ # Retrieve all webhook logs linked to your partner account.
197
+ #
198
+ # @param request_options [Hash]
199
+ # @param params [Hash]
200
+ # @option request_options [String] :base_url
201
+ # @option request_options [Hash{String => Object}] :additional_headers
202
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
203
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
204
+ # @option request_options [Integer] :timeout_in_seconds
205
+ # @option params [String, nil] :webhook_id
206
+ # @option params [Integer, nil] :page
207
+ # @option params [Integer, nil] :page_size
208
+ #
209
+ # @return [Voltaria::Types::PaginatedResponseWebhookLogResponse]
210
+ def list_webhook_logs(request_options: {}, **params)
211
+ params = Voltaria::Internal::Types::Utils.normalize_keys(params)
212
+ query_param_names = %i[webhook_id page page_size]
213
+ query_params = {}
214
+ query_params["webhook_id"] = params[:webhook_id] if params.key?(:webhook_id)
215
+ query_params["page"] = params[:page] if params.key?(:page)
216
+ query_params["page_size"] = params[:page_size] if params.key?(:page_size)
217
+ params.except(*query_param_names)
218
+
219
+ request = Voltaria::Internal::JSON::Request.new(
220
+ base_url: request_options[:base_url],
221
+ method: "GET",
222
+ path: "v2/webhooks/logs",
223
+ query: query_params,
224
+ request_options: request_options
225
+ )
226
+ begin
227
+ response = @client.send(request)
228
+ rescue Net::HTTPRequestTimeout
229
+ raise Voltaria::Errors::TimeoutError
230
+ end
231
+ code = response.code.to_i
232
+ if code.between?(200, 299)
233
+ Voltaria::Types::PaginatedResponseWebhookLogResponse.load(response.body)
234
+ else
235
+ error_class = Voltaria::Errors::ResponseError.subclass_for_code(code)
236
+ raise error_class.new(response.body, code: code)
237
+ end
238
+ end
239
+ end
240
+ end
241
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Voltaria
4
+ module Webhooks
5
+ module Types
6
+ class DeleteWebhookSubscriptionRequest < Internal::Types::Model
7
+ field :webhook_id, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Voltaria
4
+ module Webhooks
5
+ module Types
6
+ class GetWebhookSubscriptionRequest < Internal::Types::Model
7
+ field :webhook_id, -> { String }, optional: false, nullable: false
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Voltaria
4
+ module Webhooks
5
+ module Types
6
+ class ListWebhookLogsRequest < Internal::Types::Model
7
+ field :webhook_id, -> { String }, optional: true, nullable: false
8
+ field :page, -> { Integer }, optional: true, nullable: false
9
+ field :page_size, -> { Integer }, optional: true, nullable: false
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Voltaria
4
+ module Webhooks
5
+ module Types
6
+ class ListWebhookSubscriptionsRequest < Internal::Types::Model
7
+ field :page, -> { Integer }, optional: true, nullable: false
8
+ field :page_size, -> { Integer }, optional: true, nullable: false
9
+ field :event_type, -> { Voltaria::Types::WebhookEventTypeEnum }, optional: true, nullable: false
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Voltaria
4
+ module Webhooks
5
+ module Types
6
+ class WebhookCreatePayload < Internal::Types::Model
7
+ field :url, -> { String }, optional: false, nullable: false
8
+ field :description, -> { String }, optional: true, nullable: false
9
+ field :event_type, -> { Voltaria::Types::WebhookEventTypeEnum }, optional: false, nullable: false
10
+ field :secret, -> { String }, optional: false, nullable: false
11
+ field :retry_, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "retry"
12
+ field :status, -> { Voltaria::Types::WebhookStatusEnum }, optional: true, nullable: false
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Voltaria
4
+ module Webhooks
5
+ module Types
6
+ class WebhookUpdatePayload < Internal::Types::Model
7
+ field :webhook_id, -> { String }, optional: false, nullable: false
8
+ field :url, -> { String }, optional: true, nullable: false
9
+ field :description, -> { String }, optional: true, nullable: false
10
+ field :event_type, -> { Voltaria::Types::WebhookEventTypeEnum }, optional: true, nullable: false
11
+ field :status, -> { Voltaria::Types::WebhookStatusEnum }, optional: true, nullable: false
12
+ field :retry_, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "retry"
13
+ field :secret, -> { String }, optional: true, nullable: false
14
+ end
15
+ end
16
+ end
17
+ end
data/lib/voltaria.rb ADDED
@@ -0,0 +1,205 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require "net/http"
5
+ require "securerandom"
6
+
7
+ require_relative "voltaria/internal/json/serializable"
8
+ require_relative "voltaria/internal/types/type"
9
+ require_relative "voltaria/internal/types/utils"
10
+ require_relative "voltaria/internal/types/union"
11
+ require_relative "voltaria/internal/errors/constraint_error"
12
+ require_relative "voltaria/internal/errors/type_error"
13
+ require_relative "voltaria/internal/http/base_request"
14
+ require_relative "voltaria/internal/json/request"
15
+ require_relative "voltaria/internal/http/raw_client"
16
+ require_relative "voltaria/internal/multipart/multipart_encoder"
17
+ require_relative "voltaria/internal/multipart/multipart_form_data_part"
18
+ require_relative "voltaria/internal/multipart/multipart_form_data"
19
+ require_relative "voltaria/internal/multipart/multipart_request"
20
+ require_relative "voltaria/internal/types/model/field"
21
+ require_relative "voltaria/internal/types/model"
22
+ require_relative "voltaria/internal/types/array"
23
+ require_relative "voltaria/internal/types/boolean"
24
+ require_relative "voltaria/internal/types/enum"
25
+ require_relative "voltaria/internal/types/hash"
26
+ require_relative "voltaria/internal/types/unknown"
27
+ require_relative "voltaria/errors/api_error"
28
+ require_relative "voltaria/errors/response_error"
29
+ require_relative "voltaria/errors/client_error"
30
+ require_relative "voltaria/errors/redirect_error"
31
+ require_relative "voltaria/errors/server_error"
32
+ require_relative "voltaria/errors/timeout_error"
33
+ require_relative "voltaria/internal/iterators/item_iterator"
34
+ require_relative "voltaria/internal/iterators/cursor_item_iterator"
35
+ require_relative "voltaria/internal/iterators/offset_item_iterator"
36
+ require_relative "voltaria/internal/iterators/cursor_page_iterator"
37
+ require_relative "voltaria/internal/iterators/offset_page_iterator"
38
+ require_relative "voltaria/clients/types/limit_request_create_payload_requested_limit"
39
+ require_relative "voltaria/sandbox/types/client_update_sandbox_limit"
40
+ require_relative "voltaria/accounts/types/partner_client_account_create_request_status"
41
+ require_relative "voltaria/installments/types/payment_promise_create_payload_amount"
42
+ require_relative "voltaria/installments/types/installment_edit_payload_amount"
43
+ require_relative "voltaria/loans/types/loan_create_payload_amount"
44
+ require_relative "voltaria/loans/types/loan_default_payload_sold_amount"
45
+ require_relative "voltaria/repayments/types/repayment_create_payload_amount"
46
+ require_relative "voltaria/drawdowns/types/drawdown_create_payload_amount"
47
+ require_relative "voltaria/types/account_address"
48
+ require_relative "voltaria/types/account_holder_type_enum"
49
+ require_relative "voltaria/types/account_status_enum"
50
+ require_relative "voltaria/types/available_document_categories_response"
51
+ require_relative "voltaria/types/currency_enum"
52
+ require_relative "voltaria/types/available_funding"
53
+ require_relative "voltaria/types/bulk_loan_item_payload_amount"
54
+ require_relative "voltaria/types/loan_installment_create_payload_amount"
55
+ require_relative "voltaria/types/loan_installment_create_payload"
56
+ require_relative "voltaria/types/bulk_loan_item_payload"
57
+ require_relative "voltaria/types/bulk_loan_item_result"
58
+ require_relative "voltaria/types/bulk_loan_result"
59
+ require_relative "voltaria/types/bulk_loan_task_response"
60
+ require_relative "voltaria/types/bulk_loan_task_status"
61
+ require_relative "voltaria/types/bulk_repayment_item_payload_amount"
62
+ require_relative "voltaria/types/bulk_repayment_item_payload"
63
+ require_relative "voltaria/types/bulk_repayment_item_result"
64
+ require_relative "voltaria/types/bulk_repayment_result"
65
+ require_relative "voltaria/types/bulk_repayment_task_response"
66
+ require_relative "voltaria/types/bulk_repayment_task_status"
67
+ require_relative "voltaria/types/checklist_type_enum"
68
+ require_relative "voltaria/types/checklist_summary_partner_response"
69
+ require_relative "voltaria/types/client_account_response"
70
+ require_relative "voltaria/types/client_status_enum"
71
+ require_relative "voltaria/types/client_type_enum"
72
+ require_relative "voltaria/types/jurisdiction_enum"
73
+ require_relative "voltaria/types/client_base_info"
74
+ require_relative "voltaria/types/client_data_response"
75
+ require_relative "voltaria/types/client_investor_response"
76
+ require_relative "voltaria/types/client_limit_response"
77
+ require_relative "voltaria/types/client_response"
78
+ require_relative "voltaria/types/client_user_status_enum"
79
+ require_relative "voltaria/types/kyc_status_enum"
80
+ require_relative "voltaria/types/role_response"
81
+ require_relative "voltaria/types/client_user_response"
82
+ require_relative "voltaria/types/currency_field_spec"
83
+ require_relative "voltaria/types/document_response"
84
+ require_relative "voltaria/types/drawdown_checklist_response"
85
+ require_relative "voltaria/types/drawdown_status_enum"
86
+ require_relative "voltaria/types/drawdown_response"
87
+ require_relative "voltaria/types/validation_error_loc_item"
88
+ require_relative "voltaria/types/validation_error"
89
+ require_relative "voltaria/types/http_validation_error"
90
+ require_relative "voltaria/types/installment_status_enum"
91
+ require_relative "voltaria/types/installment_response"
92
+ require_relative "voltaria/types/installment_response_with_client_info"
93
+ require_relative "voltaria/types/limit_request_status_enum"
94
+ require_relative "voltaria/types/limit_request_response"
95
+ require_relative "voltaria/types/loan_status_enum"
96
+ require_relative "voltaria/types/loan_installment_response"
97
+ require_relative "voltaria/types/loan_payment_status_enum"
98
+ require_relative "voltaria/types/loan_investor_response"
99
+ require_relative "voltaria/types/loan_response_with_client_info"
100
+ require_relative "voltaria/types/loan_response_with_installments"
101
+ require_relative "voltaria/types/paginated_response_checklist_summary_partner_response"
102
+ require_relative "voltaria/types/paginated_response_client_account_response"
103
+ require_relative "voltaria/types/paginated_response_client_investor_response"
104
+ require_relative "voltaria/types/paginated_response_client_response"
105
+ require_relative "voltaria/types/paginated_response_document_response"
106
+ require_relative "voltaria/types/paginated_response_drawdown_checklist_response"
107
+ require_relative "voltaria/types/paginated_response_drawdown_response"
108
+ require_relative "voltaria/types/paginated_response_installment_response_with_client_info"
109
+ require_relative "voltaria/types/paginated_response_limit_request_response"
110
+ require_relative "voltaria/types/paginated_response_loan_investor_response"
111
+ require_relative "voltaria/types/paginated_response_loan_response_with_client_info"
112
+ require_relative "voltaria/types/payment_promise_status_enum"
113
+ require_relative "voltaria/types/payment_promise_response"
114
+ require_relative "voltaria/types/paginated_response_payment_promise_response"
115
+ require_relative "voltaria/types/repayment_response_with_client_info"
116
+ require_relative "voltaria/types/paginated_response_repayment_response_with_client_info"
117
+ require_relative "voltaria/types/waiver_status_enum"
118
+ require_relative "voltaria/types/waiver_response"
119
+ require_relative "voltaria/types/paginated_response_waiver_response"
120
+ require_relative "voltaria/types/waterfall_status_enum"
121
+ require_relative "voltaria/types/waterfall_response"
122
+ require_relative "voltaria/types/paginated_response_waterfall_response"
123
+ require_relative "voltaria/types/webhook_event_type_enum"
124
+ require_relative "voltaria/types/webhook_log_response_request_body"
125
+ require_relative "voltaria/types/webhook_log_response"
126
+ require_relative "voltaria/types/paginated_response_webhook_log_response"
127
+ require_relative "voltaria/types/webhook_status_enum"
128
+ require_relative "voltaria/types/webhook_subscription_response"
129
+ require_relative "voltaria/types/paginated_response_webhook_subscription_response"
130
+ require_relative "voltaria/types/partner_data_response"
131
+ require_relative "voltaria/types/repayment_response"
132
+ require_relative "voltaria/client"
133
+ require_relative "voltaria/clients/client"
134
+ require_relative "voltaria/clients/types/list_clients_request"
135
+ require_relative "voltaria/clients/types/client_create_payload"
136
+ require_relative "voltaria/clients/types/client_data_create_payload"
137
+ require_relative "voltaria/clients/types/list_limit_requests_request"
138
+ require_relative "voltaria/clients/types/limit_request_create_payload"
139
+ require_relative "voltaria/clients/types/get_limit_request_request"
140
+ require_relative "voltaria/clients/types/list_onboarding_clients_request"
141
+ require_relative "voltaria/clients/types/approve_onboarding_request"
142
+ require_relative "voltaria/clients/types/reject_onboarding_request"
143
+ require_relative "voltaria/clients/types/client_user_invite_request"
144
+ require_relative "voltaria/clients/types/list_client_waivers_request"
145
+ require_relative "voltaria/clients/types/get_client_by_id_request"
146
+ require_relative "voltaria/clients/types/delete_client_request"
147
+ require_relative "voltaria/clients/types/list_client_checklist_summaries_request"
148
+ require_relative "voltaria/sandbox/client"
149
+ require_relative "voltaria/sandbox/types/client_update_sandbox"
150
+ require_relative "voltaria/sandbox/types/loan_update_sandbox"
151
+ require_relative "voltaria/sandbox/types/webhook_test_sandbox"
152
+ require_relative "voltaria/accounts/client"
153
+ require_relative "voltaria/accounts/types/list_client_account_fields_request"
154
+ require_relative "voltaria/accounts/types/list_client_accounts_request"
155
+ require_relative "voltaria/accounts/types/partner_client_account_create_request"
156
+ require_relative "voltaria/accounts/types/get_client_account_request"
157
+ require_relative "voltaria/documents/client"
158
+ require_relative "voltaria/documents/types/list_documents_request"
159
+ require_relative "voltaria/documents/types/document_create_payload"
160
+ require_relative "voltaria/documents/types/get_document_by_id_request"
161
+ require_relative "voltaria/documents/types/delete_document_request"
162
+ require_relative "voltaria/investors/client"
163
+ require_relative "voltaria/investors/types/investor_list_clients_request"
164
+ require_relative "voltaria/investors/types/investor_get_client_request"
165
+ require_relative "voltaria/investors/types/investor_list_loans_request"
166
+ require_relative "voltaria/investors/types/investor_get_loan_request"
167
+ require_relative "voltaria/investors/types/investor_list_installments_request"
168
+ require_relative "voltaria/investors/types/investor_get_installment_request"
169
+ require_relative "voltaria/investors/types/investor_list_repayments_request"
170
+ require_relative "voltaria/installments/client"
171
+ require_relative "voltaria/installments/types/list_installments_request"
172
+ require_relative "voltaria/installments/types/installment_create_payload"
173
+ require_relative "voltaria/installments/types/list_payment_promises_request"
174
+ require_relative "voltaria/installments/types/payment_promise_create_payload"
175
+ require_relative "voltaria/installments/types/get_installment_by_id_request"
176
+ require_relative "voltaria/installments/types/installment_edit_payload"
177
+ require_relative "voltaria/installments/types/delete_installment_request"
178
+ require_relative "voltaria/loans/client"
179
+ require_relative "voltaria/loans/types/list_loans_request"
180
+ require_relative "voltaria/loans/types/loan_create_payload"
181
+ require_relative "voltaria/loans/types/get_loan_by_id_request"
182
+ require_relative "voltaria/loans/types/delete_loan_request"
183
+ require_relative "voltaria/loans/types/bulk_loan_create_payload"
184
+ require_relative "voltaria/loans/types/get_bulk_loan_status_request"
185
+ require_relative "voltaria/loans/types/loan_default_payload"
186
+ require_relative "voltaria/partners/client"
187
+ require_relative "voltaria/partners/types/partner_data_create_payload"
188
+ require_relative "voltaria/partners/types/list_partner_waterfalls_request"
189
+ require_relative "voltaria/webhooks/client"
190
+ require_relative "voltaria/webhooks/types/list_webhook_subscriptions_request"
191
+ require_relative "voltaria/webhooks/types/webhook_create_payload"
192
+ require_relative "voltaria/webhooks/types/get_webhook_subscription_request"
193
+ require_relative "voltaria/webhooks/types/webhook_update_payload"
194
+ require_relative "voltaria/webhooks/types/delete_webhook_subscription_request"
195
+ require_relative "voltaria/webhooks/types/list_webhook_logs_request"
196
+ require_relative "voltaria/repayments/client"
197
+ require_relative "voltaria/repayments/types/list_repayment_logs_request"
198
+ require_relative "voltaria/repayments/types/repayment_create_payload"
199
+ require_relative "voltaria/repayments/types/bulk_repayment_create_payload"
200
+ require_relative "voltaria/repayments/types/get_bulk_repayment_status_request"
201
+ require_relative "voltaria/drawdowns/client"
202
+ require_relative "voltaria/drawdowns/types/list_drawdowns_request"
203
+ require_relative "voltaria/drawdowns/types/drawdown_create_payload"
204
+ require_relative "voltaria/drawdowns/types/list_drawdown_checklists_request"
205
+ require_relative "voltaria/environment"