metronome-sdk 3.7.0 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +46 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +4 -1
  5. data/lib/metronome_sdk/models/commit.rb +10 -1
  6. data/lib/metronome_sdk/models/contract.rb +46 -16
  7. data/lib/metronome_sdk/models/contract_v2.rb +645 -16
  8. data/lib/metronome_sdk/models/contract_without_amendments.rb +178 -4
  9. data/lib/metronome_sdk/models/credit.rb +10 -1
  10. data/lib/metronome_sdk/models/override.rb +7 -1
  11. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +10 -2
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +3 -1
  13. data/lib/metronome_sdk/models/subscription.rb +90 -2
  14. data/lib/metronome_sdk/models/v1/alert_create_params.rb +127 -1
  15. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +17 -4
  16. data/lib/metronome_sdk/models/v1/contract_create_params.rb +290 -10
  17. data/lib/metronome_sdk/models/v1/contract_create_response.rb +243 -17
  18. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rb +88 -0
  19. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rb +62 -0
  20. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +10 -1
  21. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +127 -1
  22. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +130 -3
  23. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +10 -1
  24. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  25. data/lib/metronome_sdk/models/v1/package_create_params.rb +279 -10
  26. data/lib/metronome_sdk/models/v1/package_list_response.rb +264 -7
  27. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +264 -7
  28. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +517 -9
  29. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +456 -8
  30. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +456 -8
  31. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  32. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +4 -0
  33. data/lib/metronome_sdk/resources/v1/contracts.rb +68 -1
  34. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +4 -2
  35. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +3 -1
  36. data/lib/metronome_sdk/resources/v1/dashboards.rb +7 -2
  37. data/lib/metronome_sdk/version.rb +1 -1
  38. data/lib/metronome_sdk.rb +2 -0
  39. data/rbi/metronome_sdk/models/commit.rbi +13 -0
  40. data/rbi/metronome_sdk/models/contract.rbi +47 -22
  41. data/rbi/metronome_sdk/models/contract_v2.rbi +1472 -96
  42. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +463 -0
  43. data/rbi/metronome_sdk/models/credit.rbi +13 -0
  44. data/rbi/metronome_sdk/models/override.rbi +9 -0
  45. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +11 -1
  46. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +4 -0
  47. data/rbi/metronome_sdk/models/subscription.rbi +212 -3
  48. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +373 -0
  49. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +27 -6
  50. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +719 -9
  51. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +523 -32
  52. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbi +112 -0
  53. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbi +119 -0
  54. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +13 -0
  55. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +360 -0
  56. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +379 -2
  57. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +13 -0
  58. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  59. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +706 -9
  60. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +693 -3
  61. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +693 -3
  62. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +1372 -69
  63. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +1204 -67
  64. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1204 -67
  65. data/rbi/metronome_sdk/resources/v1/alerts.rbi +8 -0
  66. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +4 -0
  67. data/rbi/metronome_sdk/resources/v1/contracts.rbi +70 -0
  68. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +8 -1
  69. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  70. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +7 -2
  71. data/sig/metronome_sdk/models/commit.rbs +7 -0
  72. data/sig/metronome_sdk/models/contract.rbs +22 -11
  73. data/sig/metronome_sdk/models/contract_v2.rbs +559 -8
  74. data/sig/metronome_sdk/models/contract_without_amendments.rbs +169 -2
  75. data/sig/metronome_sdk/models/credit.rbs +7 -0
  76. data/sig/metronome_sdk/models/override.rbs +7 -0
  77. data/sig/metronome_sdk/models/subscription.rbs +88 -3
  78. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +144 -0
  79. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +7 -0
  80. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +278 -5
  81. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +197 -17
  82. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbs +63 -0
  83. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbs +59 -0
  84. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +7 -0
  85. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +141 -0
  86. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +150 -0
  87. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +8 -1
  88. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  89. data/sig/metronome_sdk/models/v1/package_create_params.rbs +271 -5
  90. data/sig/metronome_sdk/models/v1/package_list_response.rbs +265 -5
  91. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +263 -5
  92. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +472 -7
  93. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +428 -5
  94. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +427 -5
  95. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  96. data/sig/metronome_sdk/resources/v1/contracts.rbs +13 -0
  97. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  98. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -0
  99. metadata +8 -2
@@ -64,6 +64,14 @@ module MetronomeSDK
64
64
  # @return [Time, nil]
65
65
  optional :archived_at, Time
66
66
 
67
+ # @!attribute billing_provider_configuration_schedule
68
+ # The schedule of billing provider configuration changes on the contract, ordered
69
+ # by effective_at ascending.
70
+ #
71
+ # @return [Array<MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule>, nil]
72
+ optional :billing_provider_configuration_schedule,
73
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule] }
74
+
67
75
  # @!attribute credits
68
76
  #
69
77
  # @return [Array<MetronomeSDK::Models::ContractV2::Credit>, nil]
@@ -76,7 +84,6 @@ module MetronomeSDK
76
84
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
77
85
 
78
86
  # @!attribute customer_billing_provider_configuration
79
- # This field's availability is dependent on your client's configuration.
80
87
  #
81
88
  # @return [MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration, nil]
82
89
  optional :customer_billing_provider_configuration,
@@ -175,6 +182,14 @@ module MetronomeSDK
175
182
  optional :reseller_royalties,
176
183
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::ContractV2::ResellerRoyalty] }
177
184
 
185
+ # @!attribute revenue_system_configuration_schedule
186
+ # The schedule of revenue system configuration changes on the contract, ordered by
187
+ # effective_at ascending.
188
+ #
189
+ # @return [Array<MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule>, nil]
190
+ optional :revenue_system_configuration_schedule,
191
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule] }
192
+
178
193
  # @!attribute salesforce_opportunity_id
179
194
  # This field's availability is dependent on your client's configuration.
180
195
  #
@@ -222,7 +237,7 @@ module MetronomeSDK
222
237
  # @return [String, nil]
223
238
  optional :uniqueness_key, String
224
239
 
225
- # @!method initialize(id:, commits:, created_at:, created_by:, customer_id:, overrides:, scheduled_charges:, starting_at:, transitions:, usage_filter:, usage_statement_schedule:, archived_at: nil, credits: nil, custom_fields: nil, customer_billing_provider_configuration: nil, discounts: nil, ending_before: nil, has_more: nil, hierarchy_configuration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, prepaid_balance_threshold_configuration: nil, priority: nil, professional_services: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, salesforce_opportunity_id: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, spend_trackers: nil, subscriptions: nil, total_contract_value: nil, uniqueness_key: nil)
240
+ # @!method initialize(id:, commits:, created_at:, created_by:, customer_id:, overrides:, scheduled_charges:, starting_at:, transitions:, usage_filter:, usage_statement_schedule:, archived_at: nil, billing_provider_configuration_schedule: nil, credits: nil, custom_fields: nil, customer_billing_provider_configuration: nil, discounts: nil, ending_before: nil, has_more: nil, hierarchy_configuration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, prepaid_balance_threshold_configuration: nil, priority: nil, professional_services: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, revenue_system_configuration_schedule: nil, salesforce_opportunity_id: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, spend_trackers: nil, subscriptions: nil, total_contract_value: nil, uniqueness_key: nil)
226
241
  # Some parameter documentations has been truncated, see
227
242
  # {MetronomeSDK::Models::ContractV2} for more details.
228
243
  #
@@ -250,11 +265,13 @@ module MetronomeSDK
250
265
  #
251
266
  # @param archived_at [Time]
252
267
  #
268
+ # @param billing_provider_configuration_schedule [Array<MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule>] The schedule of billing provider configuration changes on the contract, ordered
269
+ #
253
270
  # @param credits [Array<MetronomeSDK::Models::ContractV2::Credit>]
254
271
  #
255
272
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
256
273
  #
257
- # @param customer_billing_provider_configuration [MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration] This field's availability is dependent on your client's configuration.
274
+ # @param customer_billing_provider_configuration [MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration]
258
275
  #
259
276
  # @param discounts [Array<MetronomeSDK::Models::Discount>] This field's availability is dependent on your client's configuration.
260
277
  #
@@ -286,6 +303,8 @@ module MetronomeSDK
286
303
  #
287
304
  # @param reseller_royalties [Array<MetronomeSDK::Models::ContractV2::ResellerRoyalty>] This field's availability is dependent on your client's configuration.
288
305
  #
306
+ # @param revenue_system_configuration_schedule [Array<MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule>] The schedule of revenue system configuration changes on the contract, ordered by
307
+ #
289
308
  # @param salesforce_opportunity_id [String] This field's availability is dependent on your client's configuration.
290
309
  #
291
310
  # @param scheduled_charges_on_usage_invoices [Symbol, MetronomeSDK::Models::ContractV2::ScheduledChargesOnUsageInvoices] Determines which scheduled and commit charges to consolidate onto the Contract's
@@ -371,6 +390,13 @@ module MetronomeSDK
371
390
  # @return [MetronomeSDK::Models::ContractV2::Commit::Contract, nil]
372
391
  optional :contract, -> { MetronomeSDK::ContractV2::Commit::Contract }
373
392
 
393
+ # @!attribute created_by
394
+ # The actor who created this commit. Omitted for system-generated commits such as
395
+ # recurring commits, rollover commits, and threshold commits.
396
+ #
397
+ # @return [String, nil]
398
+ optional :created_by, String
399
+
374
400
  # @!attribute custom_fields
375
401
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
376
402
  #
@@ -473,7 +499,7 @@ module MetronomeSDK
473
499
  # @return [MetronomeSDK::Models::RecurringCommitSubscriptionConfig, nil]
474
500
  optional :subscription_config, -> { MetronomeSDK::RecurringCommitSubscriptionConfig }
475
501
 
476
- # @!method initialize(id:, created_at:, product:, type:, access_schedule: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, archived_at: nil, balance: nil, contract: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, invoice_contract: nil, invoice_schedule: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, recurring_commit_id: nil, rolled_over_from: nil, rollover_fraction: nil, salesforce_opportunity_id: nil, specifiers: nil, spend_tracker_attributes: nil, subscription_config: nil)
502
+ # @!method initialize(id:, created_at:, product:, type:, access_schedule: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, archived_at: nil, balance: nil, contract: nil, created_by: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, invoice_contract: nil, invoice_schedule: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, recurring_commit_id: nil, rolled_over_from: nil, rollover_fraction: nil, salesforce_opportunity_id: nil, specifiers: nil, spend_tracker_attributes: nil, subscription_config: nil)
477
503
  # Some parameter documentations has been truncated, see
478
504
  # {MetronomeSDK::Models::ContractV2::Commit} for more details.
479
505
  #
@@ -499,6 +525,8 @@ module MetronomeSDK
499
525
  #
500
526
  # @param contract [MetronomeSDK::Models::ContractV2::Commit::Contract]
501
527
  #
528
+ # @param created_by [String] The actor who created this commit. Omitted for system-generated commits such as
529
+ #
502
530
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
503
531
  #
504
532
  # @param description [String]
@@ -1363,6 +1391,11 @@ module MetronomeSDK
1363
1391
  # @param type [Symbol, MetronomeSDK::Models::ContractV2::Override::Type]
1364
1392
 
1365
1393
  class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
1394
+ # @!attribute any_commit_or_credit_ids
1395
+ #
1396
+ # @return [Array<String>, nil]
1397
+ optional :any_commit_or_credit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1398
+
1366
1399
  # @!attribute billing_frequency
1367
1400
  #
1368
1401
  # @return [Symbol, MetronomeSDK::Models::ContractV2::Override::OverrideSpecifier::BillingFrequency, nil]
@@ -1399,7 +1432,8 @@ module MetronomeSDK
1399
1432
  # @return [Array<String>, nil]
1400
1433
  optional :recurring_commit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1401
1434
 
1402
- # @!method initialize(billing_frequency: nil, commit_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_ids: nil)
1435
+ # @!method initialize(any_commit_or_credit_ids: nil, billing_frequency: nil, commit_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_ids: nil)
1436
+ # @param any_commit_or_credit_ids [Array<String>]
1403
1437
  # @param billing_frequency [Symbol, MetronomeSDK::Models::ContractV2::Override::OverrideSpecifier::BillingFrequency]
1404
1438
  # @param commit_ids [Array<String>]
1405
1439
  # @param presentation_group_values [Hash{Symbol=>String, nil}]
@@ -1645,6 +1679,149 @@ module MetronomeSDK
1645
1679
  end
1646
1680
  end
1647
1681
 
1682
+ class BillingProviderConfigurationSchedule < MetronomeSDK::Internal::Type::BaseModel
1683
+ # @!attribute billing_provider_configuration
1684
+ #
1685
+ # @return [MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration]
1686
+ required :billing_provider_configuration,
1687
+ -> { MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration }
1688
+
1689
+ # @!attribute effective_at
1690
+ # The date this billing provider configuration became or becomes active.
1691
+ #
1692
+ # @return [Time]
1693
+ required :effective_at, Time
1694
+
1695
+ # @!attribute effective_until
1696
+ # The date this billing provider configuration is superseded by the next entry.
1697
+ # Null for the last entry in the schedule.
1698
+ #
1699
+ # @return [Time, nil]
1700
+ optional :effective_until, Time
1701
+
1702
+ # @!method initialize(billing_provider_configuration:, effective_at:, effective_until: nil)
1703
+ # Some parameter documentations has been truncated, see
1704
+ # {MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule} for
1705
+ # more details.
1706
+ #
1707
+ # @param billing_provider_configuration [MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration]
1708
+ #
1709
+ # @param effective_at [Time] The date this billing provider configuration became or becomes active.
1710
+ #
1711
+ # @param effective_until [Time] The date this billing provider configuration is superseded by the next entry. Nu
1712
+
1713
+ # @see MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule#billing_provider_configuration
1714
+ class BillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
1715
+ # @!attribute id
1716
+ # ID of this configuration; can be provided as the
1717
+ # billing_provider_configuration_id when creating a contract.
1718
+ #
1719
+ # @return [String]
1720
+ required :id, String
1721
+
1722
+ # @!attribute archived_at
1723
+ #
1724
+ # @return [Time, nil]
1725
+ required :archived_at, Time, nil?: true
1726
+
1727
+ # @!attribute billing_provider
1728
+ # The billing provider set for this configuration.
1729
+ #
1730
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider]
1731
+ required :billing_provider,
1732
+ enum: -> { MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider }
1733
+
1734
+ # @!attribute configuration
1735
+ # Configuration for the billing provider. The structure of this object is specific
1736
+ # to the billing provider.
1737
+ #
1738
+ # @return [Hash{Symbol=>Object}]
1739
+ required :configuration, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
1740
+
1741
+ # @!attribute customer_id
1742
+ #
1743
+ # @return [String]
1744
+ required :customer_id, String
1745
+
1746
+ # @!attribute delivery_method
1747
+ # The method to use for delivering invoices to this customer.
1748
+ #
1749
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod]
1750
+ required :delivery_method,
1751
+ enum: -> { MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod }
1752
+
1753
+ # @!attribute delivery_method_configuration
1754
+ # Configuration for the delivery method. The structure of this object is specific
1755
+ # to the delivery method.
1756
+ #
1757
+ # @return [Hash{Symbol=>Object}]
1758
+ required :delivery_method_configuration,
1759
+ MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
1760
+
1761
+ # @!attribute delivery_method_id
1762
+ # ID of the delivery method to use for this customer.
1763
+ #
1764
+ # @return [String]
1765
+ required :delivery_method_id, String
1766
+
1767
+ # @!method initialize(id:, archived_at:, billing_provider:, configuration:, customer_id:, delivery_method:, delivery_method_configuration:, delivery_method_id:)
1768
+ # Some parameter documentations has been truncated, see
1769
+ # {MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration}
1770
+ # for more details.
1771
+ #
1772
+ # @param id [String] ID of this configuration; can be provided as the billing*provider_configuration*
1773
+ #
1774
+ # @param archived_at [Time, nil]
1775
+ #
1776
+ # @param billing_provider [Symbol, MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider] The billing provider set for this configuration.
1777
+ #
1778
+ # @param configuration [Hash{Symbol=>Object}] Configuration for the billing provider. The structure of this object is specific
1779
+ #
1780
+ # @param customer_id [String]
1781
+ #
1782
+ # @param delivery_method [Symbol, MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod] The method to use for delivering invoices to this customer.
1783
+ #
1784
+ # @param delivery_method_configuration [Hash{Symbol=>Object}] Configuration for the delivery method. The structure of this object is specific
1785
+ #
1786
+ # @param delivery_method_id [String] ID of the delivery method to use for this customer.
1787
+
1788
+ # The billing provider set for this configuration.
1789
+ #
1790
+ # @see MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration#billing_provider
1791
+ module BillingProvider
1792
+ extend MetronomeSDK::Internal::Type::Enum
1793
+
1794
+ AWS_MARKETPLACE = :aws_marketplace
1795
+ STRIPE = :stripe
1796
+ NETSUITE = :netsuite
1797
+ CUSTOM = :custom
1798
+ AZURE_MARKETPLACE = :azure_marketplace
1799
+ QUICKBOOKS_ONLINE = :quickbooks_online
1800
+ WORKDAY = :workday
1801
+ GCP_MARKETPLACE = :gcp_marketplace
1802
+ METRONOME = :metronome
1803
+
1804
+ # @!method self.values
1805
+ # @return [Array<Symbol>]
1806
+ end
1807
+
1808
+ # The method to use for delivering invoices to this customer.
1809
+ #
1810
+ # @see MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration#delivery_method
1811
+ module DeliveryMethod
1812
+ extend MetronomeSDK::Internal::Type::Enum
1813
+
1814
+ DIRECT_TO_BILLING_PROVIDER = :direct_to_billing_provider
1815
+ AWS_SQS = :aws_sqs
1816
+ TACKLE = :tackle
1817
+ AWS_SNS = :aws_sns
1818
+
1819
+ # @!method self.values
1820
+ # @return [Array<Symbol>]
1821
+ end
1822
+ end
1823
+ end
1824
+
1648
1825
  class Credit < MetronomeSDK::Internal::Type::BaseModel
1649
1826
  # @!attribute id
1650
1827
  #
@@ -1714,6 +1891,13 @@ module MetronomeSDK
1714
1891
  # @return [Time, nil]
1715
1892
  optional :created_at, Time
1716
1893
 
1894
+ # @!attribute created_by
1895
+ # The actor who created this credit. Omitted for system-generated credits such as
1896
+ # recurring credits.
1897
+ #
1898
+ # @return [String, nil]
1899
+ optional :created_by, String
1900
+
1717
1901
  # @!attribute custom_fields
1718
1902
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1719
1903
  #
@@ -1788,7 +1972,7 @@ module MetronomeSDK
1788
1972
  # @return [MetronomeSDK::Models::RecurringCommitSubscriptionConfig, nil]
1789
1973
  optional :subscription_config, -> { MetronomeSDK::RecurringCommitSubscriptionConfig }
1790
1974
 
1791
- # @!method initialize(id:, product:, type:, access_schedule: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, archived_at: nil, balance: nil, contract: nil, created_at: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, recurring_credit_id: nil, rolled_over_from: nil, salesforce_opportunity_id: nil, specifiers: nil, subscription_config: nil)
1975
+ # @!method initialize(id:, product:, type:, access_schedule: nil, applicable_contract_ids: nil, applicable_product_ids: nil, applicable_product_tags: nil, archived_at: nil, balance: nil, contract: nil, created_at: nil, created_by: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, ledger: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, recurring_credit_id: nil, rolled_over_from: nil, salesforce_opportunity_id: nil, specifiers: nil, subscription_config: nil)
1792
1976
  # Some parameter documentations has been truncated, see
1793
1977
  # {MetronomeSDK::Models::ContractV2::Credit} for more details.
1794
1978
  #
@@ -1814,6 +1998,8 @@ module MetronomeSDK
1814
1998
  #
1815
1999
  # @param created_at [Time] Timestamp of when the credit was created.
1816
2000
  #
2001
+ # @param created_by [String] The actor who created this credit. Omitted for system-generated credits such as
2002
+ #
1817
2003
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
1818
2004
  #
1819
2005
  # @param description [String]
@@ -2268,32 +2454,80 @@ module MetronomeSDK
2268
2454
  # @see MetronomeSDK::Models::ContractV2#customer_billing_provider_configuration
2269
2455
  class CustomerBillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
2270
2456
  # @!attribute id
2271
- # ID of Customer's billing provider configuration.
2457
+ # ID of this configuration; can be provided as the
2458
+ # billing_provider_configuration_id when creating a contract.
2272
2459
  #
2273
2460
  # @return [String]
2274
2461
  required :id, String
2275
2462
 
2463
+ # @!attribute archived_at
2464
+ #
2465
+ # @return [Time, nil]
2466
+ required :archived_at, Time, nil?: true
2467
+
2276
2468
  # @!attribute billing_provider
2469
+ # The billing provider set for this configuration.
2277
2470
  #
2278
2471
  # @return [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::BillingProvider]
2279
2472
  required :billing_provider,
2280
2473
  enum: -> { MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::BillingProvider }
2281
2474
 
2475
+ # @!attribute configuration
2476
+ # Configuration for the billing provider. The structure of this object is specific
2477
+ # to the billing provider.
2478
+ #
2479
+ # @return [Hash{Symbol=>Object}]
2480
+ required :configuration, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
2481
+
2482
+ # @!attribute customer_id
2483
+ #
2484
+ # @return [String]
2485
+ required :customer_id, String
2486
+
2282
2487
  # @!attribute delivery_method
2488
+ # The method to use for delivering invoices to this customer.
2283
2489
  #
2284
2490
  # @return [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod]
2285
2491
  required :delivery_method,
2286
2492
  enum: -> { MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod }
2287
2493
 
2288
- # @!method initialize(id:, billing_provider:, delivery_method:)
2289
- # This field's availability is dependent on your client's configuration.
2494
+ # @!attribute delivery_method_configuration
2495
+ # Configuration for the delivery method. The structure of this object is specific
2496
+ # to the delivery method.
2497
+ #
2498
+ # @return [Hash{Symbol=>Object}]
2499
+ required :delivery_method_configuration,
2500
+ MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
2501
+
2502
+ # @!attribute delivery_method_id
2503
+ # ID of the delivery method to use for this customer.
2504
+ #
2505
+ # @return [String]
2506
+ required :delivery_method_id, String
2507
+
2508
+ # @!method initialize(id:, archived_at:, billing_provider:, configuration:, customer_id:, delivery_method:, delivery_method_configuration:, delivery_method_id:)
2509
+ # Some parameter documentations has been truncated, see
2510
+ # {MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration} for
2511
+ # more details.
2290
2512
  #
2291
- # @param id [String] ID of Customer's billing provider configuration.
2513
+ # @param id [String] ID of this configuration; can be provided as the billing*provider_configuration*
2292
2514
  #
2293
- # @param billing_provider [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::BillingProvider]
2515
+ # @param archived_at [Time, nil]
2294
2516
  #
2295
- # @param delivery_method [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod]
2517
+ # @param billing_provider [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::BillingProvider] The billing provider set for this configuration.
2518
+ #
2519
+ # @param configuration [Hash{Symbol=>Object}] Configuration for the billing provider. The structure of this object is specific
2520
+ #
2521
+ # @param customer_id [String]
2522
+ #
2523
+ # @param delivery_method [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod] The method to use for delivering invoices to this customer.
2524
+ #
2525
+ # @param delivery_method_configuration [Hash{Symbol=>Object}] Configuration for the delivery method. The structure of this object is specific
2526
+ #
2527
+ # @param delivery_method_id [String] ID of the delivery method to use for this customer.
2296
2528
 
2529
+ # The billing provider set for this configuration.
2530
+ #
2297
2531
  # @see MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration#billing_provider
2298
2532
  module BillingProvider
2299
2533
  extend MetronomeSDK::Internal::Type::Enum
@@ -2312,6 +2546,8 @@ module MetronomeSDK
2312
2546
  # @return [Array<Symbol>]
2313
2547
  end
2314
2548
 
2549
+ # The method to use for delivering invoices to this customer.
2550
+ #
2315
2551
  # @see MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration#delivery_method
2316
2552
  module DeliveryMethod
2317
2553
  extend MetronomeSDK::Internal::Type::Enum
@@ -2663,6 +2899,14 @@ module MetronomeSDK
2663
2899
  # @return [Symbol, MetronomeSDK::Models::ContractV2::RecurringCommit::Proration, nil]
2664
2900
  optional :proration, enum: -> { MetronomeSDK::ContractV2::RecurringCommit::Proration }
2665
2901
 
2902
+ # @!attribute proration_rounding
2903
+ # Rounding configuration for prorated recurring commit amounts.
2904
+ #
2905
+ # @return [MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding, nil]
2906
+ optional :proration_rounding,
2907
+ -> { MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding },
2908
+ nil?: true
2909
+
2666
2910
  # @!attribute recurrence_frequency
2667
2911
  # The frequency at which the recurring commits will be created. If not provided: -
2668
2912
  # The commits will be created on the usage invoice frequency. If provided: - The
@@ -2696,7 +2940,7 @@ module MetronomeSDK
2696
2940
  # @return [MetronomeSDK::Models::RecurringCommitSubscriptionConfig, nil]
2697
2941
  optional :subscription_config, -> { MetronomeSDK::RecurringCommitSubscriptionConfig }
2698
2942
 
2699
- # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, contract: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil)
2943
+ # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, contract: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, invoice_amount: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, proration_rounding: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil)
2700
2944
  # Some parameter documentations has been truncated, see
2701
2945
  # {MetronomeSDK::Models::ContractV2::RecurringCommit} for more details.
2702
2946
  #
@@ -2734,6 +2978,8 @@ module MetronomeSDK
2734
2978
  #
2735
2979
  # @param proration [Symbol, MetronomeSDK::Models::ContractV2::RecurringCommit::Proration] Determines whether the first and last commit will be prorated. If not provided,
2736
2980
  #
2981
+ # @param proration_rounding [MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding, nil] Rounding configuration for prorated recurring commit amounts.
2982
+ #
2737
2983
  # @param recurrence_frequency [Symbol, MetronomeSDK::Models::ContractV2::RecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
2738
2984
  #
2739
2985
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
@@ -2878,6 +3124,101 @@ module MetronomeSDK
2878
3124
  # @return [Array<Symbol>]
2879
3125
  end
2880
3126
 
3127
+ # @see MetronomeSDK::Models::ContractV2::RecurringCommit#proration_rounding
3128
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
3129
+ # @!attribute access
3130
+ #
3131
+ # @return [MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Access, nil]
3132
+ optional :access, -> { MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding::Access }
3133
+
3134
+ # @!attribute invoice
3135
+ #
3136
+ # @return [MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Invoice, nil]
3137
+ optional :invoice, -> { MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding::Invoice }
3138
+
3139
+ # @!method initialize(access: nil, invoice: nil)
3140
+ # Rounding configuration for prorated recurring commit amounts.
3141
+ #
3142
+ # @param access [MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Access]
3143
+ # @param invoice [MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Invoice]
3144
+
3145
+ # @see MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding#access
3146
+ class Access < MetronomeSDK::Internal::Type::BaseModel
3147
+ # @!attribute decimal_places
3148
+ # Number of decimal places to round to. Applied directly to the stored monetary
3149
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
3150
+ # nearest 100 in the stored unit).
3151
+ #
3152
+ # @return [Float]
3153
+ required :decimal_places, Float
3154
+
3155
+ # @!attribute rounding_method
3156
+ #
3157
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Access::RoundingMethod]
3158
+ required :rounding_method,
3159
+ enum: -> { MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding::Access::RoundingMethod }
3160
+
3161
+ # @!method initialize(decimal_places:, rounding_method:)
3162
+ # Some parameter documentations has been truncated, see
3163
+ # {MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Access}
3164
+ # for more details.
3165
+ #
3166
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
3167
+ #
3168
+ # @param rounding_method [Symbol, MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Access::RoundingMethod]
3169
+
3170
+ # @see MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Access#rounding_method
3171
+ module RoundingMethod
3172
+ extend MetronomeSDK::Internal::Type::Enum
3173
+
3174
+ HALF_UP = :HALF_UP
3175
+ FLOOR = :FLOOR
3176
+ CEILING = :CEILING
3177
+
3178
+ # @!method self.values
3179
+ # @return [Array<Symbol>]
3180
+ end
3181
+ end
3182
+
3183
+ # @see MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding#invoice
3184
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
3185
+ # @!attribute decimal_places
3186
+ # Number of decimal places to round to. Applied directly to the stored monetary
3187
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
3188
+ # nearest 100 in the stored unit).
3189
+ #
3190
+ # @return [Float]
3191
+ required :decimal_places, Float
3192
+
3193
+ # @!attribute rounding_method
3194
+ #
3195
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Invoice::RoundingMethod]
3196
+ required :rounding_method,
3197
+ enum: -> { MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding::Invoice::RoundingMethod }
3198
+
3199
+ # @!method initialize(decimal_places:, rounding_method:)
3200
+ # Some parameter documentations has been truncated, see
3201
+ # {MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Invoice}
3202
+ # for more details.
3203
+ #
3204
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
3205
+ #
3206
+ # @param rounding_method [Symbol, MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Invoice::RoundingMethod]
3207
+
3208
+ # @see MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Invoice#rounding_method
3209
+ module RoundingMethod
3210
+ extend MetronomeSDK::Internal::Type::Enum
3211
+
3212
+ HALF_UP = :HALF_UP
3213
+ FLOOR = :FLOOR
3214
+ CEILING = :CEILING
3215
+
3216
+ # @!method self.values
3217
+ # @return [Array<Symbol>]
3218
+ end
3219
+ end
3220
+ end
3221
+
2881
3222
  # The frequency at which the recurring commits will be created. If not provided: -
2882
3223
  # The commits will be created on the usage invoice frequency. If provided: - The
2883
3224
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -2892,6 +3233,7 @@ module MetronomeSDK
2892
3233
  QUARTERLY = :QUARTERLY
2893
3234
  ANNUAL = :ANNUAL
2894
3235
  WEEKLY = :WEEKLY
3236
+ DAILY = :DAILY
2895
3237
 
2896
3238
  # @!method self.values
2897
3239
  # @return [Array<Symbol>]
@@ -2993,6 +3335,14 @@ module MetronomeSDK
2993
3335
  # @return [Symbol, MetronomeSDK::Models::ContractV2::RecurringCredit::Proration, nil]
2994
3336
  optional :proration, enum: -> { MetronomeSDK::ContractV2::RecurringCredit::Proration }
2995
3337
 
3338
+ # @!attribute proration_rounding
3339
+ # Rounding configuration for prorated recurring credit amounts.
3340
+ #
3341
+ # @return [MetronomeSDK::Models::ContractV2::RecurringCredit::ProrationRounding, nil]
3342
+ optional :proration_rounding,
3343
+ -> { MetronomeSDK::ContractV2::RecurringCredit::ProrationRounding },
3344
+ nil?: true
3345
+
2996
3346
  # @!attribute recurrence_frequency
2997
3347
  # The frequency at which the recurring commits will be created. If not provided: -
2998
3348
  # The commits will be created on the usage invoice frequency. If provided: - The
@@ -3026,7 +3376,7 @@ module MetronomeSDK
3026
3376
  # @return [MetronomeSDK::Models::RecurringCommitSubscriptionConfig, nil]
3027
3377
  optional :subscription_config, -> { MetronomeSDK::RecurringCommitSubscriptionConfig }
3028
3378
 
3029
- # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, contract: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil)
3379
+ # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at:, applicable_product_ids: nil, applicable_product_tags: nil, contract: nil, description: nil, ending_before: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, proration: nil, proration_rounding: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil)
3030
3380
  # Some parameter documentations has been truncated, see
3031
3381
  # {MetronomeSDK::Models::ContractV2::RecurringCredit} for more details.
3032
3382
  #
@@ -3062,6 +3412,8 @@ module MetronomeSDK
3062
3412
  #
3063
3413
  # @param proration [Symbol, MetronomeSDK::Models::ContractV2::RecurringCredit::Proration] Determines whether the first and last commit will be prorated. If not provided,
3064
3414
  #
3415
+ # @param proration_rounding [MetronomeSDK::Models::ContractV2::RecurringCredit::ProrationRounding, nil] Rounding configuration for prorated recurring credit amounts.
3416
+ #
3065
3417
  # @param recurrence_frequency [Symbol, MetronomeSDK::Models::ContractV2::RecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
3066
3418
  #
3067
3419
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
@@ -3181,6 +3533,57 @@ module MetronomeSDK
3181
3533
  # @return [Array<Symbol>]
3182
3534
  end
3183
3535
 
3536
+ # @see MetronomeSDK::Models::ContractV2::RecurringCredit#proration_rounding
3537
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
3538
+ # @!attribute access
3539
+ #
3540
+ # @return [MetronomeSDK::Models::ContractV2::RecurringCredit::ProrationRounding::Access, nil]
3541
+ optional :access, -> { MetronomeSDK::ContractV2::RecurringCredit::ProrationRounding::Access }
3542
+
3543
+ # @!method initialize(access: nil)
3544
+ # Rounding configuration for prorated recurring credit amounts.
3545
+ #
3546
+ # @param access [MetronomeSDK::Models::ContractV2::RecurringCredit::ProrationRounding::Access]
3547
+
3548
+ # @see MetronomeSDK::Models::ContractV2::RecurringCredit::ProrationRounding#access
3549
+ class Access < MetronomeSDK::Internal::Type::BaseModel
3550
+ # @!attribute decimal_places
3551
+ # Number of decimal places to round to. Applied directly to the stored monetary
3552
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
3553
+ # nearest 100 in the stored unit).
3554
+ #
3555
+ # @return [Float]
3556
+ required :decimal_places, Float
3557
+
3558
+ # @!attribute rounding_method
3559
+ #
3560
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::RecurringCredit::ProrationRounding::Access::RoundingMethod]
3561
+ required :rounding_method,
3562
+ enum: -> { MetronomeSDK::ContractV2::RecurringCredit::ProrationRounding::Access::RoundingMethod }
3563
+
3564
+ # @!method initialize(decimal_places:, rounding_method:)
3565
+ # Some parameter documentations has been truncated, see
3566
+ # {MetronomeSDK::Models::ContractV2::RecurringCredit::ProrationRounding::Access}
3567
+ # for more details.
3568
+ #
3569
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
3570
+ #
3571
+ # @param rounding_method [Symbol, MetronomeSDK::Models::ContractV2::RecurringCredit::ProrationRounding::Access::RoundingMethod]
3572
+
3573
+ # @see MetronomeSDK::Models::ContractV2::RecurringCredit::ProrationRounding::Access#rounding_method
3574
+ module RoundingMethod
3575
+ extend MetronomeSDK::Internal::Type::Enum
3576
+
3577
+ HALF_UP = :HALF_UP
3578
+ FLOOR = :FLOOR
3579
+ CEILING = :CEILING
3580
+
3581
+ # @!method self.values
3582
+ # @return [Array<Symbol>]
3583
+ end
3584
+ end
3585
+ end
3586
+
3184
3587
  # The frequency at which the recurring commits will be created. If not provided: -
3185
3588
  # The commits will be created on the usage invoice frequency. If provided: - The
3186
3589
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -3195,6 +3598,7 @@ module MetronomeSDK
3195
3598
  QUARTERLY = :QUARTERLY
3196
3599
  ANNUAL = :ANNUAL
3197
3600
  WEEKLY = :WEEKLY
3601
+ DAILY = :DAILY
3198
3602
 
3199
3603
  # @!method self.values
3200
3604
  # @return [Array<Symbol>]
@@ -3326,6 +3730,140 @@ module MetronomeSDK
3326
3730
  end
3327
3731
  end
3328
3732
 
3733
+ class RevenueSystemConfigurationSchedule < MetronomeSDK::Internal::Type::BaseModel
3734
+ # @!attribute effective_at
3735
+ # The date this revenue system configuration became or becomes active.
3736
+ #
3737
+ # @return [Time]
3738
+ required :effective_at, Time
3739
+
3740
+ # @!attribute revenue_system_configuration
3741
+ #
3742
+ # @return [MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration]
3743
+ required :revenue_system_configuration,
3744
+ -> { MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration }
3745
+
3746
+ # @!attribute effective_until
3747
+ # The date this revenue system configuration is superseded by the next entry. Null
3748
+ # for the last entry in the schedule.
3749
+ #
3750
+ # @return [Time, nil]
3751
+ optional :effective_until, Time
3752
+
3753
+ # @!method initialize(effective_at:, revenue_system_configuration:, effective_until: nil)
3754
+ # Some parameter documentations has been truncated, see
3755
+ # {MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule} for more
3756
+ # details.
3757
+ #
3758
+ # @param effective_at [Time] The date this revenue system configuration became or becomes active.
3759
+ #
3760
+ # @param revenue_system_configuration [MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration]
3761
+ #
3762
+ # @param effective_until [Time] The date this revenue system configuration is superseded by the next entry. Null
3763
+
3764
+ # @see MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule#revenue_system_configuration
3765
+ class RevenueSystemConfiguration < MetronomeSDK::Internal::Type::BaseModel
3766
+ # @!attribute id
3767
+ # ID of the revenue system configuration.
3768
+ #
3769
+ # @return [String]
3770
+ required :id, String
3771
+
3772
+ # @!attribute configuration
3773
+ # Configuration for the revenue system. The structure of this object is specific
3774
+ # to the provider.
3775
+ #
3776
+ # @return [Hash{Symbol=>Object}]
3777
+ required :configuration, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
3778
+
3779
+ # @!attribute customer_id
3780
+ #
3781
+ # @return [String]
3782
+ required :customer_id, String
3783
+
3784
+ # @!attribute delivery_method_id
3785
+ # ID of the delivery method used for this customer configuration.
3786
+ #
3787
+ # @return [String]
3788
+ required :delivery_method_id, String
3789
+
3790
+ # @!attribute provider
3791
+ # The revenue system provider (e.g. netsuite).
3792
+ #
3793
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider]
3794
+ required :provider,
3795
+ enum: -> { MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider }
3796
+
3797
+ # @!attribute archived_at
3798
+ #
3799
+ # @return [Time, nil]
3800
+ optional :archived_at, Time, nil?: true
3801
+
3802
+ # @!attribute delivery_method
3803
+ # The method to use for delivering data to the revenue system.
3804
+ #
3805
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod, nil]
3806
+ optional :delivery_method,
3807
+ enum: -> { MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod }
3808
+
3809
+ # @!attribute delivery_method_configuration
3810
+ # Configuration for the delivery method. The structure of this object is specific
3811
+ # to the delivery method.
3812
+ #
3813
+ # @return [Hash{Symbol=>Object}, nil]
3814
+ optional :delivery_method_configuration,
3815
+ MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
3816
+
3817
+ # @!method initialize(id:, configuration:, customer_id:, delivery_method_id:, provider:, archived_at: nil, delivery_method: nil, delivery_method_configuration: nil)
3818
+ # Some parameter documentations has been truncated, see
3819
+ # {MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration}
3820
+ # for more details.
3821
+ #
3822
+ # @param id [String] ID of the revenue system configuration.
3823
+ #
3824
+ # @param configuration [Hash{Symbol=>Object}] Configuration for the revenue system. The structure of this object is specific t
3825
+ #
3826
+ # @param customer_id [String]
3827
+ #
3828
+ # @param delivery_method_id [String] ID of the delivery method used for this customer configuration.
3829
+ #
3830
+ # @param provider [Symbol, MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider] The revenue system provider (e.g. netsuite).
3831
+ #
3832
+ # @param archived_at [Time, nil]
3833
+ #
3834
+ # @param delivery_method [Symbol, MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod] The method to use for delivering data to the revenue system.
3835
+ #
3836
+ # @param delivery_method_configuration [Hash{Symbol=>Object}] Configuration for the delivery method. The structure of this object is specific
3837
+
3838
+ # The revenue system provider (e.g. netsuite).
3839
+ #
3840
+ # @see MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration#provider
3841
+ module Provider
3842
+ extend MetronomeSDK::Internal::Type::Enum
3843
+
3844
+ NETSUITE = :netsuite
3845
+
3846
+ # @!method self.values
3847
+ # @return [Array<Symbol>]
3848
+ end
3849
+
3850
+ # The method to use for delivering data to the revenue system.
3851
+ #
3852
+ # @see MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration#delivery_method
3853
+ module DeliveryMethod
3854
+ extend MetronomeSDK::Internal::Type::Enum
3855
+
3856
+ DIRECT_TO_BILLING_PROVIDER = :direct_to_billing_provider
3857
+ AWS_SQS = :aws_sqs
3858
+ TACKLE = :tackle
3859
+ AWS_SNS = :aws_sns
3860
+
3861
+ # @!method self.values
3862
+ # @return [Array<Symbol>]
3863
+ end
3864
+ end
3865
+ end
3866
+
3329
3867
  # Determines which scheduled and commit charges to consolidate onto the Contract's
3330
3868
  # usage invoice. The charge's `timestamp` must match the usage invoice's
3331
3869
  # `ending_before` date for consolidation to occur. This field cannot be modified
@@ -3527,6 +4065,11 @@ module MetronomeSDK
3527
4065
  # @return [String, nil]
3528
4066
  optional :id, String
3529
4067
 
4068
+ # @!attribute billing_cycle_config
4069
+ #
4070
+ # @return [MetronomeSDK::Models::ContractV2::Subscription::BillingCycleConfig, nil]
4071
+ optional :billing_cycle_config, -> { MetronomeSDK::ContractV2::Subscription::BillingCycleConfig }
4072
+
3530
4073
  # @!attribute custom_fields
3531
4074
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
3532
4075
  #
@@ -3558,7 +4101,7 @@ module MetronomeSDK
3558
4101
  # @return [MetronomeSDK::Models::ContractV2::Subscription::SeatConfig, nil]
3559
4102
  optional :seat_config, -> { MetronomeSDK::ContractV2::Subscription::SeatConfig }
3560
4103
 
3561
- # @!method initialize(billing_periods:, collection_schedule:, proration:, quantity_management_mode:, quantity_schedule:, starting_at:, subscription_rate:, id: nil, custom_fields: nil, description: nil, ending_before: nil, fiat_credit_type_id: nil, name: nil, seat_config: nil)
4104
+ # @!method initialize(billing_periods:, collection_schedule:, proration:, quantity_management_mode:, quantity_schedule:, starting_at:, subscription_rate:, id: nil, billing_cycle_config: nil, custom_fields: nil, description: nil, ending_before: nil, fiat_credit_type_id: nil, name: nil, seat_config: nil)
3562
4105
  # Some parameter documentations has been truncated, see
3563
4106
  # {MetronomeSDK::Models::ContractV2::Subscription} for more details.
3564
4107
  #
@@ -3578,6 +4121,8 @@ module MetronomeSDK
3578
4121
  #
3579
4122
  # @param id [String]
3580
4123
  #
4124
+ # @param billing_cycle_config [MetronomeSDK::Models::ContractV2::Subscription::BillingCycleConfig]
4125
+ #
3581
4126
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
3582
4127
  #
3583
4128
  # @param description [String]
@@ -3694,9 +4239,15 @@ module MetronomeSDK
3694
4239
  # @return [Boolean]
3695
4240
  required :is_prorated, MetronomeSDK::Internal::Type::Boolean
3696
4241
 
3697
- # @!method initialize(invoice_behavior:, is_prorated:)
4242
+ # @!attribute rounding
4243
+ #
4244
+ # @return [MetronomeSDK::Models::ContractV2::Subscription::Proration::Rounding, nil]
4245
+ optional :rounding, -> { MetronomeSDK::ContractV2::Subscription::Proration::Rounding }
4246
+
4247
+ # @!method initialize(invoice_behavior:, is_prorated:, rounding: nil)
3698
4248
  # @param invoice_behavior [Symbol, MetronomeSDK::Models::ContractV2::Subscription::Proration::InvoiceBehavior]
3699
4249
  # @param is_prorated [Boolean]
4250
+ # @param rounding [MetronomeSDK::Models::ContractV2::Subscription::Proration::Rounding]
3700
4251
 
3701
4252
  # @see MetronomeSDK::Models::ContractV2::Subscription::Proration#invoice_behavior
3702
4253
  module InvoiceBehavior
@@ -3708,6 +4259,44 @@ module MetronomeSDK
3708
4259
  # @!method self.values
3709
4260
  # @return [Array<Symbol>]
3710
4261
  end
4262
+
4263
+ # @see MetronomeSDK::Models::ContractV2::Subscription::Proration#rounding
4264
+ class Rounding < MetronomeSDK::Internal::Type::BaseModel
4265
+ # @!attribute decimal_places
4266
+ # Number of decimal places to round to. Applied directly to the stored monetary
4267
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4268
+ # nearest 100 in the stored unit).
4269
+ #
4270
+ # @return [Float]
4271
+ required :decimal_places, Float
4272
+
4273
+ # @!attribute rounding_method
4274
+ #
4275
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::Subscription::Proration::Rounding::RoundingMethod]
4276
+ required :rounding_method,
4277
+ enum: -> { MetronomeSDK::ContractV2::Subscription::Proration::Rounding::RoundingMethod }
4278
+
4279
+ # @!method initialize(decimal_places:, rounding_method:)
4280
+ # Some parameter documentations has been truncated, see
4281
+ # {MetronomeSDK::Models::ContractV2::Subscription::Proration::Rounding} for more
4282
+ # details.
4283
+ #
4284
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
4285
+ #
4286
+ # @param rounding_method [Symbol, MetronomeSDK::Models::ContractV2::Subscription::Proration::Rounding::RoundingMethod]
4287
+
4288
+ # @see MetronomeSDK::Models::ContractV2::Subscription::Proration::Rounding#rounding_method
4289
+ module RoundingMethod
4290
+ extend MetronomeSDK::Internal::Type::Enum
4291
+
4292
+ HALF_UP = :HALF_UP
4293
+ FLOOR = :FLOOR
4294
+ CEILING = :CEILING
4295
+
4296
+ # @!method self.values
4297
+ # @return [Array<Symbol>]
4298
+ end
4299
+ end
3711
4300
  end
3712
4301
 
3713
4302
  # Determines how the subscription's quantity is controlled. Defaults to
@@ -3801,6 +4390,46 @@ module MetronomeSDK
3801
4390
  end
3802
4391
  end
3803
4392
 
4393
+ # @see MetronomeSDK::Models::ContractV2::Subscription#billing_cycle_config
4394
+ class BillingCycleConfig < MetronomeSDK::Internal::Type::BaseModel
4395
+ # @!attribute anchor_date
4396
+ # The date this subscription's billing cycle is anchored to.
4397
+ #
4398
+ # @return [Time]
4399
+ required :anchor_date, Time
4400
+
4401
+ # @!attribute invoice_placement
4402
+ # Controls whether this subscription consolidates onto usage invoices or gets its
4403
+ # own scheduled invoice.
4404
+ #
4405
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::Subscription::BillingCycleConfig::InvoicePlacement]
4406
+ required :invoice_placement,
4407
+ enum: -> { MetronomeSDK::ContractV2::Subscription::BillingCycleConfig::InvoicePlacement }
4408
+
4409
+ # @!method initialize(anchor_date:, invoice_placement:)
4410
+ # Some parameter documentations has been truncated, see
4411
+ # {MetronomeSDK::Models::ContractV2::Subscription::BillingCycleConfig} for more
4412
+ # details.
4413
+ #
4414
+ # @param anchor_date [Time] The date this subscription's billing cycle is anchored to.
4415
+ #
4416
+ # @param invoice_placement [Symbol, MetronomeSDK::Models::ContractV2::Subscription::BillingCycleConfig::InvoicePlacement] Controls whether this subscription consolidates onto usage invoices or gets its
4417
+
4418
+ # Controls whether this subscription consolidates onto usage invoices or gets its
4419
+ # own scheduled invoice.
4420
+ #
4421
+ # @see MetronomeSDK::Models::ContractV2::Subscription::BillingCycleConfig#invoice_placement
4422
+ module InvoicePlacement
4423
+ extend MetronomeSDK::Internal::Type::Enum
4424
+
4425
+ ON_SCHEDULED_INVOICE = :ON_SCHEDULED_INVOICE
4426
+ ON_USAGE_INVOICE = :ON_USAGE_INVOICE
4427
+
4428
+ # @!method self.values
4429
+ # @return [Array<Symbol>]
4430
+ end
4431
+ end
4432
+
3804
4433
  # @see MetronomeSDK::Models::ContractV2::Subscription#seat_config
3805
4434
  class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
3806
4435
  # @!attribute seat_group_key