metronome-sdk 3.6.0 → 3.8.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 (141) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +54 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +4 -1
  5. data/lib/metronome_sdk/internal/type/enum.rb +0 -25
  6. data/lib/metronome_sdk/models/commit.rb +36 -1
  7. data/lib/metronome_sdk/models/contract.rb +140 -1
  8. data/lib/metronome_sdk/models/contract_v2.rb +457 -8
  9. data/lib/metronome_sdk/models/contract_without_amendments.rb +320 -5
  10. data/lib/metronome_sdk/models/credit.rb +10 -1
  11. data/lib/metronome_sdk/models/override.rb +7 -1
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +113 -2
  13. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +105 -2
  14. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +33 -1
  15. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +33 -1
  16. data/lib/metronome_sdk/models/subscription.rb +90 -2
  17. data/lib/metronome_sdk/models/v1/alert_create_params.rb +127 -1
  18. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +46 -5
  19. data/lib/metronome_sdk/models/v1/contract_create_params.rb +436 -12
  20. data/lib/metronome_sdk/models/v1/contract_create_response.rb +1308 -3
  21. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rb +88 -0
  22. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rb +62 -0
  23. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +10 -1
  24. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +127 -1
  25. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +130 -3
  26. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +10 -1
  27. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  28. data/lib/metronome_sdk/models/v1/package_create_params.rb +394 -11
  29. data/lib/metronome_sdk/models/v1/package_list_response.rb +374 -8
  30. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +378 -8
  31. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +817 -13
  32. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +4310 -3
  33. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +600 -10
  34. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  35. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +4 -0
  36. data/lib/metronome_sdk/resources/v1/contracts.rb +71 -2
  37. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +4 -2
  38. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +3 -1
  39. data/lib/metronome_sdk/resources/v1/dashboards.rb +7 -2
  40. data/lib/metronome_sdk/resources/v1/packages.rb +6 -5
  41. data/lib/metronome_sdk/resources/v1.rb +0 -4
  42. data/lib/metronome_sdk/resources/v2/contracts.rb +5 -1
  43. data/lib/metronome_sdk/version.rb +1 -1
  44. data/lib/metronome_sdk.rb +2 -8
  45. data/rbi/metronome_sdk/models/commit.rbi +61 -0
  46. data/rbi/metronome_sdk/models/contract.rbi +354 -0
  47. data/rbi/metronome_sdk/models/contract_v2.rbi +1132 -11
  48. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +831 -0
  49. data/rbi/metronome_sdk/models/credit.rbi +13 -0
  50. data/rbi/metronome_sdk/models/override.rbi +9 -0
  51. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +299 -6
  52. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +287 -6
  53. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +78 -3
  54. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -3
  55. data/rbi/metronome_sdk/models/subscription.rbi +212 -3
  56. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +373 -0
  57. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +81 -6
  58. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1095 -17
  59. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +2911 -4
  60. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbi +112 -0
  61. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbi +119 -0
  62. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +13 -0
  63. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +360 -0
  64. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +379 -2
  65. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +13 -0
  66. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  67. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +1049 -42
  68. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +1051 -54
  69. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +1051 -54
  70. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +2130 -114
  71. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +9749 -4
  72. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1567 -82
  73. data/rbi/metronome_sdk/resources/v1/alerts.rbi +8 -0
  74. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +4 -0
  75. data/rbi/metronome_sdk/resources/v1/contracts.rbi +77 -0
  76. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +8 -1
  77. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  78. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +7 -2
  79. data/rbi/metronome_sdk/resources/v1/packages.rbi +8 -4
  80. data/rbi/metronome_sdk/resources/v1.rbi +0 -3
  81. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  82. data/sig/metronome_sdk/models/commit.rbs +26 -0
  83. data/sig/metronome_sdk/models/contract.rbs +151 -0
  84. data/sig/metronome_sdk/models/contract_v2.rbs +448 -5
  85. data/sig/metronome_sdk/models/contract_without_amendments.rbs +320 -2
  86. data/sig/metronome_sdk/models/credit.rbs +7 -0
  87. data/sig/metronome_sdk/models/override.rbs +7 -0
  88. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +116 -6
  89. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +116 -6
  90. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +31 -3
  91. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +31 -3
  92. data/sig/metronome_sdk/models/subscription.rbs +88 -3
  93. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +144 -0
  94. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +26 -0
  95. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +412 -5
  96. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +1210 -4
  97. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbs +63 -0
  98. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbs +59 -0
  99. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +7 -0
  100. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +141 -0
  101. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +150 -0
  102. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +8 -1
  103. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  104. data/sig/metronome_sdk/models/v1/package_create_params.rbs +386 -5
  105. data/sig/metronome_sdk/models/v1/package_list_response.rbs +380 -5
  106. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +378 -5
  107. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +751 -14
  108. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +4215 -4
  109. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +569 -14
  110. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  111. data/sig/metronome_sdk/resources/v1/contracts.rbs +14 -0
  112. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  113. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -0
  114. data/sig/metronome_sdk/resources/v1/packages.rbs +1 -0
  115. data/sig/metronome_sdk/resources/v1.rbs +0 -2
  116. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  117. metadata +8 -26
  118. data/lib/metronome_sdk/models/v1/payment.rb +0 -196
  119. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +0 -28
  120. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +0 -18
  121. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +0 -28
  122. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +0 -18
  123. data/lib/metronome_sdk/models/v1/payment_list_params.rb +0 -53
  124. data/lib/metronome_sdk/models/v1/payment_status.rb +0 -19
  125. data/lib/metronome_sdk/resources/v1/payments.rb +0 -102
  126. data/rbi/metronome_sdk/models/v1/payment.rbi +0 -403
  127. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +0 -48
  128. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +0 -35
  129. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +0 -48
  130. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +0 -35
  131. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +0 -91
  132. data/rbi/metronome_sdk/models/v1/payment_status.rbi +0 -33
  133. data/rbi/metronome_sdk/resources/v1/payments.rbi +0 -72
  134. data/sig/metronome_sdk/models/v1/payment.rbs +0 -243
  135. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +0 -30
  136. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +0 -15
  137. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +0 -30
  138. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +0 -15
  139. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +0 -56
  140. data/sig/metronome_sdk/models/v1/payment_status.rbs +0 -19
  141. data/sig/metronome_sdk/resources/v1/payments.rbs +0 -30
@@ -277,6 +277,25 @@ module MetronomeSDK
277
277
  end
278
278
  attr_writer :spend_threshold_configuration
279
279
 
280
+ sig do
281
+ returns(
282
+ T.nilable(
283
+ T::Array[MetronomeSDK::V1::PackageCreateParams::SpendTracker]
284
+ )
285
+ )
286
+ end
287
+ attr_reader :spend_trackers
288
+
289
+ sig do
290
+ params(
291
+ spend_trackers:
292
+ T::Array[
293
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::OrHash
294
+ ]
295
+ ).void
296
+ end
297
+ attr_writer :spend_trackers
298
+
280
299
  sig do
281
300
  returns(
282
301
  T.nilable(
@@ -362,6 +381,10 @@ module MetronomeSDK
362
381
  MetronomeSDK::V1::PackageCreateParams::ScheduledChargesOnUsageInvoices::OrSymbol,
363
382
  spend_threshold_configuration:
364
383
  MetronomeSDK::SpendThresholdConfiguration::OrHash,
384
+ spend_trackers:
385
+ T::Array[
386
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::OrHash
387
+ ],
365
388
  subscriptions:
366
389
  T::Array[
367
390
  MetronomeSDK::V1::PackageCreateParams::Subscription::OrHash
@@ -406,6 +429,7 @@ module MetronomeSDK
406
429
  # on a separate invoice from usage charges.
407
430
  scheduled_charges_on_usage_invoices: nil,
408
431
  spend_threshold_configuration: nil,
432
+ spend_trackers: nil,
409
433
  subscriptions: nil,
410
434
  # Prevents the creation of duplicates. If a request to create a record is made
411
435
  # with a previously used uniqueness key, a new record will not be created and the
@@ -454,6 +478,8 @@ module MetronomeSDK
454
478
  MetronomeSDK::V1::PackageCreateParams::ScheduledChargesOnUsageInvoices::OrSymbol,
455
479
  spend_threshold_configuration:
456
480
  MetronomeSDK::SpendThresholdConfiguration,
481
+ spend_trackers:
482
+ T::Array[MetronomeSDK::V1::PackageCreateParams::SpendTracker],
457
483
  subscriptions:
458
484
  T::Array[MetronomeSDK::V1::PackageCreateParams::Subscription],
459
485
  uniqueness_key: String,
@@ -2161,9 +2187,10 @@ module MetronomeSDK
2161
2187
  attr_writer :entitled
2162
2188
 
2163
2189
  # Indicates whether the override should only apply to commits. Defaults to
2164
- # `false`. If `true`, you can specify relevant commits in `override_specifiers` by
2165
- # passing `commit_ids`. if you do not specify `commit_ids`, then the override will
2166
- # apply when consuming any prepaid or postpaid commit.
2190
+ # `false`. If `true` you can specify relevant commits in `override_specifiers` by
2191
+ # passing `commit_ids`, `recurring_commit_ids`, or `any_commit_or_credit_ids`. If
2192
+ # you do not specify any of these fields, the override will apply when consuming
2193
+ # any prepaid commit, postpaid commit, or credit
2167
2194
  sig { returns(T.nilable(T::Boolean)) }
2168
2195
  attr_reader :is_commit_specific
2169
2196
 
@@ -2300,9 +2327,10 @@ module MetronomeSDK
2300
2327
  duration: nil,
2301
2328
  entitled: nil,
2302
2329
  # Indicates whether the override should only apply to commits. Defaults to
2303
- # `false`. If `true`, you can specify relevant commits in `override_specifiers` by
2304
- # passing `commit_ids`. if you do not specify `commit_ids`, then the override will
2305
- # apply when consuming any prepaid or postpaid commit.
2330
+ # `false`. If `true` you can specify relevant commits in `override_specifiers` by
2331
+ # passing `commit_ids`, `recurring_commit_ids`, or `any_commit_or_credit_ids`. If
2332
+ # you do not specify any of these fields, the override will apply when consuming
2333
+ # any prepaid commit, postpaid commit, or credit
2306
2334
  is_commit_specific: nil,
2307
2335
  # Required for MULTIPLIER type. Must be >=0.
2308
2336
  multiplier: nil,
@@ -2364,6 +2392,17 @@ module MetronomeSDK
2364
2392
  )
2365
2393
  end
2366
2394
 
2395
+ # Can only be used for commit specific overrides. Must be used in conjunction with
2396
+ # one of `product_id`, `product_tags`, `pricing_group_values`, or
2397
+ # `presentation_group_values`. Must be used instead of both `commit_ids` and
2398
+ # `recurring_commit_ids` If provided, the override will apply to any specified
2399
+ # commit, credit, recurring commit or recurring credit IDs.
2400
+ sig { returns(T.nilable(T::Array[String])) }
2401
+ attr_reader :any_commit_or_credit_ids
2402
+
2403
+ sig { params(any_commit_or_credit_ids: T::Array[String]).void }
2404
+ attr_writer :any_commit_or_credit_ids
2405
+
2367
2406
  sig do
2368
2407
  returns(
2369
2408
  T.nilable(
@@ -2436,6 +2475,7 @@ module MetronomeSDK
2436
2475
 
2437
2476
  sig do
2438
2477
  params(
2478
+ any_commit_or_credit_ids: T::Array[String],
2439
2479
  billing_frequency:
2440
2480
  MetronomeSDK::V1::PackageCreateParams::Override::OverrideSpecifier::BillingFrequency::OrSymbol,
2441
2481
  commit_ids: T::Array[String],
@@ -2447,6 +2487,12 @@ module MetronomeSDK
2447
2487
  ).returns(T.attached_class)
2448
2488
  end
2449
2489
  def self.new(
2490
+ # Can only be used for commit specific overrides. Must be used in conjunction with
2491
+ # one of `product_id`, `product_tags`, `pricing_group_values`, or
2492
+ # `presentation_group_values`. Must be used instead of both `commit_ids` and
2493
+ # `recurring_commit_ids` If provided, the override will apply to any specified
2494
+ # commit, credit, recurring commit or recurring credit IDs.
2495
+ any_commit_or_credit_ids: nil,
2450
2496
  billing_frequency: nil,
2451
2497
  # Can only be used for commit specific overrides. Must be used in conjunction with
2452
2498
  # one of `product_id`, `product_tags`, `pricing_group_values`, or
@@ -2475,6 +2521,7 @@ module MetronomeSDK
2475
2521
  sig do
2476
2522
  override.returns(
2477
2523
  {
2524
+ any_commit_or_credit_ids: T::Array[String],
2478
2525
  billing_frequency:
2479
2526
  MetronomeSDK::V1::PackageCreateParams::Override::OverrideSpecifier::BillingFrequency::OrSymbol,
2480
2527
  commit_ids: T::Array[String],
@@ -3132,6 +3179,24 @@ module MetronomeSDK
3132
3179
  end
3133
3180
  attr_writer :proration
3134
3181
 
3182
+ # Optional rounding configuration for prorated recurring commit amounts.
3183
+ sig do
3184
+ returns(
3185
+ T.nilable(
3186
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding
3187
+ )
3188
+ )
3189
+ end
3190
+ attr_reader :proration_rounding
3191
+
3192
+ sig do
3193
+ params(
3194
+ proration_rounding:
3195
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::OrHash
3196
+ ).void
3197
+ end
3198
+ attr_writer :proration_rounding
3199
+
3135
3200
  # Whether the created commits will use the commit rate or list rate
3136
3201
  sig do
3137
3202
  returns(
@@ -3243,6 +3308,8 @@ module MetronomeSDK
3243
3308
  name: String,
3244
3309
  proration:
3245
3310
  MetronomeSDK::V1::PackageCreateParams::RecurringCommit::Proration::OrSymbol,
3311
+ proration_rounding:
3312
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::OrHash,
3246
3313
  rate_type:
3247
3314
  MetronomeSDK::V1::PackageCreateParams::RecurringCommit::RateType::OrSymbol,
3248
3315
  recurrence_frequency:
@@ -3283,6 +3350,8 @@ module MetronomeSDK
3283
3350
  # Determines whether the first and last commit will be prorated. If not provided,
3284
3351
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3285
3352
  proration: nil,
3353
+ # Optional rounding configuration for prorated recurring commit amounts.
3354
+ proration_rounding: nil,
3286
3355
  # Whether the created commits will use the commit rate or list rate
3287
3356
  rate_type: nil,
3288
3357
  # The frequency at which the recurring commits will be created. If not provided: -
@@ -3329,6 +3398,8 @@ module MetronomeSDK
3329
3398
  name: String,
3330
3399
  proration:
3331
3400
  MetronomeSDK::V1::PackageCreateParams::RecurringCommit::Proration::OrSymbol,
3401
+ proration_rounding:
3402
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding,
3332
3403
  rate_type:
3333
3404
  MetronomeSDK::V1::PackageCreateParams::RecurringCommit::RateType::OrSymbol,
3334
3405
  recurrence_frequency:
@@ -3737,6 +3808,259 @@ module MetronomeSDK
3737
3808
  end
3738
3809
  end
3739
3810
 
3811
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
3812
+ OrHash =
3813
+ T.type_alias do
3814
+ T.any(
3815
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding,
3816
+ MetronomeSDK::Internal::AnyHash
3817
+ )
3818
+ end
3819
+
3820
+ sig do
3821
+ returns(
3822
+ T.nilable(
3823
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Access
3824
+ )
3825
+ )
3826
+ end
3827
+ attr_reader :access
3828
+
3829
+ sig do
3830
+ params(
3831
+ access:
3832
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Access::OrHash
3833
+ ).void
3834
+ end
3835
+ attr_writer :access
3836
+
3837
+ sig do
3838
+ returns(
3839
+ T.nilable(
3840
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Invoice
3841
+ )
3842
+ )
3843
+ end
3844
+ attr_reader :invoice
3845
+
3846
+ sig do
3847
+ params(
3848
+ invoice:
3849
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Invoice::OrHash
3850
+ ).void
3851
+ end
3852
+ attr_writer :invoice
3853
+
3854
+ # Optional rounding configuration for prorated recurring commit amounts.
3855
+ sig do
3856
+ params(
3857
+ access:
3858
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Access::OrHash,
3859
+ invoice:
3860
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Invoice::OrHash
3861
+ ).returns(T.attached_class)
3862
+ end
3863
+ def self.new(access: nil, invoice: nil)
3864
+ end
3865
+
3866
+ sig do
3867
+ override.returns(
3868
+ {
3869
+ access:
3870
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Access,
3871
+ invoice:
3872
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Invoice
3873
+ }
3874
+ )
3875
+ end
3876
+ def to_hash
3877
+ end
3878
+
3879
+ class Access < MetronomeSDK::Internal::Type::BaseModel
3880
+ OrHash =
3881
+ T.type_alias do
3882
+ T.any(
3883
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Access,
3884
+ MetronomeSDK::Internal::AnyHash
3885
+ )
3886
+ end
3887
+
3888
+ # Number of decimal places to round to. Applied directly to the stored monetary
3889
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
3890
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
3891
+ # dollar).
3892
+ sig { returns(Float) }
3893
+ attr_accessor :decimal_places
3894
+
3895
+ sig do
3896
+ returns(
3897
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Access::RoundingMethod::OrSymbol
3898
+ )
3899
+ end
3900
+ attr_accessor :rounding_method
3901
+
3902
+ sig do
3903
+ params(
3904
+ decimal_places: Float,
3905
+ rounding_method:
3906
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Access::RoundingMethod::OrSymbol
3907
+ ).returns(T.attached_class)
3908
+ end
3909
+ def self.new(
3910
+ # Number of decimal places to round to. Applied directly to the stored monetary
3911
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
3912
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
3913
+ # dollar).
3914
+ decimal_places:,
3915
+ rounding_method:
3916
+ )
3917
+ end
3918
+
3919
+ sig do
3920
+ override.returns(
3921
+ {
3922
+ decimal_places: Float,
3923
+ rounding_method:
3924
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Access::RoundingMethod::OrSymbol
3925
+ }
3926
+ )
3927
+ end
3928
+ def to_hash
3929
+ end
3930
+
3931
+ module RoundingMethod
3932
+ extend MetronomeSDK::Internal::Type::Enum
3933
+
3934
+ TaggedSymbol =
3935
+ T.type_alias do
3936
+ T.all(
3937
+ Symbol,
3938
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Access::RoundingMethod
3939
+ )
3940
+ end
3941
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3942
+
3943
+ HALF_UP =
3944
+ T.let(
3945
+ :HALF_UP,
3946
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
3947
+ )
3948
+ FLOOR =
3949
+ T.let(
3950
+ :FLOOR,
3951
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
3952
+ )
3953
+ CEILING =
3954
+ T.let(
3955
+ :CEILING,
3956
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
3957
+ )
3958
+
3959
+ sig do
3960
+ override.returns(
3961
+ T::Array[
3962
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
3963
+ ]
3964
+ )
3965
+ end
3966
+ def self.values
3967
+ end
3968
+ end
3969
+ end
3970
+
3971
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
3972
+ OrHash =
3973
+ T.type_alias do
3974
+ T.any(
3975
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Invoice,
3976
+ MetronomeSDK::Internal::AnyHash
3977
+ )
3978
+ end
3979
+
3980
+ # Number of decimal places to round to. Applied directly to the stored monetary
3981
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
3982
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
3983
+ # dollar).
3984
+ sig { returns(Float) }
3985
+ attr_accessor :decimal_places
3986
+
3987
+ sig do
3988
+ returns(
3989
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::OrSymbol
3990
+ )
3991
+ end
3992
+ attr_accessor :rounding_method
3993
+
3994
+ sig do
3995
+ params(
3996
+ decimal_places: Float,
3997
+ rounding_method:
3998
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::OrSymbol
3999
+ ).returns(T.attached_class)
4000
+ end
4001
+ def self.new(
4002
+ # Number of decimal places to round to. Applied directly to the stored monetary
4003
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4004
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4005
+ # dollar).
4006
+ decimal_places:,
4007
+ rounding_method:
4008
+ )
4009
+ end
4010
+
4011
+ sig do
4012
+ override.returns(
4013
+ {
4014
+ decimal_places: Float,
4015
+ rounding_method:
4016
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::OrSymbol
4017
+ }
4018
+ )
4019
+ end
4020
+ def to_hash
4021
+ end
4022
+
4023
+ module RoundingMethod
4024
+ extend MetronomeSDK::Internal::Type::Enum
4025
+
4026
+ TaggedSymbol =
4027
+ T.type_alias do
4028
+ T.all(
4029
+ Symbol,
4030
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Invoice::RoundingMethod
4031
+ )
4032
+ end
4033
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4034
+
4035
+ HALF_UP =
4036
+ T.let(
4037
+ :HALF_UP,
4038
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4039
+ )
4040
+ FLOOR =
4041
+ T.let(
4042
+ :FLOOR,
4043
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4044
+ )
4045
+ CEILING =
4046
+ T.let(
4047
+ :CEILING,
4048
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4049
+ )
4050
+
4051
+ sig do
4052
+ override.returns(
4053
+ T::Array[
4054
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4055
+ ]
4056
+ )
4057
+ end
4058
+ def self.values
4059
+ end
4060
+ end
4061
+ end
4062
+ end
4063
+
3740
4064
  # Whether the created commits will use the commit rate or list rate
3741
4065
  module RateType
3742
4066
  extend MetronomeSDK::Internal::Type::Enum
@@ -3809,6 +4133,11 @@ module MetronomeSDK
3809
4133
  :WEEKLY,
3810
4134
  MetronomeSDK::V1::PackageCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
3811
4135
  )
4136
+ DAILY =
4137
+ T.let(
4138
+ :DAILY,
4139
+ MetronomeSDK::V1::PackageCreateParams::RecurringCommit::RecurrenceFrequency::TaggedSymbol
4140
+ )
3812
4141
 
3813
4142
  sig do
3814
4143
  override.returns(
@@ -4098,6 +4427,24 @@ module MetronomeSDK
4098
4427
  end
4099
4428
  attr_writer :proration
4100
4429
 
4430
+ # Optional rounding configuration for prorated recurring credit amounts.
4431
+ sig do
4432
+ returns(
4433
+ T.nilable(
4434
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding
4435
+ )
4436
+ )
4437
+ end
4438
+ attr_reader :proration_rounding
4439
+
4440
+ sig do
4441
+ params(
4442
+ proration_rounding:
4443
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding::OrHash
4444
+ ).void
4445
+ end
4446
+ attr_writer :proration_rounding
4447
+
4101
4448
  # Whether the created commits will use the commit rate or list rate
4102
4449
  sig do
4103
4450
  returns(
@@ -4207,6 +4554,8 @@ module MetronomeSDK
4207
4554
  name: String,
4208
4555
  proration:
4209
4556
  MetronomeSDK::V1::PackageCreateParams::RecurringCredit::Proration::OrSymbol,
4557
+ proration_rounding:
4558
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding::OrHash,
4210
4559
  rate_type:
4211
4560
  MetronomeSDK::V1::PackageCreateParams::RecurringCredit::RateType::OrSymbol,
4212
4561
  recurrence_frequency:
@@ -4245,6 +4594,8 @@ module MetronomeSDK
4245
4594
  # Determines whether the first and last commit will be prorated. If not provided,
4246
4595
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
4247
4596
  proration: nil,
4597
+ # Optional rounding configuration for prorated recurring credit amounts.
4598
+ proration_rounding: nil,
4248
4599
  # Whether the created commits will use the commit rate or list rate
4249
4600
  rate_type: nil,
4250
4601
  # The frequency at which the recurring commits will be created. If not provided: -
@@ -4289,6 +4640,8 @@ module MetronomeSDK
4289
4640
  name: String,
4290
4641
  proration:
4291
4642
  MetronomeSDK::V1::PackageCreateParams::RecurringCredit::Proration::OrSymbol,
4643
+ proration_rounding:
4644
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding,
4292
4645
  rate_type:
4293
4646
  MetronomeSDK::V1::PackageCreateParams::RecurringCredit::RateType::OrSymbol,
4294
4647
  recurrence_frequency:
@@ -4659,52 +5012,192 @@ module MetronomeSDK
4659
5012
  end
4660
5013
  end
4661
5014
 
4662
- # Whether the created commits will use the commit rate or list rate
4663
- module RateType
4664
- extend MetronomeSDK::Internal::Type::Enum
4665
-
4666
- TaggedSymbol =
5015
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
5016
+ OrHash =
4667
5017
  T.type_alias do
4668
- T.all(
4669
- Symbol,
4670
- MetronomeSDK::V1::PackageCreateParams::RecurringCredit::RateType
5018
+ T.any(
5019
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding,
5020
+ MetronomeSDK::Internal::AnyHash
4671
5021
  )
4672
5022
  end
4673
- OrSymbol = T.type_alias { T.any(Symbol, String) }
4674
5023
 
4675
- COMMIT_RATE =
4676
- T.let(
4677
- :COMMIT_RATE,
4678
- MetronomeSDK::V1::PackageCreateParams::RecurringCredit::RateType::TaggedSymbol
4679
- )
4680
- LIST_RATE =
4681
- T.let(
4682
- :LIST_RATE,
4683
- MetronomeSDK::V1::PackageCreateParams::RecurringCredit::RateType::TaggedSymbol
5024
+ sig do
5025
+ returns(
5026
+ T.nilable(
5027
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding::Access
5028
+ )
4684
5029
  )
5030
+ end
5031
+ attr_reader :access
5032
+
5033
+ sig do
5034
+ params(
5035
+ access:
5036
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding::Access::OrHash
5037
+ ).void
5038
+ end
5039
+ attr_writer :access
5040
+
5041
+ # Optional rounding configuration for prorated recurring credit amounts.
5042
+ sig do
5043
+ params(
5044
+ access:
5045
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding::Access::OrHash
5046
+ ).returns(T.attached_class)
5047
+ end
5048
+ def self.new(access: nil)
5049
+ end
4685
5050
 
4686
5051
  sig do
4687
5052
  override.returns(
4688
- T::Array[
4689
- MetronomeSDK::V1::PackageCreateParams::RecurringCredit::RateType::TaggedSymbol
4690
- ]
5053
+ {
5054
+ access:
5055
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding::Access
5056
+ }
4691
5057
  )
4692
5058
  end
4693
- def self.values
5059
+ def to_hash
4694
5060
  end
4695
- end
4696
5061
 
4697
- # The frequency at which the recurring commits will be created. If not provided: -
4698
- # The commits will be created on the usage invoice frequency. If provided: - The
4699
- # period defined in the duration will correspond to this frequency. - Commits will
4700
- # be created aligned with the recurring commit's starting_at rather than the usage
4701
- # invoice dates.
4702
- module RecurrenceFrequency
4703
- extend MetronomeSDK::Internal::Type::Enum
5062
+ class Access < MetronomeSDK::Internal::Type::BaseModel
5063
+ OrHash =
5064
+ T.type_alias do
5065
+ T.any(
5066
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding::Access,
5067
+ MetronomeSDK::Internal::AnyHash
5068
+ )
5069
+ end
4704
5070
 
4705
- TaggedSymbol =
4706
- T.type_alias do
4707
- T.all(
5071
+ # Number of decimal places to round to. Applied directly to the stored monetary
5072
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
5073
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
5074
+ # dollar).
5075
+ sig { returns(Float) }
5076
+ attr_accessor :decimal_places
5077
+
5078
+ sig do
5079
+ returns(
5080
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding::Access::RoundingMethod::OrSymbol
5081
+ )
5082
+ end
5083
+ attr_accessor :rounding_method
5084
+
5085
+ sig do
5086
+ params(
5087
+ decimal_places: Float,
5088
+ rounding_method:
5089
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding::Access::RoundingMethod::OrSymbol
5090
+ ).returns(T.attached_class)
5091
+ end
5092
+ def self.new(
5093
+ # Number of decimal places to round to. Applied directly to the stored monetary
5094
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
5095
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
5096
+ # dollar).
5097
+ decimal_places:,
5098
+ rounding_method:
5099
+ )
5100
+ end
5101
+
5102
+ sig do
5103
+ override.returns(
5104
+ {
5105
+ decimal_places: Float,
5106
+ rounding_method:
5107
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding::Access::RoundingMethod::OrSymbol
5108
+ }
5109
+ )
5110
+ end
5111
+ def to_hash
5112
+ end
5113
+
5114
+ module RoundingMethod
5115
+ extend MetronomeSDK::Internal::Type::Enum
5116
+
5117
+ TaggedSymbol =
5118
+ T.type_alias do
5119
+ T.all(
5120
+ Symbol,
5121
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding::Access::RoundingMethod
5122
+ )
5123
+ end
5124
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5125
+
5126
+ HALF_UP =
5127
+ T.let(
5128
+ :HALF_UP,
5129
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5130
+ )
5131
+ FLOOR =
5132
+ T.let(
5133
+ :FLOOR,
5134
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5135
+ )
5136
+ CEILING =
5137
+ T.let(
5138
+ :CEILING,
5139
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5140
+ )
5141
+
5142
+ sig do
5143
+ override.returns(
5144
+ T::Array[
5145
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5146
+ ]
5147
+ )
5148
+ end
5149
+ def self.values
5150
+ end
5151
+ end
5152
+ end
5153
+ end
5154
+
5155
+ # Whether the created commits will use the commit rate or list rate
5156
+ module RateType
5157
+ extend MetronomeSDK::Internal::Type::Enum
5158
+
5159
+ TaggedSymbol =
5160
+ T.type_alias do
5161
+ T.all(
5162
+ Symbol,
5163
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::RateType
5164
+ )
5165
+ end
5166
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5167
+
5168
+ COMMIT_RATE =
5169
+ T.let(
5170
+ :COMMIT_RATE,
5171
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::RateType::TaggedSymbol
5172
+ )
5173
+ LIST_RATE =
5174
+ T.let(
5175
+ :LIST_RATE,
5176
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::RateType::TaggedSymbol
5177
+ )
5178
+
5179
+ sig do
5180
+ override.returns(
5181
+ T::Array[
5182
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::RateType::TaggedSymbol
5183
+ ]
5184
+ )
5185
+ end
5186
+ def self.values
5187
+ end
5188
+ end
5189
+
5190
+ # The frequency at which the recurring commits will be created. If not provided: -
5191
+ # The commits will be created on the usage invoice frequency. If provided: - The
5192
+ # period defined in the duration will correspond to this frequency. - Commits will
5193
+ # be created aligned with the recurring commit's starting_at rather than the usage
5194
+ # invoice dates.
5195
+ module RecurrenceFrequency
5196
+ extend MetronomeSDK::Internal::Type::Enum
5197
+
5198
+ TaggedSymbol =
5199
+ T.type_alias do
5200
+ T.all(
4708
5201
  Symbol,
4709
5202
  MetronomeSDK::V1::PackageCreateParams::RecurringCredit::RecurrenceFrequency
4710
5203
  )
@@ -4731,6 +5224,11 @@ module MetronomeSDK
4731
5224
  :WEEKLY,
4732
5225
  MetronomeSDK::V1::PackageCreateParams::RecurringCredit::RecurrenceFrequency::TaggedSymbol
4733
5226
  )
5227
+ DAILY =
5228
+ T.let(
5229
+ :DAILY,
5230
+ MetronomeSDK::V1::PackageCreateParams::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5231
+ )
4734
5232
 
4735
5233
  sig do
4736
5234
  override.returns(
@@ -5213,6 +5711,290 @@ module MetronomeSDK
5213
5711
  end
5214
5712
  end
5215
5713
 
5714
+ class SpendTracker < MetronomeSDK::Internal::Type::BaseModel
5715
+ OrHash =
5716
+ T.type_alias do
5717
+ T.any(
5718
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker,
5719
+ MetronomeSDK::Internal::AnyHash
5720
+ )
5721
+ end
5722
+
5723
+ # Human-readable identifier, unique per contract.
5724
+ sig { returns(String) }
5725
+ attr_accessor :alias_
5726
+
5727
+ sig do
5728
+ returns(
5729
+ T::Array[
5730
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier
5731
+ ]
5732
+ )
5733
+ end
5734
+ attr_accessor :applicable_spend_specifiers
5735
+
5736
+ sig { returns(String) }
5737
+ attr_accessor :credit_type_id
5738
+
5739
+ sig do
5740
+ returns(
5741
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ResetFrequency::OrSymbol
5742
+ )
5743
+ end
5744
+ attr_accessor :reset_frequency
5745
+
5746
+ sig do
5747
+ params(
5748
+ alias_: String,
5749
+ applicable_spend_specifiers:
5750
+ T::Array[
5751
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::OrHash
5752
+ ],
5753
+ credit_type_id: String,
5754
+ reset_frequency:
5755
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ResetFrequency::OrSymbol
5756
+ ).returns(T.attached_class)
5757
+ end
5758
+ def self.new(
5759
+ # Human-readable identifier, unique per contract.
5760
+ alias_:,
5761
+ applicable_spend_specifiers:,
5762
+ credit_type_id:,
5763
+ reset_frequency:
5764
+ )
5765
+ end
5766
+
5767
+ sig do
5768
+ override.returns(
5769
+ {
5770
+ alias_: String,
5771
+ applicable_spend_specifiers:
5772
+ T::Array[
5773
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier
5774
+ ],
5775
+ credit_type_id: String,
5776
+ reset_frequency:
5777
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ResetFrequency::OrSymbol
5778
+ }
5779
+ )
5780
+ end
5781
+ def to_hash
5782
+ end
5783
+
5784
+ class ApplicableSpendSpecifier < MetronomeSDK::Internal::Type::BaseModel
5785
+ OrHash =
5786
+ T.type_alias do
5787
+ T.any(
5788
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier,
5789
+ MetronomeSDK::Internal::AnyHash
5790
+ )
5791
+ end
5792
+
5793
+ sig do
5794
+ returns(
5795
+ T::Array[
5796
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Source::OrSymbol
5797
+ ]
5798
+ )
5799
+ end
5800
+ attr_accessor :sources
5801
+
5802
+ sig do
5803
+ returns(
5804
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::SpendType::OrSymbol
5805
+ )
5806
+ end
5807
+ attr_accessor :spend_type
5808
+
5809
+ # Filter by whether the spend was discounted. Defaults to ANY if omitted.
5810
+ sig do
5811
+ returns(
5812
+ T.nilable(
5813
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
5814
+ )
5815
+ )
5816
+ end
5817
+ attr_reader :discounted
5818
+
5819
+ sig do
5820
+ params(
5821
+ discounted:
5822
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
5823
+ ).void
5824
+ end
5825
+ attr_writer :discounted
5826
+
5827
+ sig do
5828
+ params(
5829
+ sources:
5830
+ T::Array[
5831
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Source::OrSymbol
5832
+ ],
5833
+ spend_type:
5834
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::SpendType::OrSymbol,
5835
+ discounted:
5836
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
5837
+ ).returns(T.attached_class)
5838
+ end
5839
+ def self.new(
5840
+ sources:,
5841
+ spend_type:,
5842
+ # Filter by whether the spend was discounted. Defaults to ANY if omitted.
5843
+ discounted: nil
5844
+ )
5845
+ end
5846
+
5847
+ sig do
5848
+ override.returns(
5849
+ {
5850
+ sources:
5851
+ T::Array[
5852
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Source::OrSymbol
5853
+ ],
5854
+ spend_type:
5855
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::SpendType::OrSymbol,
5856
+ discounted:
5857
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
5858
+ }
5859
+ )
5860
+ end
5861
+ def to_hash
5862
+ end
5863
+
5864
+ module Source
5865
+ extend MetronomeSDK::Internal::Type::Enum
5866
+
5867
+ TaggedSymbol =
5868
+ T.type_alias do
5869
+ T.all(
5870
+ Symbol,
5871
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Source
5872
+ )
5873
+ end
5874
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5875
+
5876
+ THRESHOLD_RECHARGE =
5877
+ T.let(
5878
+ :THRESHOLD_RECHARGE,
5879
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5880
+ )
5881
+ MANUAL =
5882
+ T.let(
5883
+ :MANUAL,
5884
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5885
+ )
5886
+
5887
+ sig do
5888
+ override.returns(
5889
+ T::Array[
5890
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5891
+ ]
5892
+ )
5893
+ end
5894
+ def self.values
5895
+ end
5896
+ end
5897
+
5898
+ module SpendType
5899
+ extend MetronomeSDK::Internal::Type::Enum
5900
+
5901
+ TaggedSymbol =
5902
+ T.type_alias do
5903
+ T.all(
5904
+ Symbol,
5905
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::SpendType
5906
+ )
5907
+ end
5908
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5909
+
5910
+ COMMIT_PURCHASE =
5911
+ T.let(
5912
+ :COMMIT_PURCHASE,
5913
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
5914
+ )
5915
+
5916
+ sig do
5917
+ override.returns(
5918
+ T::Array[
5919
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
5920
+ ]
5921
+ )
5922
+ end
5923
+ def self.values
5924
+ end
5925
+ end
5926
+
5927
+ # Filter by whether the spend was discounted. Defaults to ANY if omitted.
5928
+ module Discounted
5929
+ extend MetronomeSDK::Internal::Type::Enum
5930
+
5931
+ TaggedSymbol =
5932
+ T.type_alias do
5933
+ T.all(
5934
+ Symbol,
5935
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted
5936
+ )
5937
+ end
5938
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5939
+
5940
+ ANY =
5941
+ T.let(
5942
+ :ANY,
5943
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5944
+ )
5945
+ DISCOUNTED_ONLY =
5946
+ T.let(
5947
+ :DISCOUNTED_ONLY,
5948
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5949
+ )
5950
+ UNDISCOUNTED_ONLY =
5951
+ T.let(
5952
+ :UNDISCOUNTED_ONLY,
5953
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5954
+ )
5955
+
5956
+ sig do
5957
+ override.returns(
5958
+ T::Array[
5959
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5960
+ ]
5961
+ )
5962
+ end
5963
+ def self.values
5964
+ end
5965
+ end
5966
+ end
5967
+
5968
+ module ResetFrequency
5969
+ extend MetronomeSDK::Internal::Type::Enum
5970
+
5971
+ TaggedSymbol =
5972
+ T.type_alias do
5973
+ T.all(
5974
+ Symbol,
5975
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ResetFrequency
5976
+ )
5977
+ end
5978
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5979
+
5980
+ BILLING_PERIOD =
5981
+ T.let(
5982
+ :BILLING_PERIOD,
5983
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ResetFrequency::TaggedSymbol
5984
+ )
5985
+
5986
+ sig do
5987
+ override.returns(
5988
+ T::Array[
5989
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ResetFrequency::TaggedSymbol
5990
+ ]
5991
+ )
5992
+ end
5993
+ def self.values
5994
+ end
5995
+ end
5996
+ end
5997
+
5216
5998
  class Subscription < MetronomeSDK::Internal::Type::BaseModel
5217
5999
  OrHash =
5218
6000
  T.type_alias do
@@ -5259,6 +6041,23 @@ module MetronomeSDK
5259
6041
  end
5260
6042
  attr_writer :subscription_rate
5261
6043
 
6044
+ sig do
6045
+ returns(
6046
+ T.nilable(
6047
+ MetronomeSDK::V1::PackageCreateParams::Subscription::BillingCycleConfig
6048
+ )
6049
+ )
6050
+ end
6051
+ attr_reader :billing_cycle_config
6052
+
6053
+ sig do
6054
+ params(
6055
+ billing_cycle_config:
6056
+ MetronomeSDK::V1::PackageCreateParams::Subscription::BillingCycleConfig::OrHash
6057
+ ).void
6058
+ end
6059
+ attr_writer :billing_cycle_config
6060
+
5262
6061
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
5263
6062
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
5264
6063
  attr_reader :custom_fields
@@ -5383,6 +6182,8 @@ module MetronomeSDK
5383
6182
  MetronomeSDK::V1::PackageCreateParams::Subscription::Proration::OrHash,
5384
6183
  subscription_rate:
5385
6184
  MetronomeSDK::V1::PackageCreateParams::Subscription::SubscriptionRate::OrHash,
6185
+ billing_cycle_config:
6186
+ MetronomeSDK::V1::PackageCreateParams::Subscription::BillingCycleConfig::OrHash,
5386
6187
  custom_fields: T::Hash[Symbol, String],
5387
6188
  description: String,
5388
6189
  duration:
@@ -5402,6 +6203,7 @@ module MetronomeSDK
5402
6203
  collection_schedule:,
5403
6204
  proration:,
5404
6205
  subscription_rate:,
6206
+ billing_cycle_config: nil,
5405
6207
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
5406
6208
  custom_fields: nil,
5407
6209
  description: nil,
@@ -5441,6 +6243,8 @@ module MetronomeSDK
5441
6243
  MetronomeSDK::V1::PackageCreateParams::Subscription::Proration,
5442
6244
  subscription_rate:
5443
6245
  MetronomeSDK::V1::PackageCreateParams::Subscription::SubscriptionRate,
6246
+ billing_cycle_config:
6247
+ MetronomeSDK::V1::PackageCreateParams::Subscription::BillingCycleConfig,
5444
6248
  custom_fields: T::Hash[Symbol, String],
5445
6249
  description: String,
5446
6250
  duration:
@@ -5532,11 +6336,30 @@ module MetronomeSDK
5532
6336
  sig { params(is_prorated: T::Boolean).void }
5533
6337
  attr_writer :is_prorated
5534
6338
 
6339
+ sig do
6340
+ returns(
6341
+ T.nilable(
6342
+ MetronomeSDK::V1::PackageCreateParams::Subscription::Proration::Rounding
6343
+ )
6344
+ )
6345
+ end
6346
+ attr_reader :rounding
6347
+
6348
+ sig do
6349
+ params(
6350
+ rounding:
6351
+ MetronomeSDK::V1::PackageCreateParams::Subscription::Proration::Rounding::OrHash
6352
+ ).void
6353
+ end
6354
+ attr_writer :rounding
6355
+
5535
6356
  sig do
5536
6357
  params(
5537
6358
  invoice_behavior:
5538
6359
  MetronomeSDK::V1::PackageCreateParams::Subscription::Proration::InvoiceBehavior::OrSymbol,
5539
- is_prorated: T::Boolean
6360
+ is_prorated: T::Boolean,
6361
+ rounding:
6362
+ MetronomeSDK::V1::PackageCreateParams::Subscription::Proration::Rounding::OrHash
5540
6363
  ).returns(T.attached_class)
5541
6364
  end
5542
6365
  def self.new(
@@ -5547,7 +6370,8 @@ module MetronomeSDK
5547
6370
  # in-arrears at the end of the period.
5548
6371
  invoice_behavior: nil,
5549
6372
  # Indicates if the partial period will be prorated or charged a full amount.
5550
- is_prorated: nil
6373
+ is_prorated: nil,
6374
+ rounding: nil
5551
6375
  )
5552
6376
  end
5553
6377
 
@@ -5556,7 +6380,9 @@ module MetronomeSDK
5556
6380
  {
5557
6381
  invoice_behavior:
5558
6382
  MetronomeSDK::V1::PackageCreateParams::Subscription::Proration::InvoiceBehavior::OrSymbol,
5559
- is_prorated: T::Boolean
6383
+ is_prorated: T::Boolean,
6384
+ rounding:
6385
+ MetronomeSDK::V1::PackageCreateParams::Subscription::Proration::Rounding
5560
6386
  }
5561
6387
  )
5562
6388
  end
@@ -5601,6 +6427,98 @@ module MetronomeSDK
5601
6427
  def self.values
5602
6428
  end
5603
6429
  end
6430
+
6431
+ class Rounding < MetronomeSDK::Internal::Type::BaseModel
6432
+ OrHash =
6433
+ T.type_alias do
6434
+ T.any(
6435
+ MetronomeSDK::V1::PackageCreateParams::Subscription::Proration::Rounding,
6436
+ MetronomeSDK::Internal::AnyHash
6437
+ )
6438
+ end
6439
+
6440
+ # Number of decimal places to round to. Applied directly to the stored monetary
6441
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
6442
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
6443
+ # dollar).
6444
+ sig { returns(Float) }
6445
+ attr_accessor :decimal_places
6446
+
6447
+ sig do
6448
+ returns(
6449
+ MetronomeSDK::V1::PackageCreateParams::Subscription::Proration::Rounding::RoundingMethod::OrSymbol
6450
+ )
6451
+ end
6452
+ attr_accessor :rounding_method
6453
+
6454
+ sig do
6455
+ params(
6456
+ decimal_places: Float,
6457
+ rounding_method:
6458
+ MetronomeSDK::V1::PackageCreateParams::Subscription::Proration::Rounding::RoundingMethod::OrSymbol
6459
+ ).returns(T.attached_class)
6460
+ end
6461
+ def self.new(
6462
+ # Number of decimal places to round to. Applied directly to the stored monetary
6463
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
6464
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
6465
+ # dollar).
6466
+ decimal_places:,
6467
+ rounding_method:
6468
+ )
6469
+ end
6470
+
6471
+ sig do
6472
+ override.returns(
6473
+ {
6474
+ decimal_places: Float,
6475
+ rounding_method:
6476
+ MetronomeSDK::V1::PackageCreateParams::Subscription::Proration::Rounding::RoundingMethod::OrSymbol
6477
+ }
6478
+ )
6479
+ end
6480
+ def to_hash
6481
+ end
6482
+
6483
+ module RoundingMethod
6484
+ extend MetronomeSDK::Internal::Type::Enum
6485
+
6486
+ TaggedSymbol =
6487
+ T.type_alias do
6488
+ T.all(
6489
+ Symbol,
6490
+ MetronomeSDK::V1::PackageCreateParams::Subscription::Proration::Rounding::RoundingMethod
6491
+ )
6492
+ end
6493
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6494
+
6495
+ HALF_UP =
6496
+ T.let(
6497
+ :HALF_UP,
6498
+ MetronomeSDK::V1::PackageCreateParams::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6499
+ )
6500
+ FLOOR =
6501
+ T.let(
6502
+ :FLOOR,
6503
+ MetronomeSDK::V1::PackageCreateParams::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6504
+ )
6505
+ CEILING =
6506
+ T.let(
6507
+ :CEILING,
6508
+ MetronomeSDK::V1::PackageCreateParams::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6509
+ )
6510
+
6511
+ sig do
6512
+ override.returns(
6513
+ T::Array[
6514
+ MetronomeSDK::V1::PackageCreateParams::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6515
+ ]
6516
+ )
6517
+ end
6518
+ def self.values
6519
+ end
6520
+ end
6521
+ end
5604
6522
  end
5605
6523
 
5606
6524
  class SubscriptionRate < MetronomeSDK::Internal::Type::BaseModel
@@ -5700,6 +6618,95 @@ module MetronomeSDK
5700
6618
  end
5701
6619
  end
5702
6620
 
6621
+ class BillingCycleConfig < MetronomeSDK::Internal::Type::BaseModel
6622
+ OrHash =
6623
+ T.type_alias do
6624
+ T.any(
6625
+ MetronomeSDK::V1::PackageCreateParams::Subscription::BillingCycleConfig,
6626
+ MetronomeSDK::Internal::AnyHash
6627
+ )
6628
+ end
6629
+
6630
+ # Controls whether subscriptions consolidate onto usage invoices. Defaults to
6631
+ # ON_USAGE_INVOICE if omitted.
6632
+ sig do
6633
+ returns(
6634
+ T.nilable(
6635
+ MetronomeSDK::V1::PackageCreateParams::Subscription::BillingCycleConfig::InvoicePlacement::OrSymbol
6636
+ )
6637
+ )
6638
+ end
6639
+ attr_reader :invoice_placement
6640
+
6641
+ sig do
6642
+ params(
6643
+ invoice_placement:
6644
+ MetronomeSDK::V1::PackageCreateParams::Subscription::BillingCycleConfig::InvoicePlacement::OrSymbol
6645
+ ).void
6646
+ end
6647
+ attr_writer :invoice_placement
6648
+
6649
+ sig do
6650
+ params(
6651
+ invoice_placement:
6652
+ MetronomeSDK::V1::PackageCreateParams::Subscription::BillingCycleConfig::InvoicePlacement::OrSymbol
6653
+ ).returns(T.attached_class)
6654
+ end
6655
+ def self.new(
6656
+ # Controls whether subscriptions consolidate onto usage invoices. Defaults to
6657
+ # ON_USAGE_INVOICE if omitted.
6658
+ invoice_placement: nil
6659
+ )
6660
+ end
6661
+
6662
+ sig do
6663
+ override.returns(
6664
+ {
6665
+ invoice_placement:
6666
+ MetronomeSDK::V1::PackageCreateParams::Subscription::BillingCycleConfig::InvoicePlacement::OrSymbol
6667
+ }
6668
+ )
6669
+ end
6670
+ def to_hash
6671
+ end
6672
+
6673
+ # Controls whether subscriptions consolidate onto usage invoices. Defaults to
6674
+ # ON_USAGE_INVOICE if omitted.
6675
+ module InvoicePlacement
6676
+ extend MetronomeSDK::Internal::Type::Enum
6677
+
6678
+ TaggedSymbol =
6679
+ T.type_alias do
6680
+ T.all(
6681
+ Symbol,
6682
+ MetronomeSDK::V1::PackageCreateParams::Subscription::BillingCycleConfig::InvoicePlacement
6683
+ )
6684
+ end
6685
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6686
+
6687
+ ON_SCHEDULED_INVOICE =
6688
+ T.let(
6689
+ :ON_SCHEDULED_INVOICE,
6690
+ MetronomeSDK::V1::PackageCreateParams::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6691
+ )
6692
+ ON_USAGE_INVOICE =
6693
+ T.let(
6694
+ :ON_USAGE_INVOICE,
6695
+ MetronomeSDK::V1::PackageCreateParams::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6696
+ )
6697
+
6698
+ sig do
6699
+ override.returns(
6700
+ T::Array[
6701
+ MetronomeSDK::V1::PackageCreateParams::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6702
+ ]
6703
+ )
6704
+ end
6705
+ def self.values
6706
+ end
6707
+ end
6708
+ end
6709
+
5703
6710
  class Duration < MetronomeSDK::Internal::Type::BaseModel
5704
6711
  OrHash =
5705
6712
  T.type_alias do