metronome-sdk 3.5.0 → 3.6.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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +37 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/client.rb +15 -1
  5. data/lib/metronome_sdk/internal/transport/base_client.rb +2 -0
  6. data/lib/metronome_sdk/models/contract_v2.rb +362 -4
  7. data/lib/metronome_sdk/models/v1/alert_create_params.rb +1 -0
  8. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +1 -177
  9. data/lib/metronome_sdk/models/v1/contract_create_params.rb +2 -179
  10. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +119 -0
  11. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_response.rb +315 -0
  12. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +31 -1
  13. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +31 -1
  14. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +1 -0
  15. data/lib/metronome_sdk/models/v1/customers/invoice.rb +8 -1
  16. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +29 -1
  17. data/lib/metronome_sdk/models/v1/package_create_params.rb +1 -18
  18. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +362 -3
  19. data/lib/metronome_sdk/resources/v1/contracts/products.rb +6 -2
  20. data/lib/metronome_sdk/resources/v1/contracts.rb +69 -2
  21. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +5 -1
  22. data/lib/metronome_sdk/resources/v1/packages.rb +1 -3
  23. data/lib/metronome_sdk/version.rb +1 -1
  24. data/lib/metronome_sdk.rb +2 -0
  25. data/rbi/metronome_sdk/models/contract_v2.rbi +763 -4
  26. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +5 -0
  27. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +0 -396
  28. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +2 -398
  29. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +179 -0
  30. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_response.rbi +714 -0
  31. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +74 -0
  32. data/rbi/metronome_sdk/models/v1/contracts/product_update_params.rbi +74 -0
  33. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +5 -0
  34. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +9 -0
  35. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +75 -0
  36. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +0 -56
  37. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +792 -4
  38. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +18 -0
  39. data/rbi/metronome_sdk/resources/v1/contracts.rbi +81 -3
  40. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +7 -0
  41. data/rbi/metronome_sdk/resources/v1/packages.rbi +0 -3
  42. data/sig/metronome_sdk/models/contract_v2.rbs +324 -6
  43. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +3 -1
  44. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +0 -137
  45. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +0 -137
  46. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +96 -0
  47. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_response.rbs +299 -0
  48. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +20 -0
  49. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +20 -0
  50. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +3 -1
  51. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +7 -0
  52. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +29 -1
  53. data/sig/metronome_sdk/models/v1/package_create_params.rbs +0 -20
  54. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +319 -6
  55. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +2 -0
  56. data/sig/metronome_sdk/resources/v1/contracts.rbs +15 -0
  57. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +2 -0
  58. data/sig/metronome_sdk/resources/v1/packages.rbs +0 -1
  59. metadata +8 -2
@@ -251,12 +251,23 @@ module MetronomeSDK
251
251
  attr_writer :add_spend_threshold_configuration
252
252
 
253
253
  # List of subscriptions on the contract.
254
- sig { returns(T.nilable(T::Array[MetronomeSDK::Subscription])) }
254
+ sig do
255
+ returns(
256
+ T.nilable(
257
+ T::Array[
258
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription
259
+ ]
260
+ )
261
+ )
262
+ end
255
263
  attr_reader :add_subscriptions
256
264
 
257
265
  sig do
258
266
  params(
259
- add_subscriptions: T::Array[MetronomeSDK::Subscription::OrHash]
267
+ add_subscriptions:
268
+ T::Array[
269
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::OrHash
270
+ ]
260
271
  ).void
261
272
  end
262
273
  attr_writer :add_subscriptions
@@ -632,7 +643,10 @@ module MetronomeSDK
632
643
  ],
633
644
  add_spend_threshold_configuration:
634
645
  MetronomeSDK::SpendThresholdConfigurationV2::OrHash,
635
- add_subscriptions: T::Array[MetronomeSDK::Subscription::OrHash],
646
+ add_subscriptions:
647
+ T::Array[
648
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::OrHash
649
+ ],
636
650
  add_usage_filters:
637
651
  T::Array[
638
652
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddUsageFilter::OrHash
@@ -776,7 +790,10 @@ module MetronomeSDK
776
790
  ],
777
791
  add_spend_threshold_configuration:
778
792
  MetronomeSDK::SpendThresholdConfigurationV2,
779
- add_subscriptions: T::Array[MetronomeSDK::Subscription],
793
+ add_subscriptions:
794
+ T::Array[
795
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription
796
+ ],
780
797
  add_usage_filters:
781
798
  T::Array[
782
799
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddUsageFilter
@@ -3956,6 +3973,777 @@ module MetronomeSDK
3956
3973
  end
3957
3974
  end
3958
3975
 
3976
+ class AddSubscription < MetronomeSDK::Internal::Type::BaseModel
3977
+ OrHash =
3978
+ T.type_alias do
3979
+ T.any(
3980
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription,
3981
+ MetronomeSDK::Internal::AnyHash
3982
+ )
3983
+ end
3984
+
3985
+ # Previous, current, and next billing periods for the subscription.
3986
+ sig do
3987
+ returns(
3988
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods
3989
+ )
3990
+ end
3991
+ attr_reader :billing_periods
3992
+
3993
+ sig do
3994
+ params(
3995
+ billing_periods:
3996
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::OrHash
3997
+ ).void
3998
+ end
3999
+ attr_writer :billing_periods
4000
+
4001
+ sig do
4002
+ returns(
4003
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::CollectionSchedule::TaggedSymbol
4004
+ )
4005
+ end
4006
+ attr_accessor :collection_schedule
4007
+
4008
+ sig do
4009
+ returns(
4010
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration
4011
+ )
4012
+ end
4013
+ attr_reader :proration
4014
+
4015
+ sig do
4016
+ params(
4017
+ proration:
4018
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::OrHash
4019
+ ).void
4020
+ end
4021
+ attr_writer :proration
4022
+
4023
+ # Determines how the subscription's quantity is controlled. Defaults to
4024
+ # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
4025
+ # directly on the subscription. `initial_quantity` must be provided with this
4026
+ # option. Compatible with recurring commits/credits that use POOLED allocation.
4027
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
4028
+ # user_123) to increment and decrement a subscription quantity, rather than
4029
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
4030
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
4031
+ # provided with this option.
4032
+ sig do
4033
+ returns(
4034
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::QuantityManagementMode::TaggedSymbol
4035
+ )
4036
+ end
4037
+ attr_accessor :quantity_management_mode
4038
+
4039
+ # List of quantity schedule items for the subscription. Only includes the current
4040
+ # quantity and future quantity changes.
4041
+ sig do
4042
+ returns(
4043
+ T::Array[
4044
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::QuantitySchedule
4045
+ ]
4046
+ )
4047
+ end
4048
+ attr_accessor :quantity_schedule
4049
+
4050
+ sig { returns(Time) }
4051
+ attr_accessor :starting_at
4052
+
4053
+ sig do
4054
+ returns(
4055
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate
4056
+ )
4057
+ end
4058
+ attr_reader :subscription_rate
4059
+
4060
+ sig do
4061
+ params(
4062
+ subscription_rate:
4063
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::OrHash
4064
+ ).void
4065
+ end
4066
+ attr_writer :subscription_rate
4067
+
4068
+ sig { returns(T.nilable(String)) }
4069
+ attr_reader :id
4070
+
4071
+ sig { params(id: String).void }
4072
+ attr_writer :id
4073
+
4074
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
4075
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
4076
+ attr_reader :custom_fields
4077
+
4078
+ sig { params(custom_fields: T::Hash[Symbol, String]).void }
4079
+ attr_writer :custom_fields
4080
+
4081
+ sig { returns(T.nilable(String)) }
4082
+ attr_reader :description
4083
+
4084
+ sig { params(description: String).void }
4085
+ attr_writer :description
4086
+
4087
+ sig { returns(T.nilable(Time)) }
4088
+ attr_reader :ending_before
4089
+
4090
+ sig { params(ending_before: Time).void }
4091
+ attr_writer :ending_before
4092
+
4093
+ sig { returns(T.nilable(String)) }
4094
+ attr_reader :fiat_credit_type_id
4095
+
4096
+ sig { params(fiat_credit_type_id: String).void }
4097
+ attr_writer :fiat_credit_type_id
4098
+
4099
+ sig { returns(T.nilable(String)) }
4100
+ attr_reader :name
4101
+
4102
+ sig { params(name: String).void }
4103
+ attr_writer :name
4104
+
4105
+ sig do
4106
+ returns(
4107
+ T.nilable(
4108
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SeatConfig
4109
+ )
4110
+ )
4111
+ end
4112
+ attr_reader :seat_config
4113
+
4114
+ sig do
4115
+ params(
4116
+ seat_config:
4117
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SeatConfig::OrHash
4118
+ ).void
4119
+ end
4120
+ attr_writer :seat_config
4121
+
4122
+ sig do
4123
+ params(
4124
+ billing_periods:
4125
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::OrHash,
4126
+ collection_schedule:
4127
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::CollectionSchedule::OrSymbol,
4128
+ proration:
4129
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::OrHash,
4130
+ quantity_management_mode:
4131
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::QuantityManagementMode::OrSymbol,
4132
+ quantity_schedule:
4133
+ T::Array[
4134
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::QuantitySchedule::OrHash
4135
+ ],
4136
+ starting_at: Time,
4137
+ subscription_rate:
4138
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::OrHash,
4139
+ id: String,
4140
+ custom_fields: T::Hash[Symbol, String],
4141
+ description: String,
4142
+ ending_before: Time,
4143
+ fiat_credit_type_id: String,
4144
+ name: String,
4145
+ seat_config:
4146
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SeatConfig::OrHash
4147
+ ).returns(T.attached_class)
4148
+ end
4149
+ def self.new(
4150
+ # Previous, current, and next billing periods for the subscription.
4151
+ billing_periods:,
4152
+ collection_schedule:,
4153
+ proration:,
4154
+ # Determines how the subscription's quantity is controlled. Defaults to
4155
+ # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
4156
+ # directly on the subscription. `initial_quantity` must be provided with this
4157
+ # option. Compatible with recurring commits/credits that use POOLED allocation.
4158
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
4159
+ # user_123) to increment and decrement a subscription quantity, rather than
4160
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
4161
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
4162
+ # provided with this option.
4163
+ quantity_management_mode:,
4164
+ # List of quantity schedule items for the subscription. Only includes the current
4165
+ # quantity and future quantity changes.
4166
+ quantity_schedule:,
4167
+ starting_at:,
4168
+ subscription_rate:,
4169
+ id: nil,
4170
+ # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
4171
+ custom_fields: nil,
4172
+ description: nil,
4173
+ ending_before: nil,
4174
+ fiat_credit_type_id: nil,
4175
+ name: nil,
4176
+ seat_config: nil
4177
+ )
4178
+ end
4179
+
4180
+ sig do
4181
+ override.returns(
4182
+ {
4183
+ billing_periods:
4184
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods,
4185
+ collection_schedule:
4186
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::CollectionSchedule::TaggedSymbol,
4187
+ proration:
4188
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration,
4189
+ quantity_management_mode:
4190
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::QuantityManagementMode::TaggedSymbol,
4191
+ quantity_schedule:
4192
+ T::Array[
4193
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::QuantitySchedule
4194
+ ],
4195
+ starting_at: Time,
4196
+ subscription_rate:
4197
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate,
4198
+ id: String,
4199
+ custom_fields: T::Hash[Symbol, String],
4200
+ description: String,
4201
+ ending_before: Time,
4202
+ fiat_credit_type_id: String,
4203
+ name: String,
4204
+ seat_config:
4205
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SeatConfig
4206
+ }
4207
+ )
4208
+ end
4209
+ def to_hash
4210
+ end
4211
+
4212
+ class BillingPeriods < MetronomeSDK::Internal::Type::BaseModel
4213
+ OrHash =
4214
+ T.type_alias do
4215
+ T.any(
4216
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods,
4217
+ MetronomeSDK::Internal::AnyHash
4218
+ )
4219
+ end
4220
+
4221
+ sig do
4222
+ returns(
4223
+ T.nilable(
4224
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::Current
4225
+ )
4226
+ )
4227
+ end
4228
+ attr_reader :current
4229
+
4230
+ sig do
4231
+ params(
4232
+ current:
4233
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::Current::OrHash
4234
+ ).void
4235
+ end
4236
+ attr_writer :current
4237
+
4238
+ sig do
4239
+ returns(
4240
+ T.nilable(
4241
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::Next
4242
+ )
4243
+ )
4244
+ end
4245
+ attr_reader :next_
4246
+
4247
+ sig do
4248
+ params(
4249
+ next_:
4250
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::Next::OrHash
4251
+ ).void
4252
+ end
4253
+ attr_writer :next_
4254
+
4255
+ sig do
4256
+ returns(
4257
+ T.nilable(
4258
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::Previous
4259
+ )
4260
+ )
4261
+ end
4262
+ attr_reader :previous
4263
+
4264
+ sig do
4265
+ params(
4266
+ previous:
4267
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::Previous::OrHash
4268
+ ).void
4269
+ end
4270
+ attr_writer :previous
4271
+
4272
+ # Previous, current, and next billing periods for the subscription.
4273
+ sig do
4274
+ params(
4275
+ current:
4276
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::Current::OrHash,
4277
+ next_:
4278
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::Next::OrHash,
4279
+ previous:
4280
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::Previous::OrHash
4281
+ ).returns(T.attached_class)
4282
+ end
4283
+ def self.new(current: nil, next_: nil, previous: nil)
4284
+ end
4285
+
4286
+ sig do
4287
+ override.returns(
4288
+ {
4289
+ current:
4290
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::Current,
4291
+ next_:
4292
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::Next,
4293
+ previous:
4294
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::Previous
4295
+ }
4296
+ )
4297
+ end
4298
+ def to_hash
4299
+ end
4300
+
4301
+ class Current < MetronomeSDK::Internal::Type::BaseModel
4302
+ OrHash =
4303
+ T.type_alias do
4304
+ T.any(
4305
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::Current,
4306
+ MetronomeSDK::Internal::AnyHash
4307
+ )
4308
+ end
4309
+
4310
+ sig { returns(Time) }
4311
+ attr_accessor :ending_before
4312
+
4313
+ sig { returns(Time) }
4314
+ attr_accessor :starting_at
4315
+
4316
+ sig do
4317
+ params(ending_before: Time, starting_at: Time).returns(
4318
+ T.attached_class
4319
+ )
4320
+ end
4321
+ def self.new(ending_before:, starting_at:)
4322
+ end
4323
+
4324
+ sig do
4325
+ override.returns({ ending_before: Time, starting_at: Time })
4326
+ end
4327
+ def to_hash
4328
+ end
4329
+ end
4330
+
4331
+ class Next < MetronomeSDK::Internal::Type::BaseModel
4332
+ OrHash =
4333
+ T.type_alias do
4334
+ T.any(
4335
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::Next,
4336
+ MetronomeSDK::Internal::AnyHash
4337
+ )
4338
+ end
4339
+
4340
+ sig { returns(Time) }
4341
+ attr_accessor :ending_before
4342
+
4343
+ sig { returns(Time) }
4344
+ attr_accessor :starting_at
4345
+
4346
+ sig do
4347
+ params(ending_before: Time, starting_at: Time).returns(
4348
+ T.attached_class
4349
+ )
4350
+ end
4351
+ def self.new(ending_before:, starting_at:)
4352
+ end
4353
+
4354
+ sig do
4355
+ override.returns({ ending_before: Time, starting_at: Time })
4356
+ end
4357
+ def to_hash
4358
+ end
4359
+ end
4360
+
4361
+ class Previous < MetronomeSDK::Internal::Type::BaseModel
4362
+ OrHash =
4363
+ T.type_alias do
4364
+ T.any(
4365
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::BillingPeriods::Previous,
4366
+ MetronomeSDK::Internal::AnyHash
4367
+ )
4368
+ end
4369
+
4370
+ sig { returns(Time) }
4371
+ attr_accessor :ending_before
4372
+
4373
+ sig { returns(Time) }
4374
+ attr_accessor :starting_at
4375
+
4376
+ sig do
4377
+ params(ending_before: Time, starting_at: Time).returns(
4378
+ T.attached_class
4379
+ )
4380
+ end
4381
+ def self.new(ending_before:, starting_at:)
4382
+ end
4383
+
4384
+ sig do
4385
+ override.returns({ ending_before: Time, starting_at: Time })
4386
+ end
4387
+ def to_hash
4388
+ end
4389
+ end
4390
+ end
4391
+
4392
+ module CollectionSchedule
4393
+ extend MetronomeSDK::Internal::Type::Enum
4394
+
4395
+ TaggedSymbol =
4396
+ T.type_alias do
4397
+ T.all(
4398
+ Symbol,
4399
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::CollectionSchedule
4400
+ )
4401
+ end
4402
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4403
+
4404
+ ADVANCE =
4405
+ T.let(
4406
+ :ADVANCE,
4407
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::CollectionSchedule::TaggedSymbol
4408
+ )
4409
+ ARREARS =
4410
+ T.let(
4411
+ :ARREARS,
4412
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::CollectionSchedule::TaggedSymbol
4413
+ )
4414
+
4415
+ sig do
4416
+ override.returns(
4417
+ T::Array[
4418
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::CollectionSchedule::TaggedSymbol
4419
+ ]
4420
+ )
4421
+ end
4422
+ def self.values
4423
+ end
4424
+ end
4425
+
4426
+ class Proration < MetronomeSDK::Internal::Type::BaseModel
4427
+ OrHash =
4428
+ T.type_alias do
4429
+ T.any(
4430
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration,
4431
+ MetronomeSDK::Internal::AnyHash
4432
+ )
4433
+ end
4434
+
4435
+ sig do
4436
+ returns(
4437
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::InvoiceBehavior::TaggedSymbol
4438
+ )
4439
+ end
4440
+ attr_accessor :invoice_behavior
4441
+
4442
+ sig { returns(T::Boolean) }
4443
+ attr_accessor :is_prorated
4444
+
4445
+ sig do
4446
+ params(
4447
+ invoice_behavior:
4448
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::InvoiceBehavior::OrSymbol,
4449
+ is_prorated: T::Boolean
4450
+ ).returns(T.attached_class)
4451
+ end
4452
+ def self.new(invoice_behavior:, is_prorated:)
4453
+ end
4454
+
4455
+ sig do
4456
+ override.returns(
4457
+ {
4458
+ invoice_behavior:
4459
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::InvoiceBehavior::TaggedSymbol,
4460
+ is_prorated: T::Boolean
4461
+ }
4462
+ )
4463
+ end
4464
+ def to_hash
4465
+ end
4466
+
4467
+ module InvoiceBehavior
4468
+ extend MetronomeSDK::Internal::Type::Enum
4469
+
4470
+ TaggedSymbol =
4471
+ T.type_alias do
4472
+ T.all(
4473
+ Symbol,
4474
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::InvoiceBehavior
4475
+ )
4476
+ end
4477
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4478
+
4479
+ BILL_IMMEDIATELY =
4480
+ T.let(
4481
+ :BILL_IMMEDIATELY,
4482
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::InvoiceBehavior::TaggedSymbol
4483
+ )
4484
+ BILL_ON_NEXT_COLLECTION_DATE =
4485
+ T.let(
4486
+ :BILL_ON_NEXT_COLLECTION_DATE,
4487
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::InvoiceBehavior::TaggedSymbol
4488
+ )
4489
+
4490
+ sig do
4491
+ override.returns(
4492
+ T::Array[
4493
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::Proration::InvoiceBehavior::TaggedSymbol
4494
+ ]
4495
+ )
4496
+ end
4497
+ def self.values
4498
+ end
4499
+ end
4500
+ end
4501
+
4502
+ # Determines how the subscription's quantity is controlled. Defaults to
4503
+ # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
4504
+ # directly on the subscription. `initial_quantity` must be provided with this
4505
+ # option. Compatible with recurring commits/credits that use POOLED allocation.
4506
+ # **SEAT_BASED**: Use when you want to pass specific seat identifiers (e.g. add
4507
+ # user_123) to increment and decrement a subscription quantity, rather than
4508
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
4509
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
4510
+ # provided with this option.
4511
+ module QuantityManagementMode
4512
+ extend MetronomeSDK::Internal::Type::Enum
4513
+
4514
+ TaggedSymbol =
4515
+ T.type_alias do
4516
+ T.all(
4517
+ Symbol,
4518
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::QuantityManagementMode
4519
+ )
4520
+ end
4521
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4522
+
4523
+ SEAT_BASED =
4524
+ T.let(
4525
+ :SEAT_BASED,
4526
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::QuantityManagementMode::TaggedSymbol
4527
+ )
4528
+ QUANTITY_ONLY =
4529
+ T.let(
4530
+ :QUANTITY_ONLY,
4531
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::QuantityManagementMode::TaggedSymbol
4532
+ )
4533
+
4534
+ sig do
4535
+ override.returns(
4536
+ T::Array[
4537
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::QuantityManagementMode::TaggedSymbol
4538
+ ]
4539
+ )
4540
+ end
4541
+ def self.values
4542
+ end
4543
+ end
4544
+
4545
+ class QuantitySchedule < MetronomeSDK::Internal::Type::BaseModel
4546
+ OrHash =
4547
+ T.type_alias do
4548
+ T.any(
4549
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::QuantitySchedule,
4550
+ MetronomeSDK::Internal::AnyHash
4551
+ )
4552
+ end
4553
+
4554
+ sig { returns(Float) }
4555
+ attr_accessor :quantity
4556
+
4557
+ sig { returns(Time) }
4558
+ attr_accessor :starting_at
4559
+
4560
+ sig { returns(T.nilable(Time)) }
4561
+ attr_reader :ending_before
4562
+
4563
+ sig { params(ending_before: Time).void }
4564
+ attr_writer :ending_before
4565
+
4566
+ sig do
4567
+ params(
4568
+ quantity: Float,
4569
+ starting_at: Time,
4570
+ ending_before: Time
4571
+ ).returns(T.attached_class)
4572
+ end
4573
+ def self.new(quantity:, starting_at:, ending_before: nil)
4574
+ end
4575
+
4576
+ sig do
4577
+ override.returns(
4578
+ { quantity: Float, starting_at: Time, ending_before: Time }
4579
+ )
4580
+ end
4581
+ def to_hash
4582
+ end
4583
+ end
4584
+
4585
+ class SubscriptionRate < MetronomeSDK::Internal::Type::BaseModel
4586
+ OrHash =
4587
+ T.type_alias do
4588
+ T.any(
4589
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate,
4590
+ MetronomeSDK::Internal::AnyHash
4591
+ )
4592
+ end
4593
+
4594
+ sig do
4595
+ returns(
4596
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::BillingFrequency::TaggedSymbol
4597
+ )
4598
+ end
4599
+ attr_accessor :billing_frequency
4600
+
4601
+ sig do
4602
+ returns(
4603
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::Product
4604
+ )
4605
+ end
4606
+ attr_reader :product
4607
+
4608
+ sig do
4609
+ params(
4610
+ product:
4611
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::Product::OrHash
4612
+ ).void
4613
+ end
4614
+ attr_writer :product
4615
+
4616
+ sig do
4617
+ params(
4618
+ billing_frequency:
4619
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::BillingFrequency::OrSymbol,
4620
+ product:
4621
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::Product::OrHash
4622
+ ).returns(T.attached_class)
4623
+ end
4624
+ def self.new(billing_frequency:, product:)
4625
+ end
4626
+
4627
+ sig do
4628
+ override.returns(
4629
+ {
4630
+ billing_frequency:
4631
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::BillingFrequency::TaggedSymbol,
4632
+ product:
4633
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::Product
4634
+ }
4635
+ )
4636
+ end
4637
+ def to_hash
4638
+ end
4639
+
4640
+ module BillingFrequency
4641
+ extend MetronomeSDK::Internal::Type::Enum
4642
+
4643
+ TaggedSymbol =
4644
+ T.type_alias do
4645
+ T.all(
4646
+ Symbol,
4647
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::BillingFrequency
4648
+ )
4649
+ end
4650
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4651
+
4652
+ MONTHLY =
4653
+ T.let(
4654
+ :MONTHLY,
4655
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::BillingFrequency::TaggedSymbol
4656
+ )
4657
+ QUARTERLY =
4658
+ T.let(
4659
+ :QUARTERLY,
4660
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::BillingFrequency::TaggedSymbol
4661
+ )
4662
+ ANNUAL =
4663
+ T.let(
4664
+ :ANNUAL,
4665
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::BillingFrequency::TaggedSymbol
4666
+ )
4667
+ WEEKLY =
4668
+ T.let(
4669
+ :WEEKLY,
4670
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::BillingFrequency::TaggedSymbol
4671
+ )
4672
+
4673
+ sig do
4674
+ override.returns(
4675
+ T::Array[
4676
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::BillingFrequency::TaggedSymbol
4677
+ ]
4678
+ )
4679
+ end
4680
+ def self.values
4681
+ end
4682
+ end
4683
+
4684
+ class Product < MetronomeSDK::Internal::Type::BaseModel
4685
+ OrHash =
4686
+ T.type_alias do
4687
+ T.any(
4688
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SubscriptionRate::Product,
4689
+ MetronomeSDK::Internal::AnyHash
4690
+ )
4691
+ end
4692
+
4693
+ sig { returns(String) }
4694
+ attr_accessor :id
4695
+
4696
+ sig { returns(String) }
4697
+ attr_accessor :name
4698
+
4699
+ sig do
4700
+ params(id: String, name: String).returns(T.attached_class)
4701
+ end
4702
+ def self.new(id:, name:)
4703
+ end
4704
+
4705
+ sig { override.returns({ id: String, name: String }) }
4706
+ def to_hash
4707
+ end
4708
+ end
4709
+ end
4710
+
4711
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
4712
+ OrHash =
4713
+ T.type_alias do
4714
+ T.any(
4715
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddSubscription::SeatConfig,
4716
+ MetronomeSDK::Internal::AnyHash
4717
+ )
4718
+ end
4719
+
4720
+ # The property name, sent on usage events, that identifies the seat ID associated
4721
+ # with the usage event. For example, the property name might be seat_id or
4722
+ # user_id. The property must be set as a group key on billable metrics and a
4723
+ # presentation/pricing group key on contract products. This allows linked
4724
+ # recurring credits with an allocation per seat to be consumed by only one seat's
4725
+ # usage.
4726
+ sig { returns(String) }
4727
+ attr_accessor :seat_group_key
4728
+
4729
+ sig { params(seat_group_key: String).returns(T.attached_class) }
4730
+ def self.new(
4731
+ # The property name, sent on usage events, that identifies the seat ID associated
4732
+ # with the usage event. For example, the property name might be seat_id or
4733
+ # user_id. The property must be set as a group key on billable metrics and a
4734
+ # presentation/pricing group key on contract products. This allows linked
4735
+ # recurring credits with an allocation per seat to be consumed by only one seat's
4736
+ # usage.
4737
+ seat_group_key:
4738
+ )
4739
+ end
4740
+
4741
+ sig { override.returns({ seat_group_key: String }) }
4742
+ def to_hash
4743
+ end
4744
+ end
4745
+ end
4746
+
3959
4747
  class AddUsageFilter < MetronomeSDK::Internal::Type::BaseModel
3960
4748
  OrHash =
3961
4749
  T.type_alias do