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
@@ -1573,6 +1573,14 @@ module MetronomeSDK
1573
1573
  )
1574
1574
  end
1575
1575
 
1576
+ sig { returns(T.nilable(T::Array[String])) }
1577
+ attr_reader :any_commit_or_credit_template_ids
1578
+
1579
+ sig do
1580
+ params(any_commit_or_credit_template_ids: T::Array[String]).void
1581
+ end
1582
+ attr_writer :any_commit_or_credit_template_ids
1583
+
1576
1584
  sig do
1577
1585
  returns(
1578
1586
  T.nilable(
@@ -1632,6 +1640,7 @@ module MetronomeSDK
1632
1640
 
1633
1641
  sig do
1634
1642
  params(
1643
+ any_commit_or_credit_template_ids: T::Array[String],
1635
1644
  billing_frequency:
1636
1645
  MetronomeSDK::Models::V1::PackageListResponse::Override::OverrideSpecifier::BillingFrequency::OrSymbol,
1637
1646
  commit_template_ids: T::Array[String],
@@ -1643,6 +1652,7 @@ module MetronomeSDK
1643
1652
  ).returns(T.attached_class)
1644
1653
  end
1645
1654
  def self.new(
1655
+ any_commit_or_credit_template_ids: nil,
1646
1656
  billing_frequency: nil,
1647
1657
  commit_template_ids: nil,
1648
1658
  presentation_group_values: nil,
@@ -1656,6 +1666,7 @@ module MetronomeSDK
1656
1666
  sig do
1657
1667
  override.returns(
1658
1668
  {
1669
+ any_commit_or_credit_template_ids: T::Array[String],
1659
1670
  billing_frequency:
1660
1671
  MetronomeSDK::Models::V1::PackageListResponse::Override::OverrideSpecifier::BillingFrequency::TaggedSymbol,
1661
1672
  commit_template_ids: T::Array[String],
@@ -3424,6 +3435,26 @@ module MetronomeSDK
3424
3435
  end
3425
3436
  attr_writer :proration
3426
3437
 
3438
+ # Rounding configuration for prorated recurring commit amounts.
3439
+ sig do
3440
+ returns(
3441
+ T.nilable(
3442
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding
3443
+ )
3444
+ )
3445
+ end
3446
+ attr_reader :proration_rounding
3447
+
3448
+ sig do
3449
+ params(
3450
+ proration_rounding:
3451
+ T.nilable(
3452
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::OrHash
3453
+ )
3454
+ ).void
3455
+ end
3456
+ attr_writer :proration_rounding
3457
+
3427
3458
  # The frequency at which the recurring commits will be created. If not provided: -
3428
3459
  # The commits will be created on the usage invoice frequency. If provided: - The
3429
3460
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -3510,6 +3541,10 @@ module MetronomeSDK
3510
3541
  name: String,
3511
3542
  proration:
3512
3543
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::Proration::OrSymbol,
3544
+ proration_rounding:
3545
+ T.nilable(
3546
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::OrHash
3547
+ ),
3513
3548
  recurrence_frequency:
3514
3549
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::RecurrenceFrequency::OrSymbol,
3515
3550
  rollover_fraction: Float,
@@ -3545,6 +3580,8 @@ module MetronomeSDK
3545
3580
  # Determines whether the first and last commit will be prorated. If not provided,
3546
3581
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3547
3582
  proration: nil,
3583
+ # Rounding configuration for prorated recurring commit amounts.
3584
+ proration_rounding: nil,
3548
3585
  # The frequency at which the recurring commits will be created. If not provided: -
3549
3586
  # The commits will be created on the usage invoice frequency. If provided: - The
3550
3587
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -3589,6 +3626,10 @@ module MetronomeSDK
3589
3626
  name: String,
3590
3627
  proration:
3591
3628
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::Proration::TaggedSymbol,
3629
+ proration_rounding:
3630
+ T.nilable(
3631
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding
3632
+ ),
3592
3633
  recurrence_frequency:
3593
3634
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::RecurrenceFrequency::TaggedSymbol,
3594
3635
  rollover_fraction: Float,
@@ -4043,6 +4084,259 @@ module MetronomeSDK
4043
4084
  end
4044
4085
  end
4045
4086
 
4087
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
4088
+ OrHash =
4089
+ T.type_alias do
4090
+ T.any(
4091
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding,
4092
+ MetronomeSDK::Internal::AnyHash
4093
+ )
4094
+ end
4095
+
4096
+ sig do
4097
+ returns(
4098
+ T.nilable(
4099
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access
4100
+ )
4101
+ )
4102
+ end
4103
+ attr_reader :access
4104
+
4105
+ sig do
4106
+ params(
4107
+ access:
4108
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::OrHash
4109
+ ).void
4110
+ end
4111
+ attr_writer :access
4112
+
4113
+ sig do
4114
+ returns(
4115
+ T.nilable(
4116
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice
4117
+ )
4118
+ )
4119
+ end
4120
+ attr_reader :invoice
4121
+
4122
+ sig do
4123
+ params(
4124
+ invoice:
4125
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::OrHash
4126
+ ).void
4127
+ end
4128
+ attr_writer :invoice
4129
+
4130
+ # Rounding configuration for prorated recurring commit amounts.
4131
+ sig do
4132
+ params(
4133
+ access:
4134
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::OrHash,
4135
+ invoice:
4136
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::OrHash
4137
+ ).returns(T.attached_class)
4138
+ end
4139
+ def self.new(access: nil, invoice: nil)
4140
+ end
4141
+
4142
+ sig do
4143
+ override.returns(
4144
+ {
4145
+ access:
4146
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access,
4147
+ invoice:
4148
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice
4149
+ }
4150
+ )
4151
+ end
4152
+ def to_hash
4153
+ end
4154
+
4155
+ class Access < MetronomeSDK::Internal::Type::BaseModel
4156
+ OrHash =
4157
+ T.type_alias do
4158
+ T.any(
4159
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access,
4160
+ MetronomeSDK::Internal::AnyHash
4161
+ )
4162
+ end
4163
+
4164
+ # Number of decimal places to round to. Applied directly to the stored monetary
4165
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4166
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4167
+ # dollar).
4168
+ sig { returns(Float) }
4169
+ attr_accessor :decimal_places
4170
+
4171
+ sig do
4172
+ returns(
4173
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4174
+ )
4175
+ end
4176
+ attr_accessor :rounding_method
4177
+
4178
+ sig do
4179
+ params(
4180
+ decimal_places: Float,
4181
+ rounding_method:
4182
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod::OrSymbol
4183
+ ).returns(T.attached_class)
4184
+ end
4185
+ def self.new(
4186
+ # Number of decimal places to round to. Applied directly to the stored monetary
4187
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4188
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4189
+ # dollar).
4190
+ decimal_places:,
4191
+ rounding_method:
4192
+ )
4193
+ end
4194
+
4195
+ sig do
4196
+ override.returns(
4197
+ {
4198
+ decimal_places: Float,
4199
+ rounding_method:
4200
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4201
+ }
4202
+ )
4203
+ end
4204
+ def to_hash
4205
+ end
4206
+
4207
+ module RoundingMethod
4208
+ extend MetronomeSDK::Internal::Type::Enum
4209
+
4210
+ TaggedSymbol =
4211
+ T.type_alias do
4212
+ T.all(
4213
+ Symbol,
4214
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod
4215
+ )
4216
+ end
4217
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4218
+
4219
+ HALF_UP =
4220
+ T.let(
4221
+ :HALF_UP,
4222
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4223
+ )
4224
+ FLOOR =
4225
+ T.let(
4226
+ :FLOOR,
4227
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4228
+ )
4229
+ CEILING =
4230
+ T.let(
4231
+ :CEILING,
4232
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4233
+ )
4234
+
4235
+ sig do
4236
+ override.returns(
4237
+ T::Array[
4238
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4239
+ ]
4240
+ )
4241
+ end
4242
+ def self.values
4243
+ end
4244
+ end
4245
+ end
4246
+
4247
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
4248
+ OrHash =
4249
+ T.type_alias do
4250
+ T.any(
4251
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice,
4252
+ MetronomeSDK::Internal::AnyHash
4253
+ )
4254
+ end
4255
+
4256
+ # Number of decimal places to round to. Applied directly to the stored monetary
4257
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4258
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4259
+ # dollar).
4260
+ sig { returns(Float) }
4261
+ attr_accessor :decimal_places
4262
+
4263
+ sig do
4264
+ returns(
4265
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4266
+ )
4267
+ end
4268
+ attr_accessor :rounding_method
4269
+
4270
+ sig do
4271
+ params(
4272
+ decimal_places: Float,
4273
+ rounding_method:
4274
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::OrSymbol
4275
+ ).returns(T.attached_class)
4276
+ end
4277
+ def self.new(
4278
+ # Number of decimal places to round to. Applied directly to the stored monetary
4279
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4280
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4281
+ # dollar).
4282
+ decimal_places:,
4283
+ rounding_method:
4284
+ )
4285
+ end
4286
+
4287
+ sig do
4288
+ override.returns(
4289
+ {
4290
+ decimal_places: Float,
4291
+ rounding_method:
4292
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4293
+ }
4294
+ )
4295
+ end
4296
+ def to_hash
4297
+ end
4298
+
4299
+ module RoundingMethod
4300
+ extend MetronomeSDK::Internal::Type::Enum
4301
+
4302
+ TaggedSymbol =
4303
+ T.type_alias do
4304
+ T.all(
4305
+ Symbol,
4306
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod
4307
+ )
4308
+ end
4309
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4310
+
4311
+ HALF_UP =
4312
+ T.let(
4313
+ :HALF_UP,
4314
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4315
+ )
4316
+ FLOOR =
4317
+ T.let(
4318
+ :FLOOR,
4319
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4320
+ )
4321
+ CEILING =
4322
+ T.let(
4323
+ :CEILING,
4324
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4325
+ )
4326
+
4327
+ sig do
4328
+ override.returns(
4329
+ T::Array[
4330
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4331
+ ]
4332
+ )
4333
+ end
4334
+ def self.values
4335
+ end
4336
+ end
4337
+ end
4338
+ end
4339
+
4046
4340
  # The frequency at which the recurring commits will be created. If not provided: -
4047
4341
  # The commits will be created on the usage invoice frequency. If provided: - The
4048
4342
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -4080,6 +4374,11 @@ module MetronomeSDK
4080
4374
  :WEEKLY,
4081
4375
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::RecurrenceFrequency::TaggedSymbol
4082
4376
  )
4377
+ DAILY =
4378
+ T.let(
4379
+ :DAILY,
4380
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::RecurrenceFrequency::TaggedSymbol
4381
+ )
4083
4382
 
4084
4383
  sig do
4085
4384
  override.returns(
@@ -4369,6 +4668,26 @@ module MetronomeSDK
4369
4668
  end
4370
4669
  attr_writer :proration
4371
4670
 
4671
+ # Rounding configuration for prorated recurring credit amounts.
4672
+ sig do
4673
+ returns(
4674
+ T.nilable(
4675
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding
4676
+ )
4677
+ )
4678
+ end
4679
+ attr_reader :proration_rounding
4680
+
4681
+ sig do
4682
+ params(
4683
+ proration_rounding:
4684
+ T.nilable(
4685
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::OrHash
4686
+ )
4687
+ ).void
4688
+ end
4689
+ attr_writer :proration_rounding
4690
+
4372
4691
  # The frequency at which the recurring commits will be created. If not provided: -
4373
4692
  # The commits will be created on the usage invoice frequency. If provided: - The
4374
4693
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -4453,6 +4772,10 @@ module MetronomeSDK
4453
4772
  name: String,
4454
4773
  proration:
4455
4774
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::Proration::OrSymbol,
4775
+ proration_rounding:
4776
+ T.nilable(
4777
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::OrHash
4778
+ ),
4456
4779
  recurrence_frequency:
4457
4780
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::OrSymbol,
4458
4781
  rollover_fraction: Float,
@@ -4486,6 +4809,8 @@ module MetronomeSDK
4486
4809
  # Determines whether the first and last commit will be prorated. If not provided,
4487
4810
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
4488
4811
  proration: nil,
4812
+ # Rounding configuration for prorated recurring credit amounts.
4813
+ proration_rounding: nil,
4489
4814
  # The frequency at which the recurring commits will be created. If not provided: -
4490
4815
  # The commits will be created on the usage invoice frequency. If provided: - The
4491
4816
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -4528,6 +4853,10 @@ module MetronomeSDK
4528
4853
  name: String,
4529
4854
  proration:
4530
4855
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::Proration::TaggedSymbol,
4856
+ proration_rounding:
4857
+ T.nilable(
4858
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding
4859
+ ),
4531
4860
  recurrence_frequency:
4532
4861
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::TaggedSymbol,
4533
4862
  rollover_fraction: Float,
@@ -4944,6 +5273,146 @@ module MetronomeSDK
4944
5273
  end
4945
5274
  end
4946
5275
 
5276
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
5277
+ OrHash =
5278
+ T.type_alias do
5279
+ T.any(
5280
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding,
5281
+ MetronomeSDK::Internal::AnyHash
5282
+ )
5283
+ end
5284
+
5285
+ sig do
5286
+ returns(
5287
+ T.nilable(
5288
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access
5289
+ )
5290
+ )
5291
+ end
5292
+ attr_reader :access
5293
+
5294
+ sig do
5295
+ params(
5296
+ access:
5297
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::OrHash
5298
+ ).void
5299
+ end
5300
+ attr_writer :access
5301
+
5302
+ # Rounding configuration for prorated recurring credit amounts.
5303
+ sig do
5304
+ params(
5305
+ access:
5306
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::OrHash
5307
+ ).returns(T.attached_class)
5308
+ end
5309
+ def self.new(access: nil)
5310
+ end
5311
+
5312
+ sig do
5313
+ override.returns(
5314
+ {
5315
+ access:
5316
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access
5317
+ }
5318
+ )
5319
+ end
5320
+ def to_hash
5321
+ end
5322
+
5323
+ class Access < MetronomeSDK::Internal::Type::BaseModel
5324
+ OrHash =
5325
+ T.type_alias do
5326
+ T.any(
5327
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access,
5328
+ MetronomeSDK::Internal::AnyHash
5329
+ )
5330
+ end
5331
+
5332
+ # Number of decimal places to round to. Applied directly to the stored monetary
5333
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
5334
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
5335
+ # dollar).
5336
+ sig { returns(Float) }
5337
+ attr_accessor :decimal_places
5338
+
5339
+ sig do
5340
+ returns(
5341
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5342
+ )
5343
+ end
5344
+ attr_accessor :rounding_method
5345
+
5346
+ sig do
5347
+ params(
5348
+ decimal_places: Float,
5349
+ rounding_method:
5350
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod::OrSymbol
5351
+ ).returns(T.attached_class)
5352
+ end
5353
+ def self.new(
5354
+ # Number of decimal places to round to. Applied directly to the stored monetary
5355
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
5356
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
5357
+ # dollar).
5358
+ decimal_places:,
5359
+ rounding_method:
5360
+ )
5361
+ end
5362
+
5363
+ sig do
5364
+ override.returns(
5365
+ {
5366
+ decimal_places: Float,
5367
+ rounding_method:
5368
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5369
+ }
5370
+ )
5371
+ end
5372
+ def to_hash
5373
+ end
5374
+
5375
+ module RoundingMethod
5376
+ extend MetronomeSDK::Internal::Type::Enum
5377
+
5378
+ TaggedSymbol =
5379
+ T.type_alias do
5380
+ T.all(
5381
+ Symbol,
5382
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod
5383
+ )
5384
+ end
5385
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5386
+
5387
+ HALF_UP =
5388
+ T.let(
5389
+ :HALF_UP,
5390
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5391
+ )
5392
+ FLOOR =
5393
+ T.let(
5394
+ :FLOOR,
5395
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5396
+ )
5397
+ CEILING =
5398
+ T.let(
5399
+ :CEILING,
5400
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5401
+ )
5402
+
5403
+ sig do
5404
+ override.returns(
5405
+ T::Array[
5406
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5407
+ ]
5408
+ )
5409
+ end
5410
+ def self.values
5411
+ end
5412
+ end
5413
+ end
5414
+ end
5415
+
4947
5416
  # The frequency at which the recurring commits will be created. If not provided: -
4948
5417
  # The commits will be created on the usage invoice frequency. If provided: - The
4949
5418
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -4981,6 +5450,11 @@ module MetronomeSDK
4981
5450
  :WEEKLY,
4982
5451
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::TaggedSymbol
4983
5452
  )
5453
+ DAILY =
5454
+ T.let(
5455
+ :DAILY,
5456
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5457
+ )
4984
5458
 
4985
5459
  sig do
4986
5460
  override.returns(
@@ -5482,6 +5956,23 @@ module MetronomeSDK
5482
5956
  sig { params(id: String).void }
5483
5957
  attr_writer :id
5484
5958
 
5959
+ sig do
5960
+ returns(
5961
+ T.nilable(
5962
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig
5963
+ )
5964
+ )
5965
+ end
5966
+ attr_reader :billing_cycle_config
5967
+
5968
+ sig do
5969
+ params(
5970
+ billing_cycle_config:
5971
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::OrHash
5972
+ ).void
5973
+ end
5974
+ attr_writer :billing_cycle_config
5975
+
5485
5976
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
5486
5977
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
5487
5978
  attr_reader :custom_fields
@@ -5599,6 +6090,8 @@ module MetronomeSDK
5599
6090
  subscription_rate:
5600
6091
  MetronomeSDK::Models::V1::PackageListResponse::Subscription::SubscriptionRate::OrHash,
5601
6092
  id: String,
6093
+ billing_cycle_config:
6094
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::OrHash,
5602
6095
  custom_fields: T::Hash[Symbol, String],
5603
6096
  description: String,
5604
6097
  duration:
@@ -5619,6 +6112,7 @@ module MetronomeSDK
5619
6112
  proration:,
5620
6113
  subscription_rate:,
5621
6114
  id: nil,
6115
+ billing_cycle_config: nil,
5622
6116
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
5623
6117
  custom_fields: nil,
5624
6118
  description: nil,
@@ -5651,6 +6145,8 @@ module MetronomeSDK
5651
6145
  subscription_rate:
5652
6146
  MetronomeSDK::Models::V1::PackageListResponse::Subscription::SubscriptionRate,
5653
6147
  id: String,
6148
+ billing_cycle_config:
6149
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig,
5654
6150
  custom_fields: T::Hash[Symbol, String],
5655
6151
  description: String,
5656
6152
  duration:
@@ -5723,14 +6219,33 @@ module MetronomeSDK
5723
6219
  sig { returns(T::Boolean) }
5724
6220
  attr_accessor :is_prorated
5725
6221
 
6222
+ sig do
6223
+ returns(
6224
+ T.nilable(
6225
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding
6226
+ )
6227
+ )
6228
+ end
6229
+ attr_reader :rounding
6230
+
6231
+ sig do
6232
+ params(
6233
+ rounding:
6234
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::OrHash
6235
+ ).void
6236
+ end
6237
+ attr_writer :rounding
6238
+
5726
6239
  sig do
5727
6240
  params(
5728
6241
  invoice_behavior:
5729
6242
  MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::InvoiceBehavior::OrSymbol,
5730
- is_prorated: T::Boolean
6243
+ is_prorated: T::Boolean,
6244
+ rounding:
6245
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::OrHash
5731
6246
  ).returns(T.attached_class)
5732
6247
  end
5733
- def self.new(invoice_behavior:, is_prorated:)
6248
+ def self.new(invoice_behavior:, is_prorated:, rounding: nil)
5734
6249
  end
5735
6250
 
5736
6251
  sig do
@@ -5738,7 +6253,9 @@ module MetronomeSDK
5738
6253
  {
5739
6254
  invoice_behavior:
5740
6255
  MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::InvoiceBehavior::TaggedSymbol,
5741
- is_prorated: T::Boolean
6256
+ is_prorated: T::Boolean,
6257
+ rounding:
6258
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding
5742
6259
  }
5743
6260
  )
5744
6261
  end
@@ -5778,6 +6295,98 @@ module MetronomeSDK
5778
6295
  def self.values
5779
6296
  end
5780
6297
  end
6298
+
6299
+ class Rounding < MetronomeSDK::Internal::Type::BaseModel
6300
+ OrHash =
6301
+ T.type_alias do
6302
+ T.any(
6303
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding,
6304
+ MetronomeSDK::Internal::AnyHash
6305
+ )
6306
+ end
6307
+
6308
+ # Number of decimal places to round to. Applied directly to the stored monetary
6309
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
6310
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
6311
+ # dollar).
6312
+ sig { returns(Float) }
6313
+ attr_accessor :decimal_places
6314
+
6315
+ sig do
6316
+ returns(
6317
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6318
+ )
6319
+ end
6320
+ attr_accessor :rounding_method
6321
+
6322
+ sig do
6323
+ params(
6324
+ decimal_places: Float,
6325
+ rounding_method:
6326
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod::OrSymbol
6327
+ ).returns(T.attached_class)
6328
+ end
6329
+ def self.new(
6330
+ # Number of decimal places to round to. Applied directly to the stored monetary
6331
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
6332
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
6333
+ # dollar).
6334
+ decimal_places:,
6335
+ rounding_method:
6336
+ )
6337
+ end
6338
+
6339
+ sig do
6340
+ override.returns(
6341
+ {
6342
+ decimal_places: Float,
6343
+ rounding_method:
6344
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6345
+ }
6346
+ )
6347
+ end
6348
+ def to_hash
6349
+ end
6350
+
6351
+ module RoundingMethod
6352
+ extend MetronomeSDK::Internal::Type::Enum
6353
+
6354
+ TaggedSymbol =
6355
+ T.type_alias do
6356
+ T.all(
6357
+ Symbol,
6358
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod
6359
+ )
6360
+ end
6361
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6362
+
6363
+ HALF_UP =
6364
+ T.let(
6365
+ :HALF_UP,
6366
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6367
+ )
6368
+ FLOOR =
6369
+ T.let(
6370
+ :FLOOR,
6371
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6372
+ )
6373
+ CEILING =
6374
+ T.let(
6375
+ :CEILING,
6376
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6377
+ )
6378
+
6379
+ sig do
6380
+ override.returns(
6381
+ T::Array[
6382
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6383
+ ]
6384
+ )
6385
+ end
6386
+ def self.values
6387
+ end
6388
+ end
6389
+ end
5781
6390
  end
5782
6391
 
5783
6392
  class SubscriptionRate < MetronomeSDK::Internal::Type::BaseModel
@@ -5904,6 +6513,87 @@ module MetronomeSDK
5904
6513
  end
5905
6514
  end
5906
6515
 
6516
+ class BillingCycleConfig < MetronomeSDK::Internal::Type::BaseModel
6517
+ OrHash =
6518
+ T.type_alias do
6519
+ T.any(
6520
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig,
6521
+ MetronomeSDK::Internal::AnyHash
6522
+ )
6523
+ end
6524
+
6525
+ sig do
6526
+ returns(
6527
+ T.nilable(
6528
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6529
+ )
6530
+ )
6531
+ end
6532
+ attr_reader :invoice_placement
6533
+
6534
+ sig do
6535
+ params(
6536
+ invoice_placement:
6537
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement::OrSymbol
6538
+ ).void
6539
+ end
6540
+ attr_writer :invoice_placement
6541
+
6542
+ sig do
6543
+ params(
6544
+ invoice_placement:
6545
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement::OrSymbol
6546
+ ).returns(T.attached_class)
6547
+ end
6548
+ def self.new(invoice_placement: nil)
6549
+ end
6550
+
6551
+ sig do
6552
+ override.returns(
6553
+ {
6554
+ invoice_placement:
6555
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6556
+ }
6557
+ )
6558
+ end
6559
+ def to_hash
6560
+ end
6561
+
6562
+ module InvoicePlacement
6563
+ extend MetronomeSDK::Internal::Type::Enum
6564
+
6565
+ TaggedSymbol =
6566
+ T.type_alias do
6567
+ T.all(
6568
+ Symbol,
6569
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement
6570
+ )
6571
+ end
6572
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6573
+
6574
+ ON_SCHEDULED_INVOICE =
6575
+ T.let(
6576
+ :ON_SCHEDULED_INVOICE,
6577
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6578
+ )
6579
+ ON_USAGE_INVOICE =
6580
+ T.let(
6581
+ :ON_USAGE_INVOICE,
6582
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6583
+ )
6584
+
6585
+ sig do
6586
+ override.returns(
6587
+ T::Array[
6588
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6589
+ ]
6590
+ )
6591
+ end
6592
+ def self.values
6593
+ end
6594
+ end
6595
+ end
6596
+
5907
6597
  class Duration < MetronomeSDK::Internal::Type::BaseModel
5908
6598
  OrHash =
5909
6599
  T.type_alias do