metronome-sdk 3.7.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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +38 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +4 -1
  5. data/lib/metronome_sdk/models/commit.rb +10 -1
  6. data/lib/metronome_sdk/models/contract_v2.rb +290 -7
  7. data/lib/metronome_sdk/models/contract_without_amendments.rb +178 -4
  8. data/lib/metronome_sdk/models/credit.rb +10 -1
  9. data/lib/metronome_sdk/models/override.rb +7 -1
  10. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +10 -2
  11. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +3 -1
  12. data/lib/metronome_sdk/models/subscription.rb +90 -2
  13. data/lib/metronome_sdk/models/v1/alert_create_params.rb +127 -1
  14. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +17 -4
  15. data/lib/metronome_sdk/models/v1/contract_create_params.rb +290 -10
  16. data/lib/metronome_sdk/models/v1/contract_create_response.rb +178 -4
  17. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rb +88 -0
  18. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rb +62 -0
  19. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +10 -1
  20. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +127 -1
  21. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +130 -3
  22. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +10 -1
  23. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  24. data/lib/metronome_sdk/models/v1/package_create_params.rb +279 -10
  25. data/lib/metronome_sdk/models/v1/package_list_response.rb +264 -7
  26. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +264 -7
  27. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +515 -9
  28. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +456 -8
  29. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +456 -8
  30. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  31. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +4 -0
  32. data/lib/metronome_sdk/resources/v1/contracts.rb +68 -1
  33. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +4 -2
  34. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +3 -1
  35. data/lib/metronome_sdk/resources/v1/dashboards.rb +7 -2
  36. data/lib/metronome_sdk/version.rb +1 -1
  37. data/lib/metronome_sdk.rb +2 -0
  38. data/rbi/metronome_sdk/models/commit.rbi +13 -0
  39. data/rbi/metronome_sdk/models/contract_v2.rbi +715 -3
  40. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +463 -0
  41. data/rbi/metronome_sdk/models/credit.rbi +13 -0
  42. data/rbi/metronome_sdk/models/override.rbi +9 -0
  43. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +11 -1
  44. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +4 -0
  45. data/rbi/metronome_sdk/models/subscription.rbi +212 -3
  46. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +373 -0
  47. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +27 -6
  48. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +719 -9
  49. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +463 -0
  50. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbi +112 -0
  51. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbi +119 -0
  52. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +13 -0
  53. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +360 -0
  54. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +379 -2
  55. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +13 -0
  56. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  57. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +706 -9
  58. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +693 -3
  59. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +693 -3
  60. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +1333 -40
  61. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +1204 -67
  62. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1204 -67
  63. data/rbi/metronome_sdk/resources/v1/alerts.rbi +8 -0
  64. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +4 -0
  65. data/rbi/metronome_sdk/resources/v1/contracts.rbi +70 -0
  66. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +8 -1
  67. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  68. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +7 -2
  69. data/sig/metronome_sdk/models/commit.rbs +7 -0
  70. data/sig/metronome_sdk/models/contract_v2.rbs +278 -5
  71. data/sig/metronome_sdk/models/contract_without_amendments.rbs +169 -2
  72. data/sig/metronome_sdk/models/credit.rbs +7 -0
  73. data/sig/metronome_sdk/models/override.rbs +7 -0
  74. data/sig/metronome_sdk/models/subscription.rbs +88 -3
  75. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +144 -0
  76. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +7 -0
  77. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +278 -5
  78. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +167 -2
  79. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbs +63 -0
  80. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbs +59 -0
  81. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +7 -0
  82. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +141 -0
  83. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +150 -0
  84. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +8 -1
  85. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  86. data/sig/metronome_sdk/models/v1/package_create_params.rbs +271 -5
  87. data/sig/metronome_sdk/models/v1/package_list_response.rbs +265 -5
  88. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +263 -5
  89. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +468 -5
  90. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +428 -5
  91. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +427 -5
  92. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  93. data/sig/metronome_sdk/resources/v1/contracts.rbs +13 -0
  94. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  95. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -0
  96. metadata +8 -2
@@ -1629,6 +1629,14 @@ module MetronomeSDK
1629
1629
  )
1630
1630
  end
1631
1631
 
1632
+ sig { returns(T.nilable(T::Array[String])) }
1633
+ attr_reader :any_commit_or_credit_template_ids
1634
+
1635
+ sig do
1636
+ params(any_commit_or_credit_template_ids: T::Array[String]).void
1637
+ end
1638
+ attr_writer :any_commit_or_credit_template_ids
1639
+
1632
1640
  sig do
1633
1641
  returns(
1634
1642
  T.nilable(
@@ -1690,6 +1698,7 @@ module MetronomeSDK
1690
1698
 
1691
1699
  sig do
1692
1700
  params(
1701
+ any_commit_or_credit_template_ids: T::Array[String],
1693
1702
  billing_frequency:
1694
1703
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Override::OverrideSpecifier::BillingFrequency::OrSymbol,
1695
1704
  commit_template_ids: T::Array[String],
@@ -1701,6 +1710,7 @@ module MetronomeSDK
1701
1710
  ).returns(T.attached_class)
1702
1711
  end
1703
1712
  def self.new(
1713
+ any_commit_or_credit_template_ids: nil,
1704
1714
  billing_frequency: nil,
1705
1715
  commit_template_ids: nil,
1706
1716
  presentation_group_values: nil,
@@ -1714,6 +1724,7 @@ module MetronomeSDK
1714
1724
  sig do
1715
1725
  override.returns(
1716
1726
  {
1727
+ any_commit_or_credit_template_ids: T::Array[String],
1717
1728
  billing_frequency:
1718
1729
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Override::OverrideSpecifier::BillingFrequency::TaggedSymbol,
1719
1730
  commit_template_ids: T::Array[String],
@@ -3483,6 +3494,26 @@ module MetronomeSDK
3483
3494
  end
3484
3495
  attr_writer :proration
3485
3496
 
3497
+ # Rounding configuration for prorated recurring commit amounts.
3498
+ sig do
3499
+ returns(
3500
+ T.nilable(
3501
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding
3502
+ )
3503
+ )
3504
+ end
3505
+ attr_reader :proration_rounding
3506
+
3507
+ sig do
3508
+ params(
3509
+ proration_rounding:
3510
+ T.nilable(
3511
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::OrHash
3512
+ )
3513
+ ).void
3514
+ end
3515
+ attr_writer :proration_rounding
3516
+
3486
3517
  # The frequency at which the recurring commits will be created. If not provided: -
3487
3518
  # The commits will be created on the usage invoice frequency. If provided: - The
3488
3519
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -3569,6 +3600,10 @@ module MetronomeSDK
3569
3600
  name: String,
3570
3601
  proration:
3571
3602
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::Proration::OrSymbol,
3603
+ proration_rounding:
3604
+ T.nilable(
3605
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::OrHash
3606
+ ),
3572
3607
  recurrence_frequency:
3573
3608
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::RecurrenceFrequency::OrSymbol,
3574
3609
  rollover_fraction: Float,
@@ -3604,6 +3639,8 @@ module MetronomeSDK
3604
3639
  # Determines whether the first and last commit will be prorated. If not provided,
3605
3640
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3606
3641
  proration: nil,
3642
+ # Rounding configuration for prorated recurring commit amounts.
3643
+ proration_rounding: nil,
3607
3644
  # The frequency at which the recurring commits will be created. If not provided: -
3608
3645
  # The commits will be created on the usage invoice frequency. If provided: - The
3609
3646
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -3648,6 +3685,10 @@ module MetronomeSDK
3648
3685
  name: String,
3649
3686
  proration:
3650
3687
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::Proration::TaggedSymbol,
3688
+ proration_rounding:
3689
+ T.nilable(
3690
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding
3691
+ ),
3651
3692
  recurrence_frequency:
3652
3693
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::RecurrenceFrequency::TaggedSymbol,
3653
3694
  rollover_fraction: Float,
@@ -4102,6 +4143,259 @@ module MetronomeSDK
4102
4143
  end
4103
4144
  end
4104
4145
 
4146
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
4147
+ OrHash =
4148
+ T.type_alias do
4149
+ T.any(
4150
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding,
4151
+ MetronomeSDK::Internal::AnyHash
4152
+ )
4153
+ end
4154
+
4155
+ sig do
4156
+ returns(
4157
+ T.nilable(
4158
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access
4159
+ )
4160
+ )
4161
+ end
4162
+ attr_reader :access
4163
+
4164
+ sig do
4165
+ params(
4166
+ access:
4167
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::OrHash
4168
+ ).void
4169
+ end
4170
+ attr_writer :access
4171
+
4172
+ sig do
4173
+ returns(
4174
+ T.nilable(
4175
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice
4176
+ )
4177
+ )
4178
+ end
4179
+ attr_reader :invoice
4180
+
4181
+ sig do
4182
+ params(
4183
+ invoice:
4184
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::OrHash
4185
+ ).void
4186
+ end
4187
+ attr_writer :invoice
4188
+
4189
+ # Rounding configuration for prorated recurring commit amounts.
4190
+ sig do
4191
+ params(
4192
+ access:
4193
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::OrHash,
4194
+ invoice:
4195
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::OrHash
4196
+ ).returns(T.attached_class)
4197
+ end
4198
+ def self.new(access: nil, invoice: nil)
4199
+ end
4200
+
4201
+ sig do
4202
+ override.returns(
4203
+ {
4204
+ access:
4205
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access,
4206
+ invoice:
4207
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice
4208
+ }
4209
+ )
4210
+ end
4211
+ def to_hash
4212
+ end
4213
+
4214
+ class Access < MetronomeSDK::Internal::Type::BaseModel
4215
+ OrHash =
4216
+ T.type_alias do
4217
+ T.any(
4218
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access,
4219
+ MetronomeSDK::Internal::AnyHash
4220
+ )
4221
+ end
4222
+
4223
+ # Number of decimal places to round to. Applied directly to the stored monetary
4224
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4225
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4226
+ # dollar).
4227
+ sig { returns(Float) }
4228
+ attr_accessor :decimal_places
4229
+
4230
+ sig do
4231
+ returns(
4232
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4233
+ )
4234
+ end
4235
+ attr_accessor :rounding_method
4236
+
4237
+ sig do
4238
+ params(
4239
+ decimal_places: Float,
4240
+ rounding_method:
4241
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod::OrSymbol
4242
+ ).returns(T.attached_class)
4243
+ end
4244
+ def self.new(
4245
+ # Number of decimal places to round to. Applied directly to the stored monetary
4246
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4247
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4248
+ # dollar).
4249
+ decimal_places:,
4250
+ rounding_method:
4251
+ )
4252
+ end
4253
+
4254
+ sig do
4255
+ override.returns(
4256
+ {
4257
+ decimal_places: Float,
4258
+ rounding_method:
4259
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4260
+ }
4261
+ )
4262
+ end
4263
+ def to_hash
4264
+ end
4265
+
4266
+ module RoundingMethod
4267
+ extend MetronomeSDK::Internal::Type::Enum
4268
+
4269
+ TaggedSymbol =
4270
+ T.type_alias do
4271
+ T.all(
4272
+ Symbol,
4273
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod
4274
+ )
4275
+ end
4276
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4277
+
4278
+ HALF_UP =
4279
+ T.let(
4280
+ :HALF_UP,
4281
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4282
+ )
4283
+ FLOOR =
4284
+ T.let(
4285
+ :FLOOR,
4286
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4287
+ )
4288
+ CEILING =
4289
+ T.let(
4290
+ :CEILING,
4291
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4292
+ )
4293
+
4294
+ sig do
4295
+ override.returns(
4296
+ T::Array[
4297
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4298
+ ]
4299
+ )
4300
+ end
4301
+ def self.values
4302
+ end
4303
+ end
4304
+ end
4305
+
4306
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
4307
+ OrHash =
4308
+ T.type_alias do
4309
+ T.any(
4310
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice,
4311
+ MetronomeSDK::Internal::AnyHash
4312
+ )
4313
+ end
4314
+
4315
+ # Number of decimal places to round to. Applied directly to the stored monetary
4316
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4317
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4318
+ # dollar).
4319
+ sig { returns(Float) }
4320
+ attr_accessor :decimal_places
4321
+
4322
+ sig do
4323
+ returns(
4324
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4325
+ )
4326
+ end
4327
+ attr_accessor :rounding_method
4328
+
4329
+ sig do
4330
+ params(
4331
+ decimal_places: Float,
4332
+ rounding_method:
4333
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::OrSymbol
4334
+ ).returns(T.attached_class)
4335
+ end
4336
+ def self.new(
4337
+ # Number of decimal places to round to. Applied directly to the stored monetary
4338
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4339
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4340
+ # dollar).
4341
+ decimal_places:,
4342
+ rounding_method:
4343
+ )
4344
+ end
4345
+
4346
+ sig do
4347
+ override.returns(
4348
+ {
4349
+ decimal_places: Float,
4350
+ rounding_method:
4351
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4352
+ }
4353
+ )
4354
+ end
4355
+ def to_hash
4356
+ end
4357
+
4358
+ module RoundingMethod
4359
+ extend MetronomeSDK::Internal::Type::Enum
4360
+
4361
+ TaggedSymbol =
4362
+ T.type_alias do
4363
+ T.all(
4364
+ Symbol,
4365
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod
4366
+ )
4367
+ end
4368
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4369
+
4370
+ HALF_UP =
4371
+ T.let(
4372
+ :HALF_UP,
4373
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4374
+ )
4375
+ FLOOR =
4376
+ T.let(
4377
+ :FLOOR,
4378
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4379
+ )
4380
+ CEILING =
4381
+ T.let(
4382
+ :CEILING,
4383
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4384
+ )
4385
+
4386
+ sig do
4387
+ override.returns(
4388
+ T::Array[
4389
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4390
+ ]
4391
+ )
4392
+ end
4393
+ def self.values
4394
+ end
4395
+ end
4396
+ end
4397
+ end
4398
+
4105
4399
  # The frequency at which the recurring commits will be created. If not provided: -
4106
4400
  # The commits will be created on the usage invoice frequency. If provided: - The
4107
4401
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -4139,6 +4433,11 @@ module MetronomeSDK
4139
4433
  :WEEKLY,
4140
4434
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::RecurrenceFrequency::TaggedSymbol
4141
4435
  )
4436
+ DAILY =
4437
+ T.let(
4438
+ :DAILY,
4439
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::RecurrenceFrequency::TaggedSymbol
4440
+ )
4142
4441
 
4143
4442
  sig do
4144
4443
  override.returns(
@@ -4430,6 +4729,26 @@ module MetronomeSDK
4430
4729
  end
4431
4730
  attr_writer :proration
4432
4731
 
4732
+ # Rounding configuration for prorated recurring credit amounts.
4733
+ sig do
4734
+ returns(
4735
+ T.nilable(
4736
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding
4737
+ )
4738
+ )
4739
+ end
4740
+ attr_reader :proration_rounding
4741
+
4742
+ sig do
4743
+ params(
4744
+ proration_rounding:
4745
+ T.nilable(
4746
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::OrHash
4747
+ )
4748
+ ).void
4749
+ end
4750
+ attr_writer :proration_rounding
4751
+
4433
4752
  # The frequency at which the recurring commits will be created. If not provided: -
4434
4753
  # The commits will be created on the usage invoice frequency. If provided: - The
4435
4754
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -4514,6 +4833,10 @@ module MetronomeSDK
4514
4833
  name: String,
4515
4834
  proration:
4516
4835
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::Proration::OrSymbol,
4836
+ proration_rounding:
4837
+ T.nilable(
4838
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::OrHash
4839
+ ),
4517
4840
  recurrence_frequency:
4518
4841
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::OrSymbol,
4519
4842
  rollover_fraction: Float,
@@ -4547,6 +4870,8 @@ module MetronomeSDK
4547
4870
  # Determines whether the first and last commit will be prorated. If not provided,
4548
4871
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
4549
4872
  proration: nil,
4873
+ # Rounding configuration for prorated recurring credit amounts.
4874
+ proration_rounding: nil,
4550
4875
  # The frequency at which the recurring commits will be created. If not provided: -
4551
4876
  # The commits will be created on the usage invoice frequency. If provided: - The
4552
4877
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -4589,6 +4914,10 @@ module MetronomeSDK
4589
4914
  name: String,
4590
4915
  proration:
4591
4916
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::Proration::TaggedSymbol,
4917
+ proration_rounding:
4918
+ T.nilable(
4919
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding
4920
+ ),
4592
4921
  recurrence_frequency:
4593
4922
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::TaggedSymbol,
4594
4923
  rollover_fraction: Float,
@@ -5005,6 +5334,146 @@ module MetronomeSDK
5005
5334
  end
5006
5335
  end
5007
5336
 
5337
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
5338
+ OrHash =
5339
+ T.type_alias do
5340
+ T.any(
5341
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding,
5342
+ MetronomeSDK::Internal::AnyHash
5343
+ )
5344
+ end
5345
+
5346
+ sig do
5347
+ returns(
5348
+ T.nilable(
5349
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access
5350
+ )
5351
+ )
5352
+ end
5353
+ attr_reader :access
5354
+
5355
+ sig do
5356
+ params(
5357
+ access:
5358
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::OrHash
5359
+ ).void
5360
+ end
5361
+ attr_writer :access
5362
+
5363
+ # Rounding configuration for prorated recurring credit amounts.
5364
+ sig do
5365
+ params(
5366
+ access:
5367
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::OrHash
5368
+ ).returns(T.attached_class)
5369
+ end
5370
+ def self.new(access: nil)
5371
+ end
5372
+
5373
+ sig do
5374
+ override.returns(
5375
+ {
5376
+ access:
5377
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access
5378
+ }
5379
+ )
5380
+ end
5381
+ def to_hash
5382
+ end
5383
+
5384
+ class Access < MetronomeSDK::Internal::Type::BaseModel
5385
+ OrHash =
5386
+ T.type_alias do
5387
+ T.any(
5388
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access,
5389
+ MetronomeSDK::Internal::AnyHash
5390
+ )
5391
+ end
5392
+
5393
+ # Number of decimal places to round to. Applied directly to the stored monetary
5394
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
5395
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
5396
+ # dollar).
5397
+ sig { returns(Float) }
5398
+ attr_accessor :decimal_places
5399
+
5400
+ sig do
5401
+ returns(
5402
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5403
+ )
5404
+ end
5405
+ attr_accessor :rounding_method
5406
+
5407
+ sig do
5408
+ params(
5409
+ decimal_places: Float,
5410
+ rounding_method:
5411
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod::OrSymbol
5412
+ ).returns(T.attached_class)
5413
+ end
5414
+ def self.new(
5415
+ # Number of decimal places to round to. Applied directly to the stored monetary
5416
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
5417
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
5418
+ # dollar).
5419
+ decimal_places:,
5420
+ rounding_method:
5421
+ )
5422
+ end
5423
+
5424
+ sig do
5425
+ override.returns(
5426
+ {
5427
+ decimal_places: Float,
5428
+ rounding_method:
5429
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5430
+ }
5431
+ )
5432
+ end
5433
+ def to_hash
5434
+ end
5435
+
5436
+ module RoundingMethod
5437
+ extend MetronomeSDK::Internal::Type::Enum
5438
+
5439
+ TaggedSymbol =
5440
+ T.type_alias do
5441
+ T.all(
5442
+ Symbol,
5443
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod
5444
+ )
5445
+ end
5446
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5447
+
5448
+ HALF_UP =
5449
+ T.let(
5450
+ :HALF_UP,
5451
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5452
+ )
5453
+ FLOOR =
5454
+ T.let(
5455
+ :FLOOR,
5456
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5457
+ )
5458
+ CEILING =
5459
+ T.let(
5460
+ :CEILING,
5461
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5462
+ )
5463
+
5464
+ sig do
5465
+ override.returns(
5466
+ T::Array[
5467
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5468
+ ]
5469
+ )
5470
+ end
5471
+ def self.values
5472
+ end
5473
+ end
5474
+ end
5475
+ end
5476
+
5008
5477
  # The frequency at which the recurring commits will be created. If not provided: -
5009
5478
  # The commits will be created on the usage invoice frequency. If provided: - The
5010
5479
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -5042,6 +5511,11 @@ module MetronomeSDK
5042
5511
  :WEEKLY,
5043
5512
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5044
5513
  )
5514
+ DAILY =
5515
+ T.let(
5516
+ :DAILY,
5517
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5518
+ )
5045
5519
 
5046
5520
  sig do
5047
5521
  override.returns(
@@ -5545,6 +6019,23 @@ module MetronomeSDK
5545
6019
  sig { params(id: String).void }
5546
6020
  attr_writer :id
5547
6021
 
6022
+ sig do
6023
+ returns(
6024
+ T.nilable(
6025
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig
6026
+ )
6027
+ )
6028
+ end
6029
+ attr_reader :billing_cycle_config
6030
+
6031
+ sig do
6032
+ params(
6033
+ billing_cycle_config:
6034
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::OrHash
6035
+ ).void
6036
+ end
6037
+ attr_writer :billing_cycle_config
6038
+
5548
6039
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
5549
6040
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
5550
6041
  attr_reader :custom_fields
@@ -5662,6 +6153,8 @@ module MetronomeSDK
5662
6153
  subscription_rate:
5663
6154
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::SubscriptionRate::OrHash,
5664
6155
  id: String,
6156
+ billing_cycle_config:
6157
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::OrHash,
5665
6158
  custom_fields: T::Hash[Symbol, String],
5666
6159
  description: String,
5667
6160
  duration:
@@ -5682,6 +6175,7 @@ module MetronomeSDK
5682
6175
  proration:,
5683
6176
  subscription_rate:,
5684
6177
  id: nil,
6178
+ billing_cycle_config: nil,
5685
6179
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
5686
6180
  custom_fields: nil,
5687
6181
  description: nil,
@@ -5714,6 +6208,8 @@ module MetronomeSDK
5714
6208
  subscription_rate:
5715
6209
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::SubscriptionRate,
5716
6210
  id: String,
6211
+ billing_cycle_config:
6212
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig,
5717
6213
  custom_fields: T::Hash[Symbol, String],
5718
6214
  description: String,
5719
6215
  duration:
@@ -5786,14 +6282,33 @@ module MetronomeSDK
5786
6282
  sig { returns(T::Boolean) }
5787
6283
  attr_accessor :is_prorated
5788
6284
 
6285
+ sig do
6286
+ returns(
6287
+ T.nilable(
6288
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding
6289
+ )
6290
+ )
6291
+ end
6292
+ attr_reader :rounding
6293
+
6294
+ sig do
6295
+ params(
6296
+ rounding:
6297
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::OrHash
6298
+ ).void
6299
+ end
6300
+ attr_writer :rounding
6301
+
5789
6302
  sig do
5790
6303
  params(
5791
6304
  invoice_behavior:
5792
6305
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::InvoiceBehavior::OrSymbol,
5793
- is_prorated: T::Boolean
6306
+ is_prorated: T::Boolean,
6307
+ rounding:
6308
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::OrHash
5794
6309
  ).returns(T.attached_class)
5795
6310
  end
5796
- def self.new(invoice_behavior:, is_prorated:)
6311
+ def self.new(invoice_behavior:, is_prorated:, rounding: nil)
5797
6312
  end
5798
6313
 
5799
6314
  sig do
@@ -5801,7 +6316,9 @@ module MetronomeSDK
5801
6316
  {
5802
6317
  invoice_behavior:
5803
6318
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::InvoiceBehavior::TaggedSymbol,
5804
- is_prorated: T::Boolean
6319
+ is_prorated: T::Boolean,
6320
+ rounding:
6321
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding
5805
6322
  }
5806
6323
  )
5807
6324
  end
@@ -5841,6 +6358,98 @@ module MetronomeSDK
5841
6358
  def self.values
5842
6359
  end
5843
6360
  end
6361
+
6362
+ class Rounding < MetronomeSDK::Internal::Type::BaseModel
6363
+ OrHash =
6364
+ T.type_alias do
6365
+ T.any(
6366
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding,
6367
+ MetronomeSDK::Internal::AnyHash
6368
+ )
6369
+ end
6370
+
6371
+ # Number of decimal places to round to. Applied directly to the stored monetary
6372
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
6373
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
6374
+ # dollar).
6375
+ sig { returns(Float) }
6376
+ attr_accessor :decimal_places
6377
+
6378
+ sig do
6379
+ returns(
6380
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6381
+ )
6382
+ end
6383
+ attr_accessor :rounding_method
6384
+
6385
+ sig do
6386
+ params(
6387
+ decimal_places: Float,
6388
+ rounding_method:
6389
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod::OrSymbol
6390
+ ).returns(T.attached_class)
6391
+ end
6392
+ def self.new(
6393
+ # Number of decimal places to round to. Applied directly to the stored monetary
6394
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
6395
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
6396
+ # dollar).
6397
+ decimal_places:,
6398
+ rounding_method:
6399
+ )
6400
+ end
6401
+
6402
+ sig do
6403
+ override.returns(
6404
+ {
6405
+ decimal_places: Float,
6406
+ rounding_method:
6407
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6408
+ }
6409
+ )
6410
+ end
6411
+ def to_hash
6412
+ end
6413
+
6414
+ module RoundingMethod
6415
+ extend MetronomeSDK::Internal::Type::Enum
6416
+
6417
+ TaggedSymbol =
6418
+ T.type_alias do
6419
+ T.all(
6420
+ Symbol,
6421
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod
6422
+ )
6423
+ end
6424
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6425
+
6426
+ HALF_UP =
6427
+ T.let(
6428
+ :HALF_UP,
6429
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6430
+ )
6431
+ FLOOR =
6432
+ T.let(
6433
+ :FLOOR,
6434
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6435
+ )
6436
+ CEILING =
6437
+ T.let(
6438
+ :CEILING,
6439
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6440
+ )
6441
+
6442
+ sig do
6443
+ override.returns(
6444
+ T::Array[
6445
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6446
+ ]
6447
+ )
6448
+ end
6449
+ def self.values
6450
+ end
6451
+ end
6452
+ end
5844
6453
  end
5845
6454
 
5846
6455
  class SubscriptionRate < MetronomeSDK::Internal::Type::BaseModel
@@ -5969,6 +6578,87 @@ module MetronomeSDK
5969
6578
  end
5970
6579
  end
5971
6580
 
6581
+ class BillingCycleConfig < MetronomeSDK::Internal::Type::BaseModel
6582
+ OrHash =
6583
+ T.type_alias do
6584
+ T.any(
6585
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig,
6586
+ MetronomeSDK::Internal::AnyHash
6587
+ )
6588
+ end
6589
+
6590
+ sig do
6591
+ returns(
6592
+ T.nilable(
6593
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6594
+ )
6595
+ )
6596
+ end
6597
+ attr_reader :invoice_placement
6598
+
6599
+ sig do
6600
+ params(
6601
+ invoice_placement:
6602
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement::OrSymbol
6603
+ ).void
6604
+ end
6605
+ attr_writer :invoice_placement
6606
+
6607
+ sig do
6608
+ params(
6609
+ invoice_placement:
6610
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement::OrSymbol
6611
+ ).returns(T.attached_class)
6612
+ end
6613
+ def self.new(invoice_placement: nil)
6614
+ end
6615
+
6616
+ sig do
6617
+ override.returns(
6618
+ {
6619
+ invoice_placement:
6620
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6621
+ }
6622
+ )
6623
+ end
6624
+ def to_hash
6625
+ end
6626
+
6627
+ module InvoicePlacement
6628
+ extend MetronomeSDK::Internal::Type::Enum
6629
+
6630
+ TaggedSymbol =
6631
+ T.type_alias do
6632
+ T.all(
6633
+ Symbol,
6634
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement
6635
+ )
6636
+ end
6637
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6638
+
6639
+ ON_SCHEDULED_INVOICE =
6640
+ T.let(
6641
+ :ON_SCHEDULED_INVOICE,
6642
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6643
+ )
6644
+ ON_USAGE_INVOICE =
6645
+ T.let(
6646
+ :ON_USAGE_INVOICE,
6647
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6648
+ )
6649
+
6650
+ sig do
6651
+ override.returns(
6652
+ T::Array[
6653
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6654
+ ]
6655
+ )
6656
+ end
6657
+ def self.values
6658
+ end
6659
+ end
6660
+ end
6661
+
5972
6662
  class Duration < MetronomeSDK::Internal::Type::BaseModel
5973
6663
  OrHash =
5974
6664
  T.type_alias do