metronome-sdk 3.8.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 97f31a567a1ed13359a6db7517a0a31b47f7ab157d92e417fdfb60050869737a
4
- data.tar.gz: b17e2f57bd7d2db609f95f5dcf5b165d6e050dd05eb717bab10148b450b19bb0
3
+ metadata.gz: 39c119482a744489b3c1edefcd46d4324302803e58581157b12915d2b8a315d6
4
+ data.tar.gz: d00eb3315de54f1e47310c4fc99620c5fc6e19af7093ed61a7031ee28aeb8b3b
5
5
  SHA512:
6
- metadata.gz: 771169e3edf3cbd87d0ce517fa9999c1303af4ad003ad278c58ad7239545f7157224e52646b1db43fc7b17db0af0d038cdda41d66bc6115038cb39ba48123843
7
- data.tar.gz: 8b0180525f48ed9bf872de4bf2f29c6b504f20eef0dd1acc013d526115dfb34b3839dca5c0e20d0a8ec2248ea6968678b919a2881c7ab801b637eb72f2abd17f
6
+ metadata.gz: f464cb8c2394d2cdf5c185c7a600f6a65e1cf9f3ec9ce5c167f47cd95cbd919a19a91e710010d612e63279f7aa83d6f1b0b5c2dfbccd3b124821510d9e10aa4b
7
+ data.tar.gz: 0c8710196396104eb8b77478f95b2470f78d47b33dc722380705a926bf9f6938448cf53789464fe387804908da2f76d7b1f6ffd5097477e714ec5bb591796d07
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.9.0 (2026-07-02)
4
+
5
+ Full Changelog: [v3.8.0...v3.9.0](https://github.com/Metronome-Industries/metronome-ruby/compare/v3.8.0...v3.9.0)
6
+
7
+ ### Features
8
+
9
+ * [ORCH-1875] add billing config schedule to api ([d99c67a](https://github.com/Metronome-Industries/metronome-ruby/commit/d99c67a326f711abccba75cac0d8bb840a79583d))
10
+
3
11
  ## 3.8.0 (2026-06-29)
4
12
 
5
13
  Full Changelog: [v3.7.0...v3.8.0](https://github.com/Metronome-Industries/metronome-ruby/compare/v3.7.0...v3.8.0)
data/README.md CHANGED
@@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
26
26
  <!-- x-release-please-start-version -->
27
27
 
28
28
  ```ruby
29
- gem "metronome-sdk", "~> 3.8.0"
29
+ gem "metronome-sdk", "~> 3.9.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -42,7 +42,6 @@ module MetronomeSDK
42
42
  optional :custom_fields, MetronomeSDK::Internal::Type::HashOf[String]
43
43
 
44
44
  # @!attribute customer_billing_provider_configuration
45
- # The billing provider configuration associated with a contract.
46
45
  #
47
46
  # @return [MetronomeSDK::Models::Contract::CustomerBillingProviderConfiguration, nil]
48
47
  optional :customer_billing_provider_configuration,
@@ -115,7 +114,7 @@ module MetronomeSDK
115
114
  #
116
115
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
117
116
  #
118
- # @param customer_billing_provider_configuration [MetronomeSDK::Models::Contract::CustomerBillingProviderConfiguration] The billing provider configuration associated with a contract.
117
+ # @param customer_billing_provider_configuration [MetronomeSDK::Models::Contract::CustomerBillingProviderConfiguration]
119
118
  #
120
119
  # @param package_id [String] ID of the package this contract was created from, if applicable.
121
120
  #
@@ -316,52 +315,81 @@ module MetronomeSDK
316
315
 
317
316
  # @see MetronomeSDK::Models::Contract#customer_billing_provider_configuration
318
317
  class CustomerBillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
318
+ # @!attribute id
319
+ # ID of this configuration; can be provided as the
320
+ # billing_provider_configuration_id when creating a contract.
321
+ #
322
+ # @return [String]
323
+ required :id, String
324
+
319
325
  # @!attribute archived_at
320
326
  #
321
327
  # @return [Time, nil]
322
328
  required :archived_at, Time, nil?: true
323
329
 
324
330
  # @!attribute billing_provider
331
+ # The billing provider set for this configuration.
325
332
  #
326
333
  # @return [Symbol, MetronomeSDK::Models::Contract::CustomerBillingProviderConfiguration::BillingProvider]
327
334
  required :billing_provider,
328
335
  enum: -> { MetronomeSDK::Contract::CustomerBillingProviderConfiguration::BillingProvider }
329
336
 
337
+ # @!attribute configuration
338
+ # Configuration for the billing provider. The structure of this object is specific
339
+ # to the billing provider.
340
+ #
341
+ # @return [Hash{Symbol=>Object}]
342
+ required :configuration, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
343
+
344
+ # @!attribute customer_id
345
+ #
346
+ # @return [String]
347
+ required :customer_id, String
348
+
330
349
  # @!attribute delivery_method
350
+ # The method to use for delivering invoices to this customer.
331
351
  #
332
352
  # @return [Symbol, MetronomeSDK::Models::Contract::CustomerBillingProviderConfiguration::DeliveryMethod]
333
353
  required :delivery_method,
334
354
  enum: -> { MetronomeSDK::Contract::CustomerBillingProviderConfiguration::DeliveryMethod }
335
355
 
336
- # @!attribute id
356
+ # @!attribute delivery_method_configuration
357
+ # Configuration for the delivery method. The structure of this object is specific
358
+ # to the delivery method.
337
359
  #
338
- # @return [String, nil]
339
- optional :id, String
360
+ # @return [Hash{Symbol=>Object}]
361
+ required :delivery_method_configuration,
362
+ MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
340
363
 
341
- # @!attribute configuration
342
- # Configuration for the billing provider. The structure of this object is specific
343
- # to the billing provider.
364
+ # @!attribute delivery_method_id
365
+ # ID of the delivery method to use for this customer.
344
366
  #
345
- # @return [Hash{Symbol=>Object}, nil]
346
- optional :configuration, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]
367
+ # @return [String]
368
+ required :delivery_method_id, String
347
369
 
348
- # @!method initialize(archived_at:, billing_provider:, delivery_method:, id: nil, configuration: nil)
370
+ # @!method initialize(id:, archived_at:, billing_provider:, configuration:, customer_id:, delivery_method:, delivery_method_configuration:, delivery_method_id:)
349
371
  # Some parameter documentations has been truncated, see
350
372
  # {MetronomeSDK::Models::Contract::CustomerBillingProviderConfiguration} for more
351
373
  # details.
352
374
  #
353
- # The billing provider configuration associated with a contract.
375
+ # @param id [String] ID of this configuration; can be provided as the billing*provider_configuration*
354
376
  #
355
377
  # @param archived_at [Time, nil]
356
378
  #
357
- # @param billing_provider [Symbol, MetronomeSDK::Models::Contract::CustomerBillingProviderConfiguration::BillingProvider]
379
+ # @param billing_provider [Symbol, MetronomeSDK::Models::Contract::CustomerBillingProviderConfiguration::BillingProvider] The billing provider set for this configuration.
358
380
  #
359
- # @param delivery_method [Symbol, MetronomeSDK::Models::Contract::CustomerBillingProviderConfiguration::DeliveryMethod]
381
+ # @param configuration [Hash{Symbol=>Object}] Configuration for the billing provider. The structure of this object is specific
360
382
  #
361
- # @param id [String]
383
+ # @param customer_id [String]
362
384
  #
363
- # @param configuration [Hash{Symbol=>Object}] Configuration for the billing provider. The structure of this object is specific
385
+ # @param delivery_method [Symbol, MetronomeSDK::Models::Contract::CustomerBillingProviderConfiguration::DeliveryMethod] The method to use for delivering invoices to this customer.
386
+ #
387
+ # @param delivery_method_configuration [Hash{Symbol=>Object}] Configuration for the delivery method. The structure of this object is specific
388
+ #
389
+ # @param delivery_method_id [String] ID of the delivery method to use for this customer.
364
390
 
391
+ # The billing provider set for this configuration.
392
+ #
365
393
  # @see MetronomeSDK::Models::Contract::CustomerBillingProviderConfiguration#billing_provider
366
394
  module BillingProvider
367
395
  extend MetronomeSDK::Internal::Type::Enum
@@ -380,6 +408,8 @@ module MetronomeSDK
380
408
  # @return [Array<Symbol>]
381
409
  end
382
410
 
411
+ # The method to use for delivering invoices to this customer.
412
+ #
383
413
  # @see MetronomeSDK::Models::Contract::CustomerBillingProviderConfiguration#delivery_method
384
414
  module DeliveryMethod
385
415
  extend MetronomeSDK::Internal::Type::Enum
@@ -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
@@ -1660,6 +1679,149 @@ module MetronomeSDK
1660
1679
  end
1661
1680
  end
1662
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
+
1663
1825
  class Credit < MetronomeSDK::Internal::Type::BaseModel
1664
1826
  # @!attribute id
1665
1827
  #
@@ -2292,32 +2454,80 @@ module MetronomeSDK
2292
2454
  # @see MetronomeSDK::Models::ContractV2#customer_billing_provider_configuration
2293
2455
  class CustomerBillingProviderConfiguration < MetronomeSDK::Internal::Type::BaseModel
2294
2456
  # @!attribute id
2295
- # 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.
2296
2459
  #
2297
2460
  # @return [String]
2298
2461
  required :id, String
2299
2462
 
2463
+ # @!attribute archived_at
2464
+ #
2465
+ # @return [Time, nil]
2466
+ required :archived_at, Time, nil?: true
2467
+
2300
2468
  # @!attribute billing_provider
2469
+ # The billing provider set for this configuration.
2301
2470
  #
2302
2471
  # @return [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::BillingProvider]
2303
2472
  required :billing_provider,
2304
2473
  enum: -> { MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::BillingProvider }
2305
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
+
2306
2487
  # @!attribute delivery_method
2488
+ # The method to use for delivering invoices to this customer.
2307
2489
  #
2308
2490
  # @return [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod]
2309
2491
  required :delivery_method,
2310
2492
  enum: -> { MetronomeSDK::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod }
2311
2493
 
2312
- # @!method initialize(id:, billing_provider:, delivery_method:)
2313
- # 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.
2512
+ #
2513
+ # @param id [String] ID of this configuration; can be provided as the billing*provider_configuration*
2514
+ #
2515
+ # @param archived_at [Time, nil]
2516
+ #
2517
+ # @param billing_provider [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::BillingProvider] The billing provider set for this configuration.
2314
2518
  #
2315
- # @param id [String] ID of Customer's billing provider configuration.
2519
+ # @param configuration [Hash{Symbol=>Object}] Configuration for the billing provider. The structure of this object is specific
2316
2520
  #
2317
- # @param billing_provider [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::BillingProvider]
2521
+ # @param customer_id [String]
2318
2522
  #
2319
- # @param delivery_method [Symbol, MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::DeliveryMethod]
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.
2320
2528
 
2529
+ # The billing provider set for this configuration.
2530
+ #
2321
2531
  # @see MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration#billing_provider
2322
2532
  module BillingProvider
2323
2533
  extend MetronomeSDK::Internal::Type::Enum
@@ -2336,6 +2546,8 @@ module MetronomeSDK
2336
2546
  # @return [Array<Symbol>]
2337
2547
  end
2338
2548
 
2549
+ # The method to use for delivering invoices to this customer.
2550
+ #
2339
2551
  # @see MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration#delivery_method
2340
2552
  module DeliveryMethod
2341
2553
  extend MetronomeSDK::Internal::Type::Enum
@@ -3518,6 +3730,140 @@ module MetronomeSDK
3518
3730
  end
3519
3731
  end
3520
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
+
3521
3867
  # Determines which scheduled and commit charges to consolidate onto the Contract's
3522
3868
  # usage invoice. The charge's `timestamp` must match the usage invoice's
3523
3869
  # `ending_before` date for consolidation to occur. This field cannot be modified