orb-billing 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +67 -0
- data/README.md +63 -53
- data/lib/orb/client.rb +4 -4
- data/lib/orb/errors.rb +9 -9
- data/lib/orb/file_part.rb +55 -0
- data/lib/orb/internal/page.rb +7 -11
- data/lib/orb/internal/transport/base_client.rb +10 -10
- data/lib/orb/internal/transport/pooled_net_requester.rb +2 -2
- data/lib/orb/internal/type/array_of.rb +11 -0
- data/lib/orb/internal/type/base_model.rb +33 -23
- data/lib/orb/internal/type/base_page.rb +9 -1
- data/lib/orb/internal/type/boolean.rb +14 -11
- data/lib/orb/internal/type/converter.rb +4 -1
- data/lib/orb/internal/type/enum.rb +19 -16
- data/lib/orb/internal/type/{io_like.rb → file_input.rb} +33 -15
- data/lib/orb/internal/type/hash_of.rb +11 -0
- data/lib/orb/internal/type/request_parameters.rb +3 -10
- data/lib/orb/internal/type/union.rb +10 -1
- data/lib/orb/internal/type/unknown.rb +14 -11
- data/lib/orb/internal/util.rb +88 -64
- data/lib/orb/internal.rb +0 -1
- data/lib/orb/models/alert.rb +68 -71
- data/lib/orb/models/alert_create_for_customer_params.rb +20 -25
- data/lib/orb/models/alert_create_for_external_customer_params.rb +20 -25
- data/lib/orb/models/alert_create_for_subscription_params.rb +20 -25
- data/lib/orb/models/alert_disable_params.rb +5 -9
- data/lib/orb/models/alert_enable_params.rb +5 -9
- data/lib/orb/models/alert_list_params.rb +26 -36
- data/lib/orb/models/alert_retrieve_params.rb +3 -8
- data/lib/orb/models/alert_update_params.rb +14 -18
- data/lib/orb/models/amount_discount.rb +14 -14
- data/lib/orb/models/billable_metric.rb +23 -20
- data/lib/orb/models/billing_cycle_relative_date.rb +2 -5
- data/lib/orb/models/coupon.rb +28 -21
- data/lib/orb/models/coupon_archive_params.rb +3 -8
- data/lib/orb/models/coupon_create_params.rb +29 -34
- data/lib/orb/models/coupon_fetch_params.rb +3 -8
- data/lib/orb/models/coupon_list_params.rb +17 -17
- data/lib/orb/models/coupons/subscription_list_params.rb +12 -15
- data/lib/orb/models/credit_note.rb +100 -166
- data/lib/orb/models/credit_note_create_params.rb +15 -23
- data/lib/orb/models/credit_note_fetch_params.rb +3 -8
- data/lib/orb/models/credit_note_list_params.rb +20 -30
- data/lib/orb/models/customer.rb +224 -271
- data/lib/orb/models/customer_create_params.rb +216 -257
- data/lib/orb/models/customer_delete_params.rb +3 -8
- data/lib/orb/models/customer_fetch_by_external_id_params.rb +3 -8
- data/lib/orb/models/customer_fetch_params.rb +3 -8
- data/lib/orb/models/customer_list_params.rb +20 -30
- data/lib/orb/models/customer_sync_payment_methods_from_gateway_by_external_customer_id_params.rb +3 -8
- data/lib/orb/models/customer_sync_payment_methods_from_gateway_params.rb +3 -8
- data/lib/orb/models/customer_update_by_external_id_params.rb +212 -257
- data/lib/orb/models/customer_update_params.rb +212 -255
- data/lib/orb/models/customers/balance_transaction_create_params.rb +11 -16
- data/lib/orb/models/customers/balance_transaction_create_response.rb +33 -51
- data/lib/orb/models/customers/balance_transaction_list_params.rb +20 -30
- data/lib/orb/models/customers/balance_transaction_list_response.rb +33 -51
- data/lib/orb/models/customers/cost_list_by_external_id_params.rb +17 -17
- data/lib/orb/models/customers/cost_list_by_external_id_response.rb +23 -27
- data/lib/orb/models/customers/cost_list_params.rb +17 -17
- data/lib/orb/models/customers/cost_list_response.rb +23 -27
- data/lib/orb/models/customers/credit_list_by_external_id_params.rb +18 -22
- data/lib/orb/models/customers/credit_list_by_external_id_response.rb +10 -17
- data/lib/orb/models/customers/credit_list_params.rb +18 -22
- data/lib/orb/models/customers/credit_list_response.rb +10 -17
- data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rb +64 -66
- data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rb +384 -491
- data/lib/orb/models/customers/credits/ledger_create_entry_params.rb +63 -66
- data/lib/orb/models/customers/credits/ledger_create_entry_response.rb +384 -498
- data/lib/orb/models/customers/credits/ledger_list_by_external_id_params.rb +33 -48
- data/lib/orb/models/customers/credits/ledger_list_by_external_id_response.rb +384 -494
- data/lib/orb/models/customers/credits/ledger_list_params.rb +32 -48
- data/lib/orb/models/customers/credits/ledger_list_response.rb +383 -501
- data/lib/orb/models/customers/credits/top_up_create_by_external_id_params.rb +47 -50
- data/lib/orb/models/customers/credits/top_up_create_by_external_id_response.rb +43 -46
- data/lib/orb/models/customers/credits/top_up_create_params.rb +46 -50
- data/lib/orb/models/customers/credits/top_up_create_response.rb +42 -46
- data/lib/orb/models/customers/credits/top_up_delete_by_external_id_params.rb +4 -9
- data/lib/orb/models/customers/credits/top_up_delete_params.rb +4 -9
- data/lib/orb/models/customers/credits/top_up_list_by_external_id_params.rb +12 -15
- data/lib/orb/models/customers/credits/top_up_list_by_external_id_response.rb +43 -46
- data/lib/orb/models/customers/credits/top_up_list_params.rb +12 -15
- data/lib/orb/models/customers/credits/top_up_list_response.rb +42 -46
- data/lib/orb/models/dimensional_price_group.rb +21 -15
- data/lib/orb/models/dimensional_price_group_create_params.rb +17 -23
- data/lib/orb/models/dimensional_price_group_list_params.rb +12 -15
- data/lib/orb/models/dimensional_price_group_retrieve_params.rb +3 -8
- data/lib/orb/models/dimensional_price_groups/external_dimensional_price_group_id_retrieve_params.rb +3 -8
- data/lib/orb/models/dimensional_price_groups.rb +3 -7
- data/lib/orb/models/discount.rb +2 -3
- data/lib/orb/models/evaluate_price_group.rb +8 -11
- data/lib/orb/models/event_deprecate_params.rb +3 -8
- data/lib/orb/models/event_deprecate_response.rb +2 -6
- data/lib/orb/models/event_ingest_params.rb +33 -27
- data/lib/orb/models/event_ingest_response.rb +23 -24
- data/lib/orb/models/event_search_params.rb +15 -11
- data/lib/orb/models/event_search_response.rb +27 -22
- data/lib/orb/models/event_update_params.rb +19 -13
- data/lib/orb/models/event_update_response.rb +2 -6
- data/lib/orb/models/events/backfill_close_params.rb +3 -8
- data/lib/orb/models/events/backfill_close_response.rb +34 -39
- data/lib/orb/models/events/backfill_create_params.rb +28 -32
- data/lib/orb/models/events/backfill_create_response.rb +34 -39
- data/lib/orb/models/events/backfill_fetch_params.rb +3 -8
- data/lib/orb/models/events/backfill_fetch_response.rb +34 -39
- data/lib/orb/models/events/backfill_list_params.rb +12 -15
- data/lib/orb/models/events/backfill_list_response.rb +34 -39
- data/lib/orb/models/events/backfill_revert_params.rb +3 -8
- data/lib/orb/models/events/backfill_revert_response.rb +34 -39
- data/lib/orb/models/events/event_volumes.rb +11 -17
- data/lib/orb/models/events/volume_list_params.rb +19 -22
- data/lib/orb/models/invoice.rb +619 -681
- data/lib/orb/models/invoice_create_params.rb +52 -61
- data/lib/orb/models/invoice_fetch_params.rb +3 -8
- data/lib/orb/models/invoice_fetch_upcoming_params.rb +4 -9
- data/lib/orb/models/invoice_fetch_upcoming_response.rb +618 -669
- data/lib/orb/models/invoice_issue_params.rb +10 -14
- data/lib/orb/models/invoice_level_discount.rb +2 -3
- data/lib/orb/models/invoice_line_item_create_params.rb +19 -14
- data/lib/orb/models/invoice_line_item_create_response.rb +281 -306
- data/lib/orb/models/invoice_list_params.rb +51 -66
- data/lib/orb/models/invoice_mark_paid_params.rb +9 -11
- data/lib/orb/models/invoice_pay_params.rb +3 -8
- data/lib/orb/models/invoice_update_params.rb +9 -9
- data/lib/orb/models/invoice_void_params.rb +3 -8
- data/lib/orb/models/item.rb +14 -25
- data/lib/orb/models/item_create_params.rb +5 -9
- data/lib/orb/models/item_fetch_params.rb +3 -8
- data/lib/orb/models/item_list_params.rb +12 -15
- data/lib/orb/models/item_update_params.rb +10 -22
- data/lib/orb/models/metric_create_params.rb +17 -13
- data/lib/orb/models/metric_fetch_params.rb +3 -8
- data/lib/orb/models/metric_list_params.rb +20 -30
- data/lib/orb/models/metric_update_params.rb +9 -9
- data/lib/orb/models/pagination_metadata.rb +3 -7
- data/lib/orb/models/percentage_discount.rb +15 -14
- data/lib/orb/models/plan.rb +259 -291
- data/lib/orb/models/plan_create_params.rb +2070 -2466
- data/lib/orb/models/plan_fetch_params.rb +3 -8
- data/lib/orb/models/plan_list_params.rb +25 -42
- data/lib/orb/models/plan_update_params.rb +12 -10
- data/lib/orb/models/plans/external_plan_id_fetch_params.rb +3 -8
- data/lib/orb/models/plans/external_plan_id_update_params.rb +12 -10
- data/lib/orb/models/price.rb +3842 -5005
- data/lib/orb/models/price_create_params.rb +203 -244
- data/lib/orb/models/price_evaluate_params.rb +21 -30
- data/lib/orb/models/price_evaluate_response.rb +2 -6
- data/lib/orb/models/price_fetch_params.rb +3 -8
- data/lib/orb/models/price_list_params.rb +12 -15
- data/lib/orb/models/price_update_params.rb +9 -9
- data/lib/orb/models/prices/external_price_id_fetch_params.rb +3 -8
- data/lib/orb/models/prices/external_price_id_update_params.rb +9 -9
- data/lib/orb/models/subscription.rb +360 -405
- data/lib/orb/models/subscription_cancel_params.rb +16 -16
- data/lib/orb/models/subscription_cancel_response.rb +358 -399
- data/lib/orb/models/subscription_change_apply_params.rb +7 -10
- data/lib/orb/models/subscription_change_apply_response.rb +384 -418
- data/lib/orb/models/subscription_change_cancel_params.rb +3 -8
- data/lib/orb/models/subscription_change_cancel_response.rb +384 -417
- data/lib/orb/models/subscription_change_retrieve_params.rb +3 -8
- data/lib/orb/models/subscription_change_retrieve_response.rb +385 -417
- data/lib/orb/models/subscription_create_params.rb +4735 -5417
- data/lib/orb/models/subscription_create_response.rb +358 -399
- data/lib/orb/models/subscription_fetch_costs_params.rb +17 -17
- data/lib/orb/models/subscription_fetch_costs_response.rb +23 -27
- data/lib/orb/models/subscription_fetch_params.rb +3 -8
- data/lib/orb/models/subscription_fetch_schedule_params.rb +20 -30
- data/lib/orb/models/subscription_fetch_schedule_response.rb +15 -17
- data/lib/orb/models/subscription_fetch_usage_params.rb +32 -43
- data/lib/orb/models/subscription_list_params.rb +28 -41
- data/lib/orb/models/subscription_price_intervals_params.rb +2560 -3040
- data/lib/orb/models/subscription_price_intervals_response.rb +361 -399
- data/lib/orb/models/subscription_schedule_plan_change_params.rb +4728 -5411
- data/lib/orb/models/subscription_schedule_plan_change_response.rb +361 -398
- data/lib/orb/models/subscription_trigger_phase_params.rb +12 -10
- data/lib/orb/models/subscription_trigger_phase_response.rb +360 -399
- data/lib/orb/models/subscription_unschedule_cancellation_params.rb +3 -8
- data/lib/orb/models/subscription_unschedule_cancellation_response.rb +361 -398
- data/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_params.rb +5 -9
- data/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rb +362 -396
- data/lib/orb/models/subscription_unschedule_pending_plan_changes_params.rb +3 -8
- data/lib/orb/models/subscription_unschedule_pending_plan_changes_response.rb +362 -396
- data/lib/orb/models/subscription_update_fixed_fee_quantity_params.rb +22 -33
- data/lib/orb/models/subscription_update_fixed_fee_quantity_response.rb +361 -398
- data/lib/orb/models/subscription_update_params.rb +21 -23
- data/lib/orb/models/subscription_update_trial_params.rb +15 -18
- data/lib/orb/models/subscription_update_trial_response.rb +360 -399
- data/lib/orb/models/subscription_usage.rb +37 -80
- data/lib/orb/models/subscriptions.rb +3 -7
- data/lib/orb/models/top_level_ping_params.rb +3 -8
- data/lib/orb/models/top_level_ping_response.rb +2 -6
- data/lib/orb/models/trial_discount.rb +16 -24
- data/lib/orb/models/usage_discount.rb +15 -14
- data/lib/orb/models.rb +220 -0
- data/lib/orb/request_options.rb +4 -6
- data/lib/orb/resources/alerts.rb +48 -17
- data/lib/orb/resources/coupons/subscriptions.rb +9 -2
- data/lib/orb/resources/coupons.rb +26 -8
- data/lib/orb/resources/credit_notes.rb +17 -4
- data/lib/orb/resources/customers/balance_transactions.rb +18 -3
- data/lib/orb/resources/customers/costs.rb +26 -8
- data/lib/orb/resources/customers/credits/ledger.rb +112 -32
- data/lib/orb/resources/customers/credits/top_ups.rb +67 -20
- data/lib/orb/resources/customers/credits.rb +28 -8
- data/lib/orb/resources/customers.rb +138 -39
- data/lib/orb/resources/dimensional_price_groups.rb +19 -4
- data/lib/orb/resources/events/backfills.rb +32 -9
- data/lib/orb/resources/events/volume.rb +14 -4
- data/lib/orb/resources/events.rb +40 -11
- data/lib/orb/resources/invoice_line_items.rb +16 -6
- data/lib/orb/resources/invoices.rb +77 -17
- data/lib/orb/resources/items.rb +10 -3
- data/lib/orb/resources/metrics.rb +33 -8
- data/lib/orb/resources/plans/external_plan_id.rb +10 -2
- data/lib/orb/resources/plans.rb +47 -11
- data/lib/orb/resources/prices/external_price_id.rb +9 -3
- data/lib/orb/resources/prices.rb +101 -26
- data/lib/orb/resources/subscription_changes.rb +5 -2
- data/lib/orb/resources/subscriptions.rb +292 -78
- data/lib/orb/version.rb +1 -1
- data/lib/orb.rb +2 -10
- data/rbi/{lib/orb → orb}/client.rbi +4 -4
- data/rbi/{lib/orb → orb}/errors.rbi +1 -1
- data/rbi/orb/file_part.rbi +34 -0
- data/rbi/{lib/orb → orb}/internal/transport/base_client.rbi +19 -5
- data/rbi/{lib/orb → orb}/internal/type/array_of.rbi +3 -0
- data/rbi/{lib/orb → orb}/internal/type/base_model.rbi +7 -1
- data/rbi/{lib/orb → orb}/internal/type/base_page.rbi +2 -0
- data/rbi/{lib/orb → orb}/internal/type/enum.rbi +3 -6
- data/rbi/{lib/orb/internal/type/io_like.rbi → orb/internal/type/file_input.rbi} +5 -2
- data/rbi/{lib/orb → orb}/internal/type/hash_of.rbi +3 -0
- data/rbi/{lib/orb → orb}/internal/type/request_parameters.rbi +1 -1
- data/rbi/{lib/orb → orb}/internal/type/union.rbi +3 -0
- data/rbi/{lib/orb → orb}/internal/util.rbi +28 -19
- data/rbi/{lib/orb → orb}/internal.rbi +0 -1
- data/rbi/{lib/orb → orb}/models/alert.rbi +28 -8
- data/rbi/{lib/orb → orb}/models/alert_create_for_customer_params.rbi +16 -6
- data/rbi/{lib/orb → orb}/models/alert_create_for_external_customer_params.rbi +16 -6
- data/rbi/{lib/orb → orb}/models/alert_create_for_subscription_params.rbi +16 -6
- data/rbi/{lib/orb → orb}/models/alert_disable_params.rbi +5 -2
- data/rbi/{lib/orb → orb}/models/alert_enable_params.rbi +5 -2
- data/rbi/{lib/orb → orb}/models/alert_list_params.rbi +6 -0
- data/rbi/{lib/orb → orb}/models/alert_update_params.rbi +11 -4
- data/rbi/{lib/orb → orb}/models/amount_discount.rbi +10 -4
- data/rbi/{lib/orb → orb}/models/billable_metric.rbi +16 -3
- data/rbi/{lib/orb → orb}/models/billing_cycle_relative_date.rbi +1 -1
- data/rbi/{lib/orb → orb}/models/coupon.rbi +10 -3
- data/rbi/{lib/orb → orb}/models/coupon_create_params.rbi +15 -12
- data/rbi/{lib/orb → orb}/models/coupon_list_params.rbi +13 -3
- data/rbi/{lib/orb → orb}/models/coupons/subscription_list_params.rbi +8 -2
- data/rbi/{lib/orb → orb}/models/credit_note.rbi +44 -12
- data/rbi/{lib/orb → orb}/models/credit_note_create_params.rbi +15 -6
- data/rbi/{lib/orb → orb}/models/credit_note_list_params.rbi +3 -0
- data/rbi/{lib/orb → orb}/models/customer.rbi +130 -11
- data/rbi/{lib/orb → orb}/models/customer_create_params.rbi +151 -17
- data/rbi/{lib/orb → orb}/models/customer_list_params.rbi +3 -0
- data/rbi/{lib/orb → orb}/models/customer_update_by_external_id_params.rbi +149 -17
- data/rbi/{lib/orb → orb}/models/customer_update_params.rbi +149 -17
- data/rbi/{lib/orb → orb}/models/customers/balance_transaction_create_params.rbi +8 -4
- data/rbi/{lib/orb → orb}/models/customers/balance_transaction_create_response.rbi +18 -8
- data/rbi/{lib/orb → orb}/models/customers/balance_transaction_list_params.rbi +3 -0
- data/rbi/{lib/orb → orb}/models/customers/balance_transaction_list_response.rbi +18 -8
- data/rbi/{lib/orb → orb}/models/customers/cost_list_by_external_id_params.rbi +9 -5
- data/rbi/orb/models/customers/cost_list_by_external_id_response.rbi +225 -0
- data/rbi/{lib/orb → orb}/models/customers/cost_list_params.rbi +9 -5
- data/rbi/orb/models/customers/cost_list_response.rbi +223 -0
- data/rbi/{lib/orb → orb}/models/customers/credit_list_by_external_id_params.rbi +13 -3
- data/rbi/{lib/orb → orb}/models/customers/credit_list_by_external_id_response.rbi +1 -2
- data/rbi/{lib/orb → orb}/models/customers/credit_list_params.rbi +13 -3
- data/rbi/{lib/orb → orb}/models/customers/credit_list_response.rbi +1 -2
- data/rbi/{lib/orb → orb}/models/customers/credits/ledger_create_entry_by_external_id_params.rbi +40 -18
- data/rbi/{lib/orb/models/customers/credits/ledger_create_entry_response.rbi → orb/models/customers/credits/ledger_create_entry_by_external_id_response.rbi} +157 -170
- data/rbi/{lib/orb → orb}/models/customers/credits/ledger_create_entry_params.rbi +40 -6
- data/rbi/{lib/orb/models/customers/credits/ledger_list_response.rbi → orb/models/customers/credits/ledger_create_entry_response.rbi} +149 -196
- data/rbi/{lib/orb → orb}/models/customers/credits/ledger_list_by_external_id_params.rbi +6 -16
- data/rbi/{lib/orb → orb}/models/customers/credits/ledger_list_by_external_id_response.rbi +148 -229
- data/rbi/{lib/orb → orb}/models/customers/credits/ledger_list_params.rbi +6 -4
- data/rbi/{lib/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rbi → orb/models/customers/credits/ledger_list_response.rbi} +149 -343
- data/rbi/{lib/orb → orb}/models/customers/credits/top_up_create_by_external_id_params.rbi +27 -10
- data/rbi/{lib/orb → orb}/models/customers/credits/top_up_create_by_external_id_response.rbi +25 -10
- data/rbi/{lib/orb → orb}/models/customers/credits/top_up_create_params.rbi +27 -4
- data/rbi/{lib/orb → orb}/models/customers/credits/top_up_create_response.rbi +25 -10
- data/rbi/{lib/orb → orb}/models/customers/credits/top_up_list_by_external_id_params.rbi +8 -2
- data/rbi/{lib/orb → orb}/models/customers/credits/top_up_list_by_external_id_response.rbi +25 -10
- data/rbi/{lib/orb → orb}/models/customers/credits/top_up_list_params.rbi +8 -2
- data/rbi/{lib/orb → orb}/models/customers/credits/top_up_list_response.rbi +25 -4
- data/rbi/{lib/orb → orb}/models/dimensional_price_group.rbi +11 -3
- data/rbi/{lib/orb → orb}/models/dimensional_price_group_create_params.rbi +4 -0
- data/rbi/{lib/orb → orb}/models/dimensional_price_group_list_params.rbi +8 -2
- data/rbi/{lib/orb → orb}/models/evaluate_price_group.rbi +8 -2
- data/rbi/{lib/orb → orb}/models/event_deprecate_response.rbi +4 -2
- data/rbi/{lib/orb → orb}/models/event_ingest_params.rbi +22 -5
- data/rbi/{lib/orb → orb}/models/event_ingest_response.rbi +15 -4
- data/rbi/{lib/orb → orb}/models/event_search_params.rbi +14 -2
- data/rbi/{lib/orb → orb}/models/event_search_response.rbi +14 -3
- data/rbi/{lib/orb → orb}/models/event_update_params.rbi +10 -3
- data/rbi/{lib/orb → orb}/models/event_update_response.rbi +4 -2
- data/rbi/{lib/orb → orb}/models/events/backfill_close_response.rbi +14 -2
- data/rbi/{lib/orb → orb}/models/events/backfill_create_params.rbi +18 -0
- data/rbi/{lib/orb → orb}/models/events/backfill_create_response.rbi +14 -2
- data/rbi/{lib/orb → orb}/models/events/backfill_fetch_response.rbi +14 -2
- data/rbi/{lib/orb → orb}/models/events/backfill_list_params.rbi +8 -2
- data/rbi/{lib/orb → orb}/models/events/backfill_list_response.rbi +14 -2
- data/rbi/{lib/orb → orb}/models/events/backfill_revert_response.rbi +14 -2
- data/rbi/{lib/orb → orb}/models/events/event_volumes.rbi +8 -4
- data/rbi/{lib/orb → orb}/models/events/volume_list_params.rbi +18 -2
- data/rbi/{lib/orb → orb}/models/invoice.rbi +513 -202
- data/rbi/{lib/orb → orb}/models/invoice_create_params.rbi +38 -6
- data/rbi/{lib/orb → orb}/models/invoice_fetch_upcoming_response.rbi +513 -216
- data/rbi/{lib/orb → orb}/models/invoice_issue_params.rbi +9 -2
- data/rbi/{lib/orb → orb}/models/invoice_line_item_create_params.rbi +16 -2
- data/rbi/{lib/orb → orb}/models/invoice_line_item_create_response.rbi +279 -182
- data/rbi/{lib/orb → orb}/models/invoice_list_params.rbi +9 -2
- data/rbi/{lib/orb → orb}/models/invoice_mark_paid_params.rbi +9 -2
- data/rbi/{lib/orb → orb}/models/invoice_update_params.rbi +7 -2
- data/rbi/{lib/orb → orb}/models/item.rbi +1 -2
- data/rbi/{lib/orb → orb}/models/item_create_params.rbi +5 -2
- data/rbi/{lib/orb → orb}/models/item_list_params.rbi +8 -2
- data/rbi/{lib/orb → orb}/models/item_update_params.rbi +1 -8
- data/rbi/{lib/orb → orb}/models/metric_create_params.rbi +15 -2
- data/rbi/{lib/orb → orb}/models/metric_list_params.rbi +3 -0
- data/rbi/{lib/orb → orb}/models/metric_update_params.rbi +7 -2
- data/rbi/{lib/orb → orb}/models/percentage_discount.rbi +11 -4
- data/rbi/{lib/orb → orb}/models/plan.rbi +207 -120
- data/rbi/{lib/orb → orb}/models/plan_create_params.rbi +1971 -2414
- data/rbi/{lib/orb → orb}/models/plan_list_params.rbi +5 -1
- data/rbi/{lib/orb → orb}/models/plan_update_params.rbi +11 -2
- data/rbi/{lib/orb → orb}/models/plans/external_plan_id_update_params.rbi +11 -2
- data/rbi/{lib/orb → orb}/models/price.rbi +2594 -2957
- data/rbi/{lib/orb → orb}/models/price_create_params.rbi +137 -53
- data/rbi/{lib/orb → orb}/models/price_evaluate_params.rbi +10 -0
- data/rbi/{lib/orb → orb}/models/price_list_params.rbi +8 -2
- data/rbi/{lib/orb → orb}/models/price_update_params.rbi +7 -2
- data/rbi/{lib/orb → orb}/models/prices/external_price_id_update_params.rbi +7 -2
- data/rbi/{lib/orb → orb}/models/subscription.rbi +292 -129
- data/rbi/{lib/orb → orb}/models/subscription_cancel_params.rbi +8 -5
- data/rbi/{lib/orb → orb}/models/subscription_cancel_response.rbi +305 -132
- data/rbi/{lib/orb → orb}/models/subscription_change_apply_params.rbi +7 -2
- data/rbi/{lib/orb → orb}/models/subscription_change_apply_response.rbi +317 -136
- data/rbi/{lib/orb → orb}/models/subscription_change_cancel_response.rbi +317 -136
- data/rbi/{lib/orb → orb}/models/subscription_change_retrieve_response.rbi +317 -136
- data/rbi/{lib/orb → orb}/models/subscription_create_params.rbi +4271 -4270
- data/rbi/{lib/orb → orb}/models/subscription_create_response.rbi +305 -132
- data/rbi/{lib/orb → orb}/models/subscription_fetch_costs_params.rbi +9 -5
- data/rbi/orb/models/subscription_fetch_costs_response.rbi +221 -0
- data/rbi/{lib/orb → orb}/models/subscription_fetch_schedule_params.rbi +3 -0
- data/rbi/{lib/orb → orb}/models/subscription_fetch_schedule_response.rbi +8 -2
- data/rbi/{lib/orb → orb}/models/subscription_fetch_usage_params.rbi +13 -4
- data/rbi/{lib/orb → orb}/models/subscription_list_params.rbi +4 -2
- data/rbi/{lib/orb → orb}/models/subscription_price_intervals_params.rbi +2354 -2317
- data/rbi/{lib/orb → orb}/models/subscription_price_intervals_response.rbi +305 -132
- data/rbi/{lib/orb → orb}/models/subscription_schedule_plan_change_params.rbi +4280 -3758
- data/rbi/{lib/orb → orb}/models/subscription_schedule_plan_change_response.rbi +305 -132
- data/rbi/{lib/orb → orb}/models/subscription_trigger_phase_params.rbi +10 -2
- data/rbi/{lib/orb → orb}/models/subscription_trigger_phase_response.rbi +305 -132
- data/rbi/{lib/orb → orb}/models/subscription_unschedule_cancellation_response.rbi +305 -132
- data/rbi/{lib/orb → orb}/models/subscription_unschedule_fixed_fee_quantity_updates_params.rbi +5 -2
- data/rbi/{lib/orb → orb}/models/subscription_unschedule_fixed_fee_quantity_updates_response.rbi +305 -138
- data/rbi/{lib/orb → orb}/models/subscription_unschedule_pending_plan_changes_response.rbi +305 -132
- data/rbi/{lib/orb → orb}/models/subscription_update_fixed_fee_quantity_params.rbi +11 -2
- data/rbi/{lib/orb → orb}/models/subscription_update_fixed_fee_quantity_response.rbi +305 -132
- data/rbi/{lib/orb → orb}/models/subscription_update_params.rbi +15 -0
- data/rbi/{lib/orb → orb}/models/subscription_update_trial_params.rbi +11 -5
- data/rbi/{lib/orb → orb}/models/subscription_update_trial_response.rbi +305 -132
- data/rbi/{lib/orb → orb}/models/subscription_usage.rbi +2 -16
- data/rbi/{lib/orb → orb}/models/trial_discount.rbi +5 -1
- data/rbi/{lib/orb → orb}/models/usage_discount.rbi +11 -3
- data/rbi/orb/models.rbi +220 -0
- data/rbi/{lib/orb → orb}/request_options.rbi +2 -0
- data/rbi/{lib/orb → orb}/resources/alerts.rbi +8 -14
- data/rbi/{lib/orb → orb}/resources/coupons/subscriptions.rbi +1 -1
- data/rbi/{lib/orb → orb}/resources/coupons.rbi +6 -18
- data/rbi/{lib/orb → orb}/resources/credit_notes.rbi +3 -9
- data/rbi/{lib/orb → orb}/resources/customers/balance_transactions.rbi +2 -2
- data/rbi/{lib/orb → orb}/resources/customers/costs.rbi +2 -2
- data/rbi/{lib/orb → orb}/resources/customers/credits/ledger.rbi +32 -32
- data/rbi/{lib/orb → orb}/resources/customers/credits/top_ups.rbi +6 -18
- data/rbi/{lib/orb → orb}/resources/customers/credits.rbi +2 -2
- data/rbi/{lib/orb → orb}/resources/customers.rbi +15 -45
- data/rbi/{lib/orb → orb}/resources/dimensional_price_groups/external_dimensional_price_group_id.rbi +1 -4
- data/rbi/{lib/orb → orb}/resources/dimensional_price_groups.rbi +3 -10
- data/rbi/{lib/orb → orb}/resources/events/backfills.rbi +5 -18
- data/rbi/{lib/orb → orb}/resources/events/volume.rbi +1 -1
- data/rbi/{lib/orb → orb}/resources/events.rbi +4 -10
- data/rbi/{lib/orb → orb}/resources/invoice_line_items.rbi +1 -1
- data/rbi/{lib/orb → orb}/resources/invoices.rbi +9 -34
- data/rbi/{lib/orb → orb}/resources/items.rbi +4 -17
- data/rbi/{lib/orb → orb}/resources/metrics.rbi +4 -10
- data/rbi/{lib/orb → orb}/resources/plans/external_plan_id.rbi +2 -8
- data/rbi/{lib/orb → orb}/resources/plans.rbi +29 -35
- data/rbi/orb/resources/prices/external_price_id.rbi +103 -0
- data/rbi/{lib/orb → orb}/resources/prices.rbi +117 -124
- data/rbi/{lib/orb → orb}/resources/subscription_changes.rbi +3 -9
- data/rbi/{lib/orb → orb}/resources/subscriptions.rbi +16 -32
- data/rbi/{lib/orb → orb}/resources/top_level.rbi +1 -4
- data/sig/orb/file_part.rbs +21 -0
- data/sig/orb/internal/transport/base_client.rbs +9 -3
- data/sig/orb/internal/type/array_of.rbs +2 -0
- data/sig/orb/internal/type/base_model.rbs +4 -0
- data/sig/orb/internal/type/enum.rbs +2 -2
- data/sig/orb/internal/type/{io_like.rbs → file_input.rbs} +1 -1
- data/sig/orb/internal/type/hash_of.rbs +2 -0
- data/sig/orb/internal/type/union.rbs +2 -0
- data/sig/orb/internal/util.rbs +16 -12
- data/sig/orb/models/coupon_create_params.rbs +9 -10
- data/sig/orb/models/customer_create_params.rbs +9 -10
- data/sig/orb/models/customer_update_by_external_id_params.rbs +9 -10
- data/sig/orb/models/customer_update_params.rbs +9 -10
- data/sig/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rbs +113 -113
- data/sig/orb/models/customers/credits/ledger_create_entry_response.rbs +113 -113
- data/sig/orb/models/customers/credits/ledger_list_by_external_id_response.rbs +113 -113
- data/sig/orb/models/customers/credits/ledger_list_response.rbs +113 -113
- data/sig/orb/models/invoice.rbs +54 -54
- data/sig/orb/models/invoice_fetch_upcoming_response.rbs +54 -54
- data/sig/orb/models/invoice_line_item_create_response.rbs +54 -54
- data/sig/orb/models/plan.rbs +21 -21
- data/sig/orb/models/plan_create_params.rbs +653 -653
- data/sig/orb/models/price.rbs +1517 -1521
- data/sig/orb/models/subscription.rbs +34 -34
- data/sig/orb/models/subscription_cancel_response.rbs +34 -34
- data/sig/orb/models/subscription_change_apply_response.rbs +34 -34
- data/sig/orb/models/subscription_change_cancel_response.rbs +34 -34
- data/sig/orb/models/subscription_change_retrieve_response.rbs +34 -34
- data/sig/orb/models/subscription_create_params.rbs +1348 -1348
- data/sig/orb/models/subscription_create_response.rbs +34 -34
- data/sig/orb/models/subscription_price_intervals_params.rbs +767 -769
- data/sig/orb/models/subscription_price_intervals_response.rbs +34 -34
- data/sig/orb/models/subscription_schedule_plan_change_params.rbs +1348 -1348
- data/sig/orb/models/subscription_schedule_plan_change_response.rbs +34 -34
- data/sig/orb/models/subscription_trigger_phase_response.rbs +34 -34
- data/sig/orb/models/subscription_unschedule_cancellation_response.rbs +34 -34
- data/sig/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rbs +34 -34
- data/sig/orb/models/subscription_unschedule_pending_plan_changes_response.rbs +34 -34
- data/sig/orb/models/subscription_update_fixed_fee_quantity_response.rbs +34 -34
- data/sig/orb/models/subscription_update_trial_response.rbs +34 -34
- data/sig/orb/models.rbs +215 -0
- metadata +230 -224
- data/rbi/lib/orb/models/customers/cost_list_by_external_id_response.rbi +0 -208
- data/rbi/lib/orb/models/customers/cost_list_response.rbi +0 -206
- data/rbi/lib/orb/models/subscription_fetch_costs_response.rbi +0 -204
- data/rbi/lib/orb/resources/prices/external_price_id.rbi +0 -106
- /data/rbi/{lib/orb → orb}/internal/page.rbi +0 -0
- /data/rbi/{lib/orb → orb}/internal/transport/pooled_net_requester.rbi +0 -0
- /data/rbi/{lib/orb → orb}/internal/type/boolean.rbi +0 -0
- /data/rbi/{lib/orb → orb}/internal/type/converter.rbi +0 -0
- /data/rbi/{lib/orb → orb}/internal/type/unknown.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/alert_retrieve_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/coupon_archive_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/coupon_fetch_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/credit_note_fetch_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/customer_delete_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/customer_fetch_by_external_id_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/customer_fetch_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/customer_sync_payment_methods_from_gateway_by_external_customer_id_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/customer_sync_payment_methods_from_gateway_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/customers/credits/top_up_delete_by_external_id_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/customers/credits/top_up_delete_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/dimensional_price_group_retrieve_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/dimensional_price_groups/external_dimensional_price_group_id_retrieve_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/dimensional_price_groups.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/discount.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/event_deprecate_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/events/backfill_close_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/events/backfill_fetch_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/events/backfill_revert_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/invoice_fetch_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/invoice_fetch_upcoming_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/invoice_level_discount.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/invoice_pay_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/invoice_void_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/item_fetch_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/metric_fetch_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/pagination_metadata.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/plan_fetch_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/plans/external_plan_id_fetch_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/price_evaluate_response.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/price_fetch_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/prices/external_price_id_fetch_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/subscription_change_cancel_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/subscription_change_retrieve_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/subscription_fetch_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/subscription_unschedule_cancellation_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/subscription_unschedule_pending_plan_changes_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/subscriptions.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/top_level_ping_params.rbi +0 -0
- /data/rbi/{lib/orb → orb}/models/top_level_ping_response.rbi +0 -0
- /data/rbi/{lib/orb → orb}/version.rbi +0 -0
@@ -3,19 +3,27 @@
|
|
3
3
|
module Orb
|
4
4
|
module Internal
|
5
5
|
module Type
|
6
|
+
# @api private
|
7
|
+
#
|
6
8
|
# @generic Elem
|
7
9
|
#
|
8
10
|
# This module provides a base implementation for paginated responses in the SDK.
|
9
11
|
module BasePage
|
10
12
|
# rubocop:disable Lint/UnusedMethodArgument
|
11
13
|
|
14
|
+
# @api public
|
15
|
+
#
|
12
16
|
# @return [Boolean]
|
13
17
|
def next_page? = (raise NotImplementedError)
|
14
18
|
|
19
|
+
# @api public
|
20
|
+
#
|
15
21
|
# @raise [Orb::Errors::APIError]
|
16
|
-
# @return [
|
22
|
+
# @return [self]
|
17
23
|
def next_page = (raise NotImplementedError)
|
18
24
|
|
25
|
+
# @api public
|
26
|
+
#
|
19
27
|
# @param blk [Proc]
|
20
28
|
#
|
21
29
|
# @yieldparam [generic<Elem>]
|
@@ -13,11 +13,15 @@ module Orb
|
|
13
13
|
|
14
14
|
private_class_method :new
|
15
15
|
|
16
|
+
# @api public
|
17
|
+
#
|
16
18
|
# @param other [Object]
|
17
19
|
#
|
18
20
|
# @return [Boolean]
|
19
21
|
def self.===(other) = other == true || other == false
|
20
22
|
|
23
|
+
# @api public
|
24
|
+
#
|
21
25
|
# @param other [Object]
|
22
26
|
#
|
23
27
|
# @return [Boolean]
|
@@ -42,17 +46,16 @@ module Orb
|
|
42
46
|
value
|
43
47
|
end
|
44
48
|
|
45
|
-
# @!
|
46
|
-
#
|
47
|
-
#
|
48
|
-
#
|
49
|
-
#
|
50
|
-
#
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
#
|
55
|
-
# def dump(value, state:) = super
|
49
|
+
# @!method dump(value, state:)
|
50
|
+
# @api private
|
51
|
+
#
|
52
|
+
# @param value [Boolean, Object]
|
53
|
+
#
|
54
|
+
# @param state [Hash{Symbol=>Object}] .
|
55
|
+
#
|
56
|
+
# @option state [Boolean] :can_retry
|
57
|
+
#
|
58
|
+
# @return [Boolean, Object]
|
56
59
|
end
|
57
60
|
end
|
58
61
|
end
|
@@ -43,7 +43,10 @@ module Orb
|
|
43
43
|
value.string
|
44
44
|
in Pathname | IO
|
45
45
|
state[:can_retry] = false if value.is_a?(IO)
|
46
|
-
Orb::
|
46
|
+
Orb::FilePart.new(value)
|
47
|
+
in Orb::FilePart
|
48
|
+
state[:can_retry] = false if value.content.is_a?(IO)
|
49
|
+
value
|
47
50
|
else
|
48
51
|
value
|
49
52
|
end
|
@@ -42,18 +42,17 @@ module Orb
|
|
42
42
|
# All of the valid Symbol values for this enum.
|
43
43
|
#
|
44
44
|
# @return [Array<NilClass, Boolean, Integer, Float, Symbol>]
|
45
|
-
def values =
|
45
|
+
def values = constants.map { const_get(_1) }
|
46
46
|
|
47
|
-
# @api
|
47
|
+
# @api public
|
48
48
|
#
|
49
|
-
# Guard against thread safety issues by instantiating `@values`.
|
50
|
-
private def finalize! = values
|
51
|
-
|
52
49
|
# @param other [Object]
|
53
50
|
#
|
54
51
|
# @return [Boolean]
|
55
52
|
def ===(other) = values.include?(other)
|
56
53
|
|
54
|
+
# @api public
|
55
|
+
#
|
57
56
|
# @param other [Object]
|
58
57
|
#
|
59
58
|
# @return [Boolean]
|
@@ -63,6 +62,11 @@ module Orb
|
|
63
62
|
# rubocop:enable Style/CaseEquality
|
64
63
|
end
|
65
64
|
|
65
|
+
# @api public
|
66
|
+
#
|
67
|
+
# @return [Integer]
|
68
|
+
def hash = values.to_set.hash
|
69
|
+
|
66
70
|
# @api private
|
67
71
|
#
|
68
72
|
# Unlike with primitives, `Enum` additionally validates that the value is a member
|
@@ -92,17 +96,16 @@ module Orb
|
|
92
96
|
end
|
93
97
|
end
|
94
98
|
|
95
|
-
# @!
|
96
|
-
#
|
97
|
-
#
|
98
|
-
#
|
99
|
-
#
|
100
|
-
#
|
101
|
-
#
|
102
|
-
#
|
103
|
-
#
|
104
|
-
#
|
105
|
-
# def dump(value, state:) = super
|
99
|
+
# @!method dump(value, state:)
|
100
|
+
# @api private
|
101
|
+
#
|
102
|
+
# @param value [Symbol, Object]
|
103
|
+
#
|
104
|
+
# @param state [Hash{Symbol=>Object}] .
|
105
|
+
#
|
106
|
+
# @option state [Boolean] :can_retry
|
107
|
+
#
|
108
|
+
# @return [Symbol, Object]
|
106
109
|
|
107
110
|
# @api private
|
108
111
|
#
|
@@ -7,28 +7,35 @@ module Orb
|
|
7
7
|
#
|
8
8
|
# @abstract
|
9
9
|
#
|
10
|
-
# Either `Pathname` or `StringIO`.
|
11
|
-
|
10
|
+
# Either `Pathname` or `StringIO`, or `IO`, or `Orb::Internal::Type::FileInput`.
|
11
|
+
#
|
12
|
+
# Note: when `IO` is used, all retries are disabled, since many IO` streams are
|
13
|
+
# not rewindable.
|
14
|
+
class FileInput
|
12
15
|
extend Orb::Internal::Type::Converter
|
13
16
|
|
14
17
|
private_class_method :new
|
15
18
|
|
19
|
+
# @api public
|
20
|
+
#
|
16
21
|
# @param other [Object]
|
17
22
|
#
|
18
23
|
# @return [Boolean]
|
19
24
|
def self.===(other)
|
20
25
|
case other
|
21
|
-
in StringIO |
|
26
|
+
in Pathname | StringIO | IO | String | Orb::FilePart
|
22
27
|
true
|
23
28
|
else
|
24
29
|
false
|
25
30
|
end
|
26
31
|
end
|
27
32
|
|
33
|
+
# @api public
|
34
|
+
#
|
28
35
|
# @param other [Object]
|
29
36
|
#
|
30
37
|
# @return [Boolean]
|
31
|
-
def self.==(other) = other.is_a?(Class) && other <= Orb::Internal::Type::
|
38
|
+
def self.==(other) = other.is_a?(Class) && other <= Orb::Internal::Type::FileInput
|
32
39
|
|
33
40
|
class << self
|
34
41
|
# @api private
|
@@ -59,17 +66,28 @@ module Orb
|
|
59
66
|
end
|
60
67
|
end
|
61
68
|
|
62
|
-
#
|
63
|
-
#
|
64
|
-
#
|
65
|
-
#
|
66
|
-
#
|
67
|
-
#
|
68
|
-
#
|
69
|
-
#
|
70
|
-
#
|
71
|
-
|
72
|
-
|
69
|
+
# @api private
|
70
|
+
#
|
71
|
+
# @param value [Pathname, StringIO, IO, String, Object]
|
72
|
+
#
|
73
|
+
# @param state [Hash{Symbol=>Object}] .
|
74
|
+
#
|
75
|
+
# @option state [Boolean] :can_retry
|
76
|
+
#
|
77
|
+
# @return [Pathname, StringIO, IO, String, Object]
|
78
|
+
def dump(value, state:)
|
79
|
+
# rubocop:disable Lint/DuplicateBranch
|
80
|
+
case value
|
81
|
+
in IO
|
82
|
+
state[:can_retry] = false
|
83
|
+
in Orb::FilePart if value.content.is_a?(IO)
|
84
|
+
state[:can_retry] = false
|
85
|
+
else
|
86
|
+
end
|
87
|
+
# rubocop:enable Lint/DuplicateBranch
|
88
|
+
|
89
|
+
value
|
90
|
+
end
|
73
91
|
end
|
74
92
|
end
|
75
93
|
end
|
@@ -28,8 +28,12 @@ module Orb
|
|
28
28
|
# @option spec [Proc] :union
|
29
29
|
#
|
30
30
|
# @option spec [Boolean] :"nil?"
|
31
|
+
#
|
32
|
+
# @return [Orb::Internal::Type::HashOf]
|
31
33
|
def self.[](...) = new(...)
|
32
34
|
|
35
|
+
# @api public
|
36
|
+
#
|
33
37
|
# @param other [Object]
|
34
38
|
#
|
35
39
|
# @return [Boolean]
|
@@ -50,6 +54,8 @@ module Orb
|
|
50
54
|
end
|
51
55
|
end
|
52
56
|
|
57
|
+
# @api public
|
58
|
+
#
|
53
59
|
# @param other [Object]
|
54
60
|
#
|
55
61
|
# @return [Boolean]
|
@@ -59,6 +65,11 @@ module Orb
|
|
59
65
|
# rubocop:enable Layout/LineLength
|
60
66
|
end
|
61
67
|
|
68
|
+
# @api public
|
69
|
+
#
|
70
|
+
# @return [Integer]
|
71
|
+
def hash = [self.class, item_type].hash
|
72
|
+
|
62
73
|
# @api private
|
63
74
|
#
|
64
75
|
# @param value [Hash{Object=>Object}, Object]
|
@@ -12,9 +12,8 @@ module Orb
|
|
12
12
|
|
13
13
|
# @param mod [Module]
|
14
14
|
def self.included(mod)
|
15
|
-
|
15
|
+
raise ArgumentError.new(mod) unless mod <= Orb::Internal::Type::BaseModel
|
16
16
|
|
17
|
-
mod.extend(Orb::Internal::Type::RequestParameters::Converter)
|
18
17
|
mod.optional(:request_options, Orb::RequestOptions)
|
19
18
|
end
|
20
19
|
|
@@ -29,14 +28,8 @@ module Orb
|
|
29
28
|
state = {can_retry: true}
|
30
29
|
case (dumped = dump(params, state: state))
|
31
30
|
in Hash
|
32
|
-
options = Orb::Internal::Util.coerce_hash(dumped[:request_options])
|
33
|
-
request_options =
|
34
|
-
case [options, state.fetch(:can_retry)]
|
35
|
-
in [Hash | nil, false]
|
36
|
-
{**options.to_h, max_retries: 0}
|
37
|
-
else
|
38
|
-
options
|
39
|
-
end
|
31
|
+
options = Orb::Internal::Util.coerce_hash!(dumped[:request_options]).to_h
|
32
|
+
request_options = state.fetch(:can_retry) ? options : {**options, max_retries: 0}
|
40
33
|
[dumped.except(:request_options), request_options]
|
41
34
|
else
|
42
35
|
[dumped, nil]
|
@@ -58,7 +58,7 @@ module Orb
|
|
58
58
|
#
|
59
59
|
# @return [Array<Array(Symbol, Object)>]
|
60
60
|
protected def derefed_variants
|
61
|
-
|
61
|
+
known_variants.map { |key, variant_fn| [key, variant_fn.call] }
|
62
62
|
end
|
63
63
|
|
64
64
|
# All of the specified variants for this union.
|
@@ -127,6 +127,8 @@ module Orb
|
|
127
127
|
# rubocop:disable Style/HashEachMethods
|
128
128
|
# rubocop:disable Style/CaseEquality
|
129
129
|
|
130
|
+
# @api public
|
131
|
+
#
|
130
132
|
# @param other [Object]
|
131
133
|
#
|
132
134
|
# @return [Boolean]
|
@@ -136,6 +138,8 @@ module Orb
|
|
136
138
|
end
|
137
139
|
end
|
138
140
|
|
141
|
+
# @api public
|
142
|
+
#
|
139
143
|
# @param other [Object]
|
140
144
|
#
|
141
145
|
# @return [Boolean]
|
@@ -143,6 +147,11 @@ module Orb
|
|
143
147
|
Orb::Internal::Type::Union === other && other.derefed_variants == derefed_variants
|
144
148
|
end
|
145
149
|
|
150
|
+
# @api public
|
151
|
+
#
|
152
|
+
# @return [Integer]
|
153
|
+
def hash = variants.hash
|
154
|
+
|
146
155
|
# @api private
|
147
156
|
#
|
148
157
|
# @param value [Object]
|
@@ -15,11 +15,15 @@ module Orb
|
|
15
15
|
|
16
16
|
private_class_method :new
|
17
17
|
|
18
|
+
# @api public
|
19
|
+
#
|
18
20
|
# @param other [Object]
|
19
21
|
#
|
20
22
|
# @return [Boolean]
|
21
23
|
def self.===(other) = true
|
22
24
|
|
25
|
+
# @api public
|
26
|
+
#
|
23
27
|
# @param other [Object]
|
24
28
|
#
|
25
29
|
# @return [Boolean]
|
@@ -44,17 +48,16 @@ module Orb
|
|
44
48
|
value
|
45
49
|
end
|
46
50
|
|
47
|
-
# @!
|
48
|
-
#
|
49
|
-
#
|
50
|
-
#
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
#
|
55
|
-
#
|
56
|
-
#
|
57
|
-
# def dump(value, state:) = super
|
51
|
+
# @!method dump(value, state:)
|
52
|
+
# @api private
|
53
|
+
#
|
54
|
+
# @param value [Object]
|
55
|
+
#
|
56
|
+
# @param state [Hash{Symbol=>Object}] .
|
57
|
+
#
|
58
|
+
# @option state [Boolean] :can_retry
|
59
|
+
#
|
60
|
+
# @return [Object]
|
58
61
|
end
|
59
62
|
|
60
63
|
# rubocop:enable Lint/UnusedMethodArgument
|
data/lib/orb/internal/util.rb
CHANGED
@@ -128,6 +128,22 @@ module Orb
|
|
128
128
|
input.respond_to?(:to_h) ? input.to_h : input
|
129
129
|
end
|
130
130
|
end
|
131
|
+
|
132
|
+
# @api private
|
133
|
+
#
|
134
|
+
# @param input [Object]
|
135
|
+
#
|
136
|
+
# @raise [ArgumentError]
|
137
|
+
# @return [Hash{Object=>Object}, nil]
|
138
|
+
def coerce_hash!(input)
|
139
|
+
case coerce_hash(input)
|
140
|
+
in Hash | nil => coerced
|
141
|
+
coerced
|
142
|
+
else
|
143
|
+
message = "Expected a #{Hash} or #{Orb::Internal::Type::BaseModel}, got #{data.inspect}"
|
144
|
+
raise ArgumentError.new(message)
|
145
|
+
end
|
146
|
+
end
|
131
147
|
end
|
132
148
|
|
133
149
|
class << self
|
@@ -175,18 +191,17 @@ module Orb
|
|
175
191
|
# @api private
|
176
192
|
#
|
177
193
|
# @param data [Hash{Symbol=>Object}, Array<Object>, Object]
|
178
|
-
# @param pick [Symbol, Integer, Array<Symbol, Integer>, nil]
|
179
|
-
# @param sentinel [Object, nil]
|
194
|
+
# @param pick [Symbol, Integer, Array<Symbol, Integer>, Proc, nil]
|
180
195
|
# @param blk [Proc, nil]
|
181
196
|
#
|
182
197
|
# @return [Object, nil]
|
183
|
-
def dig(data, pick,
|
184
|
-
case [data, pick
|
185
|
-
in [_, nil
|
198
|
+
def dig(data, pick, &blk)
|
199
|
+
case [data, pick]
|
200
|
+
in [_, nil]
|
186
201
|
data
|
187
|
-
in [Hash, Symbol
|
188
|
-
|
189
|
-
in [Hash | Array, Array
|
202
|
+
in [Hash, Symbol] | [Array, Integer]
|
203
|
+
data.fetch(pick) { blk&.call }
|
204
|
+
in [Hash | Array, Array]
|
190
205
|
pick.reduce(data) do |acc, key|
|
191
206
|
case acc
|
192
207
|
in Hash if acc.key?(key)
|
@@ -194,11 +209,13 @@ module Orb
|
|
194
209
|
in Array if key.is_a?(Integer) && key < acc.length
|
195
210
|
acc[key]
|
196
211
|
else
|
197
|
-
return blk
|
212
|
+
return blk&.call
|
198
213
|
end
|
199
214
|
end
|
200
|
-
in _
|
201
|
-
|
215
|
+
in [_, Proc]
|
216
|
+
pick.call(data)
|
217
|
+
else
|
218
|
+
blk&.call
|
202
219
|
end
|
203
220
|
end
|
204
221
|
end
|
@@ -348,27 +365,6 @@ module Orb
|
|
348
365
|
end
|
349
366
|
end
|
350
367
|
|
351
|
-
# @api private
|
352
|
-
class SerializationAdapter
|
353
|
-
# @return [Pathname, IO]
|
354
|
-
attr_reader :inner
|
355
|
-
|
356
|
-
# @param a [Object]
|
357
|
-
#
|
358
|
-
# @return [String]
|
359
|
-
def to_json(*a) = (inner.is_a?(IO) ? inner.read : inner.read(binmode: true)).to_json(*a)
|
360
|
-
|
361
|
-
# @param a [Object]
|
362
|
-
#
|
363
|
-
# @return [String]
|
364
|
-
def to_yaml(*a) = (inner.is_a?(IO) ? inner.read : inner.read(binmode: true)).to_yaml(*a)
|
365
|
-
|
366
|
-
# @api private
|
367
|
-
#
|
368
|
-
# @param inner [Pathname, IO]
|
369
|
-
def initialize(inner) = @inner = inner
|
370
|
-
end
|
371
|
-
|
372
368
|
# @api private
|
373
369
|
#
|
374
370
|
# An adapter that satisfies the IO interface required by `::IO.copy_stream`
|
@@ -471,53 +467,81 @@ module Orb
|
|
471
467
|
end
|
472
468
|
end
|
473
469
|
|
470
|
+
# @type [Regexp]
|
471
|
+
JSON_CONTENT = %r{^application/(?:vnd(?:\.[^.]+)*\+)?json(?!l)}
|
472
|
+
# @type [Regexp]
|
473
|
+
JSONL_CONTENT = %r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}
|
474
|
+
|
474
475
|
class << self
|
475
476
|
# @api private
|
476
477
|
#
|
477
478
|
# @param y [Enumerator::Yielder]
|
478
|
-
# @param boundary [String]
|
479
|
-
# @param key [Symbol, String]
|
480
479
|
# @param val [Object]
|
481
480
|
# @param closing [Array<Proc>]
|
482
|
-
|
483
|
-
|
481
|
+
# @param content_type [String, nil]
|
482
|
+
private def write_multipart_content(y, val:, closing:, content_type: nil)
|
483
|
+
content_type ||= "application/octet-stream"
|
484
484
|
|
485
|
-
y << "--#{boundary}\r\n"
|
486
|
-
y << "Content-Disposition: form-data"
|
487
|
-
unless key.nil?
|
488
|
-
name = ERB::Util.url_encode(key.to_s)
|
489
|
-
y << "; name=\"#{name}\""
|
490
|
-
end
|
491
|
-
case val
|
492
|
-
in Pathname | IO
|
493
|
-
filename = ERB::Util.url_encode(File.basename(val.to_path))
|
494
|
-
y << "; filename=\"#{filename}\""
|
495
|
-
else
|
496
|
-
end
|
497
|
-
y << "\r\n"
|
498
485
|
case val
|
486
|
+
in Orb::FilePart
|
487
|
+
return write_multipart_content(
|
488
|
+
y,
|
489
|
+
val: val.content,
|
490
|
+
closing: closing,
|
491
|
+
content_type: val.content_type
|
492
|
+
)
|
499
493
|
in Pathname
|
500
|
-
y << "Content-Type:
|
494
|
+
y << "Content-Type: #{content_type}\r\n\r\n"
|
501
495
|
io = val.open(binmode: true)
|
502
496
|
closing << io.method(:close)
|
503
497
|
IO.copy_stream(io, y)
|
504
498
|
in IO
|
505
|
-
y << "Content-Type:
|
499
|
+
y << "Content-Type: #{content_type}\r\n\r\n"
|
506
500
|
IO.copy_stream(val, y)
|
507
501
|
in StringIO
|
508
|
-
y << "Content-Type:
|
502
|
+
y << "Content-Type: #{content_type}\r\n\r\n"
|
509
503
|
y << val.string
|
510
504
|
in String
|
511
|
-
y << "Content-Type:
|
505
|
+
y << "Content-Type: #{content_type}\r\n\r\n"
|
512
506
|
y << val.to_s
|
513
|
-
in
|
507
|
+
in -> { primitive?(_1) }
|
514
508
|
y << "Content-Type: text/plain\r\n\r\n"
|
515
509
|
y << val.to_s
|
516
510
|
else
|
517
511
|
y << "Content-Type: application/json\r\n\r\n"
|
518
|
-
y << JSON.
|
512
|
+
y << JSON.generate(val)
|
513
|
+
end
|
514
|
+
y << "\r\n"
|
515
|
+
end
|
516
|
+
|
517
|
+
# @api private
|
518
|
+
#
|
519
|
+
# @param y [Enumerator::Yielder]
|
520
|
+
# @param boundary [String]
|
521
|
+
# @param key [Symbol, String]
|
522
|
+
# @param val [Object]
|
523
|
+
# @param closing [Array<Proc>]
|
524
|
+
private def write_multipart_chunk(y, boundary:, key:, val:, closing:)
|
525
|
+
y << "--#{boundary}\r\n"
|
526
|
+
y << "Content-Disposition: form-data"
|
527
|
+
|
528
|
+
unless key.nil?
|
529
|
+
name = ERB::Util.url_encode(key.to_s)
|
530
|
+
y << "; name=\"#{name}\""
|
531
|
+
end
|
532
|
+
|
533
|
+
case val
|
534
|
+
in Orb::FilePart unless val.filename.nil?
|
535
|
+
filename = ERB::Util.url_encode(val.filename)
|
536
|
+
y << "; filename=\"#{filename}\""
|
537
|
+
in Pathname | IO
|
538
|
+
filename = ERB::Util.url_encode(File.basename(val.to_path))
|
539
|
+
y << "; filename=\"#{filename}\""
|
540
|
+
else
|
519
541
|
end
|
520
542
|
y << "\r\n"
|
543
|
+
|
544
|
+
write_multipart_content(y, val: val, closing: closing)
|
521
545
|
end
|
522
546
|
|
523
547
|
# @api private
|
@@ -560,14 +584,12 @@ module Orb
|
|
560
584
|
# @return [Object]
|
561
585
|
def encode_content(headers, body)
|
562
586
|
content_type = headers["content-type"]
|
563
|
-
body = body.inner if body.is_a?(Orb::Internal::Util::SerializationAdapter)
|
564
|
-
|
565
587
|
case [content_type, body]
|
566
|
-
in [
|
567
|
-
[headers, JSON.
|
568
|
-
in [
|
569
|
-
[headers, body.lazy.map { JSON.
|
570
|
-
in [%r{^multipart/form-data}, Hash |
|
588
|
+
in [Orb::Internal::Util::JSON_CONTENT, Hash | Array | -> { primitive?(_1) }]
|
589
|
+
[headers, JSON.generate(body)]
|
590
|
+
in [Orb::Internal::Util::JSONL_CONTENT, Enumerable] unless body.is_a?(Orb::Internal::Type::FileInput)
|
591
|
+
[headers, body.lazy.map { JSON.generate(_1) }]
|
592
|
+
in [%r{^multipart/form-data}, Hash | Orb::Internal::Type::FileInput]
|
571
593
|
boundary, strio = encode_multipart_streaming(body)
|
572
594
|
headers = {**headers, "content-type" => "#{content_type}; boundary=#{boundary}"}
|
573
595
|
[headers, strio]
|
@@ -575,6 +597,8 @@ module Orb
|
|
575
597
|
[headers, body.to_s]
|
576
598
|
in [_, StringIO]
|
577
599
|
[headers, body.string]
|
600
|
+
in [_, Orb::FilePart]
|
601
|
+
[headers, body.content]
|
578
602
|
else
|
579
603
|
[headers, body]
|
580
604
|
end
|
@@ -611,7 +635,7 @@ module Orb
|
|
611
635
|
# @return [Object]
|
612
636
|
def decode_content(headers, stream:, suppress_error: false)
|
613
637
|
case (content_type = headers["content-type"])
|
614
|
-
in
|
638
|
+
in Orb::Internal::Util::JSON_CONTENT
|
615
639
|
json = stream.to_a.join
|
616
640
|
begin
|
617
641
|
JSON.parse(json, symbolize_names: true)
|
@@ -619,7 +643,7 @@ module Orb
|
|
619
643
|
raise e unless suppress_error
|
620
644
|
json
|
621
645
|
end
|
622
|
-
in
|
646
|
+
in Orb::Internal::Util::JSONL_CONTENT
|
623
647
|
lines = decode_lines(stream)
|
624
648
|
chain_fused(lines) do |y|
|
625
649
|
lines.each { y << JSON.parse(_1, symbolize_names: true) }
|