orb-billing 0.1.0.pre.alpha.37 → 0.1.0.pre.alpha.39
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 +29 -5
- data/lib/orb/client.rb +4 -0
- data/lib/orb/internal/page.rb +6 -2
- data/lib/orb/internal/transport/base_client.rb +3 -3
- data/lib/orb/internal/transport/pooled_net_requester.rb +2 -2
- data/lib/orb/internal/type/array_of.rb +5 -3
- data/lib/orb/internal/type/base_model.rb +19 -16
- data/lib/orb/internal/type/base_page.rb +4 -1
- data/lib/orb/internal/type/{boolean_model.rb → boolean.rb} +2 -2
- data/lib/orb/internal/type/converter.rb +26 -23
- data/lib/orb/internal/type/enum.rb +10 -8
- data/lib/orb/internal/type/hash_of.rb +3 -1
- data/lib/orb/internal/util.rb +29 -50
- data/lib/orb/models/alert.rb +10 -10
- data/lib/orb/models/alert_create_for_customer_params.rb +3 -3
- data/lib/orb/models/alert_create_for_external_customer_params.rb +3 -3
- data/lib/orb/models/alert_create_for_subscription_params.rb +3 -3
- data/lib/orb/models/alert_list_params.rb +5 -5
- data/lib/orb/models/alert_update_params.rb +3 -3
- data/lib/orb/models/amount_discount.rb +1 -1
- data/lib/orb/models/billable_metric.rb +7 -7
- data/lib/orb/models/coupon.rb +7 -7
- data/lib/orb/models/coupon_create_params.rb +2 -2
- data/lib/orb/models/coupon_list_params.rb +3 -3
- data/lib/orb/models/coupons/subscription_list_params.rb +1 -1
- data/lib/orb/models/credit_note.rb +1 -1
- data/lib/orb/models/credit_note_list_params.rb +5 -5
- data/lib/orb/models/customer.rb +237 -237
- data/lib/orb/models/customer_create_params.rb +229 -229
- data/lib/orb/models/customer_list_params.rb +5 -5
- data/lib/orb/models/customer_update_by_external_id_params.rb +230 -230
- data/lib/orb/models/customer_update_params.rb +230 -230
- data/lib/orb/models/customers/balance_transaction_create_response.rb +2 -2
- data/lib/orb/models/customers/balance_transaction_list_params.rb +5 -5
- data/lib/orb/models/customers/balance_transaction_list_response.rb +2 -2
- data/lib/orb/models/customers/cost_list_by_external_id_params.rb +6 -6
- data/lib/orb/models/customers/cost_list_params.rb +6 -6
- data/lib/orb/models/customers/credit_list_by_external_id_params.rb +3 -3
- data/lib/orb/models/customers/credit_list_params.rb +3 -3
- data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rb +22 -22
- data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rb +22 -22
- data/lib/orb/models/customers/credits/ledger_create_entry_params.rb +22 -22
- data/lib/orb/models/customers/credits/ledger_create_entry_response.rb +22 -22
- data/lib/orb/models/customers/credits/ledger_list_by_external_id_params.rb +5 -5
- data/lib/orb/models/customers/credits/ledger_list_by_external_id_response.rb +22 -22
- data/lib/orb/models/customers/credits/ledger_list_params.rb +5 -5
- data/lib/orb/models/customers/credits/ledger_list_response.rb +22 -22
- data/lib/orb/models/customers/credits/top_up_create_by_external_id_params.rb +10 -10
- data/lib/orb/models/customers/credits/top_up_create_by_external_id_response.rb +9 -9
- data/lib/orb/models/customers/credits/top_up_create_params.rb +10 -10
- data/lib/orb/models/customers/credits/top_up_create_response.rb +9 -9
- data/lib/orb/models/customers/credits/top_up_list_by_external_id_params.rb +1 -1
- data/lib/orb/models/customers/credits/top_up_list_by_external_id_response.rb +9 -9
- data/lib/orb/models/customers/credits/top_up_list_params.rb +1 -1
- data/lib/orb/models/customers/credits/top_up_list_response.rb +9 -9
- data/lib/orb/models/dimensional_price_group.rb +7 -7
- data/lib/orb/models/dimensional_price_group_create_params.rb +2 -2
- data/lib/orb/models/dimensional_price_group_list_params.rb +1 -1
- data/lib/orb/models/evaluate_price_group.rb +1 -1
- data/lib/orb/models/event_ingest_params.rb +8 -8
- data/lib/orb/models/event_ingest_response.rb +4 -4
- data/lib/orb/models/event_search_params.rb +5 -5
- data/lib/orb/models/event_search_response.rb +9 -9
- data/lib/orb/models/event_update_params.rb +4 -4
- data/lib/orb/models/events/backfill_close_response.rb +8 -8
- data/lib/orb/models/events/backfill_create_params.rb +12 -12
- data/lib/orb/models/events/backfill_create_response.rb +8 -8
- data/lib/orb/models/events/backfill_fetch_response.rb +8 -8
- data/lib/orb/models/events/backfill_list_params.rb +1 -1
- data/lib/orb/models/events/backfill_list_response.rb +8 -8
- data/lib/orb/models/events/backfill_revert_response.rb +8 -8
- data/lib/orb/models/events/event_volumes.rb +1 -1
- data/lib/orb/models/events/volume_list_params.rb +7 -7
- data/lib/orb/models/invoice.rb +278 -278
- data/lib/orb/models/invoice_create_params.rb +13 -12
- data/lib/orb/models/invoice_fetch_upcoming_response.rb +274 -274
- data/lib/orb/models/invoice_issue_params.rb +5 -5
- data/lib/orb/models/invoice_line_item_create_params.rb +1 -1
- data/lib/orb/models/invoice_line_item_create_response.rb +32 -32
- data/lib/orb/models/invoice_list_params.rb +13 -13
- data/lib/orb/models/invoice_update_params.rb +2 -2
- data/lib/orb/models/item.rb +2 -2
- data/lib/orb/models/item_list_params.rb +1 -1
- data/lib/orb/models/metric_create_params.rb +2 -2
- data/lib/orb/models/metric_list_params.rb +5 -5
- data/lib/orb/models/metric_update_params.rb +2 -2
- data/lib/orb/models/pagination_metadata.rb +1 -1
- data/lib/orb/models/percentage_discount.rb +2 -2
- data/lib/orb/models/plan.rb +40 -40
- data/lib/orb/models/plan_create_params.rb +292 -292
- data/lib/orb/models/plan_list_params.rb +5 -5
- data/lib/orb/models/plan_update_params.rb +4 -4
- data/lib/orb/models/plans/external_plan_id_update_params.rb +4 -4
- data/lib/orb/models/price.rb +186 -186
- data/lib/orb/models/price_create_params.rb +21 -21
- data/lib/orb/models/price_evaluate_params.rb +4 -4
- data/lib/orb/models/price_list_params.rb +1 -1
- data/lib/orb/models/price_update_params.rb +2 -2
- data/lib/orb/models/prices/external_price_id_update_params.rb +2 -2
- data/lib/orb/models/subscription.rb +120 -93
- data/lib/orb/models/subscription_cancel_params.rb +4 -4
- data/lib/orb/models/subscription_cancel_response.rb +156 -78
- data/lib/orb/models/subscription_change_apply_params.rb +33 -0
- data/lib/orb/models/subscription_change_apply_response.rb +1372 -0
- data/lib/orb/models/subscription_change_cancel_params.rb +19 -0
- data/lib/orb/models/subscription_change_cancel_response.rb +1372 -0
- data/lib/orb/models/subscription_change_retrieve_params.rb +19 -0
- data/lib/orb/models/subscription_change_retrieve_response.rb +1372 -0
- data/lib/orb/models/subscription_create_params.rb +705 -705
- data/lib/orb/models/subscription_create_response.rb +156 -78
- data/lib/orb/models/subscription_fetch_costs_params.rb +6 -6
- data/lib/orb/models/subscription_fetch_schedule_params.rb +5 -5
- data/lib/orb/models/subscription_fetch_schedule_response.rb +2 -2
- data/lib/orb/models/subscription_fetch_usage_params.rb +8 -8
- data/lib/orb/models/subscription_list_params.rb +5 -5
- data/lib/orb/models/subscription_price_intervals_params.rb +358 -358
- data/lib/orb/models/subscription_price_intervals_response.rb +158 -78
- data/lib/orb/models/subscription_schedule_plan_change_params.rb +715 -715
- data/lib/orb/models/subscription_schedule_plan_change_response.rb +158 -78
- data/lib/orb/models/subscription_trigger_phase_params.rb +4 -4
- data/lib/orb/models/subscription_trigger_phase_response.rb +158 -78
- data/lib/orb/models/subscription_unschedule_cancellation_response.rb +158 -78
- data/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rb +159 -79
- data/lib/orb/models/subscription_unschedule_pending_plan_changes_response.rb +158 -78
- data/lib/orb/models/subscription_update_fixed_fee_quantity_params.rb +9 -9
- data/lib/orb/models/subscription_update_fixed_fee_quantity_response.rb +158 -78
- data/lib/orb/models/subscription_update_params.rb +11 -11
- data/lib/orb/models/subscription_update_trial_params.rb +4 -4
- data/lib/orb/models/subscription_update_trial_response.rb +158 -78
- data/lib/orb/models/trial_discount.rb +1 -1
- data/lib/orb/models/usage_discount.rb +2 -2
- data/lib/orb/request_options.rb +7 -7
- data/lib/orb/resources/alerts.rb +40 -35
- data/lib/orb/resources/coupons/subscriptions.rb +3 -3
- data/lib/orb/resources/coupons.rb +9 -9
- data/lib/orb/resources/credit_notes.rb +10 -5
- data/lib/orb/resources/customers/balance_transactions.rb +28 -23
- data/lib/orb/resources/customers/costs.rb +232 -232
- data/lib/orb/resources/customers/credits/ledger.rb +348 -338
- data/lib/orb/resources/customers/credits/top_ups.rb +12 -12
- data/lib/orb/resources/customers/credits.rb +8 -8
- data/lib/orb/resources/customers.rb +61 -56
- data/lib/orb/resources/dimensional_price_groups.rb +6 -6
- data/lib/orb/resources/events/backfills.rb +49 -49
- data/lib/orb/resources/events/volume.rb +10 -10
- data/lib/orb/resources/events.rb +295 -295
- data/lib/orb/resources/invoice_line_items.rb +1 -1
- data/lib/orb/resources/invoices.rb +40 -31
- data/lib/orb/resources/items.rb +1 -1
- data/lib/orb/resources/metrics.rb +13 -8
- data/lib/orb/resources/plans/external_plan_id.rb +14 -14
- data/lib/orb/resources/plans.rb +24 -19
- data/lib/orb/resources/prices/external_price_id.rb +4 -4
- data/lib/orb/resources/prices.rb +30 -30
- data/lib/orb/resources/subscription_changes.rb +87 -0
- data/lib/orb/resources/subscriptions.rb +817 -807
- data/lib/orb/resources/top_level.rb +4 -4
- data/lib/orb/version.rb +1 -1
- data/lib/orb.rb +8 -1
- data/rbi/lib/orb/client.rbi +5 -4
- data/rbi/lib/orb/errors.rbi +3 -6
- data/rbi/lib/orb/internal/page.rbi +3 -6
- data/rbi/lib/orb/internal/transport/base_client.rbi +13 -27
- data/rbi/lib/orb/internal/transport/pooled_net_requester.rbi +7 -13
- data/rbi/lib/orb/internal/type/array_of.rbi +10 -18
- data/rbi/lib/orb/internal/type/base_model.rbi +45 -64
- data/rbi/lib/orb/internal/type/base_page.rbi +5 -10
- data/rbi/lib/orb/internal/type/{boolean_model.rbi → boolean.rbi} +5 -9
- data/rbi/lib/orb/internal/type/converter.rbi +25 -31
- data/rbi/lib/orb/internal/type/enum.rbi +14 -20
- data/rbi/lib/orb/internal/type/hash_of.rbi +8 -16
- data/rbi/lib/orb/internal/type/request_parameters.rbi +1 -2
- data/rbi/lib/orb/internal/type/union.rbi +10 -20
- data/rbi/lib/orb/internal/type/unknown.rbi +4 -8
- data/rbi/lib/orb/internal/util.rbi +40 -72
- data/rbi/lib/orb/internal.rbi +1 -1
- data/rbi/lib/orb/models/alert.rbi +21 -33
- data/rbi/lib/orb/models/alert_create_for_customer_params.rbi +8 -13
- data/rbi/lib/orb/models/alert_create_for_external_customer_params.rbi +8 -13
- data/rbi/lib/orb/models/alert_create_for_subscription_params.rbi +8 -13
- data/rbi/lib/orb/models/alert_disable_params.rbi +2 -4
- data/rbi/lib/orb/models/alert_enable_params.rbi +2 -4
- data/rbi/lib/orb/models/alert_list_params.rbi +3 -6
- data/rbi/lib/orb/models/alert_retrieve_params.rbi +2 -4
- data/rbi/lib/orb/models/alert_update_params.rbi +7 -11
- data/rbi/lib/orb/models/amount_discount.rbi +4 -7
- data/rbi/lib/orb/models/billable_metric.rbi +10 -13
- data/rbi/lib/orb/models/billing_cycle_relative_date.rbi +1 -2
- data/rbi/lib/orb/models/coupon.rbi +9 -11
- data/rbi/lib/orb/models/coupon_archive_params.rbi +2 -4
- data/rbi/lib/orb/models/coupon_create_params.rbi +8 -14
- data/rbi/lib/orb/models/coupon_fetch_params.rbi +2 -4
- data/rbi/lib/orb/models/coupon_list_params.rbi +3 -4
- data/rbi/lib/orb/models/coupons/subscription_list_params.rbi +3 -5
- data/rbi/lib/orb/models/credit_note.rbi +22 -45
- data/rbi/lib/orb/models/credit_note_create_params.rbi +5 -10
- data/rbi/lib/orb/models/credit_note_fetch_params.rbi +2 -4
- data/rbi/lib/orb/models/credit_note_list_params.rbi +3 -6
- data/rbi/lib/orb/models/customer.rbi +256 -281
- data/rbi/lib/orb/models/customer_create_params.rbi +251 -276
- data/rbi/lib/orb/models/customer_delete_params.rbi +2 -4
- data/rbi/lib/orb/models/customer_fetch_by_external_id_params.rbi +2 -4
- data/rbi/lib/orb/models/customer_fetch_params.rbi +2 -4
- data/rbi/lib/orb/models/customer_list_params.rbi +3 -6
- data/rbi/lib/orb/models/customer_sync_payment_methods_from_gateway_by_external_customer_id_params.rbi +2 -4
- data/rbi/lib/orb/models/customer_sync_payment_methods_from_gateway_params.rbi +2 -4
- data/rbi/lib/orb/models/customer_update_by_external_id_params.rbi +252 -277
- data/rbi/lib/orb/models/customer_update_params.rbi +252 -277
- data/rbi/lib/orb/models/customers/balance_transaction_create_params.rbi +3 -6
- data/rbi/lib/orb/models/customers/balance_transaction_create_response.rbi +10 -19
- data/rbi/lib/orb/models/customers/balance_transaction_list_params.rbi +3 -6
- data/rbi/lib/orb/models/customers/balance_transaction_list_response.rbi +10 -19
- data/rbi/lib/orb/models/customers/cost_list_by_external_id_params.rbi +8 -10
- data/rbi/lib/orb/models/customers/cost_list_by_external_id_response.rbi +6 -12
- data/rbi/lib/orb/models/customers/cost_list_params.rbi +8 -10
- data/rbi/lib/orb/models/customers/cost_list_response.rbi +6 -12
- data/rbi/lib/orb/models/customers/credit_list_by_external_id_params.rbi +3 -4
- data/rbi/lib/orb/models/customers/credit_list_by_external_id_response.rbi +2 -4
- data/rbi/lib/orb/models/customers/credit_list_params.rbi +3 -4
- data/rbi/lib/orb/models/customers/credit_list_response.rbi +2 -4
- data/rbi/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_params.rbi +26 -33
- data/rbi/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rbi +79 -136
- data/rbi/lib/orb/models/customers/credits/ledger_create_entry_params.rbi +26 -33
- data/rbi/lib/orb/models/customers/credits/ledger_create_entry_response.rbi +78 -135
- data/rbi/lib/orb/models/customers/credits/ledger_list_by_external_id_params.rbi +5 -10
- data/rbi/lib/orb/models/customers/credits/ledger_list_by_external_id_response.rbi +79 -136
- data/rbi/lib/orb/models/customers/credits/ledger_list_params.rbi +5 -10
- data/rbi/lib/orb/models/customers/credits/ledger_list_response.rbi +74 -131
- data/rbi/lib/orb/models/customers/credits/top_up_create_by_external_id_params.rbi +13 -19
- data/rbi/lib/orb/models/customers/credits/top_up_create_by_external_id_response.rbi +12 -18
- data/rbi/lib/orb/models/customers/credits/top_up_create_params.rbi +13 -19
- data/rbi/lib/orb/models/customers/credits/top_up_create_response.rbi +12 -18
- data/rbi/lib/orb/models/customers/credits/top_up_delete_by_external_id_params.rbi +2 -4
- data/rbi/lib/orb/models/customers/credits/top_up_delete_params.rbi +2 -4
- data/rbi/lib/orb/models/customers/credits/top_up_list_by_external_id_params.rbi +3 -5
- data/rbi/lib/orb/models/customers/credits/top_up_list_by_external_id_response.rbi +12 -18
- data/rbi/lib/orb/models/customers/credits/top_up_list_params.rbi +3 -5
- data/rbi/lib/orb/models/customers/credits/top_up_list_response.rbi +12 -18
- data/rbi/lib/orb/models/dimensional_price_group.rbi +8 -9
- data/rbi/lib/orb/models/dimensional_price_group_create_params.rbi +4 -7
- data/rbi/lib/orb/models/dimensional_price_group_list_params.rbi +3 -5
- data/rbi/lib/orb/models/dimensional_price_group_retrieve_params.rbi +2 -4
- data/rbi/lib/orb/models/dimensional_price_groups/external_dimensional_price_group_id_retrieve_params.rbi +2 -4
- data/rbi/lib/orb/models/dimensional_price_groups.rbi +2 -4
- data/rbi/lib/orb/models/discount.rbi +1 -2
- data/rbi/lib/orb/models/evaluate_price_group.rbi +3 -6
- data/rbi/lib/orb/models/event_deprecate_params.rbi +2 -4
- data/rbi/lib/orb/models/event_deprecate_response.rbi +2 -4
- data/rbi/lib/orb/models/event_ingest_params.rbi +10 -13
- data/rbi/lib/orb/models/event_ingest_response.rbi +10 -16
- data/rbi/lib/orb/models/event_search_params.rbi +7 -9
- data/rbi/lib/orb/models/event_search_response.rbi +11 -14
- data/rbi/lib/orb/models/event_update_params.rbi +5 -6
- data/rbi/lib/orb/models/event_update_response.rbi +2 -4
- data/rbi/lib/orb/models/events/backfill_close_params.rbi +2 -4
- data/rbi/lib/orb/models/events/backfill_close_response.rbi +10 -14
- data/rbi/lib/orb/models/events/backfill_create_params.rbi +13 -16
- data/rbi/lib/orb/models/events/backfill_create_response.rbi +10 -14
- data/rbi/lib/orb/models/events/backfill_fetch_params.rbi +2 -4
- data/rbi/lib/orb/models/events/backfill_fetch_response.rbi +10 -14
- data/rbi/lib/orb/models/events/backfill_list_params.rbi +3 -5
- data/rbi/lib/orb/models/events/backfill_list_response.rbi +10 -14
- data/rbi/lib/orb/models/events/backfill_revert_params.rbi +2 -4
- data/rbi/lib/orb/models/events/backfill_revert_response.rbi +10 -14
- data/rbi/lib/orb/models/events/event_volumes.rbi +5 -9
- data/rbi/lib/orb/models/events/volume_list_params.rbi +9 -11
- data/rbi/lib/orb/models/invoice.rbi +388 -465
- data/rbi/lib/orb/models/invoice_create_params.rbi +19 -26
- data/rbi/lib/orb/models/invoice_fetch_params.rbi +2 -4
- data/rbi/lib/orb/models/invoice_fetch_upcoming_params.rbi +2 -4
- data/rbi/lib/orb/models/invoice_fetch_upcoming_response.rbi +381 -460
- data/rbi/lib/orb/models/invoice_issue_params.rbi +6 -8
- data/rbi/lib/orb/models/invoice_level_discount.rbi +1 -2
- data/rbi/lib/orb/models/invoice_line_item_create_params.rbi +3 -5
- data/rbi/lib/orb/models/invoice_line_item_create_response.rbi +101 -143
- data/rbi/lib/orb/models/invoice_list_params.rbi +8 -13
- data/rbi/lib/orb/models/invoice_mark_paid_params.rbi +2 -4
- data/rbi/lib/orb/models/invoice_pay_params.rbi +2 -4
- data/rbi/lib/orb/models/invoice_update_params.rbi +4 -6
- data/rbi/lib/orb/models/invoice_void_params.rbi +2 -4
- data/rbi/lib/orb/models/item.rbi +7 -12
- data/rbi/lib/orb/models/item_create_params.rbi +2 -4
- data/rbi/lib/orb/models/item_fetch_params.rbi +2 -4
- data/rbi/lib/orb/models/item_list_params.rbi +3 -5
- data/rbi/lib/orb/models/item_update_params.rbi +5 -10
- data/rbi/lib/orb/models/metric_create_params.rbi +4 -6
- data/rbi/lib/orb/models/metric_fetch_params.rbi +2 -4
- data/rbi/lib/orb/models/metric_list_params.rbi +3 -6
- data/rbi/lib/orb/models/metric_update_params.rbi +4 -6
- data/rbi/lib/orb/models/pagination_metadata.rbi +2 -4
- data/rbi/lib/orb/models/percentage_discount.rbi +5 -8
- data/rbi/lib/orb/models/plan.rbi +180 -219
- data/rbi/lib/orb/models/plan_create_params.rbi +670 -951
- data/rbi/lib/orb/models/plan_fetch_params.rbi +2 -4
- data/rbi/lib/orb/models/plan_list_params.rbi +4 -8
- data/rbi/lib/orb/models/plan_update_params.rbi +6 -8
- data/rbi/lib/orb/models/plans/external_plan_id_fetch_params.rbi +2 -4
- data/rbi/lib/orb/models/plans/external_plan_id_update_params.rbi +6 -8
- data/rbi/lib/orb/models/price.rbi +827 -1494
- data/rbi/lib/orb/models/price_create_params.rbi +60 -101
- data/rbi/lib/orb/models/price_evaluate_params.rbi +6 -9
- data/rbi/lib/orb/models/price_evaluate_response.rbi +2 -4
- data/rbi/lib/orb/models/price_fetch_params.rbi +2 -4
- data/rbi/lib/orb/models/price_list_params.rbi +3 -5
- data/rbi/lib/orb/models/price_update_params.rbi +4 -6
- data/rbi/lib/orb/models/prices/external_price_id_fetch_params.rbi +2 -4
- data/rbi/lib/orb/models/prices/external_price_id_update_params.rbi +4 -6
- data/rbi/lib/orb/models/subscription.rbi +167 -187
- data/rbi/lib/orb/models/subscription_cancel_params.rbi +5 -7
- data/rbi/lib/orb/models/subscription_cancel_response.rbi +224 -178
- data/rbi/lib/orb/models/subscription_change_apply_params.rbi +40 -0
- data/rbi/lib/orb/models/subscription_change_apply_response.rbi +1554 -0
- data/rbi/lib/orb/models/subscription_change_cancel_params.rbi +18 -0
- data/rbi/lib/orb/models/subscription_change_cancel_response.rbi +1565 -0
- data/rbi/lib/orb/models/subscription_change_retrieve_params.rbi +18 -0
- data/rbi/lib/orb/models/subscription_change_retrieve_response.rbi +1581 -0
- data/rbi/lib/orb/models/subscription_create_params.rbi +1372 -1968
- data/rbi/lib/orb/models/subscription_create_response.rbi +224 -178
- data/rbi/lib/orb/models/subscription_fetch_costs_params.rbi +8 -10
- data/rbi/lib/orb/models/subscription_fetch_costs_response.rbi +6 -12
- data/rbi/lib/orb/models/subscription_fetch_params.rbi +2 -4
- data/rbi/lib/orb/models/subscription_fetch_schedule_params.rbi +3 -6
- data/rbi/lib/orb/models/subscription_fetch_schedule_response.rbi +6 -10
- data/rbi/lib/orb/models/subscription_fetch_usage_params.rbi +12 -17
- data/rbi/lib/orb/models/subscription_list_params.rbi +4 -8
- data/rbi/lib/orb/models/subscription_price_intervals_params.rbi +772 -1124
- data/rbi/lib/orb/models/subscription_price_intervals_response.rbi +228 -178
- data/rbi/lib/orb/models/subscription_schedule_plan_change_params.rbi +1396 -1993
- data/rbi/lib/orb/models/subscription_schedule_plan_change_response.rbi +238 -182
- data/rbi/lib/orb/models/subscription_trigger_phase_params.rbi +5 -7
- data/rbi/lib/orb/models/subscription_trigger_phase_response.rbi +224 -178
- data/rbi/lib/orb/models/subscription_unschedule_cancellation_params.rbi +2 -4
- data/rbi/lib/orb/models/subscription_unschedule_cancellation_response.rbi +238 -182
- data/rbi/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_params.rbi +2 -4
- data/rbi/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rbi +265 -199
- data/rbi/lib/orb/models/subscription_unschedule_pending_plan_changes_params.rbi +2 -4
- data/rbi/lib/orb/models/subscription_unschedule_pending_plan_changes_response.rbi +264 -198
- data/rbi/lib/orb/models/subscription_update_fixed_fee_quantity_params.rbi +11 -15
- data/rbi/lib/orb/models/subscription_update_fixed_fee_quantity_response.rbi +238 -182
- data/rbi/lib/orb/models/subscription_update_params.rbi +12 -15
- data/rbi/lib/orb/models/subscription_update_trial_params.rbi +6 -9
- data/rbi/lib/orb/models/subscription_update_trial_response.rbi +224 -178
- data/rbi/lib/orb/models/subscription_usage.rbi +24 -43
- data/rbi/lib/orb/models/subscriptions.rbi +2 -4
- data/rbi/lib/orb/models/top_level_ping_params.rbi +2 -4
- data/rbi/lib/orb/models/top_level_ping_response.rbi +2 -4
- data/rbi/lib/orb/models/trial_discount.rbi +4 -8
- data/rbi/lib/orb/models/usage_discount.rbi +5 -8
- data/rbi/lib/orb/request_options.rbi +9 -11
- data/rbi/lib/orb/resources/alerts.rbi +44 -60
- data/rbi/lib/orb/resources/coupons/subscriptions.rbi +6 -9
- data/rbi/lib/orb/resources/coupons.rbi +18 -25
- data/rbi/lib/orb/resources/credit_notes.rbi +9 -15
- data/rbi/lib/orb/resources/customers/balance_transactions.rbi +26 -31
- data/rbi/lib/orb/resources/customers/costs.rbi +241 -246
- data/rbi/lib/orb/resources/customers/credits/ledger.rbi +387 -396
- data/rbi/lib/orb/resources/customers/credits/top_ups.rbi +29 -40
- data/rbi/lib/orb/resources/customers/credits.rbi +15 -20
- data/rbi/lib/orb/resources/customers.rbi +407 -417
- data/rbi/lib/orb/resources/dimensional_price_groups/external_dimensional_price_group_id.rbi +2 -4
- data/rbi/lib/orb/resources/dimensional_price_groups.rbi +13 -19
- data/rbi/lib/orb/resources/events/backfills.rbi +61 -69
- data/rbi/lib/orb/resources/events/volume.rbi +19 -22
- data/rbi/lib/orb/resources/events.rbi +311 -319
- data/rbi/lib/orb/resources/invoice_line_items.rbi +4 -7
- data/rbi/lib/orb/resources/invoices.rbi +62 -76
- data/rbi/lib/orb/resources/items.rbi +7 -14
- data/rbi/lib/orb/resources/metrics.rbi +17 -25
- data/rbi/lib/orb/resources/plans/external_plan_id.rbi +21 -25
- data/rbi/lib/orb/resources/plans.rbi +63 -71
- data/rbi/lib/orb/resources/prices/external_price_id.rbi +9 -13
- data/rbi/lib/orb/resources/prices.rbi +77 -87
- data/rbi/lib/orb/resources/subscription_changes.rbi +61 -0
- data/rbi/lib/orb/resources/subscriptions.rbi +933 -963
- data/rbi/lib/orb/resources/top_level.rbi +6 -8
- data/rbi/lib/orb/version.rbi +1 -1
- data/sig/orb/client.rbs +2 -0
- data/sig/orb/internal/type/array_of.rbs +2 -2
- data/sig/orb/internal/type/{boolean_model.rbs → boolean.rbs} +1 -1
- data/sig/orb/internal/util.rbs +5 -5
- data/sig/orb/models/subscription.rbs +14 -0
- data/sig/orb/models/subscription_cancel_response.rbs +47 -2
- data/sig/orb/models/subscription_change_apply_params.rbs +24 -0
- data/sig/orb/models/subscription_change_apply_response.rbs +784 -0
- data/sig/orb/models/subscription_change_cancel_params.rbs +15 -0
- data/sig/orb/models/subscription_change_cancel_response.rbs +784 -0
- data/sig/orb/models/subscription_change_retrieve_params.rbs +15 -0
- data/sig/orb/models/subscription_change_retrieve_response.rbs +784 -0
- data/sig/orb/models/subscription_create_response.rbs +47 -2
- data/sig/orb/models/subscription_price_intervals_response.rbs +47 -2
- data/sig/orb/models/subscription_schedule_plan_change_response.rbs +47 -2
- data/sig/orb/models/subscription_trigger_phase_response.rbs +47 -2
- data/sig/orb/models/subscription_unschedule_cancellation_response.rbs +47 -2
- data/sig/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rbs +47 -2
- data/sig/orb/models/subscription_unschedule_pending_plan_changes_response.rbs +47 -2
- data/sig/orb/models/subscription_update_fixed_fee_quantity_response.rbs +47 -2
- data/sig/orb/models/subscription_update_trial_response.rbs +47 -2
- data/sig/orb/resources/customers.rbs +2 -2
- data/sig/orb/resources/subscription_changes.rbs +24 -0
- data/sig/orb/version.rbs +1 -1
- metadata +26 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0a5b2b706493559363ab625bd5acbef451386a515a1c473447f7583006750a7
|
4
|
+
data.tar.gz: 392dbe182794cc49819c6bc483e80d2dfc99fe3f96c5148fc644e43e9ffdc917
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d8cecd00cd1de61ce8349e487ec416372c135b5f90ef81d7acc42a0512d6a9b615d10bcdb37f2f334ea5c65cf01a5c31addb775ef116ba43eb880eabe0c0ebe9
|
7
|
+
data.tar.gz: 61a0a748eece61489f3fb1e2c14c99d011505be14d7ed1aa0f1bee41469ae77ab19b8fbaf3f1c19c084b907cdff82afbad9e0bd0c0a0839aeb031a1ef120d7ca
|
data/README.md
CHANGED
@@ -12,10 +12,14 @@ The underlying REST API documentation can be found on [docs.withorb.com](https:/
|
|
12
12
|
|
13
13
|
To use this gem, install via Bundler by adding the following to your application's `Gemfile`:
|
14
14
|
|
15
|
+
<!-- x-release-please-start-version -->
|
16
|
+
|
15
17
|
```ruby
|
16
|
-
gem "orb-billing", "~> 0.1.0.pre.alpha.
|
18
|
+
gem "orb-billing", "~> 0.1.0.pre.alpha.38"
|
17
19
|
```
|
18
20
|
|
21
|
+
<!-- x-release-please-end -->
|
22
|
+
|
19
23
|
To fetch an initial copy of the gem:
|
20
24
|
|
21
25
|
```sh
|
@@ -130,9 +134,23 @@ orb.customers.create(
|
|
130
134
|
|
131
135
|
## LSP Support
|
132
136
|
|
133
|
-
###
|
137
|
+
### Solargraph
|
138
|
+
|
139
|
+
This library includes [Solargraph](https://solargraph.org) support for both auto completion and go to definition.
|
140
|
+
|
141
|
+
```ruby
|
142
|
+
gem "solargraph", group: :development
|
143
|
+
```
|
144
|
+
|
145
|
+
After Solargraph is installed, **you must populate its index** either via the provided editor command, or by running the following in your terminal:
|
134
146
|
|
135
|
-
|
147
|
+
```sh
|
148
|
+
bundle exec solargraph gems
|
149
|
+
```
|
150
|
+
|
151
|
+
Otherwise Solargraph will not be able to provide type information or auto-completion for any non-indexed libraries.
|
152
|
+
|
153
|
+
### Sorbet
|
136
154
|
|
137
155
|
This library is written with [Sorbet type definitions](https://sorbet.org/docs/rbi). However, there is no runtime dependency on the `sorbet-runtime`.
|
138
156
|
|
@@ -143,11 +161,17 @@ Due to limitations with the Sorbet type system, where a method otherwise can tak
|
|
143
161
|
Please follow Sorbet's [setup guides](https://sorbet.org/docs/adopting) for best experience.
|
144
162
|
|
145
163
|
```ruby
|
146
|
-
|
164
|
+
params = Orb::Models::CustomerCreateParams.new(email: "example-customer@withorb.com", name: "My Customer")
|
147
165
|
|
148
|
-
orb.customers.create(**
|
166
|
+
orb.customers.create(**params)
|
149
167
|
```
|
150
168
|
|
169
|
+
Note: **This library emits an intentional warning under the [`tapioca` toolchain](https://github.com/Shopify/tapioca)**. This is normal, and does not impact functionality.
|
170
|
+
|
171
|
+
### Ruby LSP
|
172
|
+
|
173
|
+
The Ruby LSP has [best effort support](https://shopify.github.io/ruby-lsp/#guessed-types) for inferring type information from Ruby code, and as such it may not always be able to provide accurate type information.
|
174
|
+
|
151
175
|
## Advanced
|
152
176
|
|
153
177
|
### Making custom/undocumented requests
|
data/lib/orb/client.rb
CHANGED
@@ -60,6 +60,9 @@ module Orb
|
|
60
60
|
# @return [Orb::Resources::DimensionalPriceGroups]
|
61
61
|
attr_reader :dimensional_price_groups
|
62
62
|
|
63
|
+
# @return [Orb::Resources::SubscriptionChanges]
|
64
|
+
attr_reader :subscription_changes
|
65
|
+
|
63
66
|
# @api private
|
64
67
|
#
|
65
68
|
# @return [Hash{String=>String}]
|
@@ -124,6 +127,7 @@ module Orb
|
|
124
127
|
@subscriptions = Orb::Resources::Subscriptions.new(client: self)
|
125
128
|
@alerts = Orb::Resources::Alerts.new(client: self)
|
126
129
|
@dimensional_price_groups = Orb::Resources::DimensionalPriceGroups.new(client: self)
|
130
|
+
@subscription_changes = Orb::Resources::SubscriptionChanges.new(client: self)
|
127
131
|
end
|
128
132
|
end
|
129
133
|
end
|
data/lib/orb/internal/page.rb
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
module Orb
|
4
4
|
module Internal
|
5
|
+
# @generic Elem
|
6
|
+
#
|
5
7
|
# @example
|
6
8
|
# if page.has_next?
|
7
9
|
# page = page.next_page
|
@@ -14,7 +16,7 @@ module Orb
|
|
14
16
|
class Page
|
15
17
|
include Orb::Internal::Type::BasePage
|
16
18
|
|
17
|
-
# @return [Array<
|
19
|
+
# @return [Array<generic<Elem>>, nil]
|
18
20
|
attr_accessor :data
|
19
21
|
|
20
22
|
# @return [PaginationMetadata]
|
@@ -65,6 +67,8 @@ module Orb
|
|
65
67
|
end
|
66
68
|
|
67
69
|
# @param blk [Proc]
|
70
|
+
#
|
71
|
+
# @yieldparam [generic<Elem>]
|
68
72
|
def auto_paging_each(&blk)
|
69
73
|
unless block_given?
|
70
74
|
raise ArgumentError.new("A block must be given to ##{__method__}")
|
@@ -88,7 +92,7 @@ module Orb
|
|
88
92
|
# @!attribute has_more
|
89
93
|
#
|
90
94
|
# @return [Boolean]
|
91
|
-
required :has_more, Orb::Internal::Type::
|
95
|
+
required :has_more, Orb::Internal::Type::Boolean
|
92
96
|
|
93
97
|
# @!attribute next_cursor
|
94
98
|
#
|
@@ -131,7 +131,7 @@ module Orb
|
|
131
131
|
# @api private
|
132
132
|
#
|
133
133
|
# @param status [Integer, Orb::Errors::APIConnectionError]
|
134
|
-
# @param stream [Enumerable
|
134
|
+
# @param stream [Enumerable<String>, nil]
|
135
135
|
def reap_connection!(status, stream:)
|
136
136
|
case status
|
137
137
|
in (..199) | (300..499)
|
@@ -328,7 +328,7 @@ module Orb
|
|
328
328
|
# @param send_retry_header [Boolean]
|
329
329
|
#
|
330
330
|
# @raise [Orb::Errors::APIError]
|
331
|
-
# @return [Array(Integer, Net::HTTPResponse, Enumerable)]
|
331
|
+
# @return [Array(Integer, Net::HTTPResponse, Enumerable<String>)]
|
332
332
|
private def send_request(request, redirect_count:, retry_count:, send_retry_header:)
|
333
333
|
url, headers, max_retries, timeout = request.fetch_values(:url, :headers, :max_retries, :timeout)
|
334
334
|
input = {**request.except(:timeout), deadline: Orb::Internal::Util.monotonic_secs + timeout}
|
@@ -393,7 +393,7 @@ module Orb
|
|
393
393
|
end
|
394
394
|
|
395
395
|
# Execute the request specified by `req`. This is the method that all resource
|
396
|
-
#
|
396
|
+
# methods call into.
|
397
397
|
#
|
398
398
|
# @overload request(method, path, query: {}, headers: {}, body: nil, unwrap: nil, page: nil, stream: nil, model: Orb::Internal::Type::Unknown, options: {})
|
399
399
|
#
|
@@ -6,7 +6,7 @@ module Orb
|
|
6
6
|
# @api private
|
7
7
|
class PooledNetRequester
|
8
8
|
# from the golang stdlib
|
9
|
-
#
|
9
|
+
# https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49
|
10
10
|
KEEP_ALIVE_TIMEOUT = 30
|
11
11
|
|
12
12
|
class << self
|
@@ -119,7 +119,7 @@ module Orb
|
|
119
119
|
#
|
120
120
|
# @option request [Float] :deadline
|
121
121
|
#
|
122
|
-
# @return [Array(Integer, Net::HTTPResponse, Enumerable)]
|
122
|
+
# @return [Array(Integer, Net::HTTPResponse, Enumerable<String>)]
|
123
123
|
def execute(request)
|
124
124
|
url, deadline = request.fetch_values(:url, :deadline)
|
125
125
|
|
@@ -7,6 +7,8 @@ module Orb
|
|
7
7
|
#
|
8
8
|
# @abstract
|
9
9
|
#
|
10
|
+
# @generic Elem
|
11
|
+
#
|
10
12
|
# Array of items of a given type.
|
11
13
|
class ArrayOf
|
12
14
|
include Orb::Internal::Type::Converter
|
@@ -40,7 +42,7 @@ module Orb
|
|
40
42
|
|
41
43
|
# @api private
|
42
44
|
#
|
43
|
-
# @param value [
|
45
|
+
# @param value [Array<Object>, Object]
|
44
46
|
#
|
45
47
|
# @param state [Hash{Symbol=>Object}] .
|
46
48
|
#
|
@@ -75,7 +77,7 @@ module Orb
|
|
75
77
|
|
76
78
|
# @api private
|
77
79
|
#
|
78
|
-
# @param value [
|
80
|
+
# @param value [Array<Object>, Object]
|
79
81
|
#
|
80
82
|
# @return [Array<Object>, Object]
|
81
83
|
def dump(value)
|
@@ -85,7 +87,7 @@ module Orb
|
|
85
87
|
|
86
88
|
# @api private
|
87
89
|
#
|
88
|
-
# @return [
|
90
|
+
# @return [generic<Elem>]
|
89
91
|
protected def item_type = @item_type_fn.call
|
90
92
|
|
91
93
|
# @api private
|
@@ -19,7 +19,7 @@ module Orb
|
|
19
19
|
# @api private
|
20
20
|
#
|
21
21
|
# Assumes superclass fields are totally defined before fields are accessed /
|
22
|
-
#
|
22
|
+
# defined on subclasses.
|
23
23
|
#
|
24
24
|
# @return [Hash{Symbol=>Hash{Symbol=>Object}}]
|
25
25
|
def known_fields
|
@@ -143,7 +143,7 @@ module Orb
|
|
143
143
|
# @api private
|
144
144
|
#
|
145
145
|
# `request_only` attributes not excluded from `.#coerce` when receiving responses
|
146
|
-
#
|
146
|
+
# even if well behaved servers should not send them
|
147
147
|
#
|
148
148
|
# @param blk [Proc]
|
149
149
|
private def request_only(&blk)
|
@@ -168,7 +168,9 @@ module Orb
|
|
168
168
|
# @param other [Object]
|
169
169
|
#
|
170
170
|
# @return [Boolean]
|
171
|
-
def ==(other)
|
171
|
+
def ==(other)
|
172
|
+
other.is_a?(Class) && other <= Orb::Internal::Type::BaseModel && other.fields == fields
|
173
|
+
end
|
172
174
|
end
|
173
175
|
|
174
176
|
# @param other [Object]
|
@@ -264,7 +266,7 @@ module Orb
|
|
264
266
|
in nil
|
265
267
|
acc.store(name, super(val))
|
266
268
|
else
|
267
|
-
|
269
|
+
api_name, mode, type_fn = field.fetch_values(:api_name, :mode, :type_fn)
|
268
270
|
case mode
|
269
271
|
in :coerce
|
270
272
|
next
|
@@ -276,7 +278,7 @@ module Orb
|
|
276
278
|
end
|
277
279
|
|
278
280
|
known_fields.each_value do |field|
|
279
|
-
|
281
|
+
api_name, mode, const = field.fetch_values(:api_name, :mode, :const)
|
280
282
|
next if mode == :coerce || acc.key?(api_name) || const == Orb::Internal::OMIT
|
281
283
|
acc.store(api_name, const)
|
282
284
|
end
|
@@ -286,11 +288,11 @@ module Orb
|
|
286
288
|
end
|
287
289
|
|
288
290
|
# Returns the raw value associated with the given key, if found. Otherwise, nil is
|
289
|
-
#
|
291
|
+
# returned.
|
290
292
|
#
|
291
|
-
#
|
292
|
-
#
|
293
|
-
#
|
293
|
+
# It is valid to lookup keys that are not in the API spec, for example to access
|
294
|
+
# undocumented features. This method does not parse response data into
|
295
|
+
# higher-level types. Lookup by anything other than a Symbol is an ArgumentError.
|
294
296
|
#
|
295
297
|
# @param key [Symbol]
|
296
298
|
#
|
@@ -305,12 +307,12 @@ module Orb
|
|
305
307
|
|
306
308
|
# Returns a Hash of the data underlying this object. O(1)
|
307
309
|
#
|
308
|
-
#
|
309
|
-
#
|
310
|
-
#
|
310
|
+
# Keys are Symbols and values are the raw values from the response. The return
|
311
|
+
# value indicates which values were ever set on the object. i.e. there will be a
|
312
|
+
# key in this hash if they ever were, even if the set value was nil.
|
311
313
|
#
|
312
|
-
#
|
313
|
-
#
|
314
|
+
# This method is not recursive. The returned value is shared by the object, so it
|
315
|
+
# should not be mutated.
|
314
316
|
#
|
315
317
|
# @return [Hash{Symbol=>Object}]
|
316
318
|
def to_h = @data
|
@@ -350,7 +352,8 @@ module Orb
|
|
350
352
|
in Hash => coerced
|
351
353
|
@data = coerced
|
352
354
|
else
|
353
|
-
|
355
|
+
message = "Expected a #{Hash} or #{Orb::Internal::Type::BaseModel}, got #{data.inspect}"
|
356
|
+
raise ArgumentError.new(message)
|
354
357
|
end
|
355
358
|
end
|
356
359
|
|
@@ -358,7 +361,7 @@ module Orb
|
|
358
361
|
def inspect
|
359
362
|
rows = self.class.known_fields.keys.map do
|
360
363
|
"#{_1}=#{@data.key?(_1) ? public_send(_1) : ''}"
|
361
|
-
rescue Orb::ConversionError
|
364
|
+
rescue Orb::Errors::ConversionError
|
362
365
|
"#{_1}=#{@data.fetch(_1)}"
|
363
366
|
end
|
364
367
|
"#<#{self.class.name}:0x#{object_id.to_s(16)} #{rows.join(' ')}>"
|
@@ -3,6 +3,8 @@
|
|
3
3
|
module Orb
|
4
4
|
module Internal
|
5
5
|
module Type
|
6
|
+
# @generic Elem
|
7
|
+
#
|
6
8
|
# This module provides a base implementation for paginated responses in the SDK.
|
7
9
|
module BasePage
|
8
10
|
# rubocop:disable Lint/UnusedMethodArgument
|
@@ -16,10 +18,11 @@ module Orb
|
|
16
18
|
|
17
19
|
# @param blk [Proc]
|
18
20
|
#
|
21
|
+
# @yieldparam [generic<Elem>]
|
19
22
|
# @return [void]
|
20
23
|
def auto_paging_each(&blk) = (raise NotImplementedError)
|
21
24
|
|
22
|
-
# @return [Enumerable]
|
25
|
+
# @return [Enumerable<generic<Elem>>]
|
23
26
|
def to_enum = super(:auto_paging_each)
|
24
27
|
|
25
28
|
alias_method :enum_for, :to_enum
|
@@ -8,7 +8,7 @@ module Orb
|
|
8
8
|
# @abstract
|
9
9
|
#
|
10
10
|
# Ruby has no Boolean class; this is something for models to refer to.
|
11
|
-
class
|
11
|
+
class Boolean
|
12
12
|
extend Orb::Internal::Type::Converter
|
13
13
|
|
14
14
|
# @param other [Object]
|
@@ -19,7 +19,7 @@ module Orb
|
|
19
19
|
# @param other [Object]
|
20
20
|
#
|
21
21
|
# @return [Boolean]
|
22
|
-
def self.==(other) = other.is_a?(Class) && other <= Orb::Internal::Type::
|
22
|
+
def self.==(other) = other.is_a?(Class) && other <= Orb::Internal::Type::Boolean
|
23
23
|
|
24
24
|
class << self
|
25
25
|
# @api private
|
@@ -3,7 +3,6 @@
|
|
3
3
|
module Orb
|
4
4
|
module Internal
|
5
5
|
module Type
|
6
|
-
# rubocop:disable Metrics/ModuleLength
|
7
6
|
# @api private
|
8
7
|
module Converter
|
9
8
|
# rubocop:disable Lint/UnusedMethodArgument
|
@@ -64,7 +63,7 @@ module Orb
|
|
64
63
|
in Hash
|
65
64
|
type_info(spec.slice(:const, :enum, :union).first&.last)
|
66
65
|
in true | false
|
67
|
-
-> { Orb::Internal::Type::
|
66
|
+
-> { Orb::Internal::Type::Boolean }
|
68
67
|
in Orb::Internal::Type::Converter | Class | Symbol
|
69
68
|
-> { spec }
|
70
69
|
in NilClass | Integer | Float
|
@@ -76,37 +75,37 @@ module Orb
|
|
76
75
|
#
|
77
76
|
# Based on `target`, transform `value` into `target`, to the extent possible:
|
78
77
|
#
|
79
|
-
#
|
80
|
-
#
|
81
|
-
#
|
82
|
-
#
|
78
|
+
# 1. if the given `value` conforms to `target` already, return the given `value`
|
79
|
+
# 2. if it's possible and safe to convert the given `value` to `target`, then the
|
80
|
+
# converted value
|
81
|
+
# 3. otherwise, the given `value` unaltered
|
83
82
|
#
|
84
|
-
#
|
85
|
-
#
|
83
|
+
# The coercion process is subject to improvement between minor release versions.
|
84
|
+
# See https://docs.pydantic.dev/latest/concepts/unions/#smart-mode
|
86
85
|
#
|
87
86
|
# @param target [Orb::Internal::Type::Converter, Class]
|
88
87
|
#
|
89
88
|
# @param value [Object]
|
90
89
|
#
|
91
90
|
# @param state [Hash{Symbol=>Object}] The `strictness` is one of `true`, `false`, or `:strong`. This informs the
|
92
|
-
#
|
93
|
-
#
|
91
|
+
# coercion strategy when we have to decide between multiple possible conversion
|
92
|
+
# targets:
|
94
93
|
#
|
95
|
-
#
|
96
|
-
#
|
97
|
-
#
|
98
|
-
#
|
94
|
+
# - `true`: the conversion must be exact, with minimum coercion.
|
95
|
+
# - `false`: the conversion can be approximate, with some coercion.
|
96
|
+
# - `:strong`: the conversion must be exact, with no coercion, and raise an error
|
97
|
+
# if not possible.
|
99
98
|
#
|
100
|
-
#
|
101
|
-
#
|
102
|
-
#
|
99
|
+
# The `exactness` is `Hash` with keys being one of `yes`, `no`, or `maybe`. For
|
100
|
+
# any given conversion attempt, the exactness will be updated based on how closely
|
101
|
+
# the value recursively matches the target type:
|
103
102
|
#
|
104
|
-
#
|
105
|
-
#
|
106
|
-
#
|
107
|
-
#
|
103
|
+
# - `yes`: the value can be converted to the target type with minimum coercion.
|
104
|
+
# - `maybe`: the value can be converted to the target type with some reasonable
|
105
|
+
# coercion.
|
106
|
+
# - `no`: the value cannot be converted to the target type.
|
108
107
|
#
|
109
|
-
#
|
108
|
+
# See implementation below for more details.
|
110
109
|
#
|
111
110
|
# @option state [Boolean, :strong] :strictness
|
112
111
|
#
|
@@ -168,6 +167,9 @@ module Orb
|
|
168
167
|
in String | Symbol | Numeric
|
169
168
|
exactness[value.is_a?(Numeric) ? :maybe : :yes] += 1
|
170
169
|
return value.to_s
|
170
|
+
in StringIO
|
171
|
+
exactness[:yes] += 1
|
172
|
+
return value.string
|
171
173
|
else
|
172
174
|
if strictness == :strong
|
173
175
|
message = "no implicit conversion of #{value.class} into #{target.inspect}"
|
@@ -209,11 +211,12 @@ module Orb
|
|
209
211
|
#
|
210
212
|
# @return [Object]
|
211
213
|
def dump(target, value)
|
214
|
+
# rubocop:disable Layout/LineLength
|
212
215
|
target.is_a?(Orb::Internal::Type::Converter) ? target.dump(value) : Orb::Internal::Type::Unknown.dump(value)
|
216
|
+
# rubocop:enable Layout/LineLength
|
213
217
|
end
|
214
218
|
end
|
215
219
|
end
|
216
|
-
# rubocop:enable Metrics/ModuleLength
|
217
220
|
end
|
218
221
|
end
|
219
222
|
end
|
@@ -6,15 +6,15 @@ module Orb
|
|
6
6
|
# @api private
|
7
7
|
#
|
8
8
|
# A value from among a specified list of options. OpenAPI enum values map to Ruby
|
9
|
-
#
|
9
|
+
# values in the SDK as follows:
|
10
10
|
#
|
11
|
-
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
11
|
+
# 1. boolean => true | false
|
12
|
+
# 2. integer => Integer
|
13
|
+
# 3. float => Float
|
14
|
+
# 4. string => Symbol
|
15
15
|
#
|
16
|
-
#
|
17
|
-
#
|
16
|
+
# We can therefore convert string values to Symbols, but can't convert other
|
17
|
+
# values safely.
|
18
18
|
#
|
19
19
|
# @example
|
20
20
|
# # `billing_cycle_relative_date` is a `Orb::Models::BillingCycleRelativeDate`
|
@@ -58,13 +58,15 @@ module Orb
|
|
58
58
|
#
|
59
59
|
# @return [Boolean]
|
60
60
|
def ==(other)
|
61
|
+
# rubocop:disable Layout/LineLength
|
61
62
|
other.is_a?(Module) && other.singleton_class <= Orb::Internal::Type::Enum && other.values.to_set == values.to_set
|
63
|
+
# rubocop:enable Layout/LineLength
|
62
64
|
end
|
63
65
|
|
64
66
|
# @api private
|
65
67
|
#
|
66
68
|
# Unlike with primitives, `Enum` additionally validates that the value is a member
|
67
|
-
#
|
69
|
+
# of the enum.
|
68
70
|
#
|
69
71
|
# @param value [String, Symbol, Object]
|
70
72
|
#
|
@@ -7,6 +7,8 @@ module Orb
|
|
7
7
|
#
|
8
8
|
# @abstract
|
9
9
|
#
|
10
|
+
# @generic Elem
|
11
|
+
#
|
10
12
|
# Hash of items of a given type.
|
11
13
|
class HashOf
|
12
14
|
include Orb::Internal::Type::Converter
|
@@ -111,7 +113,7 @@ module Orb
|
|
111
113
|
|
112
114
|
# @api private
|
113
115
|
#
|
114
|
-
# @return [
|
116
|
+
# @return [generic<Elem>]
|
115
117
|
protected def item_type = @item_type_fn.call
|
116
118
|
|
117
119
|
# @api private
|