metronome-sdk 1.0.0 → 2.0.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 (129) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +55 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/errors.rb +25 -11
  5. data/lib/metronome_sdk/file_part.rb +10 -7
  6. data/lib/metronome_sdk/internal/body_cursor_page.rb +1 -1
  7. data/lib/metronome_sdk/internal/cursor_page.rb +1 -1
  8. data/lib/metronome_sdk/internal/cursor_page_without_limit.rb +1 -1
  9. data/lib/metronome_sdk/internal/transport/base_client.rb +11 -7
  10. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +7 -10
  11. data/lib/metronome_sdk/internal/type/base_page.rb +1 -1
  12. data/lib/metronome_sdk/internal/type/enum.rb +25 -0
  13. data/lib/metronome_sdk/internal/type/file_input.rb +7 -4
  14. data/lib/metronome_sdk/internal/util.rb +8 -7
  15. data/lib/metronome_sdk/models/contract_v2.rb +256 -6
  16. data/lib/metronome_sdk/models/contract_without_amendments.rb +2 -2
  17. data/lib/metronome_sdk/models/hierarchy_configuration.rb +99 -2
  18. data/lib/metronome_sdk/models/payment_gate_config.rb +1 -0
  19. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +1 -0
  20. data/lib/metronome_sdk/models/subscription.rb +85 -1
  21. data/lib/metronome_sdk/models/v1/alert_archive_params.rb +8 -4
  22. data/lib/metronome_sdk/models/v1/alert_create_params.rb +38 -36
  23. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +1 -0
  24. data/lib/metronome_sdk/models/v1/contract_create_params.rb +101 -3
  25. data/lib/metronome_sdk/models/v1/customer_detail.rb +9 -1
  26. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +5 -15
  27. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +3 -3
  28. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +3 -3
  29. data/lib/metronome_sdk/models/v1/customers/alert_reset_params.rb +2 -2
  30. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +12 -12
  31. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +40 -38
  32. data/lib/metronome_sdk/models/v1/customers/invoice.rb +136 -18
  33. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rb +30 -0
  34. data/lib/metronome_sdk/models/v1/payment.rb +151 -0
  35. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +28 -0
  36. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +18 -0
  37. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +28 -0
  38. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +18 -0
  39. data/lib/metronome_sdk/models/v1/payment_list_params.rb +53 -0
  40. data/lib/metronome_sdk/models/v1/payment_status.rb +19 -0
  41. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +9 -1
  42. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +9 -1
  43. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +186 -3
  44. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +195 -8
  45. data/lib/metronome_sdk/resources/v1/alerts.rb +57 -53
  46. data/lib/metronome_sdk/resources/v1/contracts.rb +4 -3
  47. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +70 -51
  48. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +55 -0
  49. data/lib/metronome_sdk/resources/v1/customers.rb +7 -4
  50. data/lib/metronome_sdk/resources/v1/payments.rb +102 -0
  51. data/lib/metronome_sdk/resources/v1/usage.rb +4 -2
  52. data/lib/metronome_sdk/resources/v1.rb +4 -0
  53. data/lib/metronome_sdk/resources/v2/contracts.rb +9 -3
  54. data/lib/metronome_sdk/version.rb +1 -1
  55. data/lib/metronome_sdk.rb +9 -0
  56. data/rbi/metronome_sdk/errors.rbi +29 -2
  57. data/rbi/metronome_sdk/file_part.rbi +1 -1
  58. data/rbi/metronome_sdk/internal/transport/base_client.rbi +4 -5
  59. data/rbi/metronome_sdk/internal/type/base_page.rbi +1 -1
  60. data/rbi/metronome_sdk/internal/util.rbi +1 -1
  61. data/rbi/metronome_sdk/models/contract_v2.rbi +603 -10
  62. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +2 -2
  63. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +250 -6
  64. data/rbi/metronome_sdk/models/payment_gate_config.rbi +5 -0
  65. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +5 -0
  66. data/rbi/metronome_sdk/models/subscription.rbi +175 -0
  67. data/rbi/metronome_sdk/models/v1/alert_archive_params.rbi +6 -4
  68. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +51 -47
  69. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +5 -0
  70. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +257 -4
  71. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +8 -0
  72. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +6 -21
  73. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +10 -9
  74. data/rbi/metronome_sdk/models/v1/customers/alert_list_params.rbi +4 -4
  75. data/rbi/metronome_sdk/models/v1/customers/alert_reset_params.rbi +2 -2
  76. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +14 -14
  77. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +48 -44
  78. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +246 -58
  79. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbi +50 -0
  80. data/rbi/metronome_sdk/models/v1/payment.rbi +316 -0
  81. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +48 -0
  82. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +35 -0
  83. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +48 -0
  84. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +35 -0
  85. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +91 -0
  86. data/rbi/metronome_sdk/models/v1/payment_status.rbi +33 -0
  87. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +18 -0
  88. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +18 -0
  89. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +498 -6
  90. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +462 -14
  91. data/rbi/metronome_sdk/resources/v1/alerts.rbi +68 -64
  92. data/rbi/metronome_sdk/resources/v1/contracts.rbi +4 -3
  93. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +73 -54
  94. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +36 -0
  95. data/rbi/metronome_sdk/resources/v1/customers.rbi +7 -4
  96. data/rbi/metronome_sdk/resources/v1/payments.rbi +72 -0
  97. data/rbi/metronome_sdk/resources/v1/usage.rbi +4 -2
  98. data/rbi/metronome_sdk/resources/v1.rbi +3 -0
  99. data/rbi/metronome_sdk/resources/v2/contracts.rbi +14 -0
  100. data/sig/metronome_sdk/errors.rbs +7 -0
  101. data/sig/metronome_sdk/file_part.rbs +1 -1
  102. data/sig/metronome_sdk/models/contract_v2.rbs +239 -12
  103. data/sig/metronome_sdk/models/hierarchy_configuration.rbs +87 -6
  104. data/sig/metronome_sdk/models/payment_gate_config.rbs +2 -1
  105. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +2 -1
  106. data/sig/metronome_sdk/models/subscription.rbs +80 -0
  107. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +2 -1
  108. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +91 -5
  109. data/sig/metronome_sdk/models/v1/customer_detail.rbs +5 -0
  110. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +0 -7
  111. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +6 -4
  112. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +137 -24
  113. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbs +32 -0
  114. data/sig/metronome_sdk/models/v1/payment.rbs +191 -0
  115. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +30 -0
  116. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +15 -0
  117. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +30 -0
  118. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +15 -0
  119. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +56 -0
  120. data/sig/metronome_sdk/models/v1/payment_status.rbs +19 -0
  121. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +9 -0
  122. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +9 -0
  123. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +182 -7
  124. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +221 -18
  125. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +6 -0
  126. data/sig/metronome_sdk/resources/v1/payments.rbs +30 -0
  127. data/sig/metronome_sdk/resources/v1.rbs +2 -0
  128. data/sig/metronome_sdk/resources/v2/contracts.rbs +3 -0
  129. metadata +29 -2
@@ -922,12 +922,19 @@ module MetronomeSDK
922
922
  attr_writer :hierarchy_configuration
923
923
 
924
924
  # The schedule that the customer will be invoiced for this commit.
925
- sig { returns(T.nilable(MetronomeSDK::SchedulePointInTime)) }
925
+ sig do
926
+ returns(
927
+ T.nilable(
928
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule
929
+ )
930
+ )
931
+ end
926
932
  attr_reader :invoice_schedule
927
933
 
928
934
  sig do
929
935
  params(
930
- invoice_schedule: MetronomeSDK::SchedulePointInTime::OrHash
936
+ invoice_schedule:
937
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::OrHash
931
938
  ).void
932
939
  end
933
940
  attr_writer :invoice_schedule
@@ -1014,7 +1021,8 @@ module MetronomeSDK
1014
1021
  description: String,
1015
1022
  hierarchy_configuration:
1016
1023
  MetronomeSDK::CommitHierarchyConfiguration::OrHash,
1017
- invoice_schedule: MetronomeSDK::SchedulePointInTime::OrHash,
1024
+ invoice_schedule:
1025
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::OrHash,
1018
1026
  name: String,
1019
1027
  netsuite_sales_order_id: String,
1020
1028
  priority: Float,
@@ -1073,7 +1081,8 @@ module MetronomeSDK
1073
1081
  description: String,
1074
1082
  hierarchy_configuration:
1075
1083
  MetronomeSDK::CommitHierarchyConfiguration,
1076
- invoice_schedule: MetronomeSDK::SchedulePointInTime,
1084
+ invoice_schedule:
1085
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule,
1077
1086
  name: String,
1078
1087
  netsuite_sales_order_id: String,
1079
1088
  priority: Float,
@@ -1146,6 +1155,158 @@ module MetronomeSDK
1146
1155
  end
1147
1156
  end
1148
1157
 
1158
+ class InvoiceSchedule < MetronomeSDK::Internal::Type::BaseModel
1159
+ OrHash =
1160
+ T.type_alias do
1161
+ T.any(
1162
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule,
1163
+ MetronomeSDK::Internal::AnyHash
1164
+ )
1165
+ end
1166
+
1167
+ sig { returns(T.nilable(MetronomeSDK::CreditTypeData)) }
1168
+ attr_reader :credit_type
1169
+
1170
+ sig do
1171
+ params(credit_type: MetronomeSDK::CreditTypeData::OrHash).void
1172
+ end
1173
+ attr_writer :credit_type
1174
+
1175
+ # If true, this schedule will not generate an invoice.
1176
+ sig { returns(T.nilable(T::Boolean)) }
1177
+ attr_reader :do_not_invoice
1178
+
1179
+ sig { params(do_not_invoice: T::Boolean).void }
1180
+ attr_writer :do_not_invoice
1181
+
1182
+ sig do
1183
+ returns(
1184
+ T.nilable(
1185
+ T::Array[
1186
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::ScheduleItem
1187
+ ]
1188
+ )
1189
+ )
1190
+ end
1191
+ attr_reader :schedule_items
1192
+
1193
+ sig do
1194
+ params(
1195
+ schedule_items:
1196
+ T::Array[
1197
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::ScheduleItem::OrHash
1198
+ ]
1199
+ ).void
1200
+ end
1201
+ attr_writer :schedule_items
1202
+
1203
+ # The schedule that the customer will be invoiced for this commit.
1204
+ sig do
1205
+ params(
1206
+ credit_type: MetronomeSDK::CreditTypeData::OrHash,
1207
+ do_not_invoice: T::Boolean,
1208
+ schedule_items:
1209
+ T::Array[
1210
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::ScheduleItem::OrHash
1211
+ ]
1212
+ ).returns(T.attached_class)
1213
+ end
1214
+ def self.new(
1215
+ credit_type: nil,
1216
+ # If true, this schedule will not generate an invoice.
1217
+ do_not_invoice: nil,
1218
+ schedule_items: nil
1219
+ )
1220
+ end
1221
+
1222
+ sig do
1223
+ override.returns(
1224
+ {
1225
+ credit_type: MetronomeSDK::CreditTypeData,
1226
+ do_not_invoice: T::Boolean,
1227
+ schedule_items:
1228
+ T::Array[
1229
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::ScheduleItem
1230
+ ]
1231
+ }
1232
+ )
1233
+ end
1234
+ def to_hash
1235
+ end
1236
+
1237
+ class ScheduleItem < MetronomeSDK::Internal::Type::BaseModel
1238
+ OrHash =
1239
+ T.type_alias do
1240
+ T.any(
1241
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddCommit::InvoiceSchedule::ScheduleItem,
1242
+ MetronomeSDK::Internal::AnyHash
1243
+ )
1244
+ end
1245
+
1246
+ sig { returns(String) }
1247
+ attr_accessor :id
1248
+
1249
+ sig { returns(Time) }
1250
+ attr_accessor :timestamp
1251
+
1252
+ sig { returns(T.nilable(Float)) }
1253
+ attr_reader :amount
1254
+
1255
+ sig { params(amount: Float).void }
1256
+ attr_writer :amount
1257
+
1258
+ sig { returns(T.nilable(String)) }
1259
+ attr_accessor :invoice_id
1260
+
1261
+ sig { returns(T.nilable(Float)) }
1262
+ attr_reader :quantity
1263
+
1264
+ sig { params(quantity: Float).void }
1265
+ attr_writer :quantity
1266
+
1267
+ sig { returns(T.nilable(Float)) }
1268
+ attr_reader :unit_price
1269
+
1270
+ sig { params(unit_price: Float).void }
1271
+ attr_writer :unit_price
1272
+
1273
+ sig do
1274
+ params(
1275
+ id: String,
1276
+ timestamp: Time,
1277
+ amount: Float,
1278
+ invoice_id: T.nilable(String),
1279
+ quantity: Float,
1280
+ unit_price: Float
1281
+ ).returns(T.attached_class)
1282
+ end
1283
+ def self.new(
1284
+ id:,
1285
+ timestamp:,
1286
+ amount: nil,
1287
+ invoice_id: nil,
1288
+ quantity: nil,
1289
+ unit_price: nil
1290
+ )
1291
+ end
1292
+
1293
+ sig do
1294
+ override.returns(
1295
+ {
1296
+ id: String,
1297
+ timestamp: Time,
1298
+ amount: Float,
1299
+ invoice_id: T.nilable(String),
1300
+ quantity: Float,
1301
+ unit_price: Float
1302
+ }
1303
+ )
1304
+ end
1305
+ def to_hash
1306
+ end
1307
+ end
1308
+ end
1309
+
1149
1310
  module RateType
1150
1311
  extend MetronomeSDK::Internal::Type::Enum
1151
1312
 
@@ -1508,11 +1669,20 @@ module MetronomeSDK
1508
1669
  end
1509
1670
  attr_writer :override_tiers
1510
1671
 
1511
- sig { returns(T.nilable(MetronomeSDK::OverwriteRate)) }
1672
+ sig do
1673
+ returns(
1674
+ T.nilable(
1675
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate
1676
+ )
1677
+ )
1678
+ end
1512
1679
  attr_reader :overwrite_rate
1513
1680
 
1514
1681
  sig do
1515
- params(overwrite_rate: MetronomeSDK::OverwriteRate::OrHash).void
1682
+ params(
1683
+ overwrite_rate:
1684
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::OrHash
1685
+ ).void
1516
1686
  end
1517
1687
  attr_writer :overwrite_rate
1518
1688
 
@@ -1587,7 +1757,8 @@ module MetronomeSDK
1587
1757
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverrideSpecifier::OrHash
1588
1758
  ],
1589
1759
  override_tiers: T::Array[MetronomeSDK::OverrideTier::OrHash],
1590
- overwrite_rate: MetronomeSDK::OverwriteRate::OrHash,
1760
+ overwrite_rate:
1761
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::OrHash,
1591
1762
  priority: Float,
1592
1763
  product:
1593
1764
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::Product::OrHash,
@@ -1630,7 +1801,8 @@ module MetronomeSDK
1630
1801
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverrideSpecifier
1631
1802
  ],
1632
1803
  override_tiers: T::Array[MetronomeSDK::OverrideTier],
1633
- overwrite_rate: MetronomeSDK::OverwriteRate,
1804
+ overwrite_rate:
1805
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate,
1634
1806
  priority: Float,
1635
1807
  product:
1636
1808
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::Product,
@@ -1805,6 +1977,166 @@ module MetronomeSDK
1805
1977
  end
1806
1978
  end
1807
1979
 
1980
+ class OverwriteRate < MetronomeSDK::Internal::Type::BaseModel
1981
+ OrHash =
1982
+ T.type_alias do
1983
+ T.any(
1984
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate,
1985
+ MetronomeSDK::Internal::AnyHash
1986
+ )
1987
+ end
1988
+
1989
+ sig do
1990
+ returns(
1991
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::RateType::TaggedSymbol
1992
+ )
1993
+ end
1994
+ attr_accessor :rate_type
1995
+
1996
+ sig { returns(T.nilable(MetronomeSDK::CreditTypeData)) }
1997
+ attr_reader :credit_type
1998
+
1999
+ sig do
2000
+ params(credit_type: MetronomeSDK::CreditTypeData::OrHash).void
2001
+ end
2002
+ attr_writer :credit_type
2003
+
2004
+ # Only set for CUSTOM rate_type. This field is interpreted by custom rate
2005
+ # processors.
2006
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
2007
+ attr_reader :custom_rate
2008
+
2009
+ sig { params(custom_rate: T::Hash[Symbol, T.anything]).void }
2010
+ attr_writer :custom_rate
2011
+
2012
+ # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
2013
+ # set to true.
2014
+ sig { returns(T.nilable(T::Boolean)) }
2015
+ attr_reader :is_prorated
2016
+
2017
+ sig { params(is_prorated: T::Boolean).void }
2018
+ attr_writer :is_prorated
2019
+
2020
+ # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
2021
+ # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
2022
+ sig { returns(T.nilable(Float)) }
2023
+ attr_reader :price
2024
+
2025
+ sig { params(price: Float).void }
2026
+ attr_writer :price
2027
+
2028
+ # Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
2029
+ sig { returns(T.nilable(Float)) }
2030
+ attr_reader :quantity
2031
+
2032
+ sig { params(quantity: Float).void }
2033
+ attr_writer :quantity
2034
+
2035
+ # Only set for TIERED rate_type.
2036
+ sig { returns(T.nilable(T::Array[MetronomeSDK::Tier])) }
2037
+ attr_reader :tiers
2038
+
2039
+ sig { params(tiers: T::Array[MetronomeSDK::Tier::OrHash]).void }
2040
+ attr_writer :tiers
2041
+
2042
+ sig do
2043
+ params(
2044
+ rate_type:
2045
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::RateType::OrSymbol,
2046
+ credit_type: MetronomeSDK::CreditTypeData::OrHash,
2047
+ custom_rate: T::Hash[Symbol, T.anything],
2048
+ is_prorated: T::Boolean,
2049
+ price: Float,
2050
+ quantity: Float,
2051
+ tiers: T::Array[MetronomeSDK::Tier::OrHash]
2052
+ ).returns(T.attached_class)
2053
+ end
2054
+ def self.new(
2055
+ rate_type:,
2056
+ credit_type: nil,
2057
+ # Only set for CUSTOM rate_type. This field is interpreted by custom rate
2058
+ # processors.
2059
+ custom_rate: nil,
2060
+ # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
2061
+ # set to true.
2062
+ is_prorated: nil,
2063
+ # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
2064
+ # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
2065
+ price: nil,
2066
+ # Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
2067
+ quantity: nil,
2068
+ # Only set for TIERED rate_type.
2069
+ tiers: nil
2070
+ )
2071
+ end
2072
+
2073
+ sig do
2074
+ override.returns(
2075
+ {
2076
+ rate_type:
2077
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::RateType::TaggedSymbol,
2078
+ credit_type: MetronomeSDK::CreditTypeData,
2079
+ custom_rate: T::Hash[Symbol, T.anything],
2080
+ is_prorated: T::Boolean,
2081
+ price: Float,
2082
+ quantity: Float,
2083
+ tiers: T::Array[MetronomeSDK::Tier]
2084
+ }
2085
+ )
2086
+ end
2087
+ def to_hash
2088
+ end
2089
+
2090
+ module RateType
2091
+ extend MetronomeSDK::Internal::Type::Enum
2092
+
2093
+ TaggedSymbol =
2094
+ T.type_alias do
2095
+ T.all(
2096
+ Symbol,
2097
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::RateType
2098
+ )
2099
+ end
2100
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
2101
+
2102
+ FLAT =
2103
+ T.let(
2104
+ :FLAT,
2105
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::RateType::TaggedSymbol
2106
+ )
2107
+ PERCENTAGE =
2108
+ T.let(
2109
+ :PERCENTAGE,
2110
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::RateType::TaggedSymbol
2111
+ )
2112
+ SUBSCRIPTION =
2113
+ T.let(
2114
+ :SUBSCRIPTION,
2115
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::RateType::TaggedSymbol
2116
+ )
2117
+ TIERED =
2118
+ T.let(
2119
+ :TIERED,
2120
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::RateType::TaggedSymbol
2121
+ )
2122
+ CUSTOM =
2123
+ T.let(
2124
+ :CUSTOM,
2125
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::RateType::TaggedSymbol
2126
+ )
2127
+
2128
+ sig do
2129
+ override.returns(
2130
+ T::Array[
2131
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::RateType::TaggedSymbol
2132
+ ]
2133
+ )
2134
+ end
2135
+ def self.values
2136
+ end
2137
+ end
2138
+ end
2139
+
1808
2140
  class Product < MetronomeSDK::Internal::Type::BaseModel
1809
2141
  OrHash =
1810
2142
  T.type_alias do
@@ -5590,6 +5922,23 @@ module MetronomeSDK
5590
5922
  end
5591
5923
  attr_writer :invoice_amount
5592
5924
 
5925
+ sig do
5926
+ returns(
5927
+ T.nilable(
5928
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::RateType::TaggedSymbol
5929
+ )
5930
+ )
5931
+ end
5932
+ attr_reader :rate_type
5933
+
5934
+ sig do
5935
+ params(
5936
+ rate_type:
5937
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::RateType::OrSymbol
5938
+ ).void
5939
+ end
5940
+ attr_writer :rate_type
5941
+
5593
5942
  sig do
5594
5943
  params(
5595
5944
  id: String,
@@ -5597,14 +5946,17 @@ module MetronomeSDK
5597
5946
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::AccessAmount::OrHash,
5598
5947
  ending_before: Time,
5599
5948
  invoice_amount:
5600
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::InvoiceAmount::OrHash
5949
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::InvoiceAmount::OrHash,
5950
+ rate_type:
5951
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::RateType::OrSymbol
5601
5952
  ).returns(T.attached_class)
5602
5953
  end
5603
5954
  def self.new(
5604
5955
  id:,
5605
5956
  access_amount: nil,
5606
5957
  ending_before: nil,
5607
- invoice_amount: nil
5958
+ invoice_amount: nil,
5959
+ rate_type: nil
5608
5960
  )
5609
5961
  end
5610
5962
 
@@ -5616,7 +5968,9 @@ module MetronomeSDK
5616
5968
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::AccessAmount,
5617
5969
  ending_before: Time,
5618
5970
  invoice_amount:
5619
- MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::InvoiceAmount
5971
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::InvoiceAmount,
5972
+ rate_type:
5973
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::RateType::TaggedSymbol
5620
5974
  }
5621
5975
  )
5622
5976
  end
@@ -5690,6 +6044,40 @@ module MetronomeSDK
5690
6044
  def to_hash
5691
6045
  end
5692
6046
  end
6047
+
6048
+ module RateType
6049
+ extend MetronomeSDK::Internal::Type::Enum
6050
+
6051
+ TaggedSymbol =
6052
+ T.type_alias do
6053
+ T.all(
6054
+ Symbol,
6055
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::RateType
6056
+ )
6057
+ end
6058
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6059
+
6060
+ LIST_RATE =
6061
+ T.let(
6062
+ :LIST_RATE,
6063
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::RateType::TaggedSymbol
6064
+ )
6065
+ COMMIT_RATE =
6066
+ T.let(
6067
+ :COMMIT_RATE,
6068
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::RateType::TaggedSymbol
6069
+ )
6070
+
6071
+ sig do
6072
+ override.returns(
6073
+ T::Array[
6074
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCommit::RateType::TaggedSymbol
6075
+ ]
6076
+ )
6077
+ end
6078
+ def self.values
6079
+ end
6080
+ end
5693
6081
  end
5694
6082
 
5695
6083
  class UpdateRecurringCredit < MetronomeSDK::Internal::Type::BaseModel
@@ -5727,15 +6115,39 @@ module MetronomeSDK
5727
6115
  sig { params(ending_before: Time).void }
5728
6116
  attr_writer :ending_before
5729
6117
 
6118
+ sig do
6119
+ returns(
6120
+ T.nilable(
6121
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::RateType::TaggedSymbol
6122
+ )
6123
+ )
6124
+ end
6125
+ attr_reader :rate_type
6126
+
6127
+ sig do
6128
+ params(
6129
+ rate_type:
6130
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::RateType::OrSymbol
6131
+ ).void
6132
+ end
6133
+ attr_writer :rate_type
6134
+
5730
6135
  sig do
5731
6136
  params(
5732
6137
  id: String,
5733
6138
  access_amount:
5734
6139
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::AccessAmount::OrHash,
5735
- ending_before: Time
6140
+ ending_before: Time,
6141
+ rate_type:
6142
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::RateType::OrSymbol
5736
6143
  ).returns(T.attached_class)
5737
6144
  end
5738
- def self.new(id:, access_amount: nil, ending_before: nil)
6145
+ def self.new(
6146
+ id:,
6147
+ access_amount: nil,
6148
+ ending_before: nil,
6149
+ rate_type: nil
6150
+ )
5739
6151
  end
5740
6152
 
5741
6153
  sig do
@@ -5744,7 +6156,9 @@ module MetronomeSDK
5744
6156
  id: String,
5745
6157
  access_amount:
5746
6158
  MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::AccessAmount,
5747
- ending_before: Time
6159
+ ending_before: Time,
6160
+ rate_type:
6161
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::RateType::TaggedSymbol
5748
6162
  }
5749
6163
  )
5750
6164
  end
@@ -5784,6 +6198,40 @@ module MetronomeSDK
5784
6198
  def to_hash
5785
6199
  end
5786
6200
  end
6201
+
6202
+ module RateType
6203
+ extend MetronomeSDK::Internal::Type::Enum
6204
+
6205
+ TaggedSymbol =
6206
+ T.type_alias do
6207
+ T.all(
6208
+ Symbol,
6209
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::RateType
6210
+ )
6211
+ end
6212
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6213
+
6214
+ LIST_RATE =
6215
+ T.let(
6216
+ :LIST_RATE,
6217
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::RateType::TaggedSymbol
6218
+ )
6219
+ COMMIT_RATE =
6220
+ T.let(
6221
+ :COMMIT_RATE,
6222
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::RateType::TaggedSymbol
6223
+ )
6224
+
6225
+ sig do
6226
+ override.returns(
6227
+ T::Array[
6228
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::UpdateRecurringCredit::RateType::TaggedSymbol
6229
+ ]
6230
+ )
6231
+ end
6232
+ def self.values
6233
+ end
6234
+ end
5787
6235
  end
5788
6236
 
5789
6237
  class UpdateRefundInvoice < MetronomeSDK::Internal::Type::BaseModel