inttegro 1.0.0 → 3.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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/Dockerfile +1 -1
  4. data/README.md +9 -7
  5. data/SECURITY.md +11 -0
  6. data/lib/inttegro/enums.rb +2 -2
  7. data/lib/inttegro/file_download.rb +1 -1
  8. data/lib/inttegro/generated/enums.rb +221 -329
  9. data/lib/inttegro/generated/models.rb +3707 -3830
  10. data/lib/inttegro/generated/operations.rb +230 -230
  11. data/lib/inttegro/http_client.rb +62 -5
  12. data/lib/inttegro/models.rb +54 -105
  13. data/lib/inttegro/resources/apps.rb +3 -3
  14. data/lib/inttegro/resources/balance_transactions.rb +2 -6
  15. data/lib/inttegro/resources/balances.rb +1 -1
  16. data/lib/inttegro/resources/broadcasts.rb +2 -6
  17. data/lib/inttegro/resources/chimes.rb +5 -5
  18. data/lib/inttegro/resources/customers.rb +4 -4
  19. data/lib/inttegro/resources/file_links.rb +4 -6
  20. data/lib/inttegro/resources/file_references.rb +1 -1
  21. data/lib/inttegro/resources/files.rb +4 -6
  22. data/lib/inttegro/resources/financial_accounts.rb +22 -22
  23. data/lib/inttegro/resources/keys.rb +8 -10
  24. data/lib/inttegro/resources/message_templates.rb +13 -15
  25. data/lib/inttegro/resources/orders.rb +72 -69
  26. data/lib/inttegro/resources/otp.rb +4 -4
  27. data/lib/inttegro/resources/payment_methods.rb +34 -36
  28. data/lib/inttegro/resources/payouts.rb +28 -28
  29. data/lib/inttegro/resources/prices.rb +7 -7
  30. data/lib/inttegro/resources/products.rb +9 -9
  31. data/lib/inttegro/resources/purchase_intents.rb +8 -8
  32. data/lib/inttegro/resources/refunds.rb +6 -6
  33. data/lib/inttegro/resources/schedules.rb +4 -4
  34. data/lib/inttegro/resources/spec.rb +1 -1
  35. data/lib/inttegro/resources/upload_requests.rb +10 -10
  36. data/lib/inttegro/response_object.rb +1 -1
  37. data/lib/inttegro/version.rb +1 -1
  38. data/lib/inttegro.rb +15 -0
  39. data/rbi/inttegro/generated.rbi +124 -124
  40. metadata +3 -2
@@ -8,239 +8,239 @@ require_relative "models"
8
8
  module Inttegro
9
9
  module Operations
10
10
  RESPONSE_MODELS = T.let({
11
- "/otp/initiate" => Inttegro::Models::InitiateOTPResponse,
12
- "/otp/verify" => Inttegro::Models::VerifyOTPResponse,
13
- "/otp/lookup" => Inttegro::Models::LookupOTPResponse,
14
- "/chimes/send" => Inttegro::Models::ChimeResponse,
15
- "/chimes/lookup" => Inttegro::Models::ChimeResponse,
16
- "/chimes/page" => Inttegro::Models::PageChimesResponse,
17
- "/chimes/schedule" => Inttegro::Models::ScheduleResponse,
18
- "/chimes/broadcast" => Inttegro::Models::BroadcastResponse,
19
- "/schedules/lookup" => Inttegro::Models::ScheduleLookupResponse,
20
- "/schedules/cancel" => Inttegro::Models::ScheduleCancelResponse,
21
- "/broadcasts/lookup" => Inttegro::Models::LookupBroadcastResponse,
22
- "/broadcasts/cancel" => Inttegro::Models::BroadcastCancelResponse,
23
- "/message_templates/create" => Inttegro::Models::MessageTemplateEnvelope,
24
- "/message_templates/update" => Inttegro::Models::MessageTemplateEnvelope,
25
- "/message_templates/publish" => Inttegro::Models::MessageTemplateEnvelope,
26
- "/message_templates/archive" => Inttegro::Models::MessageTemplateEnvelope,
27
- "/message_templates/lookup" => Inttegro::Models::MessageTemplateEnvelope,
28
- "/message_templates/page" => Inttegro::Models::MessageTemplatesPageEnvelope,
29
- "/message_templates/render_preview" => Inttegro::Models::RenderMessageTemplatePreviewResponse,
30
- "/customers/create" => Inttegro::Models::CustomerResponse,
31
- "/customers/lookup" => Inttegro::Models::CustomerResponse,
32
- "/customers/update" => Inttegro::Models::CustomerResponse,
33
- "/customers/page" => Inttegro::Models::PageCustomersResponse,
34
- "/orders/create" => Inttegro::Models::OrderResponse,
35
- "/orders/lookup" => Inttegro::Models::OrderResponse,
36
- "/orders/update" => Inttegro::Models::OrderResponse,
37
- "/orders/pay" => Inttegro::Models::OrderResponse,
38
- "/orders/confirm_payment" => Inttegro::Models::OrderResponse,
39
- "/orders/request_confirmation" => Inttegro::Models::OrderResponse,
40
- "/orders/cancel" => Inttegro::Models::OrderResponse,
41
- "/orders/finalize" => Inttegro::Models::FinalizeOrderResponse,
42
- "/orders/complete" => Inttegro::Models::CompleteOrderResponse,
43
- "/orders/send_invoice" => Inttegro::Models::OrderDocumentDeliveryResponse,
44
- "/orders/send_receipt" => Inttegro::Models::OrderDocumentDeliveryResponse,
45
- "/orders/page" => Inttegro::Models::PageOrdersResponse,
46
- "/refunds/create" => Inttegro::Models::RefundResponse,
47
- "/orders/refund" => Inttegro::Models::RefundResponse,
48
- "/refunds/cancel" => Inttegro::Models::RefundResponse,
49
- "/refunds/lookup" => Inttegro::Models::RefundResponse,
50
- "/refunds/page" => Inttegro::Models::RefundPageResponse,
51
- "/apps/create" => Inttegro::Models::CreateApplicationResponse,
52
- "/apps/lookup" => Inttegro::Models::LookupApplicationResponse,
53
- "/apps/update" => Inttegro::Models::UpdateApplicationResponse,
54
- "/keys/generate" => Inttegro::Models::GenerateSecretKeyResponse,
55
- "/keys/page" => Inttegro::Models::PageSecretKeysResponse,
56
- "/keys/lookup" => Inttegro::Models::LookupSecretKeyResponse,
57
- "/keys/update" => Inttegro::Models::UpdateSecretKeyResponse,
58
- "/keys/destroy" => Inttegro::Models::DestroySecretKeyResponse,
59
- "/keys/usage" => Inttegro::Models::SecretKeyUsageResponse,
60
- "/financial_accounts/create" => Inttegro::Models::CreateFinancialAccountResponse,
61
- "/financial_accounts/lookup" => Inttegro::Models::LookupFinancialAccountResponse,
62
- "/financial_accounts/page" => Inttegro::Models::PageFinancialAccountsResponseInline,
63
- "/financial_accounts/connect" => Inttegro::Models::ConnectFinancialAccountResponse,
64
- "/financial_accounts/update" => Inttegro::Models::UpdateFinancialAccountResponse,
65
- "/financial_accounts/enable_push" => Inttegro::Models::EnableFinancialAccountPushResponse,
66
- "/financial_accounts/disable_push" => Inttegro::Models::DisableFinancialAccountPushResponse,
67
- "/financial_accounts/disconnect" => Inttegro::Models::DisconnectFinancialAccountResponse,
68
- "/financial_accounts/reconnect" => Inttegro::Models::ReconnectFinancialAccountResponse,
69
- "/financial_accounts/enable_pull" => Inttegro::Models::EnableFinancialAccountPullResponse,
70
- "/financial_accounts/disable_pull" => Inttegro::Models::DisableFinancialAccountPullResponse,
71
- "/balances" => Inttegro::Models::BalanceSnapshotResponse,
72
- "/balance_transactions/lookup" => Inttegro::Models::BalanceTransactionResponse,
73
- "/balance_transactions/page" => Inttegro::Models::BalanceTransactionPageResponse,
74
- "/payouts/schedule" => Inttegro::Models::SchedulePayoutResponse,
75
- "/payouts/lookup" => Inttegro::Models::LookupPayoutResponse,
76
- "/payouts/set_destinations" => Inttegro::Models::SetPayoutDestinationsResponse,
77
- "/payouts/settings" => Inttegro::Models::GetPayoutSettingsResponse,
78
- "/payouts/disable" => Inttegro::Models::DisableAutomaticPayoutsResponse,
79
- "/payouts/enable" => Inttegro::Models::EnableAutomaticPayoutsResponse,
80
- "/payouts/page" => Inttegro::Models::PagePayoutsResponse,
81
- "/payouts/cancel" => Inttegro::Models::CancelPayoutResponse,
82
- "/files/create" => Inttegro::Models::FileResponse,
83
- "/files/lookup" => Inttegro::Models::FileResponse,
84
- "/files/page" => Inttegro::Models::FilePageResponse,
85
- "/files/delete" => Inttegro::Models::FileResponse,
86
- "/file_links/create" => Inttegro::Models::CreateFileLinkResponse,
87
- "/file_links/lookup" => Inttegro::Models::FileLinkResponse,
88
- "/file_links/page" => Inttegro::Models::FileLinkPageResponse,
89
- "/file_links/revoke" => Inttegro::Models::FileLinkResponse,
90
- "/upload_requests/create" => Inttegro::Models::UploadRequestResponse,
91
- "/upload_requests/lookup" => Inttegro::Models::UploadRequestWithAttemptResponse,
92
- "/upload_requests/page" => Inttegro::Models::UploadRequestPageResponse,
93
- "/upload_requests/cancel" => Inttegro::Models::UploadRequestResponse,
94
- "/upload_requests/review" => Inttegro::Models::UploadRequestWithAttemptResponse,
95
- "/upload_requests/upload" => Inttegro::Models::FulfillUploadRequestResponse,
96
- "/file_references/reconcile" => Inttegro::Models::FileReferenceReconcileResponse,
97
- "/payment_methods/tokenize" => Inttegro::Models::TokenizePaymentMethodResponse,
98
- "/payment_methods/lookup" => Inttegro::Models::LookupPaymentMethodResponse,
99
- "/payment_methods/page" => Inttegro::Models::PaymentMethodPageResponse,
100
- "/payment_methods/update" => Inttegro::Models::UpdatePaymentMethodResponse,
101
- "/payment_methods/activate" => Inttegro::Models::ActivatePaymentMethodResponse,
102
- "/payment_methods/disactivate" => Inttegro::Models::DisactivatePaymentMethodResponse,
103
- "/payment_methods/archive" => Inttegro::Models::ArchivePaymentMethodResponse,
104
- "/payment_methods/unarchive" => Inttegro::Models::UnarchivePaymentMethodResponse,
105
- "/payment_methods/settings" => Inttegro::Models::GetPaymentMethodSettingsResponse,
106
- "/products/create" => Inttegro::Models::ProductResponse,
107
- "/products/add_price" => Inttegro::Models::AddProductPriceResponse,
108
- "/products/lookup" => Inttegro::Models::ProductResponse,
109
- "/products/update" => Inttegro::Models::UpdateProductResponse,
110
- "/products/publish" => Inttegro::Models::ProductResponse,
111
- "/products/unpublish" => Inttegro::Models::ProductResponse,
112
- "/products/archive" => Inttegro::Models::ProductResponse,
113
- "/products/page" => Inttegro::Models::PageProductsResponse,
114
- "/purchase_intents/create" => Inttegro::Models::PurchaseIntentResponse,
115
- "/purchase_intents/update" => Inttegro::Models::PurchaseIntentResponse,
116
- "/purchase_intents/cancel" => Inttegro::Models::PurchaseIntentResponse,
117
- "/purchase_intents/lookup" => Inttegro::Models::PurchaseIntentResponse,
118
- "/purchase_intents/page" => Inttegro::Models::PagePurchaseIntentsResponse,
119
- "/prices/create" => Inttegro::Models::PriceResponse,
120
- "/prices/lookup" => Inttegro::Models::PriceResponse,
121
- "/prices/page" => Inttegro::Models::PricePageResponse,
122
- "/prices/update" => Inttegro::Models::PriceResponse,
123
- "/prices/activate" => Inttegro::Models::PriceResponse,
124
- "/prices/deactivate" => Inttegro::Models::PriceResponse,
125
- "/prices/archive" => Inttegro::Models::PriceResponse,
126
- "/spec/countries" => Inttegro::Models::ListCountrySpecsResponse
11
+ "/otp/initiate" => Inttegro::InitiateOTPResponse,
12
+ "/otp/verify" => Inttegro::OTPVerification,
13
+ "/otp/lookup" => Inttegro::LookupOTPResponse,
14
+ "/chimes/send" => Inttegro::ChimeResponse,
15
+ "/chimes/lookup" => Inttegro::ChimeResponse,
16
+ "/chimes/page" => Inttegro::PageChimesResponse,
17
+ "/chimes/schedule" => Inttegro::ScheduleResponse,
18
+ "/chimes/broadcast" => Inttegro::BroadcastResponse,
19
+ "/schedules/lookup" => Inttegro::ScheduleLookupResponse,
20
+ "/schedules/cancel" => Inttegro::ScheduleCancelResponse,
21
+ "/broadcasts/lookup" => Inttegro::LookupBroadcastResponse,
22
+ "/broadcasts/cancel" => Inttegro::BroadcastCancelResponse,
23
+ "/message_templates/create" => Inttegro::MessageTemplateEnvelope,
24
+ "/message_templates/update" => Inttegro::MessageTemplateEnvelope,
25
+ "/message_templates/publish" => Inttegro::MessageTemplateEnvelope,
26
+ "/message_templates/archive" => Inttegro::MessageTemplateEnvelope,
27
+ "/message_templates/lookup" => Inttegro::MessageTemplateEnvelope,
28
+ "/message_templates/page" => Inttegro::MessageTemplatesPageEnvelope,
29
+ "/message_templates/render_preview" => Inttegro::MessageTemplatePreview,
30
+ "/customers/create" => Inttegro::CustomerResponse,
31
+ "/customers/lookup" => Inttegro::CustomerResponse,
32
+ "/customers/update" => Inttegro::CustomerResponse,
33
+ "/customers/page" => Inttegro::PageCustomersResponse,
34
+ "/orders/create" => Inttegro::OrderEnvelope,
35
+ "/orders/lookup" => Inttegro::OrderEnvelope,
36
+ "/orders/update" => Inttegro::OrderEnvelope,
37
+ "/orders/pay" => Inttegro::OrderEnvelope,
38
+ "/orders/confirm_payment" => Inttegro::OrderEnvelope,
39
+ "/orders/request_confirmation" => Inttegro::OrderEnvelope,
40
+ "/orders/cancel" => Inttegro::OrderEnvelope,
41
+ "/orders/finalize" => Inttegro::FinalizeOrderEnvelope,
42
+ "/orders/complete" => Inttegro::CompleteOrderEnvelope,
43
+ "/orders/send_invoice" => Inttegro::OrderDocumentDeliveryResult,
44
+ "/orders/send_receipt" => Inttegro::OrderDocumentDeliveryResult,
45
+ "/orders/page" => Inttegro::PageOrdersEnvelope,
46
+ "/refunds/create" => Inttegro::RefundResponse,
47
+ "/orders/refund" => Inttegro::RefundResponse,
48
+ "/refunds/cancel" => Inttegro::RefundResponse,
49
+ "/refunds/lookup" => Inttegro::RefundResponse,
50
+ "/refunds/page" => Inttegro::RefundPageResponse,
51
+ "/apps/create" => Inttegro::CreateApplicationResponse,
52
+ "/apps/lookup" => Inttegro::LookupApplicationResponse,
53
+ "/apps/update" => Inttegro::UpdateApplicationResponse,
54
+ "/keys/generate" => Inttegro::GenerateSecretKeyResponse,
55
+ "/keys/page" => Inttegro::PageSecretKeysResponse,
56
+ "/keys/lookup" => Inttegro::LookupSecretKeyResponse,
57
+ "/keys/update" => Inttegro::UpdateSecretKeyResponse,
58
+ "/keys/destroy" => Inttegro::DestroySecretKeyResponse,
59
+ "/keys/usage" => Inttegro::SecretKeyUsage,
60
+ "/financial_accounts/create" => Inttegro::CreateFinancialAccountResponse,
61
+ "/financial_accounts/lookup" => Inttegro::LookupFinancialAccountResponse,
62
+ "/financial_accounts/page" => Inttegro::PageFinancialAccountsResponseInline,
63
+ "/financial_accounts/connect" => Inttegro::ConnectFinancialAccountResponse,
64
+ "/financial_accounts/update" => Inttegro::UpdateFinancialAccountResponse,
65
+ "/financial_accounts/enable_push" => Inttegro::EnableFinancialAccountPushResponse,
66
+ "/financial_accounts/disable_push" => Inttegro::DisableFinancialAccountPushResponse,
67
+ "/financial_accounts/disconnect" => Inttegro::DisconnectFinancialAccountResponse,
68
+ "/financial_accounts/reconnect" => Inttegro::ReconnectFinancialAccountResponse,
69
+ "/financial_accounts/enable_pull" => Inttegro::EnableFinancialAccountPullResponse,
70
+ "/financial_accounts/disable_pull" => Inttegro::DisableFinancialAccountPullResponse,
71
+ "/balances" => Inttegro::BalanceSnapshot,
72
+ "/balance_transactions/lookup" => Inttegro::BalanceTransactionResponse,
73
+ "/balance_transactions/page" => Inttegro::BalanceTransactionPageResponse,
74
+ "/payouts/schedule" => Inttegro::SchedulePayoutResponse,
75
+ "/payouts/lookup" => Inttegro::LookupPayoutResponse,
76
+ "/payouts/set_destinations" => Inttegro::SetPayoutDestinationsResponse,
77
+ "/payouts/settings" => Inttegro::GetPayoutSettingsResponse,
78
+ "/payouts/disable" => Inttegro::DisableAutomaticPayoutsResponse,
79
+ "/payouts/enable" => Inttegro::EnableAutomaticPayoutsResponse,
80
+ "/payouts/page" => Inttegro::PagePayoutsResponse,
81
+ "/payouts/cancel" => Inttegro::CancelPayoutResponse,
82
+ "/files/create" => Inttegro::FileResponse,
83
+ "/files/lookup" => Inttegro::FileResponse,
84
+ "/files/page" => Inttegro::FilePageResponse,
85
+ "/files/delete" => Inttegro::FileResponse,
86
+ "/file_links/create" => Inttegro::FileLinkCreation,
87
+ "/file_links/lookup" => Inttegro::FileLinkResponse,
88
+ "/file_links/page" => Inttegro::FileLinkPageResponse,
89
+ "/file_links/revoke" => Inttegro::FileLinkResponse,
90
+ "/upload_requests/create" => Inttegro::UploadRequestResponse,
91
+ "/upload_requests/lookup" => Inttegro::UploadRequestWithAttemptResponse,
92
+ "/upload_requests/page" => Inttegro::UploadRequestPageResponse,
93
+ "/upload_requests/cancel" => Inttegro::UploadRequestResponse,
94
+ "/upload_requests/review" => Inttegro::UploadRequestWithAttemptResponse,
95
+ "/upload_requests/upload" => Inttegro::UploadFulfillment,
96
+ "/file_references/reconcile" => Inttegro::FileReferenceReconciliation,
97
+ "/payment_methods/tokenize" => Inttegro::TokenizePaymentMethodResponse,
98
+ "/payment_methods/lookup" => Inttegro::LookupPaymentMethodResponse,
99
+ "/payment_methods/page" => Inttegro::PaymentMethodPageResponse,
100
+ "/payment_methods/update" => Inttegro::UpdatePaymentMethodResponse,
101
+ "/payment_methods/activate" => Inttegro::ActivatePaymentMethodResponse,
102
+ "/payment_methods/disactivate" => Inttegro::DisactivatePaymentMethodResponse,
103
+ "/payment_methods/archive" => Inttegro::ArchivePaymentMethodResponse,
104
+ "/payment_methods/unarchive" => Inttegro::UnarchivePaymentMethodResponse,
105
+ "/payment_methods/settings" => Inttegro::GetPaymentMethodSettingsResponse,
106
+ "/products/create" => Inttegro::ProductResponse,
107
+ "/products/add_price" => Inttegro::AddProductPriceResponse,
108
+ "/products/lookup" => Inttegro::ProductResponse,
109
+ "/products/update" => Inttegro::UpdateProductResponse,
110
+ "/products/publish" => Inttegro::ProductResponse,
111
+ "/products/unpublish" => Inttegro::ProductResponse,
112
+ "/products/archive" => Inttegro::ProductResponse,
113
+ "/products/page" => Inttegro::PageProductsResponse,
114
+ "/purchase_intents/create" => Inttegro::PurchaseIntentResponse,
115
+ "/purchase_intents/update" => Inttegro::PurchaseIntentResponse,
116
+ "/purchase_intents/cancel" => Inttegro::PurchaseIntentResponse,
117
+ "/purchase_intents/lookup" => Inttegro::PurchaseIntentResponse,
118
+ "/purchase_intents/page" => Inttegro::PagePurchaseIntentsResponse,
119
+ "/prices/create" => Inttegro::PriceResponse,
120
+ "/prices/lookup" => Inttegro::PriceResponse,
121
+ "/prices/page" => Inttegro::PricePageResponse,
122
+ "/prices/update" => Inttegro::PriceResponse,
123
+ "/prices/activate" => Inttegro::PriceResponse,
124
+ "/prices/deactivate" => Inttegro::PriceResponse,
125
+ "/prices/archive" => Inttegro::PriceResponse,
126
+ "/spec/countries" => Inttegro::CountrySpecifications
127
127
  }.freeze, T::Hash[String, T::Class[T::Struct]])
128
128
 
129
129
  REQUEST_TYPE_NAMES = T.let({
130
- "/otp/initiate" => "Inttegro::Models::InitiateOTPRequest",
131
- "/otp/verify" => "Inttegro::Models::VerifyOTPRequest",
132
- "/otp/lookup" => "Inttegro::Models::LookupOTPRequest",
133
- "/chimes/send" => "Inttegro::Models::SendChimeRequest",
134
- "/chimes/lookup" => "Inttegro::Models::LookupChimeRequest",
135
- "/chimes/page" => "Inttegro::Models::PageChimesRequest",
136
- "/chimes/schedule" => "Inttegro::Models::ScheduleChimeRequest",
137
- "/chimes/broadcast" => "Inttegro::Models::BroadcastRequest",
138
- "/schedules/lookup" => "Inttegro::Models::LookupScheduleRequest",
139
- "/schedules/cancel" => "Inttegro::Models::CancelScheduleRequest",
140
- "/broadcasts/lookup" => "Inttegro::Models::LookupBroadcastRequest",
141
- "/broadcasts/cancel" => "Inttegro::Models::CancelBroadcastRequest",
142
- "/message_templates/create" => "Inttegro::Models::CreateMessageTemplateRequest",
143
- "/message_templates/update" => "Inttegro::Models::UpdateMessageTemplateRequest",
144
- "/message_templates/publish" => "Inttegro::Models::MessageTemplateIDRequest",
145
- "/message_templates/archive" => "Inttegro::Models::MessageTemplateIDRequest",
146
- "/message_templates/lookup" => "Inttegro::Models::MessageTemplateIDRequest",
147
- "/message_templates/page" => "Inttegro::Models::PageMessageTemplatesRequest",
148
- "/message_templates/render_preview" => "Inttegro::Models::RenderMessageTemplatePreviewRequest",
149
- "/customers/create" => "Inttegro::Models::CreateCustomerRequest",
150
- "/customers/lookup" => "Inttegro::Models::LookupCustomerRequest",
151
- "/customers/update" => "Inttegro::Models::UpdateCustomerRequest",
152
- "/customers/page" => "Inttegro::Models::PageCustomersRequest",
153
- "/orders/create" => "T.any(Inttegro::Models::CreateOrderNewCustomer, Inttegro::Models::CreateOrderExistingCustomer)",
154
- "/orders/lookup" => "Inttegro::Models::LookupOrderRequest",
155
- "/orders/update" => "Inttegro::Models::UpdateOrderRequest",
156
- "/orders/pay" => "Inttegro::Models::PayOrderRequest",
157
- "/orders/confirm_payment" => "Inttegro::Models::ConfirmPaymentRequest",
158
- "/orders/request_confirmation" => "Inttegro::Models::RequestConfirmationRequest",
159
- "/orders/cancel" => "Inttegro::Models::CancelOrderRequest",
160
- "/orders/finalize" => "Inttegro::Models::FinalizeOrderRequest",
161
- "/orders/complete" => "Inttegro::Models::CompleteOrderRequest",
162
- "/orders/send_invoice" => "Inttegro::Models::OrderDocumentDeliveryRequest",
163
- "/orders/send_receipt" => "Inttegro::Models::OrderDocumentDeliveryRequest",
164
- "/orders/page" => "Inttegro::Models::PageOrdersRequest",
165
- "/refunds/create" => "Inttegro::Models::CreateRefundRequest",
166
- "/orders/refund" => "Inttegro::Models::CreateRefundRequest",
167
- "/refunds/cancel" => "Inttegro::Models::CancelRefundRequest",
168
- "/refunds/lookup" => "Inttegro::Models::LookupRefundRequest",
169
- "/refunds/page" => "Inttegro::Models::PageRefundsRequest",
170
- "/apps/create" => "Inttegro::Models::CreateApplicationRequest",
171
- "/apps/update" => "Inttegro::Models::UpdateApplicationRequest",
172
- "/keys/generate" => "Inttegro::Models::GenerateSecretKeyRequest",
173
- "/keys/page" => "Inttegro::Models::PageSecretKeysRequest",
174
- "/keys/lookup" => "Inttegro::Models::LookupSecretKeyRequest",
175
- "/keys/update" => "Inttegro::Models::UpdateSecretKeyRequest",
176
- "/keys/destroy" => "Inttegro::Models::DestroySecretKeyRequest",
177
- "/keys/usage" => "Inttegro::Models::SecretKeyUsageRequest",
178
- "/financial_accounts/create" => "Inttegro::Models::FinancialAccountCreateRequest",
179
- "/financial_accounts/lookup" => "Inttegro::Models::FinancialAccountIDRequest",
180
- "/financial_accounts/page" => "Inttegro::Models::FinancialAccountPageRequest",
181
- "/financial_accounts/connect" => "Inttegro::Models::FinancialAccountCreateRequest",
182
- "/financial_accounts/update" => "Inttegro::Models::FinancialAccountUpdateRequest",
183
- "/financial_accounts/enable_push" => "Inttegro::Models::FinancialAccountIDRequest",
184
- "/financial_accounts/disable_push" => "Inttegro::Models::FinancialAccountDisableRequest",
185
- "/financial_accounts/disconnect" => "Inttegro::Models::FinancialAccountDisableRequest",
186
- "/financial_accounts/reconnect" => "Inttegro::Models::FinancialAccountIDRequest",
187
- "/financial_accounts/enable_pull" => "Inttegro::Models::FinancialAccountEnablePullRequest",
188
- "/financial_accounts/disable_pull" => "Inttegro::Models::FinancialAccountIDRequest",
189
- "/balances" => "Inttegro::Models::LookupBalancesRequest",
190
- "/balance_transactions/lookup" => "Inttegro::Models::LookupBalanceTransactionRequest",
191
- "/balance_transactions/page" => "Inttegro::Models::PageBalanceTransactionsRequest",
192
- "/payouts/schedule" => "Inttegro::Models::SchedulePayoutRequest",
193
- "/payouts/lookup" => "Inttegro::Models::LookupPayoutRequest",
194
- "/payouts/set_destinations" => "Inttegro::Models::SetPayoutDestinationsRequest",
195
- "/payouts/settings" => "Inttegro::Models::GetPayoutSettingsRequest",
196
- "/payouts/disable" => "Inttegro::Models::DisableAutomaticPayoutsRequest",
197
- "/payouts/enable" => "Inttegro::Models::EnableAutomaticPayoutsRequest",
198
- "/payouts/page" => "Inttegro::Models::PagePayoutsRequest",
199
- "/payouts/cancel" => "Inttegro::Models::CancelPayoutRequest",
200
- "/files/lookup" => "Inttegro::Models::LookupFileRequest",
201
- "/files/page" => "Inttegro::Models::PageFilesRequest",
202
- "/files/contents" => "Inttegro::Models::FileContentsRequest",
203
- "/files/delete" => "Inttegro::Models::DeleteFileRequest",
204
- "/file_links/create" => "Inttegro::Models::CreateFileLinkRequest",
205
- "/file_links/lookup" => "Inttegro::Models::LookupFileLinkRequest",
206
- "/file_links/page" => "Inttegro::Models::PageFileLinksRequest",
207
- "/file_links/revoke" => "Inttegro::Models::RevokeFileLinkRequest",
208
- "/upload_requests/create" => "Inttegro::Models::CreateUploadRequestRequest",
209
- "/upload_requests/lookup" => "Inttegro::Models::LookupUploadRequestRequest",
210
- "/upload_requests/page" => "Inttegro::Models::PageUploadRequestsRequest",
211
- "/upload_requests/cancel" => "Inttegro::Models::CancelUploadRequestRequest",
212
- "/upload_requests/review" => "Inttegro::Models::ReviewUploadRequestAttemptRequest",
213
- "/file_references/reconcile" => "Inttegro::Models::FileReferenceReconcileRequest",
214
- "/payment_methods/tokenize" => "Inttegro::Models::TokenizeMobileMoneyPaymentMethodRequest",
215
- "/payment_methods/lookup" => "Inttegro::Models::LookupPaymentMethodRequest",
216
- "/payment_methods/page" => "Inttegro::Models::PaymentMethodPageRequest",
217
- "/payment_methods/update" => "Inttegro::Models::UpdatePaymentMethodRequest",
218
- "/payment_methods/activate" => "Inttegro::Models::ActivatePaymentMethodRequest",
219
- "/payment_methods/disactivate" => "Inttegro::Models::DisactivatePaymentMethodRequest",
220
- "/payment_methods/archive" => "Inttegro::Models::ArchivePaymentMethodRequest",
221
- "/payment_methods/unarchive" => "Inttegro::Models::UnarchivePaymentMethodRequest",
222
- "/payment_methods/settings" => "Inttegro::Models::GetPaymentMethodSettingsRequest",
223
- "/products/create" => "Inttegro::Models::CreateProductRequest",
224
- "/products/add_price" => "Inttegro::Models::AddProductPriceRequest",
225
- "/products/lookup" => "Inttegro::Models::LookupProductRequest",
226
- "/products/update" => "Inttegro::Models::UpdateProductRequest",
227
- "/products/publish" => "Inttegro::Models::ProductActionRequest",
228
- "/products/unpublish" => "Inttegro::Models::ProductActionRequest",
229
- "/products/archive" => "Inttegro::Models::ProductActionRequest",
230
- "/products/page" => "Inttegro::Models::PageProductsRequest",
231
- "/purchase_intents/create" => "Inttegro::Models::CreatePurchaseIntentRequest",
232
- "/purchase_intents/update" => "Inttegro::Models::UpdatePurchaseIntentRequest",
233
- "/purchase_intents/cancel" => "Inttegro::Models::CancelPurchaseIntentRequest",
234
- "/purchase_intents/lookup" => "Inttegro::Models::LookupPurchaseIntentRequest",
235
- "/purchase_intents/page" => "Inttegro::Models::PagePurchaseIntentsRequest",
236
- "/prices/create" => "Inttegro::Models::CreatePriceRequest",
237
- "/prices/lookup" => "Inttegro::Models::LookupPriceRequest",
238
- "/prices/page" => "Inttegro::Models::PricePageRequest",
239
- "/prices/update" => "Inttegro::Models::UpdatePriceRequest",
240
- "/prices/activate" => "Inttegro::Models::PriceActionRequest",
241
- "/prices/deactivate" => "Inttegro::Models::PriceActionRequest",
242
- "/prices/archive" => "Inttegro::Models::PriceActionRequest",
243
- "/spec/countries" => "Inttegro::Models::ListCountrySpecsRequest"
130
+ "/otp/initiate" => "Inttegro::InitiateOTPRequest",
131
+ "/otp/verify" => "Inttegro::VerifyOTPRequest",
132
+ "/otp/lookup" => "Inttegro::LookupOTPRequest",
133
+ "/chimes/send" => "Inttegro::SendChimeRequest",
134
+ "/chimes/lookup" => "Inttegro::LookupChimeRequest",
135
+ "/chimes/page" => "Inttegro::PageChimesRequest",
136
+ "/chimes/schedule" => "Inttegro::ScheduleChimeRequest",
137
+ "/chimes/broadcast" => "Inttegro::BroadcastRequest",
138
+ "/schedules/lookup" => "Inttegro::LookupScheduleRequest",
139
+ "/schedules/cancel" => "Inttegro::CancelScheduleRequest",
140
+ "/broadcasts/lookup" => "Inttegro::LookupBroadcastRequest",
141
+ "/broadcasts/cancel" => "Inttegro::CancelBroadcastRequest",
142
+ "/message_templates/create" => "Inttegro::CreateMessageTemplateRequest",
143
+ "/message_templates/update" => "Inttegro::UpdateMessageTemplateRequest",
144
+ "/message_templates/publish" => "Inttegro::MessageTemplateIDRequest",
145
+ "/message_templates/archive" => "Inttegro::MessageTemplateIDRequest",
146
+ "/message_templates/lookup" => "Inttegro::MessageTemplateIDRequest",
147
+ "/message_templates/page" => "Inttegro::PageMessageTemplatesRequest",
148
+ "/message_templates/render_preview" => "Inttegro::RenderMessageTemplatePreviewRequest",
149
+ "/customers/create" => "Inttegro::CreateCustomerRequest",
150
+ "/customers/lookup" => "Inttegro::LookupCustomerRequest",
151
+ "/customers/update" => "Inttegro::UpdateCustomerRequest",
152
+ "/customers/page" => "Inttegro::PageCustomersRequest",
153
+ "/orders/create" => "T.any(Inttegro::CreateOrderNewCustomer, Inttegro::CreateOrderExistingCustomer)",
154
+ "/orders/lookup" => "Inttegro::LookupOrderRequest",
155
+ "/orders/update" => "Inttegro::UpdateOrderRequest",
156
+ "/orders/pay" => "Inttegro::PayOrderRequest",
157
+ "/orders/confirm_payment" => "Inttegro::ConfirmPaymentRequest",
158
+ "/orders/request_confirmation" => "Inttegro::RequestConfirmationRequest",
159
+ "/orders/cancel" => "Inttegro::CancelOrderRequest",
160
+ "/orders/finalize" => "Inttegro::FinalizeOrderRequest",
161
+ "/orders/complete" => "Inttegro::CompleteOrderRequest",
162
+ "/orders/send_invoice" => "Inttegro::OrderDocumentDeliveryRequest",
163
+ "/orders/send_receipt" => "Inttegro::OrderDocumentDeliveryRequest",
164
+ "/orders/page" => "Inttegro::PageOrdersRequest",
165
+ "/refunds/create" => "Inttegro::CreateRefundRequest",
166
+ "/orders/refund" => "Inttegro::CreateRefundRequest",
167
+ "/refunds/cancel" => "Inttegro::CancelRefundRequest",
168
+ "/refunds/lookup" => "Inttegro::LookupRefundRequest",
169
+ "/refunds/page" => "Inttegro::PageRefundsRequest",
170
+ "/apps/create" => "Inttegro::CreateApplicationRequest",
171
+ "/apps/update" => "Inttegro::UpdateApplicationRequest",
172
+ "/keys/generate" => "Inttegro::GenerateSecretKeyRequest",
173
+ "/keys/page" => "Inttegro::PageSecretKeysRequest",
174
+ "/keys/lookup" => "Inttegro::LookupSecretKeyRequest",
175
+ "/keys/update" => "Inttegro::UpdateSecretKeyRequest",
176
+ "/keys/destroy" => "Inttegro::DestroySecretKeyRequest",
177
+ "/keys/usage" => "Inttegro::SecretKeyUsageRequest",
178
+ "/financial_accounts/create" => "Inttegro::FinancialAccountCreateRequest",
179
+ "/financial_accounts/lookup" => "Inttegro::FinancialAccountIDRequest",
180
+ "/financial_accounts/page" => "Inttegro::FinancialAccountPageRequest",
181
+ "/financial_accounts/connect" => "Inttegro::FinancialAccountCreateRequest",
182
+ "/financial_accounts/update" => "Inttegro::FinancialAccountUpdateRequest",
183
+ "/financial_accounts/enable_push" => "Inttegro::FinancialAccountIDRequest",
184
+ "/financial_accounts/disable_push" => "Inttegro::FinancialAccountDisableRequest",
185
+ "/financial_accounts/disconnect" => "Inttegro::FinancialAccountDisableRequest",
186
+ "/financial_accounts/reconnect" => "Inttegro::FinancialAccountIDRequest",
187
+ "/financial_accounts/enable_pull" => "Inttegro::FinancialAccountEnablePullRequest",
188
+ "/financial_accounts/disable_pull" => "Inttegro::FinancialAccountIDRequest",
189
+ "/balances" => "Inttegro::LookupBalancesRequest",
190
+ "/balance_transactions/lookup" => "Inttegro::LookupBalanceTransactionRequest",
191
+ "/balance_transactions/page" => "Inttegro::PageBalanceTransactionsRequest",
192
+ "/payouts/schedule" => "Inttegro::SchedulePayoutRequest",
193
+ "/payouts/lookup" => "Inttegro::LookupPayoutRequest",
194
+ "/payouts/set_destinations" => "Inttegro::SetPayoutDestinationsRequest",
195
+ "/payouts/settings" => "Inttegro::GetPayoutSettingsRequest",
196
+ "/payouts/disable" => "Inttegro::DisableAutomaticPayoutsRequest",
197
+ "/payouts/enable" => "Inttegro::EnableAutomaticPayoutsRequest",
198
+ "/payouts/page" => "Inttegro::PagePayoutsRequest",
199
+ "/payouts/cancel" => "Inttegro::CancelPayoutRequest",
200
+ "/files/lookup" => "Inttegro::LookupFileRequest",
201
+ "/files/page" => "Inttegro::PageFilesRequest",
202
+ "/files/contents" => "Inttegro::FileContentsRequest",
203
+ "/files/delete" => "Inttegro::DeleteFileRequest",
204
+ "/file_links/create" => "Inttegro::CreateFileLinkRequest",
205
+ "/file_links/lookup" => "Inttegro::LookupFileLinkRequest",
206
+ "/file_links/page" => "Inttegro::PageFileLinksRequest",
207
+ "/file_links/revoke" => "Inttegro::RevokeFileLinkRequest",
208
+ "/upload_requests/create" => "Inttegro::CreateUploadRequestRequest",
209
+ "/upload_requests/lookup" => "Inttegro::LookupUploadRequestRequest",
210
+ "/upload_requests/page" => "Inttegro::PageUploadRequestsRequest",
211
+ "/upload_requests/cancel" => "Inttegro::CancelUploadRequestRequest",
212
+ "/upload_requests/review" => "Inttegro::ReviewUploadRequestAttemptRequest",
213
+ "/file_references/reconcile" => "Inttegro::FileReferenceReconcileRequest",
214
+ "/payment_methods/tokenize" => "Inttegro::TokenizeMobileMoneyPaymentMethodRequest",
215
+ "/payment_methods/lookup" => "Inttegro::LookupPaymentMethodRequest",
216
+ "/payment_methods/page" => "Inttegro::PaymentMethodPageRequest",
217
+ "/payment_methods/update" => "Inttegro::UpdatePaymentMethodRequest",
218
+ "/payment_methods/activate" => "Inttegro::ActivatePaymentMethodRequest",
219
+ "/payment_methods/disactivate" => "Inttegro::DisactivatePaymentMethodRequest",
220
+ "/payment_methods/archive" => "Inttegro::ArchivePaymentMethodRequest",
221
+ "/payment_methods/unarchive" => "Inttegro::UnarchivePaymentMethodRequest",
222
+ "/payment_methods/settings" => "Inttegro::GetPaymentMethodSettingsRequest",
223
+ "/products/create" => "Inttegro::CreateProductRequest",
224
+ "/products/add_price" => "Inttegro::AddProductPriceRequest",
225
+ "/products/lookup" => "Inttegro::LookupProductRequest",
226
+ "/products/update" => "Inttegro::UpdateProductRequest",
227
+ "/products/publish" => "Inttegro::ProductActionRequest",
228
+ "/products/unpublish" => "Inttegro::ProductActionRequest",
229
+ "/products/archive" => "Inttegro::ProductActionRequest",
230
+ "/products/page" => "Inttegro::PageProductsRequest",
231
+ "/purchase_intents/create" => "Inttegro::CreatePurchaseIntentRequest",
232
+ "/purchase_intents/update" => "Inttegro::UpdatePurchaseIntentRequest",
233
+ "/purchase_intents/cancel" => "Inttegro::CancelPurchaseIntentRequest",
234
+ "/purchase_intents/lookup" => "Inttegro::LookupPurchaseIntentRequest",
235
+ "/purchase_intents/page" => "Inttegro::PagePurchaseIntentsRequest",
236
+ "/prices/create" => "Inttegro::CreatePriceRequest",
237
+ "/prices/lookup" => "Inttegro::LookupPriceRequest",
238
+ "/prices/page" => "Inttegro::PricePageRequest",
239
+ "/prices/update" => "Inttegro::UpdatePriceRequest",
240
+ "/prices/activate" => "Inttegro::PriceActionRequest",
241
+ "/prices/deactivate" => "Inttegro::PriceActionRequest",
242
+ "/prices/archive" => "Inttegro::PriceActionRequest",
243
+ "/spec/countries" => "Inttegro::ListCountrySpecsRequest"
244
244
  }.freeze, T::Hash[String, String])
245
245
 
246
246
  OPERATION_IDS = T.let({
@@ -41,7 +41,10 @@ module Inttegro
41
41
  @api_key = T.let(api_key || "", String)
42
42
  raise ArgumentError, "api_key is required" if @api_key.strip.empty?
43
43
 
44
- @base_url = T.let(base_url&.sub(%r{/*$}, "") || DEFAULT_BASE_URL, String)
44
+ normalized_base_url = T.let(base_url || DEFAULT_BASE_URL, String)
45
+ end_index = T.let(normalized_base_url.length, Integer)
46
+ end_index -= 1 while end_index.positive? && normalized_base_url.getbyte(end_index - 1) == 47
47
+ @base_url = T.let(T.must(normalized_base_url[0, end_index]), String)
45
48
  @read_timeout = T.let(read_timeout, T.nilable(Numeric))
46
49
  @open_timeout = T.let(open_timeout, T.nilable(Numeric))
47
50
  @adapter = T.let(adapter, T.nilable(Types::Adapter))
@@ -95,6 +98,30 @@ module Inttegro
95
98
  raise TypeError, "expected #{model} from #{path}, got #{response.class}"
96
99
  end
97
100
 
101
+ sig do
102
+ type_parameters(:Model)
103
+ .params(
104
+ path: String,
105
+ model: T::Class[T.type_parameter(:Model)],
106
+ field: Symbol,
107
+ body: Types::RequestBody,
108
+ headers: Types::Headers,
109
+ query: T.nilable(Types::Query)
110
+ )
111
+ .returns(T.type_parameter(:Model))
112
+ end
113
+ def post_resource(path, model, field, body, headers: {}, query: nil)
114
+ envelope = post_object(path, body, headers: headers, query: query)
115
+ value = envelope.public_send(field)
116
+ value = value.to_h if value.is_a?(ResponseObject)
117
+ return value if value.is_a?(model)
118
+
119
+ decoded = Inttegro.deserialize(value, T.cast(model, T::Class[T::Struct]))
120
+ return decoded if decoded.is_a?(model)
121
+
122
+ raise TypeError, "expected #{model} in #{field} from #{path}, got #{decoded.class}"
123
+ end
124
+
98
125
  sig do
99
126
  params(
100
127
  path: String,
@@ -153,6 +180,37 @@ module Inttegro
153
180
  raise TypeError, "expected #{model} from #{path}, got #{response.class}"
154
181
  end
155
182
 
183
+ sig do
184
+ type_parameters(:Model)
185
+ .params(
186
+ path: String,
187
+ model: T::Class[T.type_parameter(:Model)],
188
+ field: Symbol,
189
+ fields: Types::Payload,
190
+ files: Types::Payload,
191
+ headers: Types::Headers,
192
+ authenticated: T::Boolean
193
+ )
194
+ .returns(T.type_parameter(:Model))
195
+ end
196
+ def post_multipart_resource(path, model, field, fields: {}, files: {}, headers: {}, authenticated: true)
197
+ envelope = expect_response_object(perform_multipart(
198
+ path,
199
+ fields,
200
+ files,
201
+ headers,
202
+ authenticated,
203
+ nil
204
+ ), path)
205
+ value = envelope.public_send(field)
206
+ return value if value.is_a?(model)
207
+
208
+ decoded = Inttegro.deserialize(value, T.cast(model, T::Class[T::Struct]))
209
+ return decoded if decoded.is_a?(model)
210
+
211
+ raise TypeError, "expected #{model} in #{field} from #{path}, got #{decoded.class}"
212
+ end
213
+
156
214
  sig do
157
215
  params(
158
216
  path: String,
@@ -390,7 +448,7 @@ module Inttegro
390
448
  status = response.code.to_i
391
449
  data = parse_json(response.body)
392
450
 
393
- return wrap_response(data, model_class || response_model_for(path)) if status < 400
451
+ return wrap_response(data, model_class) if status < 400
394
452
 
395
453
  raise_response_error(response)
396
454
  end
@@ -495,7 +553,7 @@ module Inttegro
495
553
  case data
496
554
  when Hash
497
555
  payload = normalize_payload(data)
498
- model_class ? Inttegro::Models.deserialize(payload, model_class) : ResponseObject.new(payload)
556
+ model_class ? Inttegro.deserialize(payload, model_class) : ResponseObject.new(payload)
499
557
  when Array
500
558
  data.each_with_object(T.let([], T::Array[Object])) do |item, values|
501
559
  values << wrap_response(item, model_class)
@@ -516,8 +574,7 @@ module Inttegro
516
574
 
517
575
  sig { params(path: String).returns(T.nilable(T::Class[T::Struct])) }
518
576
  def response_model_for(path)
519
- return Inttegro::Models::CancelOTPResponse if path == "/otp/cancel"
520
- return Inttegro::Models::OrderResponse if path == "/orders/new"
577
+ return T.cast(Inttegro.const_get(:OrderEnvelope), T::Class[T::Struct]) if path == "/orders/new"
521
578
 
522
579
  Inttegro::Operations::RESPONSE_MODELS[path]
523
580
  end