metronome-sdk 0.2.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +61 -0
- data/README.md +9 -9
- data/lib/metronome_sdk/internal/body_cursor_page.rb +86 -0
- data/lib/metronome_sdk/internal/cursor_page_without_limit.rb +86 -0
- data/lib/metronome_sdk/internal/transport/base_client.rb +1 -4
- data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +1 -9
- data/lib/metronome_sdk/internal/type/array_of.rb +1 -0
- data/lib/metronome_sdk/internal/type/base_model.rb +9 -14
- data/lib/metronome_sdk/internal/type/converter.rb +27 -0
- data/lib/metronome_sdk/internal/type/hash_of.rb +1 -0
- data/lib/metronome_sdk/internal/type/union.rb +20 -7
- data/lib/metronome_sdk/internal/util.rb +1 -1
- data/lib/metronome_sdk/models/base_threshold_commit.rb +36 -0
- data/lib/metronome_sdk/models/commit.rb +26 -170
- data/lib/metronome_sdk/models/commit_hierarchy_configuration.rb +98 -0
- data/lib/metronome_sdk/models/commit_rate.rb +48 -0
- data/lib/metronome_sdk/models/commit_specifier.rb +42 -0
- data/lib/metronome_sdk/models/commit_specifier_input.rb +42 -0
- data/lib/metronome_sdk/models/contract.rb +404 -0
- data/lib/metronome_sdk/models/contract_v2.rb +2919 -0
- data/lib/metronome_sdk/models/contract_without_amendments.rb +36 -1126
- data/lib/metronome_sdk/models/credit.rb +9 -156
- data/lib/metronome_sdk/models/discount.rb +2 -1
- data/lib/metronome_sdk/models/hierarchy_configuration.rb +76 -0
- data/lib/metronome_sdk/models/override.rb +6 -101
- data/lib/metronome_sdk/models/override_tier.rb +21 -0
- data/lib/metronome_sdk/models/overwrite_rate.rb +82 -0
- data/lib/metronome_sdk/models/payment_gate_config.rb +149 -0
- data/lib/metronome_sdk/models/payment_gate_config_v2.rb +149 -0
- data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +100 -0
- data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +102 -0
- data/lib/metronome_sdk/models/pro_service.rb +2 -1
- data/lib/metronome_sdk/models/recurring_commit_subscription_config.rb +51 -0
- data/lib/metronome_sdk/models/schedule_point_in_time.rb +14 -1
- data/lib/metronome_sdk/models/scheduled_charge.rb +2 -1
- data/lib/metronome_sdk/models/spend_threshold_configuration.rb +44 -0
- data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +44 -0
- data/lib/metronome_sdk/models/subscription.rb +227 -0
- data/lib/metronome_sdk/models/update_base_threshold_commit.rb +36 -0
- data/lib/metronome_sdk/models/v1/alert_create_params.rb +4 -6
- data/lib/metronome_sdk/models/v1/billable_metric_create_params.rb +1 -2
- data/lib/metronome_sdk/models/v1/billable_metric_list_response.rb +3 -3
- data/lib/metronome_sdk/models/v1/billable_metric_retrieve_response.rb +4 -7
- data/lib/metronome_sdk/models/v1/contract_amend_params.rb +110 -415
- data/lib/metronome_sdk/models/v1/contract_create_historical_invoices_params.rb +7 -16
- data/lib/metronome_sdk/models/v1/contract_create_params.rb +287 -1480
- data/lib/metronome_sdk/models/v1/contract_list_balances_response.rb +6 -23
- data/lib/metronome_sdk/models/v1/contract_list_response.rb +3 -1153
- data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_params.rb +2 -6
- data/lib/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rb +5 -50
- data/lib/metronome_sdk/models/v1/contract_retrieve_response.rb +3 -1154
- data/lib/metronome_sdk/models/v1/contract_schedule_pro_services_invoice_params.rb +1 -3
- data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +9 -1
- data/lib/metronome_sdk/models/v1/contracts/product_list_response.rb +8 -1
- data/lib/metronome_sdk/models/v1/contracts/product_retrieve_response.rb +8 -1
- data/lib/metronome_sdk/models/v1/contracts/quantity_rounding.rb +1 -4
- data/lib/metronome_sdk/models/v1/contracts/rate_card_create_params.rb +4 -7
- data/lib/metronome_sdk/models/v1/contracts/rate_card_list_response.rb +10 -1
- data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_params.rb +2 -6
- data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rb +5 -50
- data/lib/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rb +10 -1
- data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +1 -3
- data/lib/metronome_sdk/models/v1/contracts/rate_cards/product_order_update_params.rb +1 -3
- data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +6 -61
- data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +3 -49
- data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rb +4 -51
- data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_params.rb +2 -6
- data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rb +5 -49
- data/lib/metronome_sdk/models/v1/credit_grant_list_entries_response.rb +103 -123
- data/lib/metronome_sdk/models/v1/credit_grant_list_response.rb +3 -5
- data/lib/metronome_sdk/models/v1/custom_field_list_keys_params.rb +1 -3
- data/lib/metronome_sdk/models/v1/custom_field_list_keys_response.rb +41 -58
- data/lib/metronome_sdk/models/v1/custom_field_set_values_params.rb +5 -1
- data/lib/metronome_sdk/models/v1/customer.rb +2 -1
- data/lib/metronome_sdk/models/v1/customer_create_params.rb +37 -11
- data/lib/metronome_sdk/models/v1/customer_detail.rb +2 -1
- data/lib/metronome_sdk/models/v1/customer_list_billable_metrics_response.rb +3 -3
- data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +1 -3
- data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rb +28 -0
- data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +128 -0
- data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +143 -0
- data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +1 -3
- data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +30 -1
- data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +2 -0
- data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +2 -0
- data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +20 -61
- data/lib/metronome_sdk/models/v1/customers/credit_create_params.rb +6 -48
- data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +8 -16
- data/lib/metronome_sdk/models/v1/customers/invoice.rb +68 -43
- data/lib/metronome_sdk/models/v1/customers/invoice_list_breakdowns_params.rb +1 -4
- data/lib/metronome_sdk/models/v1/customers/plan_add_params.rb +2 -6
- data/lib/metronome_sdk/models/v1/customers/plan_list_response.rb +2 -1
- data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +4 -11
- data/lib/metronome_sdk/models/v1/plan_detail.rb +9 -5
- data/lib/metronome_sdk/models/v1/plan_list_charges_response.rb +2 -1
- data/lib/metronome_sdk/models/v1/plan_list_customers_response.rb +2 -1
- data/lib/metronome_sdk/models/v1/plan_list_response.rb +5 -1
- data/lib/metronome_sdk/models/v1/usage_ingest_params.rb +1 -4
- data/lib/metronome_sdk/models/v1/usage_list_params.rb +1 -3
- data/lib/metronome_sdk/models/v1/usage_list_response.rb +45 -62
- data/lib/metronome_sdk/models/v1/usage_search_response.rb +4 -7
- data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +38 -58
- data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +35 -49
- data/lib/metronome_sdk/models/v2/contract_edit_params.rb +469 -2302
- data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +358 -2414
- data/lib/metronome_sdk/models/v2/contract_list_response.rb +3 -4520
- data/lib/metronome_sdk/models/v2/contract_retrieve_response.rb +3 -4528
- data/lib/metronome_sdk/models.rb +38 -0
- data/lib/metronome_sdk/resources/v1/alerts.rb +72 -2
- data/lib/metronome_sdk/resources/v1/audit_logs.rb +39 -4
- data/lib/metronome_sdk/resources/v1/billable_metrics.rb +54 -4
- data/lib/metronome_sdk/resources/v1/contracts/products.rb +27 -6
- data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +7 -2
- data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +10 -2
- data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +109 -10
- data/lib/metronome_sdk/resources/v1/contracts.rb +254 -18
- data/lib/metronome_sdk/resources/v1/credit_grants.rb +2 -1
- data/lib/metronome_sdk/resources/v1/custom_fields.rb +51 -14
- data/lib/metronome_sdk/resources/v1/customers/alerts.rb +103 -8
- data/lib/metronome_sdk/resources/v1/customers/commits.rb +119 -9
- data/lib/metronome_sdk/resources/v1/customers/credits.rb +104 -8
- data/lib/metronome_sdk/resources/v1/customers/invoices.rb +124 -8
- data/lib/metronome_sdk/resources/v1/customers.rb +169 -12
- data/lib/metronome_sdk/resources/v1/dashboards.rb +29 -3
- data/lib/metronome_sdk/resources/v1/invoices.rb +23 -2
- data/lib/metronome_sdk/resources/v1/pricing_units.rb +6 -1
- data/lib/metronome_sdk/resources/v1/services.rb +6 -4
- data/lib/metronome_sdk/resources/v1/usage.rb +185 -12
- data/lib/metronome_sdk/resources/v2/contracts.rb +118 -18
- data/lib/metronome_sdk/version.rb +1 -1
- data/lib/metronome_sdk.rb +24 -3
- data/rbi/metronome_sdk/errors.rbi +2 -2
- data/rbi/metronome_sdk/internal/body_cursor_page.rbi +22 -0
- data/rbi/metronome_sdk/internal/cursor_page_without_limit.rbi +22 -0
- data/rbi/metronome_sdk/internal/type/converter.rbi +58 -0
- data/rbi/metronome_sdk/internal/type/union.rbi +9 -2
- data/rbi/metronome_sdk/models/base_threshold_commit.rbi +58 -0
- data/rbi/metronome_sdk/models/commit.rbi +26 -348
- data/rbi/metronome_sdk/models/commit_hierarchy_configuration.rbi +280 -0
- data/rbi/metronome_sdk/models/commit_rate.rbi +85 -0
- data/rbi/metronome_sdk/models/commit_specifier.rbi +71 -0
- data/rbi/metronome_sdk/models/commit_specifier_input.rbi +74 -0
- data/rbi/metronome_sdk/models/contract.rbi +768 -0
- data/rbi/metronome_sdk/models/contract_v2.rbi +5822 -0
- data/rbi/metronome_sdk/models/contract_without_amendments.rbi +184 -2507
- data/rbi/metronome_sdk/models/credit.rbi +10 -348
- data/rbi/metronome_sdk/models/discount.rbi +2 -0
- data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +180 -0
- data/rbi/metronome_sdk/models/override.rbi +8 -193
- data/rbi/metronome_sdk/models/override_tier.rbi +29 -0
- data/rbi/metronome_sdk/models/overwrite_rate.rbi +137 -0
- data/rbi/metronome_sdk/models/payment_gate_config.rbi +312 -0
- data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +321 -0
- data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +183 -0
- data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +188 -0
- data/rbi/metronome_sdk/models/pro_service.rbi +2 -0
- data/rbi/metronome_sdk/models/recurring_commit_subscription_config.rbi +125 -0
- data/rbi/metronome_sdk/models/schedule_point_in_time.rbi +17 -1
- data/rbi/metronome_sdk/models/scheduled_charge.rbi +2 -0
- data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +76 -0
- data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -0
- data/rbi/metronome_sdk/models/subscription.rbi +460 -0
- data/rbi/metronome_sdk/models/update_base_threshold_commit.rbi +61 -0
- data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +6 -3
- data/rbi/metronome_sdk/models/v1/billable_metric_list_response.rbi +2 -0
- data/rbi/metronome_sdk/models/v1/billable_metric_retrieve_response.rbi +2 -0
- data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +120 -771
- data/rbi/metronome_sdk/models/v1/contract_create_historical_invoices_params.rbi +2 -0
- data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1613 -4069
- data/rbi/metronome_sdk/models/v1/contract_list_balances_response.rbi +8 -59
- data/rbi/metronome_sdk/models/v1/contract_list_response.rbi +5 -2420
- data/rbi/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbi +6 -129
- data/rbi/metronome_sdk/models/v1/contract_retrieve_response.rbi +4 -2419
- data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +11 -0
- data/rbi/metronome_sdk/models/v1/contracts/product_list_response.rbi +2 -0
- data/rbi/metronome_sdk/models/v1/contracts/product_retrieve_response.rbi +2 -0
- data/rbi/metronome_sdk/models/v1/contracts/rate_card_create_params.rbi +2 -0
- data/rbi/metronome_sdk/models/v1/contracts/rate_card_list_response.rbi +2 -0
- data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbi +6 -129
- data/rbi/metronome_sdk/models/v1/contracts/rate_card_retrieve_response.rbi +2 -0
- data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +4 -129
- data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +4 -129
- data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbi +4 -129
- data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbi +6 -129
- data/rbi/metronome_sdk/models/v1/credit_grant_list_entries_response.rbi +147 -198
- data/rbi/metronome_sdk/models/v1/credit_grant_list_response.rbi +2 -0
- data/rbi/metronome_sdk/models/v1/custom_field_list_keys_response.rbi +117 -165
- data/rbi/metronome_sdk/models/v1/custom_field_set_values_params.rbi +8 -1
- data/rbi/metronome_sdk/models/v1/customer.rbi +2 -0
- data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +88 -3
- data/rbi/metronome_sdk/models/v1/customer_detail.rbi +2 -0
- data/rbi/metronome_sdk/models/v1/customer_list_billable_metrics_response.rbi +2 -0
- data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbi +51 -0
- data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +265 -0
- data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +348 -0
- data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +60 -0
- data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +10 -0
- data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +10 -0
- data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +19 -90
- data/rbi/metronome_sdk/models/v1/customers/credit_create_params.rbi +6 -90
- data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +6 -3
- data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +76 -0
- data/rbi/metronome_sdk/models/v1/customers/plan_list_response.rbi +2 -0
- data/rbi/metronome_sdk/models/v1/plan_detail.rbi +2 -0
- data/rbi/metronome_sdk/models/v1/plan_list_charges_response.rbi +2 -0
- data/rbi/metronome_sdk/models/v1/plan_list_customers_response.rbi +2 -0
- data/rbi/metronome_sdk/models/v1/plan_list_response.rbi +8 -1
- data/rbi/metronome_sdk/models/v1/usage_list_response.rbi +45 -86
- data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +2 -0
- data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +66 -76
- data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +66 -76
- data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +3563 -7329
- data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1181 -6070
- data/rbi/metronome_sdk/models/v2/contract_list_response.rbi +5 -9867
- data/rbi/metronome_sdk/models/v2/contract_retrieve_response.rbi +6 -9866
- data/rbi/metronome_sdk/models.rbi +44 -0
- data/rbi/metronome_sdk/resources/v1/alerts.rbi +72 -2
- data/rbi/metronome_sdk/resources/v1/audit_logs.rbi +39 -4
- data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +54 -4
- data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +27 -5
- data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rbi +7 -2
- data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +10 -3
- data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +109 -9
- data/rbi/metronome_sdk/resources/v1/contracts.rbi +257 -16
- data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +5 -1
- data/rbi/metronome_sdk/resources/v1/custom_fields.rbi +57 -14
- data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +108 -5
- data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +119 -10
- data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +104 -9
- data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +123 -7
- data/rbi/metronome_sdk/resources/v1/customers.rbi +156 -11
- data/rbi/metronome_sdk/resources/v1/dashboards.rbi +29 -3
- data/rbi/metronome_sdk/resources/v1/invoices.rbi +23 -2
- data/rbi/metronome_sdk/resources/v1/pricing_units.rbi +6 -1
- data/rbi/metronome_sdk/resources/v1/services.rbi +6 -4
- data/rbi/metronome_sdk/resources/v1/usage.rbi +188 -12
- data/rbi/metronome_sdk/resources/v2/contracts.rbi +128 -23
- data/sig/metronome_sdk/internal/body_cursor_page.rbs +13 -0
- data/sig/metronome_sdk/internal/cursor_page_without_limit.rbs +13 -0
- data/sig/metronome_sdk/internal/type/converter.rbs +17 -0
- data/sig/metronome_sdk/internal/type/union.rbs +2 -2
- data/sig/metronome_sdk/models/base_threshold_commit.rbs +26 -0
- data/sig/metronome_sdk/models/commit.rbs +17 -170
- data/sig/metronome_sdk/models/commit_hierarchy_configuration.rbs +117 -0
- data/sig/metronome_sdk/models/commit_rate.rbs +48 -0
- data/sig/metronome_sdk/models/commit_specifier.rbs +47 -0
- data/sig/metronome_sdk/models/commit_specifier_input.rbs +47 -0
- data/sig/metronome_sdk/models/contract.rbs +398 -0
- data/sig/metronome_sdk/models/contract_v2.rbs +2881 -0
- data/sig/metronome_sdk/models/contract_without_amendments.rbs +54 -976
- data/sig/metronome_sdk/models/credit.rbs +12 -170
- data/sig/metronome_sdk/models/hierarchy_configuration.rbs +71 -0
- data/sig/metronome_sdk/models/override.rbs +12 -101
- data/sig/metronome_sdk/models/override_tier.rbs +17 -0
- data/sig/metronome_sdk/models/overwrite_rate.rbs +78 -0
- data/sig/metronome_sdk/models/payment_gate_config.rbs +123 -0
- data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +123 -0
- data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +82 -0
- data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +82 -0
- data/sig/metronome_sdk/models/recurring_commit_subscription_config.rbs +51 -0
- data/sig/metronome_sdk/models/schedule_point_in_time.rbs +7 -0
- data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +35 -0
- data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +35 -0
- data/sig/metronome_sdk/models/subscription.rbs +215 -0
- data/sig/metronome_sdk/models/update_base_threshold_commit.rbs +28 -0
- data/sig/metronome_sdk/models/v1/alert_create_params.rbs +4 -2
- data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +62 -343
- data/sig/metronome_sdk/models/v1/contract_create_params.rbs +218 -1234
- data/sig/metronome_sdk/models/v1/contract_list_balances_response.rbs +4 -25
- data/sig/metronome_sdk/models/v1/contract_list_response.rbs +4 -1041
- data/sig/metronome_sdk/models/v1/contract_retrieve_rate_schedule_response.rbs +6 -54
- data/sig/metronome_sdk/models/v1/contract_retrieve_response.rbs +4 -1041
- data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +7 -0
- data/sig/metronome_sdk/models/v1/contracts/rate_card_retrieve_rate_schedule_response.rbs +6 -54
- data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +6 -54
- data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +6 -54
- data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_response.rbs +6 -54
- data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_list_response.rbs +6 -54
- data/sig/metronome_sdk/models/v1/credit_grant_list_entries_response.rbs +72 -94
- data/sig/metronome_sdk/models/v1/custom_field_list_keys_response.rbs +53 -75
- data/sig/metronome_sdk/models/v1/customer_create_params.rbs +31 -4
- data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_params.rbs +32 -0
- data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +113 -0
- data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +133 -0
- data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +21 -0
- data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +7 -1
- data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +6 -1
- data/sig/metronome_sdk/models/v1/customers/commit_create_params.rbs +13 -50
- data/sig/metronome_sdk/models/v1/customers/credit_create_params.rbs +6 -50
- data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +4 -2
- data/sig/metronome_sdk/models/v1/customers/invoice.rbs +5 -0
- data/sig/metronome_sdk/models/v1/usage_list_response.rbs +33 -55
- data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +24 -43
- data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +24 -43
- data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +400 -1911
- data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +256 -2249
- data/sig/metronome_sdk/models/v2/contract_list_response.rbs +4 -4426
- data/sig/metronome_sdk/models/v2/contract_retrieve_response.rbs +4 -4426
- data/sig/metronome_sdk/models.rbs +38 -0
- data/sig/metronome_sdk/resources/v1/contracts/products.rbs +1 -0
- data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -1
- data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -3
- data/sig/metronome_sdk/resources/v1/credit_grants.rbs +1 -1
- data/sig/metronome_sdk/resources/v1/custom_fields.rbs +1 -1
- data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +2 -1
- data/sig/metronome_sdk/resources/v1/customers/commits.rbs +2 -2
- data/sig/metronome_sdk/resources/v1/customers/credits.rbs +2 -2
- data/sig/metronome_sdk/resources/v1/customers.rbs +11 -0
- data/sig/metronome_sdk/resources/v1/usage.rbs +1 -1
- data/sig/metronome_sdk/resources/v2/contracts.rbs +9 -4
- metadata +74 -11
- data/lib/metronome_sdk/models/v1/customers/alert_list_response.rb +0 -29
- data/lib/metronome_sdk/models/v1/customers/commit_list_response.rb +0 -26
- data/lib/metronome_sdk/models/v1/customers/credit_list_response.rb +0 -26
- data/rbi/metronome_sdk/models/v1/customers/alert_list_response.rbi +0 -46
- data/rbi/metronome_sdk/models/v1/customers/commit_list_response.rbi +0 -45
- data/rbi/metronome_sdk/models/v1/customers/credit_list_response.rbi +0 -45
- data/sig/metronome_sdk/models/v1/customers/alert_list_response.rbs +0 -29
- data/sig/metronome_sdk/models/v1/customers/commit_list_response.rbs +0 -26
- data/sig/metronome_sdk/models/v1/customers/credit_list_response.rbs +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2446e983c08f573e1756e7aeb0fd0cac0d67056f18c3c0464e2d0422f63aa2f2
|
4
|
+
data.tar.gz: 282cfc878a3a3d74b38184a1b473a9080e265fb0224ee7b3d2dce2ae5aa7caab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a379c84d235c7957ca683790821b637b2eac2f86ca46c0bc31c6093b699974b89e3e1def7092aee0b692dda2acb1cc76109a9e588b37c1f4b248203e2090d659
|
7
|
+
data.tar.gz: 621e6552b720ac41ef0bff931ddfbdfa22c0eec89ca9a2c143c930ee631dcb67fe7c24c428bd7f521a704e734834aad81079ee7ac1e6261bcc035233d016cbcc
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,66 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 1.0.0 (2025-09-15)
|
4
|
+
|
5
|
+
Full Changelog: [v0.3.0...v1.0.0](https://github.com/Metronome-Industries/metronome-ruby/compare/v0.3.0...v1.0.0)
|
6
|
+
|
7
|
+
### ⚠ BREAKING CHANGES
|
8
|
+
|
9
|
+
* **api:** add pagination support to multiple endpoints - Added pagination to CustomerList, AlertList, InvoiceList, CommitList, CreditList, CreditGrantList, CustomerAlerts, UsageList, CustomFields list, and ContractListBalances endpoints.
|
10
|
+
* **api:** enhance subscriptions and commits/credits - Added Individual enum to SubscriptionConfig and rate_type enums to UpdateCredit/UpdateCommit.
|
11
|
+
* **api:** add comprehensive shared types to SDK - Added 34 new shared types including BaseThresholdCommit, BaseUsageFilter, Commit, CommitHierarchyConfiguration, CommitRate, CommitSpecifier, CommitSpecifierInput, Contract, ContractV2, ContractWithoutAmendments, Credit, CreditTypeData, Discount, EventTypeFilter, HierarchyConfiguration, ID, Override, OverrideTier, OverwriteRate, PaymentGateConfig, PaymentGateConfigV2, PrepaidBalanceThresholdConfiguration, PrepaidBalanceThresholdConfigurationV2, PropertyFilter, ProService, Rate, RecurringCommitSubscriptionConfig, ScheduledCharge, ScheduleDuration, SchedulePointInTime, SpendThresholdConfiguration, SpendThresholdConfigurationV2, Subscription, Tier, and UpdateBaseThresholdCommit.
|
12
|
+
|
13
|
+
### Features
|
14
|
+
|
15
|
+
* **api:** add archived_at field to CustomerBillingConfiguration ([8eb235f](https://github.com/Metronome-Industries/metronome-ruby/commit/8eb235f643fec7937b291ce3435598b5e09f0081))
|
16
|
+
* **api:** add comprehensive shared types to SDK - Added 34 new shared types including BaseThresholdCommit, BaseUsageFilter, Commit, CommitHierarchyConfiguration, CommitRate, CommitSpecifier, CommitSpecifierInput, Contract, ContractV2, ContractWithoutAmendments, Credit, CreditTypeData, Discount, EventTypeFilter, HierarchyConfiguration, ID, Override, OverrideTier, OverwriteRate, PaymentGateConfig, PaymentGateConfigV2, PrepaidBalanceThresholdConfiguration, PrepaidBalanceThresholdConfigurationV2, PropertyFilter, ProService, Rate, RecurringCommitSubscriptionConfig, ScheduledCharge, ScheduleDuration, SchedulePointInTime, SpendThresholdConfiguration, SpendThresholdConfigurationV2, Subscription, Tier, and UpdateBaseThresholdCommit. ([8eb235f](https://github.com/Metronome-Industries/metronome-ruby/commit/8eb235f643fec7937b291ce3435598b5e09f0081))
|
17
|
+
* **api:** add created_at field to Commit ([8eb235f](https://github.com/Metronome-Industries/metronome-ruby/commit/8eb235f643fec7937b291ce3435598b5e09f0081))
|
18
|
+
* **api:** add customer billing configuration endpoints - Added set and retrieve endpoints for customer billing configurations. ([8eb235f](https://github.com/Metronome-Industries/metronome-ruby/commit/8eb235f643fec7937b291ce3435598b5e09f0081))
|
19
|
+
* **api:** add pagination support to multiple endpoints - Added pagination to CustomerList, AlertList, InvoiceList, CommitList, CreditList, CreditGrantList, CustomerAlerts, UsageList, CustomFields list, and ContractListBalances endpoints. ([8eb235f](https://github.com/Metronome-Industries/metronome-ruby/commit/8eb235f643fec7937b291ce3435598b5e09f0081))
|
20
|
+
* **api:** Add support for granular spend threshold alerts with group key filters. ([8eb235f](https://github.com/Metronome-Industries/metronome-ruby/commit/8eb235f643fec7937b291ce3435598b5e09f0081))
|
21
|
+
* **api:** enhance subscriptions and commits/credits - Added Individual enum to SubscriptionConfig and rate_type enums to UpdateCredit/UpdateCommit. ([8eb235f](https://github.com/Metronome-Industries/metronome-ruby/commit/8eb235f643fec7937b291ce3435598b5e09f0081))
|
22
|
+
|
23
|
+
|
24
|
+
### Bug Fixes
|
25
|
+
|
26
|
+
* bump sorbet version and fix new type errors from the breaking change ([8eb235f](https://github.com/Metronome-Industries/metronome-ruby/commit/8eb235f643fec7937b291ce3435598b5e09f0081))
|
27
|
+
|
28
|
+
|
29
|
+
### Chores
|
30
|
+
|
31
|
+
* add json schema comment for rubocop.yml ([8eb235f](https://github.com/Metronome-Industries/metronome-ruby/commit/8eb235f643fec7937b291ce3435598b5e09f0081))
|
32
|
+
* revert version bump ([d7acdc6](https://github.com/Metronome-Industries/metronome-ruby/commit/d7acdc6fe3c9ecd51ecb5d67b3033280d02400b6))
|
33
|
+
|
34
|
+
|
35
|
+
### Documentation
|
36
|
+
|
37
|
+
* enhance API documentation - Added more detailed descriptions and styling improvements, and enhanced usage filter documentation with additional context. ([8eb235f](https://github.com/Metronome-Industries/metronome-ruby/commit/8eb235f643fec7937b291ce3435598b5e09f0081))
|
38
|
+
|
39
|
+
## 0.3.0 (2025-08-15)
|
40
|
+
|
41
|
+
Full Changelog: [v0.2.0...v0.3.0](https://github.com/Metronome-Industries/metronome-ruby/compare/v0.2.0...v0.3.0)
|
42
|
+
|
43
|
+
### Features
|
44
|
+
|
45
|
+
* **api:** api update ([dc85d2b](https://github.com/Metronome-Industries/metronome-ruby/commit/dc85d2b1e840bb8a99500a34d4560c635d023776))
|
46
|
+
* **api:** api update ([b2fe3ed](https://github.com/Metronome-Industries/metronome-ruby/commit/b2fe3edfa51151ff1c6a9f15da363591b46202b7))
|
47
|
+
* **api:** api update ([361462c](https://github.com/Metronome-Industries/metronome-ruby/commit/361462c038856e72c4e889b7365b204bb3a914c6))
|
48
|
+
* **api:** api update ([acc5999](https://github.com/Metronome-Industries/metronome-ruby/commit/acc599977b528e8d916ee99d9fd9ec2a35a91b65))
|
49
|
+
* **api:** api update ([f8ffd7b](https://github.com/Metronome-Industries/metronome-ruby/commit/f8ffd7bb950eef4563012f0b96bda2f9f4a9d160))
|
50
|
+
* **api:** api update ([760744e](https://github.com/Metronome-Industries/metronome-ruby/commit/760744ef3f5155ca5202810537943a80efaa1e0f))
|
51
|
+
* **api:** api update ([6a16947](https://github.com/Metronome-Industries/metronome-ruby/commit/6a169473afa8d1d1793304afb2cd742b9c1c1b7e))
|
52
|
+
* **api:** api update ([2b47d83](https://github.com/Metronome-Industries/metronome-ruby/commit/2b47d832c06878b9725cae05f887117ad98c73d8))
|
53
|
+
* **api:** api update ([1f496c7](https://github.com/Metronome-Industries/metronome-ruby/commit/1f496c72f3c73542350c357219ff2ec6b528d2f3))
|
54
|
+
* **api:** api update ([ff4d847](https://github.com/Metronome-Industries/metronome-ruby/commit/ff4d8478d49d587bdaf70a7b52fb18fb6662d7e3))
|
55
|
+
* **api:** api update ([49702e6](https://github.com/Metronome-Industries/metronome-ruby/commit/49702e67db92e2b7495ec88e127c8a60e862a685))
|
56
|
+
|
57
|
+
|
58
|
+
### Chores
|
59
|
+
|
60
|
+
* collect metadata from type DSL ([45d8eb1](https://github.com/Metronome-Industries/metronome-ruby/commit/45d8eb1c1ea599b68e3fcd6571d27390e52a09db))
|
61
|
+
* **internal:** update comment in script ([de52ac2](https://github.com/Metronome-Industries/metronome-ruby/commit/de52ac2965601808912f1e55952d731641132361))
|
62
|
+
* update @stainless-api/prism-cli to v5.15.0 ([6ad9705](https://github.com/Metronome-Industries/metronome-ruby/commit/6ad9705b1a25dfb037e3625e669f8d1cdc144b7a))
|
63
|
+
|
3
64
|
## 0.2.0 (2025-07-31)
|
4
65
|
|
5
66
|
Full Changelog: [v0.1.0...v0.2.0](https://github.com/Metronome-Industries/metronome-ruby/compare/v0.1.0...v0.2.0)
|
data/README.md
CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
|
|
17
17
|
<!-- x-release-please-start-version -->
|
18
18
|
|
19
19
|
```ruby
|
20
|
-
gem "metronome-sdk", "~> 0.
|
20
|
+
gem "metronome-sdk", "~> 1.0.0"
|
21
21
|
```
|
22
22
|
|
23
23
|
<!-- x-release-please-end -->
|
@@ -277,25 +277,25 @@ metronome.v1.usage.ingest(**params)
|
|
277
277
|
Since this library does not depend on `sorbet-runtime`, it cannot provide [`T::Enum`](https://sorbet.org/docs/tenum) instances. Instead, we provide "tagged symbols" instead, which is always a primitive at runtime:
|
278
278
|
|
279
279
|
```ruby
|
280
|
-
# :
|
281
|
-
puts(MetronomeSDK::
|
280
|
+
# :LIST_RATE
|
281
|
+
puts(MetronomeSDK::V2::ContractEditCommitParams::RateType::LIST_RATE)
|
282
282
|
|
283
|
-
# Revealed type: `T.all(MetronomeSDK::
|
284
|
-
T.reveal_type(MetronomeSDK::
|
283
|
+
# Revealed type: `T.all(MetronomeSDK::V2::ContractEditCommitParams::RateType, Symbol)`
|
284
|
+
T.reveal_type(MetronomeSDK::V2::ContractEditCommitParams::RateType::LIST_RATE)
|
285
285
|
```
|
286
286
|
|
287
287
|
Enum parameters have a "relaxed" type, so you can either pass in enum constants or their literal value:
|
288
288
|
|
289
289
|
```ruby
|
290
290
|
# Using the enum constants preserves the tagged type information:
|
291
|
-
metronome.
|
292
|
-
|
291
|
+
metronome.v2.contracts.edit_commit(
|
292
|
+
rate_type: MetronomeSDK::V2::ContractEditCommitParams::RateType::LIST_RATE,
|
293
293
|
# …
|
294
294
|
)
|
295
295
|
|
296
296
|
# Literal values are also permissible:
|
297
|
-
metronome.
|
298
|
-
|
297
|
+
metronome.v2.contracts.edit_commit(
|
298
|
+
rate_type: :LIST_RATE,
|
299
299
|
# …
|
300
300
|
)
|
301
301
|
```
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module MetronomeSDK
|
4
|
+
module Internal
|
5
|
+
# @generic Elem
|
6
|
+
#
|
7
|
+
# @example
|
8
|
+
# if body_cursor_page.has_next?
|
9
|
+
# body_cursor_page = body_cursor_page.next_page
|
10
|
+
# end
|
11
|
+
#
|
12
|
+
# @example
|
13
|
+
# body_cursor_page.auto_paging_each do |commit|
|
14
|
+
# puts(commit)
|
15
|
+
# end
|
16
|
+
class BodyCursorPage
|
17
|
+
include MetronomeSDK::Internal::Type::BasePage
|
18
|
+
|
19
|
+
# @return [String]
|
20
|
+
attr_accessor :next_page_
|
21
|
+
|
22
|
+
# @return [Array<generic<Elem>>, nil]
|
23
|
+
attr_accessor :data
|
24
|
+
|
25
|
+
# @return [Boolean]
|
26
|
+
def next_page?
|
27
|
+
!next_page_.to_s.empty?
|
28
|
+
end
|
29
|
+
|
30
|
+
# @raise [MetronomeSDK::HTTP::Error]
|
31
|
+
# @return [self]
|
32
|
+
def next_page
|
33
|
+
unless next_page?
|
34
|
+
message = "No more pages available. Please check #next_page? before calling ##{__method__}"
|
35
|
+
raise RuntimeError.new(message)
|
36
|
+
end
|
37
|
+
|
38
|
+
req = MetronomeSDK::Internal::Util.deep_merge(@req, {body: {next_page: next_page_}})
|
39
|
+
@client.request(req)
|
40
|
+
end
|
41
|
+
|
42
|
+
# @param blk [Proc]
|
43
|
+
#
|
44
|
+
# @yieldparam [generic<Elem>]
|
45
|
+
def auto_paging_each(&blk)
|
46
|
+
unless block_given?
|
47
|
+
raise ArgumentError.new("A block must be given to ##{__method__}")
|
48
|
+
end
|
49
|
+
|
50
|
+
page = self
|
51
|
+
loop do
|
52
|
+
page.data&.each(&blk)
|
53
|
+
|
54
|
+
break unless page.next_page?
|
55
|
+
page = page.next_page
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# @api private
|
60
|
+
#
|
61
|
+
# @param client [MetronomeSDK::Internal::Transport::BaseClient]
|
62
|
+
# @param req [Hash{Symbol=>Object}]
|
63
|
+
# @param headers [Hash{String=>String}, Net::HTTPHeader]
|
64
|
+
# @param page_data [Hash{Symbol=>Object}]
|
65
|
+
def initialize(client:, req:, headers:, page_data:)
|
66
|
+
super
|
67
|
+
|
68
|
+
@next_page_ = page_data[:next_page]
|
69
|
+
case page_data
|
70
|
+
in {data: Array => data}
|
71
|
+
@data = data.map { MetronomeSDK::Internal::Type::Converter.coerce(@model, _1) }
|
72
|
+
else
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
# @api private
|
77
|
+
#
|
78
|
+
# @return [String]
|
79
|
+
def inspect
|
80
|
+
model = MetronomeSDK::Internal::Type::Converter.inspect(@model, depth: 1)
|
81
|
+
|
82
|
+
"#<#{self.class}[#{model}]:0x#{object_id.to_s(16)} next_page_=#{next_page_.inspect}>"
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module MetronomeSDK
|
4
|
+
module Internal
|
5
|
+
# @generic Elem
|
6
|
+
#
|
7
|
+
# @example
|
8
|
+
# if cursor_page_without_limit.has_next?
|
9
|
+
# cursor_page_without_limit = cursor_page_without_limit.next_page
|
10
|
+
# end
|
11
|
+
#
|
12
|
+
# @example
|
13
|
+
# cursor_page_without_limit.auto_paging_each do |credit_grant|
|
14
|
+
# puts(credit_grant)
|
15
|
+
# end
|
16
|
+
class CursorPageWithoutLimit
|
17
|
+
include MetronomeSDK::Internal::Type::BasePage
|
18
|
+
|
19
|
+
# @return [String]
|
20
|
+
attr_accessor :next_page_
|
21
|
+
|
22
|
+
# @return [Array<generic<Elem>>, nil]
|
23
|
+
attr_accessor :data
|
24
|
+
|
25
|
+
# @return [Boolean]
|
26
|
+
def next_page?
|
27
|
+
!next_page_.to_s.empty?
|
28
|
+
end
|
29
|
+
|
30
|
+
# @raise [MetronomeSDK::HTTP::Error]
|
31
|
+
# @return [self]
|
32
|
+
def next_page
|
33
|
+
unless next_page?
|
34
|
+
message = "No more pages available. Please check #next_page? before calling ##{__method__}"
|
35
|
+
raise RuntimeError.new(message)
|
36
|
+
end
|
37
|
+
|
38
|
+
req = MetronomeSDK::Internal::Util.deep_merge(@req, {query: {next_page: next_page_}})
|
39
|
+
@client.request(req)
|
40
|
+
end
|
41
|
+
|
42
|
+
# @param blk [Proc]
|
43
|
+
#
|
44
|
+
# @yieldparam [generic<Elem>]
|
45
|
+
def auto_paging_each(&blk)
|
46
|
+
unless block_given?
|
47
|
+
raise ArgumentError.new("A block must be given to ##{__method__}")
|
48
|
+
end
|
49
|
+
|
50
|
+
page = self
|
51
|
+
loop do
|
52
|
+
page.data&.each(&blk)
|
53
|
+
|
54
|
+
break unless page.next_page?
|
55
|
+
page = page.next_page
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# @api private
|
60
|
+
#
|
61
|
+
# @param client [MetronomeSDK::Internal::Transport::BaseClient]
|
62
|
+
# @param req [Hash{Symbol=>Object}]
|
63
|
+
# @param headers [Hash{String=>String}, Net::HTTPHeader]
|
64
|
+
# @param page_data [Hash{Symbol=>Object}]
|
65
|
+
def initialize(client:, req:, headers:, page_data:)
|
66
|
+
super
|
67
|
+
|
68
|
+
@next_page_ = page_data[:next_page]
|
69
|
+
case page_data
|
70
|
+
in {data: Array => data}
|
71
|
+
@data = data.map { MetronomeSDK::Internal::Type::Converter.coerce(@model, _1) }
|
72
|
+
else
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
# @api private
|
77
|
+
#
|
78
|
+
# @return [String]
|
79
|
+
def inspect
|
80
|
+
model = MetronomeSDK::Internal::Type::Converter.inspect(@model, depth: 1)
|
81
|
+
|
82
|
+
"#<#{self.class}[#{model}]:0x#{object_id.to_s(16)} next_page_=#{next_page_.inspect}>"
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -367,10 +367,7 @@ module MetronomeSDK
|
|
367
367
|
# @return [Array(Integer, Net::HTTPResponse, Enumerable<String>)]
|
368
368
|
def send_request(request, redirect_count:, retry_count:, send_retry_header:)
|
369
369
|
url, headers, max_retries, timeout = request.fetch_values(:url, :headers, :max_retries, :timeout)
|
370
|
-
input = {
|
371
|
-
**request.except(:timeout),
|
372
|
-
deadline: MetronomeSDK::Internal::Util.monotonic_secs + timeout
|
373
|
-
}
|
370
|
+
input = {**request.except(:timeout), deadline: MetronomeSDK::Internal::Util.monotonic_secs + timeout}
|
374
371
|
|
375
372
|
if send_retry_header
|
376
373
|
headers["x-stainless-retry-count"] = retry_count.to_s
|
@@ -193,15 +193,7 @@ module MetronomeSDK
|
|
193
193
|
end
|
194
194
|
|
195
195
|
define_sorbet_constant!(:Request) do
|
196
|
-
T.type_alias
|
197
|
-
{
|
198
|
-
method: Symbol,
|
199
|
-
url: URI::Generic,
|
200
|
-
headers: T::Hash[String, String],
|
201
|
-
body: T.anything,
|
202
|
-
deadline: Float
|
203
|
-
}
|
204
|
-
end
|
196
|
+
T.type_alias { {method: Symbol, url: URI::Generic, headers: T::Hash[String, String], body: T.anything, deadline: Float} }
|
205
197
|
end
|
206
198
|
end
|
207
199
|
end
|
@@ -148,6 +148,7 @@ module MetronomeSDK
|
|
148
148
|
# @option spec [Boolean] :"nil?"
|
149
149
|
def initialize(type_info, spec = {})
|
150
150
|
@item_type_fn = MetronomeSDK::Internal::Type::Converter.type_info(type_info || spec)
|
151
|
+
@meta = MetronomeSDK::Internal::Type::Converter.meta_info(type_info, spec)
|
151
152
|
@nilable = spec.fetch(:nil?, false)
|
152
153
|
end
|
153
154
|
|
@@ -52,6 +52,7 @@ module MetronomeSDK
|
|
52
52
|
#
|
53
53
|
# @option spec [Boolean] :"nil?"
|
54
54
|
private def add_field(name_sym, required:, type_info:, spec:)
|
55
|
+
meta = MetronomeSDK::Internal::Type::Converter.meta_info(type_info, spec)
|
55
56
|
type_fn, info =
|
56
57
|
case type_info
|
57
58
|
in Proc | MetronomeSDK::Internal::Type::Converter | Class
|
@@ -63,14 +64,7 @@ module MetronomeSDK
|
|
63
64
|
setter = :"#{name_sym}="
|
64
65
|
api_name = info.fetch(:api_name, name_sym)
|
65
66
|
nilable = info.fetch(:nil?, false)
|
66
|
-
const =
|
67
|
-
info.fetch(
|
68
|
-
:const,
|
69
|
-
MetronomeSDK::Internal::OMIT
|
70
|
-
)
|
71
|
-
else
|
72
|
-
MetronomeSDK::Internal::OMIT
|
73
|
-
end
|
67
|
+
const = required && !nilable ? info.fetch(:const, MetronomeSDK::Internal::OMIT) : MetronomeSDK::Internal::OMIT
|
74
68
|
|
75
69
|
[name_sym, setter].each { undef_method(_1) } if known_fields.key?(name_sym)
|
76
70
|
|
@@ -81,7 +75,8 @@ module MetronomeSDK
|
|
81
75
|
required: required,
|
82
76
|
nilable: nilable,
|
83
77
|
const: const,
|
84
|
-
type_fn: type_fn
|
78
|
+
type_fn: type_fn,
|
79
|
+
meta: meta
|
85
80
|
}
|
86
81
|
|
87
82
|
define_method(setter) do |value|
|
@@ -443,11 +438,11 @@ module MetronomeSDK
|
|
443
438
|
# @return [Hash{Symbol=>Object}]
|
444
439
|
#
|
445
440
|
# @example
|
446
|
-
# # `
|
447
|
-
#
|
448
|
-
#
|
449
|
-
#
|
450
|
-
#
|
441
|
+
# # `base_threshold_commit` is a `MetronomeSDK::BaseThresholdCommit`
|
442
|
+
# base_threshold_commit => {
|
443
|
+
# product_id: product_id,
|
444
|
+
# description: description,
|
445
|
+
# name: name
|
451
446
|
# }
|
452
447
|
def deconstruct_keys(keys)
|
453
448
|
(keys || self.class.known_fields.keys)
|
@@ -98,6 +98,33 @@ module MetronomeSDK
|
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
101
|
+
# @api private
|
102
|
+
#
|
103
|
+
# @param type_info [Hash{Symbol=>Object}, Proc, MetronomeSDK::Internal::Type::Converter, Class] .
|
104
|
+
#
|
105
|
+
# @option type_info [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
|
106
|
+
#
|
107
|
+
# @option type_info [Proc] :enum
|
108
|
+
#
|
109
|
+
# @option type_info [Proc] :union
|
110
|
+
#
|
111
|
+
# @option type_info [Boolean] :"nil?"
|
112
|
+
#
|
113
|
+
# @param spec [Hash{Symbol=>Object}, Proc, MetronomeSDK::Internal::Type::Converter, Class] .
|
114
|
+
#
|
115
|
+
# @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
|
116
|
+
#
|
117
|
+
# @option spec [Proc] :enum
|
118
|
+
#
|
119
|
+
# @option spec [Proc] :union
|
120
|
+
#
|
121
|
+
# @option spec [Boolean] :"nil?"
|
122
|
+
#
|
123
|
+
# @return [Hash{Symbol=>Object}]
|
124
|
+
def meta_info(type_info, spec)
|
125
|
+
[spec, type_info].grep(Hash).first.to_h.except(:const, :enum, :union, :nil?)
|
126
|
+
end
|
127
|
+
|
101
128
|
# @api private
|
102
129
|
#
|
103
130
|
# @param translate_names [Boolean]
|
@@ -168,6 +168,7 @@ module MetronomeSDK
|
|
168
168
|
# @option spec [Boolean] :"nil?"
|
169
169
|
def initialize(type_info, spec = {})
|
170
170
|
@item_type_fn = MetronomeSDK::Internal::Type::Converter.type_info(type_info || spec)
|
171
|
+
@meta = MetronomeSDK::Internal::Type::Converter.meta_info(type_info, spec)
|
171
172
|
@nilable = spec.fetch(:nil?, false)
|
172
173
|
end
|
173
174
|
|
@@ -4,6 +4,17 @@ module MetronomeSDK
|
|
4
4
|
module Internal
|
5
5
|
module Type
|
6
6
|
# @api private
|
7
|
+
#
|
8
|
+
# @example
|
9
|
+
# # `hierarchy_configuration` is a `MetronomeSDK::HierarchyConfiguration`
|
10
|
+
# case hierarchy_configuration
|
11
|
+
# when MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration
|
12
|
+
# puts(hierarchy_configuration.children)
|
13
|
+
# when MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration
|
14
|
+
# puts(hierarchy_configuration.parent)
|
15
|
+
# else
|
16
|
+
# puts(hierarchy_configuration)
|
17
|
+
# end
|
7
18
|
module Union
|
8
19
|
include MetronomeSDK::Internal::Type::Converter
|
9
20
|
include MetronomeSDK::Internal::Util::SorbetRuntimeSupport
|
@@ -12,20 +23,20 @@ module MetronomeSDK
|
|
12
23
|
#
|
13
24
|
# All of the specified variant info for this union.
|
14
25
|
#
|
15
|
-
# @return [Array<Array(Symbol, Proc)>]
|
26
|
+
# @return [Array<Array(Symbol, Proc, Hash{Symbol=>Object})>]
|
16
27
|
private def known_variants = (@known_variants ||= [])
|
17
28
|
|
18
29
|
# @api private
|
19
30
|
#
|
20
|
-
# @return [Array<Array(Symbol, Object)>]
|
31
|
+
# @return [Array<Array(Symbol, Object, Hash{Symbol=>Object})>]
|
21
32
|
protected def derefed_variants
|
22
|
-
known_variants.map { |key, variant_fn| [key, variant_fn.call] }
|
33
|
+
known_variants.map { |key, variant_fn, meta| [key, variant_fn.call, meta] }
|
23
34
|
end
|
24
35
|
|
25
36
|
# All of the specified variants for this union.
|
26
37
|
#
|
27
38
|
# @return [Array<Object>]
|
28
|
-
def variants = derefed_variants.map
|
39
|
+
def variants = derefed_variants.map { _2 }
|
29
40
|
|
30
41
|
# @api private
|
31
42
|
#
|
@@ -51,12 +62,13 @@ module MetronomeSDK
|
|
51
62
|
#
|
52
63
|
# @option spec [Boolean] :"nil?"
|
53
64
|
private def variant(key, spec = nil)
|
65
|
+
meta = MetronomeSDK::Internal::Type::Converter.meta_info(nil, spec)
|
54
66
|
variant_info =
|
55
67
|
case key
|
56
68
|
in Symbol
|
57
|
-
[key, MetronomeSDK::Internal::Type::Converter.type_info(spec)]
|
69
|
+
[key, MetronomeSDK::Internal::Type::Converter.type_info(spec), meta]
|
58
70
|
in Proc | MetronomeSDK::Internal::Type::Converter | Class | Hash
|
59
|
-
[nil, MetronomeSDK::Internal::Type::Converter.type_info(key)]
|
71
|
+
[nil, MetronomeSDK::Internal::Type::Converter.type_info(key), meta]
|
60
72
|
end
|
61
73
|
|
62
74
|
known_variants << variant_info
|
@@ -79,7 +91,8 @@ module MetronomeSDK
|
|
79
91
|
return nil if key == MetronomeSDK::Internal::OMIT
|
80
92
|
|
81
93
|
key = key.to_sym if key.is_a?(String)
|
82
|
-
known_variants.find { |k,| k == key }
|
94
|
+
_, found = known_variants.find { |k,| k == key }
|
95
|
+
found&.call
|
83
96
|
else
|
84
97
|
nil
|
85
98
|
end
|
@@ -244,7 +244,7 @@ module MetronomeSDK
|
|
244
244
|
#
|
245
245
|
# @return [String]
|
246
246
|
def uri_origin(uri)
|
247
|
-
"#{uri.scheme}://#{uri.host}#{uri.port
|
247
|
+
"#{uri.scheme}://#{uri.host}#{":#{uri.port}" unless uri.port == uri.default_port}"
|
248
248
|
end
|
249
249
|
|
250
250
|
# @api private
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module MetronomeSDK
|
4
|
+
module Models
|
5
|
+
class BaseThresholdCommit < MetronomeSDK::Internal::Type::BaseModel
|
6
|
+
# @!attribute product_id
|
7
|
+
# The commit product that will be used to generate the line item for commit
|
8
|
+
# payment.
|
9
|
+
#
|
10
|
+
# @return [String]
|
11
|
+
required :product_id, String
|
12
|
+
|
13
|
+
# @!attribute description
|
14
|
+
#
|
15
|
+
# @return [String, nil]
|
16
|
+
optional :description, String
|
17
|
+
|
18
|
+
# @!attribute name
|
19
|
+
# Specify the name of the line item for the threshold charge. If left blank, it
|
20
|
+
# will default to the commit product name.
|
21
|
+
#
|
22
|
+
# @return [String, nil]
|
23
|
+
optional :name, String
|
24
|
+
|
25
|
+
# @!method initialize(product_id:, description: nil, name: nil)
|
26
|
+
# Some parameter documentations has been truncated, see
|
27
|
+
# {MetronomeSDK::Models::BaseThresholdCommit} for more details.
|
28
|
+
#
|
29
|
+
# @param product_id [String] The commit product that will be used to generate the line item for commit paymen
|
30
|
+
#
|
31
|
+
# @param description [String]
|
32
|
+
#
|
33
|
+
# @param name [String] Specify the name of the line item for the threshold charge. If left blank, it wi
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|