metronome-sdk 3.8.0 → 3.10.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/models/commit.rb +9 -1
  5. data/lib/metronome_sdk/models/contract.rb +46 -16
  6. data/lib/metronome_sdk/models/contract_v2.rb +378 -15
  7. data/lib/metronome_sdk/models/contract_without_amendments.rb +8 -5
  8. data/lib/metronome_sdk/models/v1/contract_create_params.rb +8 -5
  9. data/lib/metronome_sdk/models/v1/contract_create_response.rb +73 -18
  10. data/lib/metronome_sdk/models/v1/contracts/rate_card_update_params.rb +27 -1
  11. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +32 -5
  12. data/lib/metronome_sdk/models/v1/package_create_params.rb +8 -4
  13. data/lib/metronome_sdk/models/v1/package_list_response.rb +8 -4
  14. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +8 -4
  15. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +11 -1
  16. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +11 -1
  17. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +14 -8
  18. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +8 -4
  19. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +8 -4
  20. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +11 -14
  21. data/lib/metronome_sdk/resources/v1/dashboards.rb +6 -9
  22. data/lib/metronome_sdk/resources/v2/contracts.rb +6 -2
  23. data/lib/metronome_sdk/version.rb +1 -1
  24. data/rbi/metronome_sdk/models/commit.rbi +11 -0
  25. data/rbi/metronome_sdk/models/contract.rbi +47 -22
  26. data/rbi/metronome_sdk/models/contract_v2.rbi +711 -19
  27. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +12 -11
  28. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +12 -11
  29. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +72 -43
  30. data/rbi/metronome_sdk/models/v1/contracts/rate_card_update_params.rbi +67 -0
  31. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +96 -5
  32. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +12 -6
  33. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +12 -6
  34. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +12 -6
  35. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +12 -0
  36. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +12 -0
  37. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +28 -18
  38. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +12 -6
  39. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +12 -6
  40. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +15 -13
  41. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +6 -9
  42. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  43. data/sig/metronome_sdk/models/commit.rbs +7 -0
  44. data/sig/metronome_sdk/models/contract.rbs +22 -11
  45. data/sig/metronome_sdk/models/contract_v2.rbs +289 -5
  46. data/sig/metronome_sdk/models/contract_without_amendments.rbs +1 -2
  47. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +1 -2
  48. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +31 -17
  49. data/sig/metronome_sdk/models/v1/contracts/rate_card_update_params.rbs +28 -0
  50. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +39 -4
  51. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +5 -0
  52. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +5 -0
  53. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +12 -14
  54. data/sig/metronome_sdk/resources/v1/contracts/rate_cards.rbs +1 -0
  55. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  56. metadata +2 -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,12 @@ module MetronomeSDK
371
390
  # @return [MetronomeSDK::Models::ContractV2::Commit::Contract, nil]
372
391
  optional :contract, -> { MetronomeSDK::ContractV2::Commit::Contract }
373
392
 
393
+ # @!attribute cost_basis
394
+ # The ratio of the amount paid for the commit to the amount of credit granted.
395
+ #
396
+ # @return [Float, nil]
397
+ optional :cost_basis, Float
398
+
374
399
  # @!attribute created_by
375
400
  # The actor who created this commit. Omitted for system-generated commits such as
376
401
  # recurring commits, rollover commits, and threshold commits.
@@ -480,7 +505,7 @@ module MetronomeSDK
480
505
  # @return [MetronomeSDK::Models::RecurringCommitSubscriptionConfig, nil]
481
506
  optional :subscription_config, -> { MetronomeSDK::RecurringCommitSubscriptionConfig }
482
507
 
483
- # @!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)
508
+ # @!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, cost_basis: 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)
484
509
  # Some parameter documentations has been truncated, see
485
510
  # {MetronomeSDK::Models::ContractV2::Commit} for more details.
486
511
  #
@@ -506,6 +531,8 @@ module MetronomeSDK
506
531
  #
507
532
  # @param contract [MetronomeSDK::Models::ContractV2::Commit::Contract]
508
533
  #
534
+ # @param cost_basis [Float] The ratio of the amount paid for the commit to the amount of credit granted.
535
+ #
509
536
  # @param created_by [String] The actor who created this commit. Omitted for system-generated commits such as
510
537
  #
511
538
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
@@ -1582,7 +1609,6 @@ module MetronomeSDK
1582
1609
  module Type
1583
1610
  extend MetronomeSDK::Internal::Type::Enum
1584
1611
 
1585
- SUPERSEDE = :SUPERSEDE
1586
1612
  RENEWAL = :RENEWAL
1587
1613
 
1588
1614
  # @!method self.values
@@ -1660,6 +1686,152 @@ module MetronomeSDK
1660
1686
  end
1661
1687
  end
1662
1688
 
1689
+ class BillingProviderConfigurationSchedule < MetronomeSDK::Internal::Type::BaseModel
1690
+ # @!attribute billing_provider_configuration
1691
+ #
1692
+ # @return [MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration, nil]
1693
+ required :billing_provider_configuration,
1694
+ -> {
1695
+ MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration
1696
+ },
1697
+ nil?: true
1698
+
1699
+ # @!attribute effective_at
1700
+ # The date this billing provider configuration became or becomes active.
1701
+ #
1702
+ # @return [Time]
1703
+ required :effective_at, Time
1704
+
1705
+ # @!attribute effective_until
1706
+ # The date this billing provider configuration is superseded by the next entry.
1707
+ # Null for the last entry in the schedule.
1708
+ #
1709
+ # @return [Time, nil]
1710
+ optional :effective_until, Time
1711
+
1712
+ # @!method initialize(billing_provider_configuration:, effective_at:, effective_until: nil)
1713
+ # Some parameter documentations has been truncated, see
1714
+ # {MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule} for
1715
+ # more details.
1716
+ #
1717
+ # @param billing_provider_configuration [MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration, nil]
1718
+ #
1719
+ # @param effective_at [Time] The date this billing provider configuration became or becomes active.
1720
+ #
1721
+ # @param effective_until [Time] The date this billing provider configuration is superseded by the next entry. Nu
1722
+
1723
+ # @see MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule#billing_provider_configuration
1724
+ class BillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
1725
+ # @!attribute id
1726
+ # ID of this configuration; can be provided as the
1727
+ # billing_provider_configuration_id when creating a contract.
1728
+ #
1729
+ # @return [String]
1730
+ required :id, String
1731
+
1732
+ # @!attribute archived_at
1733
+ #
1734
+ # @return [Time, nil]
1735
+ required :archived_at, Time, nil?: true
1736
+
1737
+ # @!attribute billing_provider
1738
+ # The billing provider set for this configuration.
1739
+ #
1740
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider]
1741
+ required :billing_provider,
1742
+ enum: -> { MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider }
1743
+
1744
+ # @!attribute configuration
1745
+ # Configuration for the billing provider. The structure of this object is specific
1746
+ # to the billing provider.
1747
+ #
1748
+ # @return [Hash{Symbol=>Object}]
1749
+ required :configuration, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
1750
+
1751
+ # @!attribute customer_id
1752
+ #
1753
+ # @return [String]
1754
+ required :customer_id, String
1755
+
1756
+ # @!attribute delivery_method
1757
+ # The method to use for delivering invoices to this customer.
1758
+ #
1759
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod]
1760
+ required :delivery_method,
1761
+ enum: -> { MetronomeSDK::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod }
1762
+
1763
+ # @!attribute delivery_method_configuration
1764
+ # Configuration for the delivery method. The structure of this object is specific
1765
+ # to the delivery method.
1766
+ #
1767
+ # @return [Hash{Symbol=>Object}]
1768
+ required :delivery_method_configuration,
1769
+ MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
1770
+
1771
+ # @!attribute delivery_method_id
1772
+ # ID of the delivery method to use for this customer.
1773
+ #
1774
+ # @return [String]
1775
+ required :delivery_method_id, String
1776
+
1777
+ # @!method initialize(id:, archived_at:, billing_provider:, configuration:, customer_id:, delivery_method:, delivery_method_configuration:, delivery_method_id:)
1778
+ # Some parameter documentations has been truncated, see
1779
+ # {MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration}
1780
+ # for more details.
1781
+ #
1782
+ # @param id [String] ID of this configuration; can be provided as the billing*provider_configuration*
1783
+ #
1784
+ # @param archived_at [Time, nil]
1785
+ #
1786
+ # @param billing_provider [Symbol, MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::BillingProvider] The billing provider set for this configuration.
1787
+ #
1788
+ # @param configuration [Hash{Symbol=>Object}] Configuration for the billing provider. The structure of this object is specific
1789
+ #
1790
+ # @param customer_id [String]
1791
+ #
1792
+ # @param delivery_method [Symbol, MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration::DeliveryMethod] The method to use for delivering invoices to this customer.
1793
+ #
1794
+ # @param delivery_method_configuration [Hash{Symbol=>Object}] Configuration for the delivery method. The structure of this object is specific
1795
+ #
1796
+ # @param delivery_method_id [String] ID of the delivery method to use for this customer.
1797
+
1798
+ # The billing provider set for this configuration.
1799
+ #
1800
+ # @see MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration#billing_provider
1801
+ module BillingProvider
1802
+ extend MetronomeSDK::Internal::Type::Enum
1803
+
1804
+ AWS_MARKETPLACE = :aws_marketplace
1805
+ STRIPE = :stripe
1806
+ NETSUITE = :netsuite
1807
+ CUSTOM = :custom
1808
+ AZURE_MARKETPLACE = :azure_marketplace
1809
+ QUICKBOOKS_ONLINE = :quickbooks_online
1810
+ WORKDAY = :workday
1811
+ GCP_MARKETPLACE = :gcp_marketplace
1812
+ METRONOME = :metronome
1813
+
1814
+ # @!method self.values
1815
+ # @return [Array<Symbol>]
1816
+ end
1817
+
1818
+ # The method to use for delivering invoices to this customer.
1819
+ #
1820
+ # @see MetronomeSDK::Models::ContractV2::BillingProviderConfigurationSchedule::BillingProviderConfiguration#delivery_method
1821
+ module DeliveryMethod
1822
+ extend MetronomeSDK::Internal::Type::Enum
1823
+
1824
+ DIRECT_TO_BILLING_PROVIDER = :direct_to_billing_provider
1825
+ AWS_SQS = :aws_sqs
1826
+ TACKLE = :tackle
1827
+ AWS_SNS = :aws_sns
1828
+
1829
+ # @!method self.values
1830
+ # @return [Array<Symbol>]
1831
+ end
1832
+ end
1833
+ end
1834
+
1663
1835
  class Credit < MetronomeSDK::Internal::Type::BaseModel
1664
1836
  # @!attribute id
1665
1837
  #
@@ -2292,32 +2464,80 @@ module MetronomeSDK
2292
2464
  # @see MetronomeSDK::Models::ContractV2#customer_billing_provider_configuration
2293
2465
  class CustomerBillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
2294
2466
  # @!attribute id
2295
- # ID of Customer's billing provider configuration.
2467
+ # ID of this configuration; can be provided as the
2468
+ # billing_provider_configuration_id when creating a contract.
2296
2469
  #
2297
2470
  # @return [String]
2298
2471
  required :id, String
2299
2472
 
2473
+ # @!attribute archived_at
2474
+ #
2475
+ # @return [Time, nil]
2476
+ required :archived_at, Time, nil?: true
2477
+
2300
2478
  # @!attribute billing_provider
2479
+ # The billing provider set for this configuration.
2301
2480
  #
2302
2481
  # @return [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::BillingProvider]
2303
2482
  required :billing_provider,
2304
2483
  enum: -> { MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::BillingProvider }
2305
2484
 
2485
+ # @!attribute configuration
2486
+ # Configuration for the billing provider. The structure of this object is specific
2487
+ # to the billing provider.
2488
+ #
2489
+ # @return [Hash{Symbol=>Object}]
2490
+ required :configuration, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
2491
+
2492
+ # @!attribute customer_id
2493
+ #
2494
+ # @return [String]
2495
+ required :customer_id, String
2496
+
2306
2497
  # @!attribute delivery_method
2498
+ # The method to use for delivering invoices to this customer.
2307
2499
  #
2308
2500
  # @return [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod]
2309
2501
  required :delivery_method,
2310
2502
  enum: -> { MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod }
2311
2503
 
2312
- # @!method initialize(id:, billing_provider:, delivery_method:)
2313
- # This field's availability is dependent on your client's configuration.
2504
+ # @!attribute delivery_method_configuration
2505
+ # Configuration for the delivery method. The structure of this object is specific
2506
+ # to the delivery method.
2507
+ #
2508
+ # @return [Hash{Symbol=>Object}]
2509
+ required :delivery_method_configuration,
2510
+ MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
2511
+
2512
+ # @!attribute delivery_method_id
2513
+ # ID of the delivery method to use for this customer.
2514
+ #
2515
+ # @return [String]
2516
+ required :delivery_method_id, String
2517
+
2518
+ # @!method initialize(id:, archived_at:, billing_provider:, configuration:, customer_id:, delivery_method:, delivery_method_configuration:, delivery_method_id:)
2519
+ # Some parameter documentations has been truncated, see
2520
+ # {MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration} for
2521
+ # more details.
2522
+ #
2523
+ # @param id [String] ID of this configuration; can be provided as the billing*provider_configuration*
2524
+ #
2525
+ # @param archived_at [Time, nil]
2314
2526
  #
2315
- # @param id [String] ID of Customer's billing provider configuration.
2527
+ # @param billing_provider [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::BillingProvider] The billing provider set for this configuration.
2316
2528
  #
2317
- # @param billing_provider [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::BillingProvider]
2529
+ # @param configuration [Hash{Symbol=>Object}] Configuration for the billing provider. The structure of this object is specific
2318
2530
  #
2319
- # @param delivery_method [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod]
2531
+ # @param customer_id [String]
2532
+ #
2533
+ # @param delivery_method [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod] The method to use for delivering invoices to this customer.
2534
+ #
2535
+ # @param delivery_method_configuration [Hash{Symbol=>Object}] Configuration for the delivery method. The structure of this object is specific
2536
+ #
2537
+ # @param delivery_method_id [String] ID of the delivery method to use for this customer.
2320
2538
 
2539
+ # The billing provider set for this configuration.
2540
+ #
2321
2541
  # @see MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration#billing_provider
2322
2542
  module BillingProvider
2323
2543
  extend MetronomeSDK::Internal::Type::Enum
@@ -2336,6 +2556,8 @@ module MetronomeSDK
2336
2556
  # @return [Array<Symbol>]
2337
2557
  end
2338
2558
 
2559
+ # The method to use for delivering invoices to this customer.
2560
+ #
2339
2561
  # @see MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration#delivery_method
2340
2562
  module DeliveryMethod
2341
2563
  extend MetronomeSDK::Internal::Type::Enum
@@ -2700,7 +2922,8 @@ module MetronomeSDK
2700
2922
  # The commits will be created on the usage invoice frequency. If provided: - The
2701
2923
  # period defined in the duration will correspond to this frequency. - Commits will
2702
2924
  # be created aligned with the recurring commit's starting_at rather than the usage
2703
- # invoice dates.
2925
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
2926
+ # are unable to be created with seat-based subscriptions
2704
2927
  #
2705
2928
  # @return [Symbol, MetronomeSDK::Models::ContractV2::RecurringCommit::RecurrenceFrequency, nil]
2706
2929
  optional :recurrence_frequency,
@@ -3011,7 +3234,8 @@ module MetronomeSDK
3011
3234
  # The commits will be created on the usage invoice frequency. If provided: - The
3012
3235
  # period defined in the duration will correspond to this frequency. - Commits will
3013
3236
  # be created aligned with the recurring commit's starting_at rather than the usage
3014
- # invoice dates.
3237
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
3238
+ # are unable to be created with seat-based subscriptions
3015
3239
  #
3016
3240
  # @see MetronomeSDK::Models::ContractV2::RecurringCommit#recurrence_frequency
3017
3241
  module RecurrenceFrequency
@@ -3136,7 +3360,8 @@ module MetronomeSDK
3136
3360
  # The commits will be created on the usage invoice frequency. If provided: - The
3137
3361
  # period defined in the duration will correspond to this frequency. - Commits will
3138
3362
  # be created aligned with the recurring commit's starting_at rather than the usage
3139
- # invoice dates.
3363
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
3364
+ # are unable to be created with seat-based subscriptions
3140
3365
  #
3141
3366
  # @return [Symbol, MetronomeSDK::Models::ContractV2::RecurringCredit::RecurrenceFrequency, nil]
3142
3367
  optional :recurrence_frequency,
@@ -3376,7 +3601,8 @@ module MetronomeSDK
3376
3601
  # The commits will be created on the usage invoice frequency. If provided: - The
3377
3602
  # period defined in the duration will correspond to this frequency. - Commits will
3378
3603
  # be created aligned with the recurring commit's starting_at rather than the usage
3379
- # invoice dates.
3604
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
3605
+ # are unable to be created with seat-based subscriptions
3380
3606
  #
3381
3607
  # @see MetronomeSDK::Models::ContractV2::RecurringCredit#recurrence_frequency
3382
3608
  module RecurrenceFrequency
@@ -3518,6 +3744,143 @@ module MetronomeSDK
3518
3744
  end
3519
3745
  end
3520
3746
 
3747
+ class RevenueSystemConfigurationSchedule < MetronomeSDK::Internal::Type::BaseModel
3748
+ # @!attribute effective_at
3749
+ # The date this revenue system configuration became or becomes active.
3750
+ #
3751
+ # @return [Time]
3752
+ required :effective_at, Time
3753
+
3754
+ # @!attribute revenue_system_configuration
3755
+ #
3756
+ # @return [MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration, nil]
3757
+ required :revenue_system_configuration,
3758
+ -> {
3759
+ MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration
3760
+ },
3761
+ nil?: true
3762
+
3763
+ # @!attribute effective_until
3764
+ # The date this revenue system configuration is superseded by the next entry. Null
3765
+ # for the last entry in the schedule.
3766
+ #
3767
+ # @return [Time, nil]
3768
+ optional :effective_until, Time
3769
+
3770
+ # @!method initialize(effective_at:, revenue_system_configuration:, effective_until: nil)
3771
+ # Some parameter documentations has been truncated, see
3772
+ # {MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule} for more
3773
+ # details.
3774
+ #
3775
+ # @param effective_at [Time] The date this revenue system configuration became or becomes active.
3776
+ #
3777
+ # @param revenue_system_configuration [MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration, nil]
3778
+ #
3779
+ # @param effective_until [Time] The date this revenue system configuration is superseded by the next entry. Null
3780
+
3781
+ # @see MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule#revenue_system_configuration
3782
+ class RevenueSystemConfiguration < MetronomeSDK::Internal::Type::BaseModel
3783
+ # @!attribute id
3784
+ # ID of the revenue system configuration.
3785
+ #
3786
+ # @return [String]
3787
+ required :id, String
3788
+
3789
+ # @!attribute configuration
3790
+ # Configuration for the revenue system. The structure of this object is specific
3791
+ # to the provider.
3792
+ #
3793
+ # @return [Hash{Symbol=>Object}]
3794
+ required :configuration, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
3795
+
3796
+ # @!attribute customer_id
3797
+ #
3798
+ # @return [String]
3799
+ required :customer_id, String
3800
+
3801
+ # @!attribute delivery_method_id
3802
+ # ID of the delivery method used for this customer configuration.
3803
+ #
3804
+ # @return [String]
3805
+ required :delivery_method_id, String
3806
+
3807
+ # @!attribute provider
3808
+ # The revenue system provider (e.g. netsuite).
3809
+ #
3810
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider]
3811
+ required :provider,
3812
+ enum: -> { MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider }
3813
+
3814
+ # @!attribute archived_at
3815
+ #
3816
+ # @return [Time, nil]
3817
+ optional :archived_at, Time, nil?: true
3818
+
3819
+ # @!attribute delivery_method
3820
+ # The method to use for delivering data to the revenue system.
3821
+ #
3822
+ # @return [Symbol, MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod, nil]
3823
+ optional :delivery_method,
3824
+ enum: -> { MetronomeSDK::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod }
3825
+
3826
+ # @!attribute delivery_method_configuration
3827
+ # Configuration for the delivery method. The structure of this object is specific
3828
+ # to the delivery method.
3829
+ #
3830
+ # @return [Hash{Symbol=>Object}, nil]
3831
+ optional :delivery_method_configuration,
3832
+ MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
3833
+
3834
+ # @!method initialize(id:, configuration:, customer_id:, delivery_method_id:, provider:, archived_at: nil, delivery_method: nil, delivery_method_configuration: nil)
3835
+ # Some parameter documentations has been truncated, see
3836
+ # {MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration}
3837
+ # for more details.
3838
+ #
3839
+ # @param id [String] ID of the revenue system configuration.
3840
+ #
3841
+ # @param configuration [Hash{Symbol=>Object}] Configuration for the revenue system. The structure of this object is specific t
3842
+ #
3843
+ # @param customer_id [String]
3844
+ #
3845
+ # @param delivery_method_id [String] ID of the delivery method used for this customer configuration.
3846
+ #
3847
+ # @param provider [Symbol, MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::Provider] The revenue system provider (e.g. netsuite).
3848
+ #
3849
+ # @param archived_at [Time, nil]
3850
+ #
3851
+ # @param delivery_method [Symbol, MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration::DeliveryMethod] The method to use for delivering data to the revenue system.
3852
+ #
3853
+ # @param delivery_method_configuration [Hash{Symbol=>Object}] Configuration for the delivery method. The structure of this object is specific
3854
+
3855
+ # The revenue system provider (e.g. netsuite).
3856
+ #
3857
+ # @see MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration#provider
3858
+ module Provider
3859
+ extend MetronomeSDK::Internal::Type::Enum
3860
+
3861
+ NETSUITE = :netsuite
3862
+
3863
+ # @!method self.values
3864
+ # @return [Array<Symbol>]
3865
+ end
3866
+
3867
+ # The method to use for delivering data to the revenue system.
3868
+ #
3869
+ # @see MetronomeSDK::Models::ContractV2::RevenueSystemConfigurationSchedule::RevenueSystemConfiguration#delivery_method
3870
+ module DeliveryMethod
3871
+ extend MetronomeSDK::Internal::Type::Enum
3872
+
3873
+ DIRECT_TO_BILLING_PROVIDER = :direct_to_billing_provider
3874
+ AWS_SQS = :aws_sqs
3875
+ TACKLE = :tackle
3876
+ AWS_SNS = :aws_sns
3877
+
3878
+ # @!method self.values
3879
+ # @return [Array<Symbol>]
3880
+ end
3881
+ end
3882
+ end
3883
+
3521
3884
  # Determines which scheduled and commit charges to consolidate onto the Contract's
3522
3885
  # usage invoice. The charge's `timestamp` must match the usage invoice's
3523
3886
  # `ending_before` date for consolidation to occur. This field cannot be modified
@@ -242,7 +242,6 @@ module MetronomeSDK
242
242
  module Type
243
243
  extend MetronomeSDK::Internal::Type::Enum
244
244
 
245
- SUPERSEDE = :SUPERSEDE
246
245
  RENEWAL = :RENEWAL
247
246
 
248
247
  # @!method self.values
@@ -397,7 +396,8 @@ module MetronomeSDK
397
396
  # The commits will be created on the usage invoice frequency. If provided: - The
398
397
  # period defined in the duration will correspond to this frequency. - Commits will
399
398
  # be created aligned with the recurring commit's starting_at rather than the usage
400
- # invoice dates.
399
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
400
+ # are unable to be created with seat-based subscriptions
401
401
  #
402
402
  # @return [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit::RecurrenceFrequency, nil]
403
403
  optional :recurrence_frequency,
@@ -714,7 +714,8 @@ module MetronomeSDK
714
714
  # The commits will be created on the usage invoice frequency. If provided: - The
715
715
  # period defined in the duration will correspond to this frequency. - Commits will
716
716
  # be created aligned with the recurring commit's starting_at rather than the usage
717
- # invoice dates.
717
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
718
+ # are unable to be created with seat-based subscriptions
718
719
  #
719
720
  # @see MetronomeSDK::Models::ContractWithoutAmendments::RecurringCommit#recurrence_frequency
720
721
  module RecurrenceFrequency
@@ -839,7 +840,8 @@ module MetronomeSDK
839
840
  # The commits will be created on the usage invoice frequency. If provided: - The
840
841
  # period defined in the duration will correspond to this frequency. - Commits will
841
842
  # be created aligned with the recurring commit's starting_at rather than the usage
842
- # invoice dates.
843
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
844
+ # are unable to be created with seat-based subscriptions
843
845
  #
844
846
  # @return [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit::RecurrenceFrequency, nil]
845
847
  optional :recurrence_frequency,
@@ -1083,7 +1085,8 @@ module MetronomeSDK
1083
1085
  # The commits will be created on the usage invoice frequency. If provided: - The
1084
1086
  # period defined in the duration will correspond to this frequency. - Commits will
1085
1087
  # be created aligned with the recurring commit's starting_at rather than the usage
1086
- # invoice dates.
1088
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
1089
+ # are unable to be created with seat-based subscriptions
1087
1090
  #
1088
1091
  # @see MetronomeSDK::Models::ContractWithoutAmendments::RecurringCredit#recurrence_frequency
1089
1092
  module RecurrenceFrequency
@@ -1910,7 +1910,8 @@ module MetronomeSDK
1910
1910
  # The commits will be created on the usage invoice frequency. If provided: - The
1911
1911
  # period defined in the duration will correspond to this frequency. - Commits will
1912
1912
  # be created aligned with the recurring commit's starting_at rather than the usage
1913
- # invoice dates.
1913
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
1914
+ # are unable to be created with seat-based subscriptions
1914
1915
  #
1915
1916
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit::RecurrenceFrequency, nil]
1916
1917
  optional :recurrence_frequency,
@@ -2215,7 +2216,8 @@ module MetronomeSDK
2215
2216
  # The commits will be created on the usage invoice frequency. If provided: - The
2216
2217
  # period defined in the duration will correspond to this frequency. - Commits will
2217
2218
  # be created aligned with the recurring commit's starting_at rather than the usage
2218
- # invoice dates.
2219
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
2220
+ # are unable to be created with seat-based subscriptions
2219
2221
  #
2220
2222
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCommit#recurrence_frequency
2221
2223
  module RecurrenceFrequency
@@ -2393,7 +2395,8 @@ module MetronomeSDK
2393
2395
  # The commits will be created on the usage invoice frequency. If provided: - The
2394
2396
  # period defined in the duration will correspond to this frequency. - Commits will
2395
2397
  # be created aligned with the recurring commit's starting_at rather than the usage
2396
- # invoice dates.
2398
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
2399
+ # are unable to be created with seat-based subscriptions
2397
2400
  #
2398
2401
  # @return [Symbol, MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit::RecurrenceFrequency, nil]
2399
2402
  optional :recurrence_frequency,
@@ -2625,7 +2628,8 @@ module MetronomeSDK
2625
2628
  # The commits will be created on the usage invoice frequency. If provided: - The
2626
2629
  # period defined in the duration will correspond to this frequency. - Commits will
2627
2630
  # be created aligned with the recurring commit's starting_at rather than the usage
2628
- # invoice dates.
2631
+ # invoice dates. - Daily recurring commits have a limit of one per contract, and
2632
+ # are unable to be created with seat-based subscriptions
2629
2633
  #
2630
2634
  # @see MetronomeSDK::Models::V1::ContractCreateParams::RecurringCredit#recurrence_frequency
2631
2635
  module RecurrenceFrequency
@@ -3645,7 +3649,6 @@ module MetronomeSDK
3645
3649
  module Type
3646
3650
  extend MetronomeSDK::Internal::Type::Enum
3647
3651
 
3648
- SUPERSEDE = :SUPERSEDE
3649
3652
  RENEWAL = :RENEWAL
3650
3653
 
3651
3654
  # @!method self.values