modern_treasury 0.1.0.pre.alpha.15 → 0.1.0.pre.alpha.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +63 -20
- data/lib/modern_treasury/base_client.rb +93 -111
- data/lib/modern_treasury/base_model.rb +442 -422
- data/lib/modern_treasury/base_page.rb +34 -15
- data/lib/modern_treasury/client.rb +21 -7
- data/lib/modern_treasury/errors.rb +15 -19
- data/lib/modern_treasury/extern.rb +1 -4
- data/lib/modern_treasury/models/account_collection_flow.rb +9 -54
- data/lib/modern_treasury/models/account_collection_flow_create_params.rb +3 -22
- data/lib/modern_treasury/models/account_collection_flow_update_params.rb +3 -12
- data/lib/modern_treasury/models/account_detail.rb +3 -22
- data/lib/modern_treasury/models/account_detail_create_params.rb +6 -33
- data/lib/modern_treasury/models/account_detail_delete_params.rb +3 -11
- data/lib/modern_treasury/models/accounts_type.rb +3 -13
- data/lib/modern_treasury/models/bulk_request.rb +9 -50
- data/lib/modern_treasury/models/bulk_request_create_params.rb +118 -656
- data/lib/modern_treasury/models/bulk_request_list_params.rb +9 -50
- data/lib/modern_treasury/models/bulk_result.rb +16 -67
- data/lib/modern_treasury/models/bulk_result_list_params.rb +9 -48
- data/lib/modern_treasury/models/connection_legal_entity.rb +3 -18
- data/lib/modern_treasury/models/connection_legal_entity_create_params.rb +33 -200
- data/lib/modern_treasury/models/connection_legal_entity_list_params.rb +3 -17
- data/lib/modern_treasury/models/connection_legal_entity_update_params.rb +3 -12
- data/lib/modern_treasury/models/counterparty.rb +15 -77
- data/lib/modern_treasury/models/counterparty_collect_account_params.rb +3 -21
- data/lib/modern_treasury/models/counterparty_create_params.rb +61 -357
- data/lib/modern_treasury/models/currency.rb +3 -22
- data/lib/modern_treasury/models/document.rb +3 -22
- data/lib/modern_treasury/models/document_create_params.rb +3 -21
- data/lib/modern_treasury/models/document_list_params.rb +3 -22
- data/lib/modern_treasury/models/expected_payment.rb +9 -46
- data/lib/modern_treasury/models/expected_payment_create_params.rb +9 -52
- data/lib/modern_treasury/models/expected_payment_list_params.rb +6 -40
- data/lib/modern_treasury/models/expected_payment_type.rb +3 -22
- data/lib/modern_treasury/models/expected_payment_update_params.rb +6 -26
- data/lib/modern_treasury/models/external_account.rb +12 -59
- data/lib/modern_treasury/models/external_account_create_params.rb +18 -110
- data/lib/modern_treasury/models/external_account_type.rb +3 -22
- data/lib/modern_treasury/models/external_account_update_params.rb +3 -14
- data/lib/modern_treasury/models/external_account_verify_params.rb +9 -48
- data/lib/modern_treasury/models/external_account_verify_response.rb +16 -66
- data/lib/modern_treasury/models/incoming_payment_detail.rb +12 -82
- data/lib/modern_treasury/models/incoming_payment_detail_create_async_params.rb +6 -36
- data/lib/modern_treasury/models/incoming_payment_detail_list_params.rb +6 -38
- data/lib/modern_treasury/models/internal_account.rb +6 -36
- data/lib/modern_treasury/models/internal_account_create_params.rb +3 -14
- data/lib/modern_treasury/models/internal_account_list_params.rb +3 -22
- data/lib/modern_treasury/models/internal_accounts/balance_report.rb +12 -46
- data/lib/modern_treasury/models/internal_accounts/balance_report_create_params.rb +6 -40
- data/lib/modern_treasury/models/internal_accounts/balance_report_list_params.rb +3 -18
- data/lib/modern_treasury/models/invoice.rb +12 -67
- data/lib/modern_treasury/models/invoice_create_params.rb +6 -31
- data/lib/modern_treasury/models/invoice_list_params.rb +3 -21
- data/lib/modern_treasury/models/invoice_update_params.rb +6 -31
- data/lib/modern_treasury/models/ledger_account.rb +3 -18
- data/lib/modern_treasury/models/ledger_account_create_params.rb +3 -18
- data/lib/modern_treasury/models/ledger_account_settlement.rb +3 -22
- data/lib/modern_treasury/models/ledger_account_settlement_create_params.rb +3 -14
- data/lib/modern_treasury/models/ledger_account_settlement_update_params.rb +3 -14
- data/lib/modern_treasury/models/ledger_entry.rb +3 -16
- data/lib/modern_treasury/models/ledger_entry_list_params.rb +9 -42
- data/lib/modern_treasury/models/ledger_event_handler.rb +4 -0
- data/lib/modern_treasury/models/ledger_event_handler_create_params.rb +3 -0
- data/lib/modern_treasury/models/ledger_event_handler_variable.rb +2 -0
- data/lib/modern_treasury/models/ledger_transaction.rb +6 -38
- data/lib/modern_treasury/models/ledger_transaction_create_params.rb +6 -38
- data/lib/modern_treasury/models/ledger_transaction_create_partial_post_params.rb +3 -14
- data/lib/modern_treasury/models/ledger_transaction_create_reversal_params.rb +6 -38
- data/lib/modern_treasury/models/ledger_transaction_list_params.rb +12 -62
- data/lib/modern_treasury/models/ledger_transaction_update_params.rb +6 -38
- data/lib/modern_treasury/models/ledger_transactions/ledger_transaction_version.rb +9 -54
- data/lib/modern_treasury/models/ledgerable_event.rb +1 -0
- data/lib/modern_treasury/models/legal_entity.rb +15 -95
- data/lib/modern_treasury/models/legal_entity_association.rb +18 -109
- data/lib/modern_treasury/models/legal_entity_association_create_params.rb +18 -107
- data/lib/modern_treasury/models/legal_entity_create_params.rb +33 -200
- data/lib/modern_treasury/models/legal_entity_list_params.rb +3 -13
- data/lib/modern_treasury/models/legal_entity_update_params.rb +12 -79
- data/lib/modern_treasury/models/line_item.rb +3 -14
- data/lib/modern_treasury/models/line_item_list_params.rb +3 -13
- data/lib/modern_treasury/models/line_item_retrieve_params.rb +3 -13
- data/lib/modern_treasury/models/line_item_update_params.rb +3 -13
- data/lib/modern_treasury/models/paper_item.rb +3 -16
- data/lib/modern_treasury/models/payment_flow.rb +12 -58
- data/lib/modern_treasury/models/payment_flow_create_params.rb +3 -14
- data/lib/modern_treasury/models/payment_flow_update_params.rb +3 -12
- data/lib/modern_treasury/models/payment_order.rb +33 -142
- data/lib/modern_treasury/models/payment_order_create_async_params.rb +39 -218
- data/lib/modern_treasury/models/payment_order_create_params.rb +42 -239
- data/lib/modern_treasury/models/payment_order_list_params.rb +9 -56
- data/lib/modern_treasury/models/payment_order_subtype.rb +3 -22
- data/lib/modern_treasury/models/payment_order_type.rb +3 -22
- data/lib/modern_treasury/models/payment_order_update_params.rb +36 -202
- data/lib/modern_treasury/models/payment_orders/reversal.rb +6 -42
- data/lib/modern_treasury/models/payment_orders/reversal_create_params.rb +9 -58
- data/lib/modern_treasury/models/payment_reference.rb +8 -39
- data/lib/modern_treasury/models/payment_reference_list_params.rb +3 -16
- data/lib/modern_treasury/models/reconciliation_rule.rb +6 -36
- data/lib/modern_treasury/models/return_create_params.rb +6 -34
- data/lib/modern_treasury/models/return_list_params.rb +3 -20
- data/lib/modern_treasury/models/return_object.rb +20 -123
- data/lib/modern_treasury/models/routing_detail.rb +6 -44
- data/lib/modern_treasury/models/routing_detail_create_params.rb +9 -55
- data/lib/modern_treasury/models/routing_detail_delete_params.rb +3 -11
- data/lib/modern_treasury/models/routing_number_lookup_request.rb +6 -43
- data/lib/modern_treasury/models/transaction.rb +9 -47
- data/lib/modern_treasury/models/transaction_create_params.rb +3 -22
- data/lib/modern_treasury/models/transaction_direction.rb +3 -13
- data/lib/modern_treasury/models/transactions/line_item_list_params.rb +3 -13
- data/lib/modern_treasury/models/transactions/transaction_line_item.rb +6 -36
- data/lib/modern_treasury/models/validation_validate_routing_number_params.rb +3 -22
- data/lib/modern_treasury/models/virtual_account_create_params.rb +12 -84
- data/lib/modern_treasury/models/wealth_and_employment_details.rb +18 -130
- data/lib/modern_treasury/page.rb +26 -28
- data/lib/modern_treasury/pooled_net_requester.rb +103 -86
- data/lib/modern_treasury/request_options.rb +5 -12
- data/lib/modern_treasury/resources/account_collection_flows.rb +0 -5
- data/lib/modern_treasury/resources/account_details.rb +26 -25
- data/lib/modern_treasury/resources/bulk_requests.rb +0 -4
- data/lib/modern_treasury/resources/bulk_results.rb +0 -3
- data/lib/modern_treasury/resources/connection_legal_entities.rb +0 -5
- data/lib/modern_treasury/resources/connections.rb +0 -2
- data/lib/modern_treasury/resources/counterparties.rb +0 -7
- data/lib/modern_treasury/resources/documents.rb +1 -5
- data/lib/modern_treasury/resources/events.rb +0 -3
- data/lib/modern_treasury/resources/expected_payments.rb +0 -6
- data/lib/modern_treasury/resources/external_accounts.rb +0 -8
- data/lib/modern_treasury/resources/foreign_exchange_quotes.rb +0 -4
- data/lib/modern_treasury/resources/incoming_payment_details.rb +0 -5
- data/lib/modern_treasury/resources/internal_accounts/balance_reports.rb +14 -14
- data/lib/modern_treasury/resources/internal_accounts.rb +0 -5
- data/lib/modern_treasury/resources/invoices/line_items.rb +13 -16
- data/lib/modern_treasury/resources/invoices.rb +4 -9
- data/lib/modern_treasury/resources/ledger_account_balance_monitors.rb +0 -6
- data/lib/modern_treasury/resources/ledger_account_categories.rb +24 -26
- data/lib/modern_treasury/resources/ledger_account_settlements/account_entries.rb +4 -5
- data/lib/modern_treasury/resources/ledger_account_settlements.rb +2 -6
- data/lib/modern_treasury/resources/ledger_account_statements.rb +0 -3
- data/lib/modern_treasury/resources/ledger_accounts.rb +0 -6
- data/lib/modern_treasury/resources/ledger_entries.rb +0 -4
- data/lib/modern_treasury/resources/ledger_event_handlers.rb +0 -5
- data/lib/modern_treasury/resources/ledger_transactions/versions.rb +0 -2
- data/lib/modern_treasury/resources/ledger_transactions.rb +0 -7
- data/lib/modern_treasury/resources/ledgerable_events.rb +0 -3
- data/lib/modern_treasury/resources/ledgers.rb +0 -6
- data/lib/modern_treasury/resources/legal_entities.rb +0 -5
- data/lib/modern_treasury/resources/legal_entity_associations.rb +0 -2
- data/lib/modern_treasury/resources/line_items.rb +22 -21
- data/lib/modern_treasury/resources/paper_items.rb +0 -3
- data/lib/modern_treasury/resources/payment_flows.rb +0 -5
- data/lib/modern_treasury/resources/payment_orders/reversals.rb +4 -7
- data/lib/modern_treasury/resources/payment_orders.rb +0 -6
- data/lib/modern_treasury/resources/payment_references.rb +1 -20
- data/lib/modern_treasury/resources/returns.rb +0 -4
- data/lib/modern_treasury/resources/routing_details.rb +26 -25
- data/lib/modern_treasury/resources/transactions/line_items.rb +0 -5
- data/lib/modern_treasury/resources/transactions.rb +0 -6
- data/lib/modern_treasury/resources/validations.rb +0 -2
- data/lib/modern_treasury/resources/virtual_accounts.rb +0 -6
- data/lib/modern_treasury/util.rb +645 -385
- data/lib/modern_treasury/version.rb +1 -1
- data/lib/modern_treasury.rb +17 -0
- data/manifest.yaml +2 -0
- data/rbi/lib/modern_treasury/base_client.rbi +108 -72
- data/rbi/lib/modern_treasury/base_model.rbi +404 -239
- data/rbi/lib/modern_treasury/base_page.rbi +3 -6
- data/rbi/lib/modern_treasury/client.rbi +55 -79
- data/rbi/lib/modern_treasury/errors.rbi +23 -24
- data/rbi/lib/modern_treasury/extern.rbi +1 -1
- data/rbi/lib/modern_treasury/models/account_collection_flow.rbi +107 -102
- data/rbi/lib/modern_treasury/models/account_collection_flow_create_params.rbi +69 -42
- data/rbi/lib/modern_treasury/models/account_collection_flow_list_params.rbi +19 -34
- data/rbi/lib/modern_treasury/models/account_collection_flow_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/account_collection_flow_update_params.rbi +31 -16
- data/rbi/lib/modern_treasury/models/account_detail.rbi +44 -73
- data/rbi/lib/modern_treasury/models/account_detail_create_params.rbi +60 -42
- data/rbi/lib/modern_treasury/models/account_detail_delete_params.rbi +24 -26
- data/rbi/lib/modern_treasury/models/account_detail_list_params.rbi +11 -23
- data/rbi/lib/modern_treasury/models/account_detail_retrieve_params.rbi +14 -22
- data/rbi/lib/modern_treasury/models/accounts_type.rbi +8 -5
- data/rbi/lib/modern_treasury/models/async_response.rbi +4 -14
- data/rbi/lib/modern_treasury/models/bank_settings.rbi +22 -62
- data/rbi/lib/modern_treasury/models/bulk_request.rbi +69 -102
- data/rbi/lib/modern_treasury/models/bulk_request_create_params.rbi +4011 -2385
- data/rbi/lib/modern_treasury/models/bulk_request_list_params.rbi +73 -62
- data/rbi/lib/modern_treasury/models/bulk_request_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/bulk_result.rbi +104 -183
- data/rbi/lib/modern_treasury/models/bulk_result_list_params.rbi +78 -66
- data/rbi/lib/modern_treasury/models/bulk_result_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/client_ping_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/connection.rbi +16 -56
- data/rbi/lib/modern_treasury/models/connection_legal_entity.rbi +33 -72
- data/rbi/lib/modern_treasury/models/connection_legal_entity_create_params.rbi +1090 -645
- data/rbi/lib/modern_treasury/models/connection_legal_entity_list_params.rbi +33 -39
- data/rbi/lib/modern_treasury/models/connection_legal_entity_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/connection_legal_entity_update_params.rbi +31 -15
- data/rbi/lib/modern_treasury/models/connection_list_params.rbi +15 -30
- data/rbi/lib/modern_treasury/models/counterparty.rbi +247 -354
- data/rbi/lib/modern_treasury/models/counterparty_collect_account_params.rbi +115 -62
- data/rbi/lib/modern_treasury/models/counterparty_collect_account_response.rbi +12 -20
- data/rbi/lib/modern_treasury/models/counterparty_create_params.rbi +1877 -1038
- data/rbi/lib/modern_treasury/models/counterparty_delete_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/counterparty_list_params.rbi +35 -44
- data/rbi/lib/modern_treasury/models/counterparty_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/counterparty_update_params.rbi +27 -34
- data/rbi/lib/modern_treasury/models/currency.rbi +196 -192
- data/rbi/lib/modern_treasury/models/document.rbi +83 -165
- data/rbi/lib/modern_treasury/models/document_create_params.rbi +48 -44
- data/rbi/lib/modern_treasury/models/document_list_params.rbi +56 -48
- data/rbi/lib/modern_treasury/models/document_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/event.rbi +19 -73
- data/rbi/lib/modern_treasury/models/event_list_params.rbi +24 -39
- data/rbi/lib/modern_treasury/models/event_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/expected_payment.rbi +116 -194
- data/rbi/lib/modern_treasury/models/expected_payment_create_params.rbi +313 -288
- data/rbi/lib/modern_treasury/models/expected_payment_delete_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/expected_payment_list_params.rbi +108 -105
- data/rbi/lib/modern_treasury/models/expected_payment_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/expected_payment_type.rbi +38 -33
- data/rbi/lib/modern_treasury/models/expected_payment_update_params.rbi +87 -129
- data/rbi/lib/modern_treasury/models/external_account.rbi +150 -285
- data/rbi/lib/modern_treasury/models/external_account_complete_verification_params.rbi +6 -8
- data/rbi/lib/modern_treasury/models/external_account_create_params.rbi +670 -322
- data/rbi/lib/modern_treasury/models/external_account_delete_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/external_account_list_params.rbi +20 -29
- data/rbi/lib/modern_treasury/models/external_account_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/external_account_type.rbi +15 -11
- data/rbi/lib/modern_treasury/models/external_account_update_params.rbi +59 -92
- data/rbi/lib/modern_treasury/models/external_account_verify_params.rbi +106 -86
- data/rbi/lib/modern_treasury/models/external_account_verify_response.rbi +304 -121
- data/rbi/lib/modern_treasury/models/foreign_exchange_quote.rbi +61 -132
- data/rbi/lib/modern_treasury/models/foreign_exchange_quote_create_params.rbi +31 -41
- data/rbi/lib/modern_treasury/models/foreign_exchange_quote_list_params.rbi +37 -49
- data/rbi/lib/modern_treasury/models/foreign_exchange_quote_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/incoming_payment_detail.rbi +272 -228
- data/rbi/lib/modern_treasury/models/incoming_payment_detail_create_async_params.rbi +79 -75
- data/rbi/lib/modern_treasury/models/incoming_payment_detail_list_params.rbi +85 -76
- data/rbi/lib/modern_treasury/models/incoming_payment_detail_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/incoming_payment_detail_update_params.rbi +8 -8
- data/rbi/lib/modern_treasury/models/internal_account.rbi +106 -218
- data/rbi/lib/modern_treasury/models/internal_account_create_params.rbi +67 -99
- data/rbi/lib/modern_treasury/models/internal_account_list_params.rbi +87 -88
- data/rbi/lib/modern_treasury/models/internal_account_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/internal_account_update_params.rbi +24 -28
- data/rbi/lib/modern_treasury/models/internal_accounts/balance_report.rbi +156 -181
- data/rbi/lib/modern_treasury/models/internal_accounts/balance_report_create_params.rbi +159 -88
- data/rbi/lib/modern_treasury/models/internal_accounts/balance_report_delete_params.rbi +4 -9
- data/rbi/lib/modern_treasury/models/internal_accounts/balance_report_list_params.rbi +66 -38
- data/rbi/lib/modern_treasury/models/internal_accounts/balance_report_retrieve_params.rbi +4 -9
- data/rbi/lib/modern_treasury/models/invoice.rbi +239 -441
- data/rbi/lib/modern_treasury/models/invoice_add_payment_order_params.rbi +4 -9
- data/rbi/lib/modern_treasury/models/invoice_create_params.rbi +292 -378
- data/rbi/lib/modern_treasury/models/invoice_list_params.rbi +57 -71
- data/rbi/lib/modern_treasury/models/invoice_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/invoice_update_params.rbi +300 -374
- data/rbi/lib/modern_treasury/models/invoices/invoice_line_item.rbi +35 -82
- data/rbi/lib/modern_treasury/models/invoices/line_item_create_params.rbi +34 -40
- data/rbi/lib/modern_treasury/models/invoices/line_item_delete_params.rbi +4 -9
- data/rbi/lib/modern_treasury/models/invoices/line_item_list_params.rbi +7 -14
- data/rbi/lib/modern_treasury/models/invoices/line_item_retrieve_params.rbi +4 -9
- data/rbi/lib/modern_treasury/models/invoices/line_item_update_params.rbi +39 -44
- data/rbi/lib/modern_treasury/models/ledger.rbi +17 -66
- data/rbi/lib/modern_treasury/models/ledger_account.rbi +136 -237
- data/rbi/lib/modern_treasury/models/ledger_account_balance_monitor.rbi +150 -236
- data/rbi/lib/modern_treasury/models/ledger_account_balance_monitor_create_params.rbi +42 -52
- data/rbi/lib/modern_treasury/models/ledger_account_balance_monitor_delete_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/ledger_account_balance_monitor_list_params.rbi +22 -36
- data/rbi/lib/modern_treasury/models/ledger_account_balance_monitor_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/ledger_account_balance_monitor_update_params.rbi +12 -13
- data/rbi/lib/modern_treasury/models/ledger_account_category.rbi +121 -197
- data/rbi/lib/modern_treasury/models/ledger_account_category_add_ledger_account_params.rbi +4 -9
- data/rbi/lib/modern_treasury/models/ledger_account_category_add_nested_category_params.rbi +4 -9
- data/rbi/lib/modern_treasury/models/ledger_account_category_create_params.rbi +28 -52
- data/rbi/lib/modern_treasury/models/ledger_account_category_delete_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/ledger_account_category_list_params.rbi +54 -63
- data/rbi/lib/modern_treasury/models/ledger_account_category_remove_ledger_account_params.rbi +4 -9
- data/rbi/lib/modern_treasury/models/ledger_account_category_remove_nested_category_params.rbi +4 -9
- data/rbi/lib/modern_treasury/models/ledger_account_category_retrieve_params.rbi +30 -22
- data/rbi/lib/modern_treasury/models/ledger_account_category_update_params.rbi +14 -19
- data/rbi/lib/modern_treasury/models/ledger_account_create_params.rbi +65 -74
- data/rbi/lib/modern_treasury/models/ledger_account_delete_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/ledger_account_list_params.rbi +183 -205
- data/rbi/lib/modern_treasury/models/ledger_account_retrieve_params.rbi +39 -37
- data/rbi/lib/modern_treasury/models/ledger_account_settlement.rbi +57 -116
- data/rbi/lib/modern_treasury/models/ledger_account_settlement_create_params.rbi +50 -58
- data/rbi/lib/modern_treasury/models/ledger_account_settlement_list_params.rbi +42 -54
- data/rbi/lib/modern_treasury/models/ledger_account_settlement_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/ledger_account_settlement_update_params.rbi +35 -27
- data/rbi/lib/modern_treasury/models/ledger_account_settlements/account_entry_delete_params.rbi +6 -9
- data/rbi/lib/modern_treasury/models/ledger_account_settlements/account_entry_update_params.rbi +6 -9
- data/rbi/lib/modern_treasury/models/ledger_account_statement_create_params.rbi +19 -32
- data/rbi/lib/modern_treasury/models/ledger_account_statement_create_response.rbi +238 -335
- data/rbi/lib/modern_treasury/models/ledger_account_statement_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/ledger_account_statement_retrieve_response.rbi +236 -335
- data/rbi/lib/modern_treasury/models/ledger_account_update_params.rbi +14 -19
- data/rbi/lib/modern_treasury/models/ledger_create_params.rbi +12 -20
- data/rbi/lib/modern_treasury/models/ledger_delete_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/ledger_entry.rbi +161 -232
- data/rbi/lib/modern_treasury/models/ledger_entry_list_params.rbi +170 -143
- data/rbi/lib/modern_treasury/models/ledger_entry_retrieve_params.rbi +8 -8
- data/rbi/lib/modern_treasury/models/ledger_entry_update_params.rbi +8 -8
- data/rbi/lib/modern_treasury/models/ledger_event_handler.rbi +77 -155
- data/rbi/lib/modern_treasury/models/ledger_event_handler_create_params.rbi +76 -123
- data/rbi/lib/modern_treasury/models/ledger_event_handler_delete_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/ledger_event_handler_list_params.rbi +22 -36
- data/rbi/lib/modern_treasury/models/ledger_event_handler_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/ledger_event_handler_variable.rbi +24 -33
- data/rbi/lib/modern_treasury/models/ledger_list_params.rbi +24 -36
- data/rbi/lib/modern_treasury/models/ledger_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/ledger_transaction.rbi +86 -143
- data/rbi/lib/modern_treasury/models/ledger_transaction_create_params.rbi +138 -133
- data/rbi/lib/modern_treasury/models/ledger_transaction_create_partial_post_params.rbi +88 -67
- data/rbi/lib/modern_treasury/models/ledger_transaction_create_reversal_params.rbi +113 -58
- data/rbi/lib/modern_treasury/models/ledger_transaction_list_params.rbi +188 -147
- data/rbi/lib/modern_treasury/models/ledger_transaction_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/ledger_transaction_update_params.rbi +133 -120
- data/rbi/lib/modern_treasury/models/ledger_transactions/ledger_transaction_version.rbi +328 -378
- data/rbi/lib/modern_treasury/models/ledger_transactions/version_list_params.rbi +28 -34
- data/rbi/lib/modern_treasury/models/ledger_update_params.rbi +14 -19
- data/rbi/lib/modern_treasury/models/ledgerable_event.rbi +20 -62
- data/rbi/lib/modern_treasury/models/ledgerable_event_create_params.rbi +14 -26
- data/rbi/lib/modern_treasury/models/ledgerable_event_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/legal_entity.rbi +211 -416
- data/rbi/lib/modern_treasury/models/legal_entity_association.rbi +468 -479
- data/rbi/lib/modern_treasury/models/legal_entity_association_create_params.rbi +567 -324
- data/rbi/lib/modern_treasury/models/legal_entity_create_params.rbi +854 -608
- data/rbi/lib/modern_treasury/models/legal_entity_list_params.rbi +33 -37
- data/rbi/lib/modern_treasury/models/legal_entity_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/legal_entity_update_params.rbi +252 -267
- data/rbi/lib/modern_treasury/models/line_item.rbi +54 -105
- data/rbi/lib/modern_treasury/models/line_item_list_params.rbi +22 -28
- data/rbi/lib/modern_treasury/models/line_item_retrieve_params.rbi +26 -27
- data/rbi/lib/modern_treasury/models/line_item_update_params.rbi +25 -28
- data/rbi/lib/modern_treasury/models/paper_item.rbi +53 -122
- data/rbi/lib/modern_treasury/models/paper_item_list_params.rbi +20 -29
- data/rbi/lib/modern_treasury/models/paper_item_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/payment_flow.rbi +141 -136
- data/rbi/lib/modern_treasury/models/payment_flow_create_params.rbi +36 -46
- data/rbi/lib/modern_treasury/models/payment_flow_list_params.rbi +25 -44
- data/rbi/lib/modern_treasury/models/payment_flow_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/payment_flow_update_params.rbi +27 -16
- data/rbi/lib/modern_treasury/models/payment_order.rbi +732 -614
- data/rbi/lib/modern_treasury/models/payment_order_create_async_params.rbi +1297 -744
- data/rbi/lib/modern_treasury/models/payment_order_create_params.rbi +1346 -801
- data/rbi/lib/modern_treasury/models/payment_order_list_params.rbi +150 -157
- data/rbi/lib/modern_treasury/models/payment_order_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/payment_order_subtype.rbi +39 -32
- data/rbi/lib/modern_treasury/models/payment_order_type.rbi +39 -33
- data/rbi/lib/modern_treasury/models/payment_order_update_params.rbi +1104 -632
- data/rbi/lib/modern_treasury/models/payment_orders/reversal.rbi +58 -91
- data/rbi/lib/modern_treasury/models/payment_orders/reversal_create_params.rbi +274 -172
- data/rbi/lib/modern_treasury/models/payment_orders/reversal_list_params.rbi +7 -14
- data/rbi/lib/modern_treasury/models/payment_orders/reversal_retrieve_params.rbi +4 -9
- data/rbi/lib/modern_treasury/models/payment_reference.rbi +298 -144
- data/rbi/lib/modern_treasury/models/payment_reference_list_params.rbi +49 -39
- data/rbi/lib/modern_treasury/models/payment_reference_retireve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/payment_reference_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/ping_response.rbi +3 -8
- data/rbi/lib/modern_treasury/models/reconciliation_rule.rbi +88 -110
- data/rbi/lib/modern_treasury/models/return_create_params.rbi +98 -107
- data/rbi/lib/modern_treasury/models/return_list_params.rbi +45 -45
- data/rbi/lib/modern_treasury/models/return_object.rbi +575 -393
- data/rbi/lib/modern_treasury/models/return_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/routing_detail.rbi +140 -204
- data/rbi/lib/modern_treasury/models/routing_detail_create_params.rbi +159 -107
- data/rbi/lib/modern_treasury/models/routing_detail_delete_params.rbi +24 -26
- data/rbi/lib/modern_treasury/models/routing_detail_list_params.rbi +11 -23
- data/rbi/lib/modern_treasury/models/routing_detail_retrieve_params.rbi +14 -22
- data/rbi/lib/modern_treasury/models/routing_number_lookup_request.rbi +182 -122
- data/rbi/lib/modern_treasury/models/transaction.rbi +193 -287
- data/rbi/lib/modern_treasury/models/transaction_create_params.rbi +80 -100
- data/rbi/lib/modern_treasury/models/transaction_delete_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/transaction_direction.rbi +8 -5
- data/rbi/lib/modern_treasury/models/transaction_list_params.rbi +56 -74
- data/rbi/lib/modern_treasury/models/transaction_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/transaction_update_params.rbi +8 -8
- data/rbi/lib/modern_treasury/models/transactions/line_item_create_params.rbi +10 -21
- data/rbi/lib/modern_treasury/models/transactions/line_item_delete_params.rbi +3 -2
- data/rbi/lib/modern_treasury/models/transactions/line_item_list_params.rbi +29 -45
- data/rbi/lib/modern_treasury/models/transactions/line_item_retrieve_params.rbi +3 -2
- data/rbi/lib/modern_treasury/models/transactions/transaction_line_item.rbi +104 -113
- data/rbi/lib/modern_treasury/models/validation_validate_routing_number_params.rbi +140 -42
- data/rbi/lib/modern_treasury/models/virtual_account.rbi +39 -106
- data/rbi/lib/modern_treasury/models/virtual_account_create_params.rbi +547 -247
- data/rbi/lib/modern_treasury/models/virtual_account_delete_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/virtual_account_list_params.rbi +19 -29
- data/rbi/lib/modern_treasury/models/virtual_account_retrieve_params.rbi +5 -2
- data/rbi/lib/modern_treasury/models/virtual_account_update_params.rbi +14 -30
- data/rbi/lib/modern_treasury/models/wealth_and_employment_details.rbi +288 -241
- data/rbi/lib/modern_treasury/page.rbi +6 -24
- data/rbi/lib/modern_treasury/pooled_net_requester.rbi +42 -39
- data/rbi/lib/modern_treasury/request_options.rbi +33 -54
- data/rbi/lib/modern_treasury/resources/account_collection_flows.rbi +32 -11
- data/rbi/lib/modern_treasury/resources/account_details.rbi +54 -15
- data/rbi/lib/modern_treasury/resources/bulk_requests.rbi +38 -12
- data/rbi/lib/modern_treasury/resources/bulk_results.rbi +22 -8
- data/rbi/lib/modern_treasury/resources/connection_legal_entities.rbi +37 -12
- data/rbi/lib/modern_treasury/resources/connections.rbi +13 -4
- data/rbi/lib/modern_treasury/resources/counterparties.rbi +78 -17
- data/rbi/lib/modern_treasury/resources/documents.rbi +28 -9
- data/rbi/lib/modern_treasury/resources/events.rbi +13 -5
- data/rbi/lib/modern_treasury/resources/expected_payments.rbi +113 -23
- data/rbi/lib/modern_treasury/resources/external_accounts.rbi +83 -26
- data/rbi/lib/modern_treasury/resources/foreign_exchange_quotes.rbi +32 -8
- data/rbi/lib/modern_treasury/resources/incoming_payment_details.rbi +53 -14
- data/rbi/lib/modern_treasury/resources/internal_accounts/balance_reports.rbi +40 -11
- data/rbi/lib/modern_treasury/resources/internal_accounts.rbi +47 -14
- data/rbi/lib/modern_treasury/resources/invoices/line_items.rbi +64 -10
- data/rbi/lib/modern_treasury/resources/invoices.rbi +173 -28
- data/rbi/lib/modern_treasury/resources/ledger_account_balance_monitors.rbi +54 -12
- data/rbi/lib/modern_treasury/resources/ledger_account_categories.rbi +101 -21
- data/rbi/lib/modern_treasury/resources/ledger_account_settlements/account_entries.rbi +22 -6
- data/rbi/lib/modern_treasury/resources/ledger_account_settlements.rbi +59 -12
- data/rbi/lib/modern_treasury/resources/ledger_account_statements.rbi +20 -5
- data/rbi/lib/modern_treasury/resources/ledger_accounts.rbi +93 -17
- data/rbi/lib/modern_treasury/resources/ledger_entries.rbi +61 -10
- data/rbi/lib/modern_treasury/resources/ledger_event_handlers.rbi +41 -11
- data/rbi/lib/modern_treasury/resources/ledger_transactions/versions.rbi +13 -3
- data/rbi/lib/modern_treasury/resources/ledger_transactions.rbi +113 -23
- data/rbi/lib/modern_treasury/resources/ledgerable_events.rbi +23 -6
- data/rbi/lib/modern_treasury/resources/ledgers.rbi +60 -12
- data/rbi/lib/modern_treasury/resources/legal_entities.rbi +83 -24
- data/rbi/lib/modern_treasury/resources/legal_entity_associations.rbi +15 -5
- data/rbi/lib/modern_treasury/resources/line_items.rbi +43 -11
- data/rbi/lib/modern_treasury/resources/paper_items.rbi +15 -5
- data/rbi/lib/modern_treasury/resources/payment_flows.rbi +36 -10
- data/rbi/lib/modern_treasury/resources/payment_orders/reversals.rbi +43 -10
- data/rbi/lib/modern_treasury/resources/payment_orders.rbi +336 -50
- data/rbi/lib/modern_treasury/resources/payment_references.rbi +17 -16
- data/rbi/lib/modern_treasury/resources/returns.rbi +33 -9
- data/rbi/lib/modern_treasury/resources/routing_details.rbi +51 -15
- data/rbi/lib/modern_treasury/resources/transactions/line_items.rbi +31 -10
- data/rbi/lib/modern_treasury/resources/transactions.rbi +63 -13
- data/rbi/lib/modern_treasury/resources/validations.rbi +16 -5
- data/rbi/lib/modern_treasury/resources/virtual_accounts.rbi +47 -12
- data/rbi/lib/modern_treasury/util.rbi +238 -92
- data/rbi/lib/modern_treasury/version.rbi +1 -1
- data/sig/modern_treasury/base_client.rbs +31 -23
- data/sig/modern_treasury/base_model.rbs +36 -20
- data/sig/modern_treasury/base_page.rbs +1 -1
- data/sig/modern_treasury/client.rbs +12 -8
- data/sig/modern_treasury/errors.rbs +22 -21
- data/sig/modern_treasury/models/account_collection_flow.rbs +25 -24
- data/sig/modern_treasury/models/account_collection_flow_create_params.rbs +10 -13
- data/sig/modern_treasury/models/account_collection_flow_list_params.rbs +9 -14
- data/sig/modern_treasury/models/account_collection_flow_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/account_collection_flow_update_params.rbs +8 -11
- data/sig/modern_treasury/models/account_detail.rbs +15 -18
- data/sig/modern_treasury/models/account_detail_create_params.rbs +14 -15
- data/sig/modern_treasury/models/account_detail_delete_params.rbs +9 -12
- data/sig/modern_treasury/models/account_detail_list_params.rbs +6 -11
- data/sig/modern_treasury/models/account_detail_retrieve_params.rbs +5 -10
- data/sig/modern_treasury/models/accounts_type.rbs +4 -2
- data/sig/modern_treasury/models/async_response.rbs +1 -6
- data/sig/modern_treasury/models/bank_settings.rbs +12 -17
- data/sig/modern_treasury/models/bulk_request.rbs +26 -24
- data/sig/modern_treasury/models/bulk_request_create_params.rbs +492 -578
- data/sig/modern_treasury/models/bulk_request_list_params.rbs +21 -20
- data/sig/modern_treasury/models/bulk_request_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/bulk_result.rbs +43 -45
- data/sig/modern_treasury/models/bulk_result_list_params.rbs +22 -21
- data/sig/modern_treasury/models/bulk_result_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/client_ping_params.rbs +1 -6
- data/sig/modern_treasury/models/connection.rbs +11 -15
- data/sig/modern_treasury/models/connection_legal_entity.rbs +16 -19
- data/sig/modern_treasury/models/connection_legal_entity_create_params.rbs +138 -166
- data/sig/modern_treasury/models/connection_legal_entity_list_params.rbs +12 -15
- data/sig/modern_treasury/models/connection_legal_entity_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/connection_legal_entity_update_params.rbs +8 -11
- data/sig/modern_treasury/models/connection_list_params.rbs +7 -12
- data/sig/modern_treasury/models/counterparty.rbs +78 -87
- data/sig/modern_treasury/models/counterparty_collect_account_params.rbs +11 -14
- data/sig/modern_treasury/models/counterparty_collect_account_response.rbs +1 -6
- data/sig/modern_treasury/models/counterparty_create_params.rbs +232 -277
- data/sig/modern_treasury/models/counterparty_delete_params.rbs +1 -6
- data/sig/modern_treasury/models/counterparty_list_params.rbs +11 -16
- data/sig/modern_treasury/models/counterparty_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/counterparty_update_params.rbs +9 -14
- data/sig/modern_treasury/models/currency.rbs +4 -2
- data/sig/modern_treasury/models/document.rbs +33 -41
- data/sig/modern_treasury/models/document_create_params.rbs +11 -14
- data/sig/modern_treasury/models/document_list_params.rbs +11 -14
- data/sig/modern_treasury/models/document_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/event.rbs +12 -16
- data/sig/modern_treasury/models/event_list_params.rbs +10 -15
- data/sig/modern_treasury/models/event_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/expected_payment.rbs +40 -39
- data/sig/modern_treasury/models/expected_payment_create_params.rbs +62 -76
- data/sig/modern_treasury/models/expected_payment_delete_params.rbs +1 -6
- data/sig/modern_treasury/models/expected_payment_list_params.rbs +21 -22
- data/sig/modern_treasury/models/expected_payment_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/expected_payment_type.rbs +4 -2
- data/sig/modern_treasury/models/expected_payment_update_params.rbs +28 -29
- data/sig/modern_treasury/models/external_account.rbs +60 -67
- data/sig/modern_treasury/models/external_account_complete_verification_params.rbs +4 -9
- data/sig/modern_treasury/models/external_account_create_params.rbs +73 -91
- data/sig/modern_treasury/models/external_account_delete_params.rbs +1 -6
- data/sig/modern_treasury/models/external_account_list_params.rbs +8 -13
- data/sig/modern_treasury/models/external_account_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/external_account_type.rbs +4 -2
- data/sig/modern_treasury/models/external_account_update_params.rbs +22 -30
- data/sig/modern_treasury/models/external_account_verify_params.rbs +20 -19
- data/sig/modern_treasury/models/external_account_verify_response.rbs +28 -25
- data/sig/modern_treasury/models/foreign_exchange_quote.rbs +23 -33
- data/sig/modern_treasury/models/foreign_exchange_quote_create_params.rbs +9 -14
- data/sig/modern_treasury/models/foreign_exchange_quote_list_params.rbs +12 -17
- data/sig/modern_treasury/models/foreign_exchange_quote_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/incoming_payment_detail.rbs +43 -40
- data/sig/modern_treasury/models/incoming_payment_detail_create_async_params.rbs +19 -20
- data/sig/modern_treasury/models/incoming_payment_detail_list_params.rbs +20 -21
- data/sig/modern_treasury/models/incoming_payment_detail_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/incoming_payment_detail_update_params.rbs +4 -9
- data/sig/modern_treasury/models/internal_account.rbs +42 -48
- data/sig/modern_treasury/models/internal_account_create_params.rbs +24 -32
- data/sig/modern_treasury/models/internal_account_list_params.rbs +15 -18
- data/sig/modern_treasury/models/internal_account_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/internal_account_update_params.rbs +8 -13
- data/sig/modern_treasury/models/internal_accounts/balance_report.rbs +39 -45
- data/sig/modern_treasury/models/internal_accounts/balance_report_create_params.rbs +21 -27
- data/sig/modern_treasury/models/internal_accounts/balance_report_delete_params.rbs +4 -9
- data/sig/modern_treasury/models/internal_accounts/balance_report_list_params.rbs +11 -14
- data/sig/modern_treasury/models/internal_accounts/balance_report_retrieve_params.rbs +4 -9
- data/sig/modern_treasury/models/invoice.rbs +89 -105
- data/sig/modern_treasury/models/invoice_add_payment_order_params.rbs +4 -6
- data/sig/modern_treasury/models/invoice_create_params.rbs +79 -105
- data/sig/modern_treasury/models/invoice_list_params.rbs +18 -21
- data/sig/modern_treasury/models/invoice_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/invoice_update_params.rbs +79 -105
- data/sig/modern_treasury/models/invoices/invoice_line_item.rbs +15 -21
- data/sig/modern_treasury/models/invoices/line_item_create_params.rbs +10 -15
- data/sig/modern_treasury/models/invoices/line_item_delete_params.rbs +4 -9
- data/sig/modern_treasury/models/invoices/line_item_list_params.rbs +5 -10
- data/sig/modern_treasury/models/invoices/line_item_retrieve_params.rbs +4 -9
- data/sig/modern_treasury/models/invoices/line_item_update_params.rbs +11 -16
- data/sig/modern_treasury/models/ledger.rbs +11 -15
- data/sig/modern_treasury/models/ledger_account.rbs +49 -72
- data/sig/modern_treasury/models/ledger_account_balance_monitor.rbs +49 -80
- data/sig/modern_treasury/models/ledger_account_balance_monitor_create_params.rbs +12 -18
- data/sig/modern_treasury/models/ledger_account_balance_monitor_delete_params.rbs +1 -6
- data/sig/modern_treasury/models/ledger_account_balance_monitor_list_params.rbs +8 -13
- data/sig/modern_treasury/models/ledger_account_balance_monitor_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/ledger_account_balance_monitor_update_params.rbs +5 -10
- data/sig/modern_treasury/models/ledger_account_category.rbs +40 -65
- data/sig/modern_treasury/models/ledger_account_category_add_ledger_account_params.rbs +4 -6
- data/sig/modern_treasury/models/ledger_account_category_add_nested_category_params.rbs +4 -6
- data/sig/modern_treasury/models/ledger_account_category_create_params.rbs +11 -16
- data/sig/modern_treasury/models/ledger_account_category_delete_params.rbs +1 -6
- data/sig/modern_treasury/models/ledger_account_category_list_params.rbs +14 -24
- data/sig/modern_treasury/models/ledger_account_category_remove_ledger_account_params.rbs +4 -6
- data/sig/modern_treasury/models/ledger_account_category_remove_nested_category_params.rbs +4 -6
- data/sig/modern_treasury/models/ledger_account_category_retrieve_params.rbs +5 -15
- data/sig/modern_treasury/models/ledger_account_category_update_params.rbs +6 -11
- data/sig/modern_treasury/models/ledger_account_create_params.rbs +17 -20
- data/sig/modern_treasury/models/ledger_account_delete_params.rbs +1 -6
- data/sig/modern_treasury/models/ledger_account_list_params.rbs +47 -72
- data/sig/modern_treasury/models/ledger_account_retrieve_params.rbs +11 -21
- data/sig/modern_treasury/models/ledger_account_settlement.rbs +23 -26
- data/sig/modern_treasury/models/ledger_account_settlement_create_params.rbs +15 -18
- data/sig/modern_treasury/models/ledger_account_settlement_list_params.rbs +13 -18
- data/sig/modern_treasury/models/ledger_account_settlement_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/ledger_account_settlement_update_params.rbs +10 -13
- data/sig/modern_treasury/models/ledger_account_settlements/account_entry_delete_params.rbs +4 -9
- data/sig/modern_treasury/models/ledger_account_settlements/account_entry_update_params.rbs +4 -9
- data/sig/modern_treasury/models/ledger_account_statement_create_params.rbs +8 -13
- data/sig/modern_treasury/models/ledger_account_statement_create_response.rbs +69 -114
- data/sig/modern_treasury/models/ledger_account_statement_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/ledger_account_statement_retrieve_response.rbs +69 -114
- data/sig/modern_treasury/models/ledger_account_update_params.rbs +6 -11
- data/sig/modern_treasury/models/ledger_create_params.rbs +6 -11
- data/sig/modern_treasury/models/ledger_delete_params.rbs +1 -6
- data/sig/modern_treasury/models/ledger_entry.rbs +48 -70
- data/sig/modern_treasury/models/ledger_entry_list_params.rbs +39 -43
- data/sig/modern_treasury/models/ledger_entry_retrieve_params.rbs +4 -9
- data/sig/modern_treasury/models/ledger_entry_update_params.rbs +4 -9
- data/sig/modern_treasury/models/ledger_event_handler.rbs +27 -47
- data/sig/modern_treasury/models/ledger_event_handler_create_params.rbs +22 -42
- data/sig/modern_treasury/models/ledger_event_handler_delete_params.rbs +1 -6
- data/sig/modern_treasury/models/ledger_event_handler_list_params.rbs +8 -13
- data/sig/modern_treasury/models/ledger_event_handler_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/ledger_event_handler_variable.rbs +5 -15
- data/sig/modern_treasury/models/ledger_list_params.rbs +8 -13
- data/sig/modern_treasury/models/ledger_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/ledger_transaction.rbs +29 -30
- data/sig/modern_treasury/models/ledger_transaction_create_params.rbs +31 -37
- data/sig/modern_treasury/models/ledger_transaction_create_partial_post_params.rbs +17 -25
- data/sig/modern_treasury/models/ledger_transaction_create_reversal_params.rbs +18 -19
- data/sig/modern_treasury/models/ledger_transaction_list_params.rbs +42 -44
- data/sig/modern_treasury/models/ledger_transaction_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/ledger_transaction_update_params.rbs +29 -35
- data/sig/modern_treasury/models/ledger_transactions/ledger_transaction_version.rbs +76 -101
- data/sig/modern_treasury/models/ledger_transactions/version_list_params.rbs +9 -14
- data/sig/modern_treasury/models/ledger_update_params.rbs +6 -11
- data/sig/modern_treasury/models/ledgerable_event.rbs +12 -17
- data/sig/modern_treasury/models/ledgerable_event_create_params.rbs +7 -12
- data/sig/modern_treasury/models/ledgerable_event_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/legal_entity.rbs +78 -87
- data/sig/modern_treasury/models/legal_entity_association.rbs +94 -107
- data/sig/modern_treasury/models/legal_entity_association_create_params.rbs +73 -86
- data/sig/modern_treasury/models/legal_entity_create_params.rbs +133 -156
- data/sig/modern_treasury/models/legal_entity_list_params.rbs +12 -15
- data/sig/modern_treasury/models/legal_entity_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/legal_entity_update_params.rbs +56 -68
- data/sig/modern_treasury/models/line_item.rbs +20 -27
- data/sig/modern_treasury/models/line_item_list_params.rbs +10 -13
- data/sig/modern_treasury/models/line_item_retrieve_params.rbs +9 -12
- data/sig/modern_treasury/models/line_item_update_params.rbs +10 -13
- data/sig/modern_treasury/models/paper_item.rbs +24 -26
- data/sig/modern_treasury/models/paper_item_list_params.rbs +8 -13
- data/sig/modern_treasury/models/paper_item_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/payment_flow.rbs +37 -33
- data/sig/modern_treasury/models/payment_flow_create_params.rbs +13 -16
- data/sig/modern_treasury/models/payment_flow_list_params.rbs +11 -16
- data/sig/modern_treasury/models/payment_flow_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/payment_flow_update_params.rbs +8 -11
- data/sig/modern_treasury/models/payment_order.rbs +107 -109
- data/sig/modern_treasury/models/payment_order_create_async_params.rbs +166 -195
- data/sig/modern_treasury/models/payment_order_create_params.rbs +177 -209
- data/sig/modern_treasury/models/payment_order_list_params.rbs +32 -31
- data/sig/modern_treasury/models/payment_order_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/payment_order_subtype.rbs +4 -2
- data/sig/modern_treasury/models/payment_order_type.rbs +4 -2
- data/sig/modern_treasury/models/payment_order_update_params.rbs +139 -160
- data/sig/modern_treasury/models/payment_orders/reversal.rbs +21 -22
- data/sig/modern_treasury/models/payment_orders/reversal_create_params.rbs +40 -49
- data/sig/modern_treasury/models/payment_orders/reversal_list_params.rbs +5 -10
- data/sig/modern_treasury/models/payment_orders/reversal_retrieve_params.rbs +4 -9
- data/sig/modern_treasury/models/payment_reference.rbs +19 -20
- data/sig/modern_treasury/models/payment_reference_list_params.rbs +12 -15
- data/sig/modern_treasury/models/payment_reference_retireve_params.rbs +1 -6
- data/sig/modern_treasury/models/payment_reference_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/ping_response.rbs +1 -6
- data/sig/modern_treasury/models/reconciliation_rule.rbs +20 -21
- data/sig/modern_treasury/models/return_create_params.rbs +17 -18
- data/sig/modern_treasury/models/return_list_params.rbs +13 -16
- data/sig/modern_treasury/models/return_object.rbs +58 -56
- data/sig/modern_treasury/models/return_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/routing_detail.rbs +34 -40
- data/sig/modern_treasury/models/routing_detail_create_params.rbs +19 -18
- data/sig/modern_treasury/models/routing_detail_delete_params.rbs +9 -12
- data/sig/modern_treasury/models/routing_detail_list_params.rbs +6 -11
- data/sig/modern_treasury/models/routing_detail_retrieve_params.rbs +5 -10
- data/sig/modern_treasury/models/routing_number_lookup_request.rbs +24 -30
- data/sig/modern_treasury/models/transaction.rbs +46 -51
- data/sig/modern_treasury/models/transaction_create_params.rbs +17 -20
- data/sig/modern_treasury/models/transaction_delete_params.rbs +1 -6
- data/sig/modern_treasury/models/transaction_direction.rbs +4 -2
- data/sig/modern_treasury/models/transaction_list_params.rbs +17 -22
- data/sig/modern_treasury/models/transaction_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/transaction_update_params.rbs +4 -9
- data/sig/modern_treasury/models/transactions/line_item_create_params.rbs +6 -11
- data/sig/modern_treasury/models/transactions/line_item_delete_params.rbs +1 -6
- data/sig/modern_treasury/models/transactions/line_item_list_params.rbs +12 -15
- data/sig/modern_treasury/models/transactions/line_item_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/transactions/transaction_line_item.rbs +25 -27
- data/sig/modern_treasury/models/validation_validate_routing_number_params.rbs +9 -12
- data/sig/modern_treasury/models/virtual_account.rbs +18 -23
- data/sig/modern_treasury/models/virtual_account_create_params.rbs +50 -62
- data/sig/modern_treasury/models/virtual_account_delete_params.rbs +1 -6
- data/sig/modern_treasury/models/virtual_account_list_params.rbs +8 -13
- data/sig/modern_treasury/models/virtual_account_retrieve_params.rbs +1 -6
- data/sig/modern_treasury/models/virtual_account_update_params.rbs +7 -12
- data/sig/modern_treasury/models/wealth_and_employment_details.rbs +44 -37
- data/sig/modern_treasury/page.rbs +2 -7
- data/sig/modern_treasury/pooled_net_requester.rbs +11 -16
- data/sig/modern_treasury/request_options.rbs +6 -2
- data/sig/modern_treasury/resources/account_collection_flows.rbs +24 -46
- data/sig/modern_treasury/resources/account_details.rbs +26 -50
- data/sig/modern_treasury/resources/bulk_requests.rbs +20 -36
- data/sig/modern_treasury/resources/bulk_results.rbs +14 -25
- data/sig/modern_treasury/resources/connection_legal_entities.rbs +23 -45
- data/sig/modern_treasury/resources/connections.rbs +7 -12
- data/sig/modern_treasury/resources/counterparties.rbs +51 -82
- data/sig/modern_treasury/resources/documents.rbs +18 -34
- data/sig/modern_treasury/resources/events.rbs +14 -24
- data/sig/modern_treasury/resources/expected_payments.rbs +64 -92
- data/sig/modern_treasury/resources/external_accounts.rbs +57 -94
- data/sig/modern_treasury/resources/foreign_exchange_quotes.rbs +25 -41
- data/sig/modern_treasury/resources/incoming_payment_details.rbs +32 -54
- data/sig/modern_treasury/resources/internal_accounts/balance_reports.rbs +26 -50
- data/sig/modern_treasury/resources/internal_accounts.rbs +36 -58
- data/sig/modern_treasury/resources/invoices/line_items.rbs +39 -69
- data/sig/modern_treasury/resources/invoices.rbs +80 -108
- data/sig/modern_treasury/resources/ledger_account_balance_monitors.rbs +29 -57
- data/sig/modern_treasury/resources/ledger_account_categories.rbs +60 -112
- data/sig/modern_treasury/resources/ledger_account_settlements/account_entries.rbs +10 -22
- data/sig/modern_treasury/resources/ledger_account_settlements.rbs +35 -57
- data/sig/modern_treasury/resources/ledger_account_statements.rbs +12 -23
- data/sig/modern_treasury/resources/ledger_accounts.rbs +46 -74
- data/sig/modern_treasury/resources/ledger_entries.rbs +33 -50
- data/sig/modern_treasury/resources/ledger_event_handlers.rbs +26 -48
- data/sig/modern_treasury/resources/ledger_transactions/versions.rbs +9 -14
- data/sig/modern_treasury/resources/ledger_transactions.rbs +68 -102
- data/sig/modern_treasury/resources/ledgerable_events.rbs +11 -22
- data/sig/modern_treasury/resources/ledgers.rbs +29 -56
- data/sig/modern_treasury/resources/legal_entities.rbs +65 -87
- data/sig/modern_treasury/resources/legal_entity_associations.rbs +9 -14
- data/sig/modern_treasury/resources/line_items.rbs +20 -38
- data/sig/modern_treasury/resources/paper_items.rbs +12 -23
- data/sig/modern_treasury/resources/payment_flows.rbs +29 -51
- data/sig/modern_treasury/resources/payment_orders/reversals.rbs +18 -36
- data/sig/modern_treasury/resources/payment_orders.rbs +139 -166
- data/sig/modern_treasury/resources/payment_references.rbs +13 -33
- data/sig/modern_treasury/resources/returns.rbs +22 -37
- data/sig/modern_treasury/resources/routing_details.rbs +27 -51
- data/sig/modern_treasury/resources/transactions/line_items.rbs +22 -41
- data/sig/modern_treasury/resources/transactions.rbs +43 -68
- data/sig/modern_treasury/resources/validations.rbs +5 -10
- data/sig/modern_treasury/resources/virtual_accounts.rbs +37 -65
- data/sig/modern_treasury/util.rbs +71 -26
- metadata +4 -4
@@ -1,41 +1,35 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module ModernTreasury
|
4
|
-
# @private
|
5
|
-
#
|
6
|
-
# @abstract
|
7
|
-
#
|
4
|
+
# @api private
|
8
5
|
module Converter
|
9
6
|
# rubocop:disable Lint/UnusedMethodArgument
|
10
7
|
|
11
|
-
# @private
|
8
|
+
# @api private
|
12
9
|
#
|
13
10
|
# @param value [Object]
|
14
11
|
#
|
15
12
|
# @return [Object]
|
16
|
-
#
|
17
13
|
def coerce(value) = value
|
18
14
|
|
19
|
-
# @private
|
15
|
+
# @api private
|
20
16
|
#
|
21
17
|
# @param value [Object]
|
22
18
|
#
|
23
19
|
# @return [Object]
|
24
|
-
#
|
25
20
|
def dump(value) = value
|
26
21
|
|
27
|
-
# @private
|
22
|
+
# @api private
|
28
23
|
#
|
29
24
|
# @param value [Object]
|
30
25
|
#
|
31
26
|
# @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
|
32
|
-
#
|
33
27
|
def try_strict_coerce(value) = (raise NotImplementedError)
|
34
28
|
|
35
29
|
# rubocop:enable Lint/UnusedMethodArgument
|
36
30
|
|
37
31
|
class << self
|
38
|
-
# @private
|
32
|
+
# @api private
|
39
33
|
#
|
40
34
|
# @param spec [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class] .
|
41
35
|
#
|
@@ -48,23 +42,22 @@ module ModernTreasury
|
|
48
42
|
# @option spec [Boolean] :"nil?"
|
49
43
|
#
|
50
44
|
# @return [Proc]
|
51
|
-
#
|
52
45
|
def type_info(spec)
|
53
46
|
case spec
|
54
47
|
in Hash
|
55
48
|
type_info(spec.slice(:const, :enum, :union).first&.last)
|
56
49
|
in Proc
|
57
50
|
spec
|
58
|
-
in ModernTreasury::Converter |
|
51
|
+
in ModernTreasury::Converter | Module | Symbol
|
59
52
|
-> { spec }
|
60
53
|
in true | false
|
61
54
|
-> { ModernTreasury::BooleanModel }
|
62
|
-
in NilClass |
|
55
|
+
in NilClass | Integer | Float
|
63
56
|
-> { spec.class }
|
64
57
|
end
|
65
58
|
end
|
66
59
|
|
67
|
-
# @private
|
60
|
+
# @api private
|
68
61
|
#
|
69
62
|
# Based on `target`, transform `value` into `target`, to the extent possible:
|
70
63
|
#
|
@@ -77,12 +70,18 @@ module ModernTreasury
|
|
77
70
|
# @param value [Object]
|
78
71
|
#
|
79
72
|
# @return [Object]
|
80
|
-
#
|
81
73
|
def coerce(target, value)
|
82
74
|
case target
|
83
75
|
in ModernTreasury::Converter
|
84
76
|
target.coerce(value)
|
85
|
-
in
|
77
|
+
in Symbol
|
78
|
+
case value
|
79
|
+
in Symbol | String if (val = value.to_sym) == target
|
80
|
+
val
|
81
|
+
else
|
82
|
+
value
|
83
|
+
end
|
84
|
+
in Module
|
86
85
|
case target
|
87
86
|
in -> { _1 <= NilClass }
|
88
87
|
nil
|
@@ -104,13 +103,12 @@ module ModernTreasury
|
|
104
103
|
end
|
105
104
|
end
|
106
105
|
|
107
|
-
# @private
|
106
|
+
# @api private
|
108
107
|
#
|
109
108
|
# @param target [ModernTreasury::Converter, Class]
|
110
109
|
# @param value [Object]
|
111
110
|
#
|
112
111
|
# @return [Object]
|
113
|
-
#
|
114
112
|
def dump(target, value)
|
115
113
|
case target
|
116
114
|
in ModernTreasury::Converter
|
@@ -120,7 +118,7 @@ module ModernTreasury
|
|
120
118
|
end
|
121
119
|
end
|
122
120
|
|
123
|
-
# @private
|
121
|
+
# @api private
|
124
122
|
#
|
125
123
|
# The underlying algorithm for computing maximal compatibility is subject to
|
126
124
|
# future improvements.
|
@@ -135,12 +133,18 @@ module ModernTreasury
|
|
135
133
|
# @param value [Object]
|
136
134
|
#
|
137
135
|
# @return [Object]
|
138
|
-
#
|
139
136
|
def try_strict_coerce(target, value)
|
140
137
|
case target
|
141
138
|
in ModernTreasury::Converter
|
142
139
|
target.try_strict_coerce(value)
|
143
|
-
in
|
140
|
+
in Symbol
|
141
|
+
case value
|
142
|
+
in Symbol | String if (val = value.to_sym) == target
|
143
|
+
[true, val, 1]
|
144
|
+
else
|
145
|
+
[false, false, 0]
|
146
|
+
end
|
147
|
+
in Module
|
144
148
|
case [target, value]
|
145
149
|
in [-> { _1 <= NilClass }, _]
|
146
150
|
[true, nil, value.nil? ? 1 : 0]
|
@@ -153,10 +157,11 @@ module ModernTreasury
|
|
153
157
|
in [-> { _1 <= String }, Symbol]
|
154
158
|
[true, value.to_s, 1]
|
155
159
|
in [-> { _1 <= Date || _1 <= Time }, String]
|
156
|
-
|
157
|
-
|
160
|
+
Kernel.then do
|
161
|
+
[true, target.parse(value), 1]
|
162
|
+
rescue ArgumentError
|
163
|
+
[false, false, 0]
|
158
164
|
end
|
159
|
-
[false, false, 0]
|
160
165
|
in [_, ^target]
|
161
166
|
[true, value, 1]
|
162
167
|
else
|
@@ -167,7 +172,7 @@ module ModernTreasury
|
|
167
172
|
end
|
168
173
|
end
|
169
174
|
|
170
|
-
# @private
|
175
|
+
# @api private
|
171
176
|
#
|
172
177
|
# @abstract
|
173
178
|
#
|
@@ -177,53 +182,48 @@ module ModernTreasury
|
|
177
182
|
|
178
183
|
# rubocop:disable Lint/UnusedMethodArgument
|
179
184
|
|
180
|
-
private_class_method :new
|
181
|
-
|
182
185
|
# @param other [Object]
|
183
186
|
#
|
184
187
|
# @return [Boolean]
|
185
|
-
#
|
186
188
|
def self.===(other) = true
|
187
189
|
|
188
190
|
# @param other [Object]
|
189
191
|
#
|
190
192
|
# @return [Boolean]
|
191
|
-
#
|
192
193
|
def self.==(other) = other.is_a?(Class) && other <= ModernTreasury::Unknown
|
193
194
|
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
[false, true, 0]
|
195
|
+
class << self
|
196
|
+
# @!parse
|
197
|
+
# # @api private
|
198
|
+
# #
|
199
|
+
# # @param value [Object]
|
200
|
+
# #
|
201
|
+
# # @return [Object]
|
202
|
+
# def coerce(value) = super
|
203
|
+
|
204
|
+
# @!parse
|
205
|
+
# # @api private
|
206
|
+
# #
|
207
|
+
# # @param value [Object]
|
208
|
+
# #
|
209
|
+
# # @return [Object]
|
210
|
+
# def dump(value) = super
|
211
|
+
|
212
|
+
# @api private
|
213
|
+
#
|
214
|
+
# @param value [Object]
|
215
|
+
#
|
216
|
+
# @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
|
217
|
+
def try_strict_coerce(value)
|
218
|
+
# prevent unknown variant from being chosen during the first coercion pass
|
219
|
+
[false, true, 0]
|
220
|
+
end
|
221
221
|
end
|
222
222
|
|
223
223
|
# rubocop:enable Lint/UnusedMethodArgument
|
224
224
|
end
|
225
225
|
|
226
|
-
# @private
|
226
|
+
# @api private
|
227
227
|
#
|
228
228
|
# @abstract
|
229
229
|
#
|
@@ -231,57 +231,50 @@ module ModernTreasury
|
|
231
231
|
class BooleanModel
|
232
232
|
extend ModernTreasury::Converter
|
233
233
|
|
234
|
-
private_class_method :new
|
235
|
-
|
236
234
|
# @param other [Object]
|
237
235
|
#
|
238
236
|
# @return [Boolean]
|
239
|
-
#
|
240
237
|
def self.===(other) = other == true || other == false
|
241
238
|
|
242
239
|
# @param other [Object]
|
243
240
|
#
|
244
241
|
# @return [Boolean]
|
245
|
-
#
|
246
242
|
def self.==(other) = other.is_a?(Class) && other <= ModernTreasury::BooleanModel
|
247
243
|
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
[false, false, 0]
|
244
|
+
class << self
|
245
|
+
# @!parse
|
246
|
+
# # @api private
|
247
|
+
# #
|
248
|
+
# # @param value [Boolean, Object]
|
249
|
+
# #
|
250
|
+
# # @return [Boolean, Object]
|
251
|
+
# def coerce(value) = super
|
252
|
+
|
253
|
+
# @!parse
|
254
|
+
# # @api private
|
255
|
+
# #
|
256
|
+
# # @param value [Boolean, Object]
|
257
|
+
# #
|
258
|
+
# # @return [Boolean, Object]
|
259
|
+
# def dump(value) = super
|
260
|
+
|
261
|
+
# @api private
|
262
|
+
#
|
263
|
+
# @param value [Object]
|
264
|
+
#
|
265
|
+
# @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
|
266
|
+
def try_strict_coerce(value)
|
267
|
+
case value
|
268
|
+
in true | false
|
269
|
+
[true, value, 1]
|
270
|
+
else
|
271
|
+
[false, false, 0]
|
272
|
+
end
|
278
273
|
end
|
279
274
|
end
|
280
275
|
end
|
281
276
|
|
282
|
-
# @private
|
283
|
-
#
|
284
|
-
# @abstract
|
277
|
+
# @api private
|
285
278
|
#
|
286
279
|
# A value from among a specified list of options. OpenAPI enum values map to Ruby
|
287
280
|
# values in the SDK as follows:
|
@@ -293,65 +286,84 @@ module ModernTreasury
|
|
293
286
|
#
|
294
287
|
# We can therefore convert string values to Symbols, but can't convert other
|
295
288
|
# values safely.
|
296
|
-
|
297
|
-
|
289
|
+
#
|
290
|
+
# @example
|
291
|
+
# # `accounts_type` is a `ModernTreasury::Models::AccountsType`
|
292
|
+
# case accounts_type
|
293
|
+
# when ModernTreasury::Models::AccountsType::EXTERNAL_ACCOUNTS
|
294
|
+
# # ...
|
295
|
+
# when ModernTreasury::Models::AccountsType::INTERNAL_ACCOUNTS
|
296
|
+
# # ...
|
297
|
+
# else
|
298
|
+
# puts(accounts_type)
|
299
|
+
# end
|
300
|
+
#
|
301
|
+
# @example
|
302
|
+
# case accounts_type
|
303
|
+
# in :external_accounts
|
304
|
+
# # ...
|
305
|
+
# in :internal_accounts
|
306
|
+
# # ...
|
307
|
+
# else
|
308
|
+
# puts(accounts_type)
|
309
|
+
# end
|
310
|
+
module Enum
|
311
|
+
include ModernTreasury::Converter
|
298
312
|
|
299
313
|
# All of the valid Symbol values for this enum.
|
300
314
|
#
|
301
315
|
# @return [Array<NilClass, Boolean, Integer, Float, Symbol>]
|
302
|
-
|
303
|
-
def self.values = (@values ||= constants.map { const_get(_1) })
|
316
|
+
def values = (@values ||= constants.map { const_get(_1) })
|
304
317
|
|
305
|
-
# @private
|
318
|
+
# @api private
|
306
319
|
#
|
307
320
|
# Guard against thread safety issues by instantiating `@values`.
|
308
|
-
|
309
|
-
private_class_method def self.finalize! = values
|
310
|
-
|
311
|
-
private_class_method :new
|
321
|
+
private def finalize! = values
|
312
322
|
|
313
323
|
# @param other [Object]
|
314
324
|
#
|
315
325
|
# @return [Boolean]
|
316
|
-
|
317
|
-
def self.===(other) = values.include?(other)
|
326
|
+
def ===(other) = values.include?(other)
|
318
327
|
|
319
328
|
# @param other [Object]
|
320
329
|
#
|
321
330
|
# @return [Boolean]
|
322
|
-
|
323
|
-
|
324
|
-
other.is_a?(Class) && other <= ModernTreasury::Enum && other.values.to_set == values.to_set
|
331
|
+
def ==(other)
|
332
|
+
other.is_a?(Module) && other.singleton_class.ancestors.include?(ModernTreasury::Enum) && other.values.to_set == values.to_set
|
325
333
|
end
|
326
334
|
|
327
|
-
# @private
|
335
|
+
# @api private
|
328
336
|
#
|
329
337
|
# @param value [String, Symbol, Object]
|
330
338
|
#
|
331
339
|
# @return [Symbol, Object]
|
332
|
-
|
333
|
-
|
340
|
+
def coerce(value)
|
341
|
+
case value
|
342
|
+
in Symbol | String if values.include?(val = value.to_sym)
|
343
|
+
val
|
344
|
+
else
|
345
|
+
value
|
346
|
+
end
|
347
|
+
end
|
334
348
|
|
335
349
|
# @!parse
|
336
|
-
# # @private
|
350
|
+
# # @api private
|
337
351
|
# #
|
338
352
|
# # @param value [Symbol, Object]
|
339
353
|
# #
|
340
354
|
# # @return [Symbol, Object]
|
341
|
-
#
|
342
|
-
# def self.dump(value) = super
|
355
|
+
# def dump(value) = super
|
343
356
|
|
344
|
-
# @private
|
357
|
+
# @api private
|
345
358
|
#
|
346
359
|
# @param value [Object]
|
347
360
|
#
|
348
361
|
# @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
|
349
|
-
|
350
|
-
def self.try_strict_coerce(value)
|
362
|
+
def try_strict_coerce(value)
|
351
363
|
return [true, value, 1] if values.include?(value)
|
352
364
|
|
353
365
|
case value
|
354
|
-
in String if values.include?(val = value.to_sym)
|
366
|
+
in Symbol | String if values.include?(val = value.to_sym)
|
355
367
|
[true, val, 1]
|
356
368
|
else
|
357
369
|
case [value, values.first]
|
@@ -364,46 +376,53 @@ module ModernTreasury
|
|
364
376
|
end
|
365
377
|
end
|
366
378
|
|
367
|
-
# @private
|
368
|
-
#
|
369
|
-
# @abstract
|
379
|
+
# @api private
|
370
380
|
#
|
371
|
-
|
372
|
-
|
373
|
-
|
381
|
+
# @example
|
382
|
+
# # `external_account_verify_response` is a `ModernTreasury::Models::ExternalAccountVerifyResponse`
|
383
|
+
# case external_account_verify_response
|
384
|
+
# when ModernTreasury::Models::ExternalAccount
|
385
|
+
# puts(external_account_verify_response.id)
|
386
|
+
# when ModernTreasury::Models::ExternalAccountVerifyResponse::ExternalAccountVerificationAttempt
|
387
|
+
# puts(external_account_verify_response.created_at)
|
388
|
+
# else
|
389
|
+
# puts(external_account_verify_response)
|
390
|
+
# end
|
391
|
+
module Union
|
392
|
+
include ModernTreasury::Converter
|
374
393
|
|
375
|
-
# @private
|
394
|
+
# @api private
|
376
395
|
#
|
377
396
|
# All of the specified variant info for this union.
|
378
397
|
#
|
379
398
|
# @return [Array<Array(Symbol, Proc)>]
|
399
|
+
private def known_variants = (@known_variants ||= [])
|
400
|
+
|
401
|
+
# @api private
|
380
402
|
#
|
381
|
-
|
403
|
+
# @return [Array<Array(Symbol, Object)>]
|
404
|
+
protected def derefed_variants
|
405
|
+
@known_variants.map { |key, variant_fn| [key, variant_fn.call] }
|
406
|
+
end
|
382
407
|
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
# @return [Array<Array(Symbol, Object)>]
|
389
|
-
#
|
390
|
-
protected def variants
|
391
|
-
@known_variants.map { |key, variant_fn| [key, variant_fn.call] }
|
392
|
-
end
|
408
|
+
# All of the specified variants for this union.
|
409
|
+
#
|
410
|
+
# @return [Array<Object>]
|
411
|
+
def variants
|
412
|
+
derefed_variants.map(&:last)
|
393
413
|
end
|
394
414
|
|
395
|
-
# @private
|
415
|
+
# @api private
|
396
416
|
#
|
397
417
|
# @param property [Symbol]
|
398
|
-
|
399
|
-
private_class_method def self.discriminator(property)
|
418
|
+
private def discriminator(property)
|
400
419
|
case property
|
401
420
|
in Symbol
|
402
421
|
@discriminator = property
|
403
422
|
end
|
404
423
|
end
|
405
424
|
|
406
|
-
# @private
|
425
|
+
# @api private
|
407
426
|
#
|
408
427
|
# @param key [Symbol, Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class]
|
409
428
|
#
|
@@ -416,26 +435,24 @@ module ModernTreasury
|
|
416
435
|
# @option spec [Proc] :union
|
417
436
|
#
|
418
437
|
# @option spec [Boolean] :"nil?"
|
419
|
-
|
420
|
-
private_class_method def self.variant(key, spec = nil)
|
438
|
+
private def variant(key, spec = nil)
|
421
439
|
variant_info =
|
422
440
|
case key
|
423
441
|
in Symbol
|
424
442
|
[key, ModernTreasury::Converter.type_info(spec)]
|
425
|
-
in Proc | ModernTreasury::Converter |
|
443
|
+
in Proc | ModernTreasury::Converter | Module | Hash
|
426
444
|
[nil, ModernTreasury::Converter.type_info(key)]
|
427
445
|
end
|
428
446
|
|
429
447
|
known_variants << variant_info
|
430
448
|
end
|
431
449
|
|
432
|
-
# @private
|
450
|
+
# @api private
|
433
451
|
#
|
434
452
|
# @param value [Object]
|
435
453
|
#
|
436
454
|
# @return [ModernTreasury::Converter, Class, nil]
|
437
|
-
|
438
|
-
private_class_method def self.resolve_variant(value)
|
455
|
+
private def resolve_variant(value)
|
439
456
|
case [@discriminator, value]
|
440
457
|
in [_, ModernTreasury::BaseModel]
|
441
458
|
value.class
|
@@ -458,13 +475,10 @@ module ModernTreasury
|
|
458
475
|
# rubocop:disable Style/HashEachMethods
|
459
476
|
# rubocop:disable Style/CaseEquality
|
460
477
|
|
461
|
-
private_class_method :new
|
462
|
-
|
463
478
|
# @param other [Object]
|
464
479
|
#
|
465
480
|
# @return [Boolean]
|
466
|
-
|
467
|
-
def self.===(other)
|
481
|
+
def ===(other)
|
468
482
|
known_variants.any? do |_, variant_fn|
|
469
483
|
variant_fn.call === other
|
470
484
|
end
|
@@ -473,18 +487,16 @@ module ModernTreasury
|
|
473
487
|
# @param other [Object]
|
474
488
|
#
|
475
489
|
# @return [Boolean]
|
476
|
-
|
477
|
-
|
478
|
-
other.is_a?(Class) && other <= ModernTreasury::Union && other.variants == variants
|
490
|
+
def ==(other)
|
491
|
+
other.is_a?(Module) && other.singleton_class.ancestors.include?(ModernTreasury::Union) && other.derefed_variants == derefed_variants
|
479
492
|
end
|
480
493
|
|
481
|
-
# @private
|
494
|
+
# @api private
|
482
495
|
#
|
483
496
|
# @param value [Object]
|
484
497
|
#
|
485
498
|
# @return [Object]
|
486
|
-
|
487
|
-
def self.coerce(value)
|
499
|
+
def coerce(value)
|
488
500
|
if (variant = resolve_variant(value))
|
489
501
|
return ModernTreasury::Converter.coerce(variant, value)
|
490
502
|
end
|
@@ -504,19 +516,16 @@ module ModernTreasury
|
|
504
516
|
end
|
505
517
|
end
|
506
518
|
|
507
|
-
# rubocop:disable Style/NumberedParametersLimit
|
508
519
|
_, variant = matches.sort! { _2.first <=> _1.first }.find { |score,| !score.zero? }
|
509
|
-
# rubocop:enable Style/NumberedParametersLimit
|
510
520
|
variant.nil? ? value : ModernTreasury::Converter.coerce(variant, value)
|
511
521
|
end
|
512
522
|
|
513
|
-
# @private
|
523
|
+
# @api private
|
514
524
|
#
|
515
525
|
# @param value [Object]
|
516
526
|
#
|
517
527
|
# @return [Object]
|
518
|
-
|
519
|
-
def self.dump(value)
|
528
|
+
def dump(value)
|
520
529
|
if (variant = resolve_variant(value))
|
521
530
|
return ModernTreasury::Converter.dump(variant, value)
|
522
531
|
end
|
@@ -530,13 +539,12 @@ module ModernTreasury
|
|
530
539
|
value
|
531
540
|
end
|
532
541
|
|
533
|
-
# @private
|
542
|
+
# @api private
|
534
543
|
#
|
535
544
|
# @param value [Object]
|
536
545
|
#
|
537
546
|
# @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
|
538
|
-
|
539
|
-
def self.try_strict_coerce(value)
|
547
|
+
def try_strict_coerce(value)
|
540
548
|
# TODO(ruby) this will result in super linear decoding behaviour for nested unions
|
541
549
|
# follow up with a decoding context that captures current strictness levels
|
542
550
|
if (variant = resolve_variant(value))
|
@@ -567,7 +575,7 @@ module ModernTreasury
|
|
567
575
|
# rubocop:enable Style/HashEachMethods
|
568
576
|
end
|
569
577
|
|
570
|
-
# @private
|
578
|
+
# @api private
|
571
579
|
#
|
572
580
|
# @abstract
|
573
581
|
#
|
@@ -575,14 +583,22 @@ module ModernTreasury
|
|
575
583
|
class ArrayOf
|
576
584
|
include ModernTreasury::Converter
|
577
585
|
|
578
|
-
|
579
|
-
|
580
|
-
|
586
|
+
# @param type_info [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class]
|
587
|
+
#
|
588
|
+
# @param spec [Hash{Symbol=>Object}] .
|
589
|
+
#
|
590
|
+
# @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
|
591
|
+
#
|
592
|
+
# @option spec [Proc] :enum
|
593
|
+
#
|
594
|
+
# @option spec [Proc] :union
|
595
|
+
#
|
596
|
+
# @option spec [Boolean] :"nil?"
|
597
|
+
def self.[](type_info, spec = {}) = new(type_info, spec)
|
581
598
|
|
582
599
|
# @param other [Object]
|
583
600
|
#
|
584
601
|
# @return [Boolean]
|
585
|
-
#
|
586
602
|
def ===(other)
|
587
603
|
type = item_type
|
588
604
|
case other
|
@@ -598,15 +614,13 @@ module ModernTreasury
|
|
598
614
|
# @param other [Object]
|
599
615
|
#
|
600
616
|
# @return [Boolean]
|
601
|
-
#
|
602
617
|
def ==(other) = other.is_a?(ModernTreasury::ArrayOf) && other.item_type == item_type
|
603
618
|
|
604
|
-
# @private
|
619
|
+
# @api private
|
605
620
|
#
|
606
621
|
# @param value [Enumerable, Object]
|
607
622
|
#
|
608
623
|
# @return [Array<Object>, Object]
|
609
|
-
#
|
610
624
|
def coerce(value)
|
611
625
|
type = item_type
|
612
626
|
case value
|
@@ -617,12 +631,11 @@ module ModernTreasury
|
|
617
631
|
end
|
618
632
|
end
|
619
633
|
|
620
|
-
# @private
|
634
|
+
# @api private
|
621
635
|
#
|
622
636
|
# @param value [Enumerable, Object]
|
623
637
|
#
|
624
638
|
# @return [Array<Object>, Object]
|
625
|
-
#
|
626
639
|
def dump(value)
|
627
640
|
type = item_type
|
628
641
|
case value
|
@@ -633,12 +646,11 @@ module ModernTreasury
|
|
633
646
|
end
|
634
647
|
end
|
635
648
|
|
636
|
-
# @private
|
649
|
+
# @api private
|
637
650
|
#
|
638
651
|
# @param value [Object]
|
639
652
|
#
|
640
653
|
# @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
|
641
|
-
#
|
642
654
|
def try_strict_coerce(value)
|
643
655
|
case value
|
644
656
|
in Array
|
@@ -672,13 +684,12 @@ module ModernTreasury
|
|
672
684
|
end
|
673
685
|
end
|
674
686
|
|
675
|
-
# @private
|
687
|
+
# @api private
|
676
688
|
#
|
677
689
|
# @return [ModernTreasury::Converter, Class]
|
678
|
-
#
|
679
690
|
protected def item_type = @item_type_fn.call
|
680
691
|
|
681
|
-
# @private
|
692
|
+
# @api private
|
682
693
|
#
|
683
694
|
# @param type_info [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class]
|
684
695
|
#
|
@@ -691,13 +702,12 @@ module ModernTreasury
|
|
691
702
|
# @option spec [Proc] :union
|
692
703
|
#
|
693
704
|
# @option spec [Boolean] :"nil?"
|
694
|
-
#
|
695
705
|
def initialize(type_info, spec = {})
|
696
706
|
@item_type_fn = ModernTreasury::Converter.type_info(type_info || spec)
|
697
707
|
end
|
698
708
|
end
|
699
709
|
|
700
|
-
# @private
|
710
|
+
# @api private
|
701
711
|
#
|
702
712
|
# @abstract
|
703
713
|
#
|
@@ -705,14 +715,22 @@ module ModernTreasury
|
|
705
715
|
class HashOf
|
706
716
|
include ModernTreasury::Converter
|
707
717
|
|
708
|
-
|
709
|
-
|
710
|
-
|
718
|
+
# @param type_info [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class]
|
719
|
+
#
|
720
|
+
# @param spec [Hash{Symbol=>Object}] .
|
721
|
+
#
|
722
|
+
# @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
|
723
|
+
#
|
724
|
+
# @option spec [Proc] :enum
|
725
|
+
#
|
726
|
+
# @option spec [Proc] :union
|
727
|
+
#
|
728
|
+
# @option spec [Boolean] :"nil?"
|
729
|
+
def self.[](type_info, spec = {}) = new(type_info, spec)
|
711
730
|
|
712
731
|
# @param other [Object]
|
713
732
|
#
|
714
733
|
# @return [Boolean]
|
715
|
-
#
|
716
734
|
def ===(other)
|
717
735
|
type = item_type
|
718
736
|
case other
|
@@ -733,15 +751,13 @@ module ModernTreasury
|
|
733
751
|
# @param other [Object]
|
734
752
|
#
|
735
753
|
# @return [Boolean]
|
736
|
-
#
|
737
754
|
def ==(other) = other.is_a?(ModernTreasury::HashOf) && other.item_type == item_type
|
738
755
|
|
739
|
-
# @private
|
756
|
+
# @api private
|
740
757
|
#
|
741
758
|
# @param value [Hash{Object=>Object}, Object]
|
742
759
|
#
|
743
760
|
# @return [Hash{Symbol=>Object}, Object]
|
744
|
-
#
|
745
761
|
def coerce(value)
|
746
762
|
type = item_type
|
747
763
|
case value
|
@@ -755,12 +771,11 @@ module ModernTreasury
|
|
755
771
|
end
|
756
772
|
end
|
757
773
|
|
758
|
-
# @private
|
774
|
+
# @api private
|
759
775
|
#
|
760
776
|
# @param value [Hash{Object=>Object}, Object]
|
761
777
|
#
|
762
778
|
# @return [Hash{Symbol=>Object}, Object]
|
763
|
-
#
|
764
779
|
def dump(value)
|
765
780
|
type = item_type
|
766
781
|
case value
|
@@ -773,12 +788,11 @@ module ModernTreasury
|
|
773
788
|
end
|
774
789
|
end
|
775
790
|
|
776
|
-
# @private
|
791
|
+
# @api private
|
777
792
|
#
|
778
793
|
# @param value [Object]
|
779
794
|
#
|
780
795
|
# @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
|
781
|
-
#
|
782
796
|
def try_strict_coerce(value)
|
783
797
|
case value
|
784
798
|
in Hash
|
@@ -812,13 +826,12 @@ module ModernTreasury
|
|
812
826
|
end
|
813
827
|
end
|
814
828
|
|
815
|
-
# @private
|
829
|
+
# @api private
|
816
830
|
#
|
817
831
|
# @return [ModernTreasury::Converter, Class]
|
818
|
-
#
|
819
832
|
protected def item_type = @item_type_fn.call
|
820
833
|
|
821
|
-
# @private
|
834
|
+
# @api private
|
822
835
|
#
|
823
836
|
# @param type_info [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class]
|
824
837
|
#
|
@@ -831,176 +844,176 @@ module ModernTreasury
|
|
831
844
|
# @option spec [Proc] :union
|
832
845
|
#
|
833
846
|
# @option spec [Boolean] :"nil?"
|
834
|
-
#
|
835
847
|
def initialize(type_info, spec = {})
|
836
848
|
@item_type_fn = ModernTreasury::Converter.type_info(type_info || spec)
|
837
849
|
end
|
838
850
|
end
|
839
851
|
|
840
|
-
# @private
|
841
|
-
#
|
842
852
|
# @abstract
|
843
853
|
#
|
854
|
+
# @example
|
855
|
+
# # `async_response` is a `ModernTreasury::Models::AsyncResponse`
|
856
|
+
# async_response => {
|
857
|
+
# id: id,
|
858
|
+
# object: object
|
859
|
+
# }
|
844
860
|
class BaseModel
|
845
|
-
extend ModernTreasury::Extern
|
846
861
|
extend ModernTreasury::Converter
|
847
862
|
|
848
|
-
# @private
|
849
|
-
#
|
850
|
-
# Assumes superclass fields are totally defined before fields are accessed /
|
851
|
-
# defined on subclasses.
|
852
|
-
#
|
853
|
-
# @return [Hash{Symbol=>Hash{Symbol=>Object}}]
|
854
|
-
#
|
855
|
-
def self.known_fields
|
856
|
-
@known_fields ||= (self < ModernTreasury::BaseModel ? superclass.known_fields.dup : {})
|
857
|
-
end
|
858
|
-
|
859
863
|
class << self
|
860
|
-
# @private
|
864
|
+
# @api private
|
865
|
+
#
|
866
|
+
# Assumes superclass fields are totally defined before fields are accessed /
|
867
|
+
# defined on subclasses.
|
861
868
|
#
|
862
869
|
# @return [Hash{Symbol=>Hash{Symbol=>Object}}]
|
870
|
+
def known_fields
|
871
|
+
@known_fields ||= (self < ModernTreasury::BaseModel ? superclass.known_fields.dup : {})
|
872
|
+
end
|
873
|
+
|
874
|
+
# @api private
|
875
|
+
#
|
876
|
+
# @return [Hash{Symbol=>Symbol}]
|
877
|
+
def reverse_map
|
878
|
+
@reverse_map ||= (self < ModernTreasury::BaseModel ? superclass.reverse_map.dup : {})
|
879
|
+
end
|
880
|
+
|
881
|
+
# @api private
|
863
882
|
#
|
883
|
+
# @return [Hash{Symbol=>Hash{Symbol=>Object}}]
|
864
884
|
def fields
|
865
885
|
known_fields.transform_values do |field|
|
866
886
|
{**field.except(:type_fn), type: field.fetch(:type_fn).call}
|
867
887
|
end
|
868
888
|
end
|
869
|
-
end
|
870
889
|
|
871
|
-
|
872
|
-
|
873
|
-
|
874
|
-
|
875
|
-
def self.defaults = (@defaults ||= {})
|
890
|
+
# @api private
|
891
|
+
#
|
892
|
+
# @return [Hash{Symbol=>Proc}]
|
893
|
+
def defaults = (@defaults ||= {})
|
876
894
|
|
877
|
-
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
|
884
|
-
|
885
|
-
|
886
|
-
|
887
|
-
|
888
|
-
|
889
|
-
|
890
|
-
|
891
|
-
|
892
|
-
|
893
|
-
|
894
|
-
|
895
|
-
|
896
|
-
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
end
|
895
|
+
# @api private
|
896
|
+
#
|
897
|
+
# @param name_sym [Symbol]
|
898
|
+
#
|
899
|
+
# @param required [Boolean]
|
900
|
+
#
|
901
|
+
# @param type_info [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class]
|
902
|
+
#
|
903
|
+
# @param spec [Hash{Symbol=>Object}] .
|
904
|
+
#
|
905
|
+
# @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
|
906
|
+
#
|
907
|
+
# @option spec [Proc] :enum
|
908
|
+
#
|
909
|
+
# @option spec [Proc] :union
|
910
|
+
#
|
911
|
+
# @option spec [Boolean] :"nil?"
|
912
|
+
private def add_field(name_sym, required:, type_info:, spec:)
|
913
|
+
type_fn, info =
|
914
|
+
case type_info
|
915
|
+
in Proc | Module | ModernTreasury::Converter
|
916
|
+
[ModernTreasury::Converter.type_info({**spec, union: type_info}), spec]
|
917
|
+
in Hash
|
918
|
+
[ModernTreasury::Converter.type_info(type_info), type_info]
|
919
|
+
end
|
903
920
|
|
904
|
-
|
905
|
-
|
921
|
+
fallback = info[:const]
|
922
|
+
defaults[name_sym] = fallback if required && !info[:nil?] && info.key?(:const)
|
906
923
|
|
907
|
-
|
908
|
-
|
924
|
+
key = info[:api_name]&.tap { reverse_map[_1] = name_sym } || name_sym
|
925
|
+
setter = "#{name_sym}="
|
909
926
|
|
910
|
-
|
911
|
-
|
912
|
-
|
927
|
+
if known_fields.key?(name_sym)
|
928
|
+
[name_sym, setter].each { undef_method(_1) }
|
929
|
+
end
|
913
930
|
|
914
|
-
|
931
|
+
known_fields[name_sym] = {mode: @mode, key: key, required: required, type_fn: type_fn}
|
915
932
|
|
916
|
-
|
917
|
-
|
918
|
-
|
933
|
+
define_method(setter) do |val|
|
934
|
+
@data[key] = val
|
935
|
+
end
|
919
936
|
|
920
|
-
|
921
|
-
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
927
|
-
|
928
|
-
|
929
|
-
|
937
|
+
define_method(name_sym) do
|
938
|
+
field_type = type_fn.call
|
939
|
+
value = @data.fetch(key) { self.class.defaults[key] }
|
940
|
+
ModernTreasury::Converter.coerce(field_type, value)
|
941
|
+
rescue StandardError
|
942
|
+
name = self.class.name.split("::").last
|
943
|
+
raise ModernTreasury::ConversionError.new(
|
944
|
+
"Failed to parse #{name}.#{name_sym} as #{field_type.inspect}. " \
|
945
|
+
"To get the unparsed API response, use #{name}[:#{key}]."
|
946
|
+
)
|
947
|
+
end
|
930
948
|
end
|
931
|
-
end
|
932
949
|
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
|
939
|
-
|
940
|
-
|
941
|
-
|
942
|
-
|
943
|
-
|
944
|
-
|
945
|
-
|
946
|
-
|
947
|
-
|
948
|
-
|
949
|
-
|
950
|
-
|
951
|
-
end
|
950
|
+
# @api private
|
951
|
+
#
|
952
|
+
# @param name_sym [Symbol]
|
953
|
+
#
|
954
|
+
# @param type_info [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class]
|
955
|
+
#
|
956
|
+
# @param spec [Hash{Symbol=>Object}] .
|
957
|
+
#
|
958
|
+
# @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
|
959
|
+
#
|
960
|
+
# @option spec [Proc] :enum
|
961
|
+
#
|
962
|
+
# @option spec [Proc] :union
|
963
|
+
#
|
964
|
+
# @option spec [Boolean] :"nil?"
|
965
|
+
def required(name_sym, type_info, spec = {})
|
966
|
+
add_field(name_sym, required: true, type_info: type_info, spec: spec)
|
967
|
+
end
|
952
968
|
|
953
|
-
|
954
|
-
|
955
|
-
|
956
|
-
|
957
|
-
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
|
962
|
-
|
963
|
-
|
964
|
-
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
|
969
|
-
|
970
|
-
|
971
|
-
end
|
969
|
+
# @api private
|
970
|
+
#
|
971
|
+
# @param name_sym [Symbol]
|
972
|
+
#
|
973
|
+
# @param type_info [Hash{Symbol=>Object}, Proc, ModernTreasury::Converter, Class]
|
974
|
+
#
|
975
|
+
# @param spec [Hash{Symbol=>Object}] .
|
976
|
+
#
|
977
|
+
# @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
|
978
|
+
#
|
979
|
+
# @option spec [Proc] :enum
|
980
|
+
#
|
981
|
+
# @option spec [Proc] :union
|
982
|
+
#
|
983
|
+
# @option spec [Boolean] :"nil?"
|
984
|
+
def optional(name_sym, type_info, spec = {})
|
985
|
+
add_field(name_sym, required: false, type_info: type_info, spec: spec)
|
986
|
+
end
|
972
987
|
|
973
|
-
|
974
|
-
|
975
|
-
|
976
|
-
|
977
|
-
|
978
|
-
|
979
|
-
|
980
|
-
|
981
|
-
|
982
|
-
|
983
|
-
|
984
|
-
|
985
|
-
end
|
988
|
+
# @api private
|
989
|
+
#
|
990
|
+
# `request_only` attributes not excluded from `.#coerce` when receiving responses
|
991
|
+
# even if well behaved servers should not send them
|
992
|
+
#
|
993
|
+
# @param blk [Proc]
|
994
|
+
private def request_only(&blk)
|
995
|
+
@mode = :dump
|
996
|
+
blk.call
|
997
|
+
ensure
|
998
|
+
@mode = nil
|
999
|
+
end
|
986
1000
|
|
987
|
-
|
988
|
-
|
989
|
-
|
990
|
-
|
991
|
-
|
992
|
-
|
993
|
-
|
994
|
-
|
995
|
-
|
996
|
-
|
997
|
-
|
1001
|
+
# @api private
|
1002
|
+
#
|
1003
|
+
# `response_only` attributes are omitted from `.#dump` when making requests
|
1004
|
+
#
|
1005
|
+
# @param blk [Proc]
|
1006
|
+
private def response_only(&blk)
|
1007
|
+
@mode = :coerce
|
1008
|
+
blk.call
|
1009
|
+
ensure
|
1010
|
+
@mode = nil
|
1011
|
+
end
|
998
1012
|
end
|
999
1013
|
|
1000
1014
|
# @param other [Object]
|
1001
1015
|
#
|
1002
1016
|
# @return [Boolean]
|
1003
|
-
#
|
1004
1017
|
def ==(other)
|
1005
1018
|
case other
|
1006
1019
|
in ModernTreasury::BaseModel
|
@@ -1010,108 +1023,107 @@ module ModernTreasury
|
|
1010
1023
|
end
|
1011
1024
|
end
|
1012
1025
|
|
1013
|
-
|
1014
|
-
|
1015
|
-
|
1016
|
-
|
1017
|
-
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1022
|
-
|
1023
|
-
|
1024
|
-
|
1026
|
+
class << self
|
1027
|
+
# @api private
|
1028
|
+
#
|
1029
|
+
# @param value [ModernTreasury::BaseModel, Hash{Object=>Object}, Object]
|
1030
|
+
#
|
1031
|
+
# @return [ModernTreasury::BaseModel, Object]
|
1032
|
+
def coerce(value)
|
1033
|
+
case ModernTreasury::Util.coerce_hash(value)
|
1034
|
+
in Hash => coerced
|
1035
|
+
new(coerced)
|
1036
|
+
else
|
1037
|
+
value
|
1038
|
+
end
|
1025
1039
|
end
|
1026
|
-
end
|
1027
1040
|
|
1028
|
-
|
1029
|
-
|
1030
|
-
|
1031
|
-
|
1032
|
-
|
1033
|
-
|
1034
|
-
|
1035
|
-
|
1036
|
-
|
1037
|
-
end
|
1041
|
+
# @api private
|
1042
|
+
#
|
1043
|
+
# @param value [ModernTreasury::BaseModel, Object]
|
1044
|
+
#
|
1045
|
+
# @return [Hash{Object=>Object}, Object]
|
1046
|
+
def dump(value)
|
1047
|
+
unless (coerced = ModernTreasury::Util.coerce_hash(value)).is_a?(Hash)
|
1048
|
+
return value
|
1049
|
+
end
|
1038
1050
|
|
1039
|
-
|
1040
|
-
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1044
|
-
else
|
1045
|
-
mode, type_fn, api_name = field.fetch_values(:mode, :type_fn, :key)
|
1046
|
-
case mode
|
1047
|
-
in :coerce
|
1048
|
-
next
|
1051
|
+
values = coerced.filter_map do |key, val|
|
1052
|
+
name = key.to_sym
|
1053
|
+
case (field = known_fields[name])
|
1054
|
+
in nil
|
1055
|
+
[name, val]
|
1049
1056
|
else
|
1050
|
-
|
1051
|
-
|
1057
|
+
mode, type_fn, api_name = field.fetch_values(:mode, :type_fn, :key)
|
1058
|
+
case mode
|
1059
|
+
in :coerce
|
1060
|
+
next
|
1061
|
+
else
|
1062
|
+
target = type_fn.call
|
1063
|
+
[api_name, ModernTreasury::Converter.dump(target, val)]
|
1064
|
+
end
|
1052
1065
|
end
|
1053
|
-
end
|
1054
|
-
|
1066
|
+
end.to_h
|
1067
|
+
|
1068
|
+
defaults.each do |key, val|
|
1069
|
+
next if values.key?(key)
|
1055
1070
|
|
1056
|
-
|
1057
|
-
|
1071
|
+
values[key] = val
|
1072
|
+
end
|
1058
1073
|
|
1059
|
-
values
|
1074
|
+
values
|
1060
1075
|
end
|
1061
1076
|
|
1062
|
-
|
1063
|
-
|
1077
|
+
# @api private
|
1078
|
+
#
|
1079
|
+
# @param value [Object]
|
1080
|
+
#
|
1081
|
+
# @return [Array(true, Object, nil), Array(false, Boolean, Integer)]
|
1082
|
+
def try_strict_coerce(value)
|
1083
|
+
case value
|
1084
|
+
in Hash | ModernTreasury::BaseModel
|
1085
|
+
value = value.to_h
|
1086
|
+
else
|
1087
|
+
return [false, false, 0]
|
1088
|
+
end
|
1064
1089
|
|
1065
|
-
|
1066
|
-
|
1067
|
-
|
1068
|
-
|
1069
|
-
|
1070
|
-
|
1071
|
-
|
1072
|
-
|
1073
|
-
in Hash | ModernTreasury::BaseModel
|
1074
|
-
value = value.to_h
|
1075
|
-
else
|
1076
|
-
return [false, false, 0]
|
1077
|
-
end
|
1090
|
+
keys = value.keys.to_set
|
1091
|
+
great_success = true
|
1092
|
+
tally = 0
|
1093
|
+
acc = {}
|
1094
|
+
|
1095
|
+
known_fields.each_value do |field|
|
1096
|
+
mode, required, type_fn, api_name = field.fetch_values(:mode, :required, :type_fn, :key)
|
1097
|
+
keys.delete(api_name)
|
1078
1098
|
|
1079
|
-
|
1080
|
-
|
1081
|
-
|
1082
|
-
|
1083
|
-
|
1084
|
-
|
1085
|
-
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1091
|
-
|
1092
|
-
|
1093
|
-
|
1094
|
-
|
1095
|
-
acc[api_name] = coerced
|
1096
|
-
in [false, true, score]
|
1099
|
+
case [required && mode != :dump, value.key?(api_name)]
|
1100
|
+
in [_, true]
|
1101
|
+
target = type_fn.call
|
1102
|
+
item = value.fetch(api_name)
|
1103
|
+
case ModernTreasury::Converter.try_strict_coerce(target, item)
|
1104
|
+
in [true, coerced, score]
|
1105
|
+
tally += score
|
1106
|
+
acc[api_name] = coerced
|
1107
|
+
in [false, true, score]
|
1108
|
+
great_success = false
|
1109
|
+
tally += score
|
1110
|
+
acc[api_name] = item
|
1111
|
+
in [false, false, _]
|
1112
|
+
great_success &&= item.nil?
|
1113
|
+
end
|
1114
|
+
in [true, false]
|
1097
1115
|
great_success = false
|
1098
|
-
|
1099
|
-
|
1100
|
-
in [false, false, _]
|
1101
|
-
great_success &&= item.nil?
|
1116
|
+
in [false, false]
|
1117
|
+
nil
|
1102
1118
|
end
|
1103
|
-
in [true, false]
|
1104
|
-
great_success = false
|
1105
|
-
in [false, false]
|
1106
|
-
nil
|
1107
1119
|
end
|
1108
|
-
end
|
1109
1120
|
|
1110
|
-
|
1111
|
-
|
1112
|
-
|
1121
|
+
keys.each do |key|
|
1122
|
+
acc[key] = value.fetch(key)
|
1123
|
+
end
|
1113
1124
|
|
1114
|
-
|
1125
|
+
great_success ? [true, new(acc), tally] : [false, true, tally]
|
1126
|
+
end
|
1115
1127
|
end
|
1116
1128
|
|
1117
1129
|
# Returns the raw value associated with the given key, if found. Otherwise, nil is
|
@@ -1124,7 +1136,6 @@ module ModernTreasury
|
|
1124
1136
|
# @param key [Symbol]
|
1125
1137
|
#
|
1126
1138
|
# @return [Object, nil]
|
1127
|
-
#
|
1128
1139
|
def [](key)
|
1129
1140
|
unless key.instance_of?(Symbol)
|
1130
1141
|
raise ArgumentError.new("Expected symbol key for lookup, got #{key.inspect}")
|
@@ -1143,7 +1154,6 @@ module ModernTreasury
|
|
1143
1154
|
# should not be mutated.
|
1144
1155
|
#
|
1145
1156
|
# @return [Hash{Symbol=>Object}]
|
1146
|
-
#
|
1147
1157
|
def to_h = @data
|
1148
1158
|
|
1149
1159
|
alias_method :to_hash, :to_h
|
@@ -1151,7 +1161,6 @@ module ModernTreasury
|
|
1151
1161
|
# @param keys [Array<Symbol>, nil]
|
1152
1162
|
#
|
1153
1163
|
# @return [Hash{Symbol=>Object}]
|
1154
|
-
#
|
1155
1164
|
def deconstruct_keys(keys)
|
1156
1165
|
(keys || self.class.known_fields.keys).filter_map do |k|
|
1157
1166
|
unless self.class.known_fields.key?(k)
|
@@ -1166,22 +1175,33 @@ module ModernTreasury
|
|
1166
1175
|
# Create a new instance of a model.
|
1167
1176
|
#
|
1168
1177
|
# @param data [Hash{Symbol=>Object}, ModernTreasury::BaseModel]
|
1169
|
-
#
|
1170
1178
|
def initialize(data = {})
|
1171
1179
|
case ModernTreasury::Util.coerce_hash(data)
|
1172
1180
|
in Hash => coerced
|
1173
|
-
@data = coerced.
|
1181
|
+
@data = coerced.to_h do |key, value|
|
1182
|
+
name = key.to_sym
|
1183
|
+
mapped = self.class.reverse_map.fetch(name, name)
|
1184
|
+
type = self.class.fields[mapped]&.fetch(:type)
|
1185
|
+
stored =
|
1186
|
+
case [type, value]
|
1187
|
+
in [Module, Hash] if type <= ModernTreasury::BaseModel
|
1188
|
+
type.new(value)
|
1189
|
+
in [ModernTreasury::ArrayOf, Array] | [ModernTreasury::HashOf, Hash]
|
1190
|
+
type.coerce(value)
|
1191
|
+
else
|
1192
|
+
value
|
1193
|
+
end
|
1194
|
+
[name, stored]
|
1195
|
+
end
|
1174
1196
|
else
|
1175
1197
|
raise ArgumentError.new("Expected a #{Hash} or #{ModernTreasury::BaseModel}, got #{data.inspect}")
|
1176
1198
|
end
|
1177
1199
|
end
|
1178
1200
|
|
1179
1201
|
# @return [String]
|
1180
|
-
#
|
1181
1202
|
def to_s = @data.to_s
|
1182
1203
|
|
1183
1204
|
# @return [String]
|
1184
|
-
#
|
1185
1205
|
def inspect
|
1186
1206
|
"#<#{self.class.name}:0x#{object_id.to_s(16)} #{deconstruct_keys(nil).map do |k, v|
|
1187
1207
|
"#{k}=#{v.inspect}"
|