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
@@ -119,6 +119,8 @@ module MetronomeSDK
119
119
  params(
120
120
  contract_id: String,
121
121
  customer_id: String,
122
+ add_billing_provider_configuration_update:
123
+ MetronomeSDK::V2::ContractEditParams::AddBillingProviderConfigurationUpdate::OrHash,
122
124
  add_commits:
123
125
  T::Array[MetronomeSDK::V2::ContractEditParams::AddCommit::OrHash],
124
126
  add_credits:
@@ -215,6 +217,10 @@ module MetronomeSDK
215
217
  contract_id:,
216
218
  # ID of the customer whose contract is being edited
217
219
  customer_id:,
220
+ # Update the billing provider configuration on the contract. Currently only
221
+ # supports adding a billing provider configuration to a contract that does not
222
+ # already have one.
223
+ add_billing_provider_configuration_update: nil,
218
224
  add_commits: nil,
219
225
  add_credits: nil,
220
226
  add_discounts: nil,
@@ -294,6 +300,8 @@ module MetronomeSDK
294
300
  MetronomeSDK::V2::ContractEditCommitParams::AccessSchedule::OrHash,
295
301
  applicable_product_ids: T.nilable(T::Array[String]),
296
302
  applicable_product_tags: T.nilable(T::Array[String]),
303
+ hierarchy_configuration:
304
+ MetronomeSDK::CommitHierarchyConfiguration::OrHash,
297
305
  invoice_contract_id: String,
298
306
  invoice_schedule:
299
307
  MetronomeSDK::V2::ContractEditCommitParams::InvoiceSchedule::OrHash,
@@ -320,6 +328,8 @@ module MetronomeSDK
320
328
  # applicable_product_tags or specifiers are not provided, the commit applies to
321
329
  # all products.
322
330
  applicable_product_tags: nil,
331
+ # Optional configuration for commit hierarchy access control
332
+ hierarchy_configuration: nil,
323
333
  # ID of contract to use for invoicing
324
334
  invoice_contract_id: nil,
325
335
  invoice_schedule: nil,
@@ -366,6 +376,8 @@ module MetronomeSDK
366
376
  MetronomeSDK::V2::ContractEditCreditParams::AccessSchedule::OrHash,
367
377
  applicable_product_ids: T.nilable(T::Array[String]),
368
378
  applicable_product_tags: T.nilable(T::Array[String]),
379
+ hierarchy_configuration:
380
+ MetronomeSDK::CommitHierarchyConfiguration::OrHash,
369
381
  priority: T.nilable(Float),
370
382
  product_id: String,
371
383
  rate_type:
@@ -387,6 +399,8 @@ module MetronomeSDK
387
399
  # Which tags the credit applies to. If both applicable_product_ids and
388
400
  # applicable_product_tags are not provided, the credit applies to all products.
389
401
  applicable_product_tags: nil,
402
+ # Optional configuration for credit hierarchy access control
403
+ hierarchy_configuration: nil,
390
404
  # If multiple commits are applicable, the one with the lower priority will apply
391
405
  # first.
392
406
  priority: nil,
@@ -21,11 +21,14 @@ module MetronomeSDK
21
21
 
22
22
  attr_accessor status: Integer?
23
23
 
24
+ attr_accessor headers: ::Hash[String, String]?
25
+
24
26
  attr_accessor body: top?
25
27
 
26
28
  def initialize: (
27
29
  url: URI::Generic,
28
30
  ?status: Integer?,
31
+ ?headers: ::Hash[String, String]?,
29
32
  ?body: Object?,
30
33
  ?request: nil,
31
34
  ?response: nil,
@@ -37,6 +40,7 @@ module MetronomeSDK
37
40
  def initialize: (
38
41
  url: URI::Generic,
39
42
  ?status: nil,
43
+ ?headers: ::Hash[String, String]?,
40
44
  ?body: nil,
41
45
  ?request: nil,
42
46
  ?response: nil,
@@ -48,6 +52,7 @@ module MetronomeSDK
48
52
  def initialize: (
49
53
  url: URI::Generic,
50
54
  ?status: nil,
55
+ ?headers: ::Hash[String, String]?,
51
56
  ?body: nil,
52
57
  ?request: nil,
53
58
  ?response: nil,
@@ -59,6 +64,7 @@ module MetronomeSDK
59
64
  def self.for: (
60
65
  url: URI::Generic,
61
66
  status: Integer,
67
+ headers: ::Hash[String, String]?,
62
68
  body: Object?,
63
69
  request: nil,
64
70
  response: nil,
@@ -68,6 +74,7 @@ module MetronomeSDK
68
74
  def initialize: (
69
75
  url: URI::Generic,
70
76
  status: Integer,
77
+ headers: ::Hash[String, String]?,
71
78
  body: Object?,
72
79
  request: nil,
73
80
  response: nil,
@@ -14,7 +14,7 @@ module MetronomeSDK
14
14
 
15
15
  def initialize: (
16
16
  Pathname | StringIO | IO | String content,
17
- ?filename: String?,
17
+ ?filename: (Pathname | String)?,
18
18
  ?content_type: String?
19
19
  ) -> void
20
20
  end
@@ -20,7 +20,7 @@ module MetronomeSDK
20
20
  discounts: ::Array[MetronomeSDK::Discount],
21
21
  ending_before: Time,
22
22
  has_more: MetronomeSDK::ContractV2::HasMore,
23
- hierarchy_configuration: MetronomeSDK::Models::hierarchy_configuration,
23
+ hierarchy_configuration: MetronomeSDK::Models::ContractV2::hierarchy_configuration,
24
24
  multiplier_override_prioritization: MetronomeSDK::Models::ContractV2::multiplier_override_prioritization,
25
25
  name: String,
26
26
  net_payment_terms_days: Float,
@@ -99,11 +99,11 @@ module MetronomeSDK
99
99
  MetronomeSDK::ContractV2::HasMore
100
100
  ) -> MetronomeSDK::ContractV2::HasMore
101
101
 
102
- attr_reader hierarchy_configuration: MetronomeSDK::Models::hierarchy_configuration?
102
+ attr_reader hierarchy_configuration: MetronomeSDK::Models::ContractV2::hierarchy_configuration?
103
103
 
104
104
  def hierarchy_configuration=: (
105
- MetronomeSDK::Models::hierarchy_configuration
106
- ) -> MetronomeSDK::Models::hierarchy_configuration
105
+ MetronomeSDK::Models::ContractV2::hierarchy_configuration
106
+ ) -> MetronomeSDK::Models::ContractV2::hierarchy_configuration
107
107
 
108
108
  attr_reader multiplier_override_prioritization: MetronomeSDK::Models::ContractV2::multiplier_override_prioritization?
109
109
 
@@ -210,7 +210,7 @@ module MetronomeSDK
210
210
  ?discounts: ::Array[MetronomeSDK::Discount],
211
211
  ?ending_before: Time,
212
212
  ?has_more: MetronomeSDK::ContractV2::HasMore,
213
- ?hierarchy_configuration: MetronomeSDK::Models::hierarchy_configuration,
213
+ ?hierarchy_configuration: MetronomeSDK::Models::ContractV2::hierarchy_configuration,
214
214
  ?multiplier_override_prioritization: MetronomeSDK::Models::ContractV2::multiplier_override_prioritization,
215
215
  ?name: String,
216
216
  ?net_payment_terms_days: Float,
@@ -249,7 +249,7 @@ module MetronomeSDK
249
249
  discounts: ::Array[MetronomeSDK::Discount],
250
250
  ending_before: Time,
251
251
  has_more: MetronomeSDK::ContractV2::HasMore,
252
- hierarchy_configuration: MetronomeSDK::Models::hierarchy_configuration,
252
+ hierarchy_configuration: MetronomeSDK::Models::ContractV2::hierarchy_configuration,
253
253
  multiplier_override_prioritization: MetronomeSDK::Models::ContractV2::multiplier_override_prioritization,
254
254
  name: String,
255
255
  net_payment_terms_days: Float,
@@ -1208,7 +1208,7 @@ module MetronomeSDK
1208
1208
  multiplier: Float,
1209
1209
  override_specifiers: ::Array[MetronomeSDK::ContractV2::Override::OverrideSpecifier],
1210
1210
  override_tiers: ::Array[MetronomeSDK::OverrideTier],
1211
- overwrite_rate: MetronomeSDK::OverwriteRate,
1211
+ overwrite_rate: MetronomeSDK::ContractV2::Override::OverwriteRate,
1212
1212
  priority: Float,
1213
1213
  product: MetronomeSDK::ContractV2::Override::Product,
1214
1214
  target: MetronomeSDK::Models::ContractV2::Override::target,
@@ -1252,11 +1252,11 @@ module MetronomeSDK
1252
1252
  ::Array[MetronomeSDK::OverrideTier]
1253
1253
  ) -> ::Array[MetronomeSDK::OverrideTier]
1254
1254
 
1255
- attr_reader overwrite_rate: MetronomeSDK::OverwriteRate?
1255
+ attr_reader overwrite_rate: MetronomeSDK::ContractV2::Override::OverwriteRate?
1256
1256
 
1257
1257
  def overwrite_rate=: (
1258
- MetronomeSDK::OverwriteRate
1259
- ) -> MetronomeSDK::OverwriteRate
1258
+ MetronomeSDK::ContractV2::Override::OverwriteRate
1259
+ ) -> MetronomeSDK::ContractV2::Override::OverwriteRate
1260
1260
 
1261
1261
  attr_reader priority: Float?
1262
1262
 
@@ -1290,7 +1290,7 @@ module MetronomeSDK
1290
1290
  ?multiplier: Float,
1291
1291
  ?override_specifiers: ::Array[MetronomeSDK::ContractV2::Override::OverrideSpecifier],
1292
1292
  ?override_tiers: ::Array[MetronomeSDK::OverrideTier],
1293
- ?overwrite_rate: MetronomeSDK::OverwriteRate,
1293
+ ?overwrite_rate: MetronomeSDK::ContractV2::Override::OverwriteRate,
1294
1294
  ?priority: Float,
1295
1295
  ?product: MetronomeSDK::ContractV2::Override::Product,
1296
1296
  ?target: MetronomeSDK::Models::ContractV2::Override::target,
@@ -1307,7 +1307,7 @@ module MetronomeSDK
1307
1307
  multiplier: Float,
1308
1308
  override_specifiers: ::Array[MetronomeSDK::ContractV2::Override::OverrideSpecifier],
1309
1309
  override_tiers: ::Array[MetronomeSDK::OverrideTier],
1310
- overwrite_rate: MetronomeSDK::OverwriteRate,
1310
+ overwrite_rate: MetronomeSDK::ContractV2::Override::OverwriteRate,
1311
1311
  priority: Float,
1312
1312
  product: MetronomeSDK::ContractV2::Override::Product,
1313
1313
  target: MetronomeSDK::Models::ContractV2::Override::target,
@@ -1401,6 +1401,84 @@ module MetronomeSDK
1401
1401
  end
1402
1402
  end
1403
1403
 
1404
+ type overwrite_rate =
1405
+ {
1406
+ rate_type: MetronomeSDK::Models::ContractV2::Override::OverwriteRate::rate_type,
1407
+ credit_type: MetronomeSDK::CreditTypeData,
1408
+ custom_rate: ::Hash[Symbol, top],
1409
+ is_prorated: bool,
1410
+ price: Float,
1411
+ quantity: Float,
1412
+ tiers: ::Array[MetronomeSDK::Tier]
1413
+ }
1414
+
1415
+ class OverwriteRate < MetronomeSDK::Internal::Type::BaseModel
1416
+ attr_accessor rate_type: MetronomeSDK::Models::ContractV2::Override::OverwriteRate::rate_type
1417
+
1418
+ attr_reader credit_type: MetronomeSDK::CreditTypeData?
1419
+
1420
+ def credit_type=: (
1421
+ MetronomeSDK::CreditTypeData
1422
+ ) -> MetronomeSDK::CreditTypeData
1423
+
1424
+ attr_reader custom_rate: ::Hash[Symbol, top]?
1425
+
1426
+ def custom_rate=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top]
1427
+
1428
+ attr_reader is_prorated: bool?
1429
+
1430
+ def is_prorated=: (bool) -> bool
1431
+
1432
+ attr_reader price: Float?
1433
+
1434
+ def price=: (Float) -> Float
1435
+
1436
+ attr_reader quantity: Float?
1437
+
1438
+ def quantity=: (Float) -> Float
1439
+
1440
+ attr_reader tiers: ::Array[MetronomeSDK::Tier]?
1441
+
1442
+ def tiers=: (
1443
+ ::Array[MetronomeSDK::Tier]
1444
+ ) -> ::Array[MetronomeSDK::Tier]
1445
+
1446
+ def initialize: (
1447
+ rate_type: MetronomeSDK::Models::ContractV2::Override::OverwriteRate::rate_type,
1448
+ ?credit_type: MetronomeSDK::CreditTypeData,
1449
+ ?custom_rate: ::Hash[Symbol, top],
1450
+ ?is_prorated: bool,
1451
+ ?price: Float,
1452
+ ?quantity: Float,
1453
+ ?tiers: ::Array[MetronomeSDK::Tier]
1454
+ ) -> void
1455
+
1456
+ def to_hash: -> {
1457
+ rate_type: MetronomeSDK::Models::ContractV2::Override::OverwriteRate::rate_type,
1458
+ credit_type: MetronomeSDK::CreditTypeData,
1459
+ custom_rate: ::Hash[Symbol, top],
1460
+ is_prorated: bool,
1461
+ price: Float,
1462
+ quantity: Float,
1463
+ tiers: ::Array[MetronomeSDK::Tier]
1464
+ }
1465
+
1466
+ type rate_type =
1467
+ :FLAT | :PERCENTAGE | :SUBSCRIPTION | :TIERED | :CUSTOM
1468
+
1469
+ module RateType
1470
+ extend MetronomeSDK::Internal::Type::Enum
1471
+
1472
+ FLAT: :FLAT
1473
+ PERCENTAGE: :PERCENTAGE
1474
+ SUBSCRIPTION: :SUBSCRIPTION
1475
+ TIERED: :TIERED
1476
+ CUSTOM: :CUSTOM
1477
+
1478
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Override::OverwriteRate::rate_type]
1479
+ end
1480
+ end
1481
+
1404
1482
  type product = { id: String, name: String }
1405
1483
 
1406
1484
  class Product < MetronomeSDK::Internal::Type::BaseModel
@@ -2141,6 +2219,155 @@ module MetronomeSDK
2141
2219
  def to_hash: -> { commits: bool, credits: bool }
2142
2220
  end
2143
2221
 
2222
+ type hierarchy_configuration =
2223
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration
2224
+ | MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2
2225
+
2226
+ module HierarchyConfiguration
2227
+ extend MetronomeSDK::Internal::Type::Union
2228
+
2229
+ type parent_hierarchy_configuration =
2230
+ {
2231
+ children: ::Array[MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child],
2232
+ parent_behavior: MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
2233
+ }
2234
+
2235
+ class ParentHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
2236
+ attr_accessor children: ::Array[MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child]
2237
+
2238
+ attr_reader parent_behavior: MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior?
2239
+
2240
+ def parent_behavior=: (
2241
+ MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
2242
+ ) -> MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
2243
+
2244
+ def initialize: (
2245
+ children: ::Array[MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child],
2246
+ ?parent_behavior: MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
2247
+ ) -> void
2248
+
2249
+ def to_hash: -> {
2250
+ children: ::Array[MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::Child],
2251
+ parent_behavior: MetronomeSDK::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
2252
+ }
2253
+
2254
+ type child = { contract_id: String, customer_id: String }
2255
+
2256
+ class Child < MetronomeSDK::Internal::Type::BaseModel
2257
+ attr_accessor contract_id: String
2258
+
2259
+ attr_accessor customer_id: String
2260
+
2261
+ def initialize: (contract_id: String, customer_id: String) -> void
2262
+
2263
+ def to_hash: -> { contract_id: String, customer_id: String }
2264
+ end
2265
+
2266
+ type parent_behavior =
2267
+ {
2268
+ invoice_consolidation_type: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type
2269
+ }
2270
+
2271
+ class ParentBehavior < MetronomeSDK::Internal::Type::BaseModel
2272
+ attr_reader invoice_consolidation_type: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type?
2273
+
2274
+ def invoice_consolidation_type=: (
2275
+ MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type
2276
+ ) -> MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type
2277
+
2278
+ def initialize: (
2279
+ ?invoice_consolidation_type: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type
2280
+ ) -> void
2281
+
2282
+ def to_hash: -> {
2283
+ invoice_consolidation_type: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type
2284
+ }
2285
+
2286
+ type invoice_consolidation_type = :CONCATENATE | :NONE
2287
+
2288
+ module InvoiceConsolidationType
2289
+ extend MetronomeSDK::Internal::Type::Enum
2290
+
2291
+ CONCATENATE: :CONCATENATE
2292
+ NONE: :NONE
2293
+
2294
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type]
2295
+ end
2296
+ end
2297
+ end
2298
+
2299
+ type child_hierarchy_configuration_v2 =
2300
+ {
2301
+ parent: MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent,
2302
+ payer: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::payer,
2303
+ usage_statement_behavior: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::usage_statement_behavior
2304
+ }
2305
+
2306
+ class ChildHierarchyConfigurationV2 < MetronomeSDK::Internal::Type::BaseModel
2307
+ attr_accessor parent: MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent
2308
+
2309
+ attr_reader payer: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::payer?
2310
+
2311
+ def payer=: (
2312
+ MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::payer
2313
+ ) -> MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::payer
2314
+
2315
+ attr_reader usage_statement_behavior: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::usage_statement_behavior?
2316
+
2317
+ def usage_statement_behavior=: (
2318
+ MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::usage_statement_behavior
2319
+ ) -> MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::usage_statement_behavior
2320
+
2321
+ def initialize: (
2322
+ parent: MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent,
2323
+ ?payer: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::payer,
2324
+ ?usage_statement_behavior: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::usage_statement_behavior
2325
+ ) -> void
2326
+
2327
+ def to_hash: -> {
2328
+ parent: MetronomeSDK::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::Parent,
2329
+ payer: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::payer,
2330
+ usage_statement_behavior: MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::usage_statement_behavior
2331
+ }
2332
+
2333
+ type parent = { contract_id: String, customer_id: String }
2334
+
2335
+ class Parent < MetronomeSDK::Internal::Type::BaseModel
2336
+ attr_accessor contract_id: String
2337
+
2338
+ attr_accessor customer_id: String
2339
+
2340
+ def initialize: (contract_id: String, customer_id: String) -> void
2341
+
2342
+ def to_hash: -> { contract_id: String, customer_id: String }
2343
+ end
2344
+
2345
+ type payer = :SELF | :PARENT
2346
+
2347
+ module Payer
2348
+ extend MetronomeSDK::Internal::Type::Enum
2349
+
2350
+ SELF: :SELF
2351
+ PARENT: :PARENT
2352
+
2353
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::payer]
2354
+ end
2355
+
2356
+ type usage_statement_behavior = :CONSOLIDATE | :SEPARATE
2357
+
2358
+ module UsageStatementBehavior
2359
+ extend MetronomeSDK::Internal::Type::Enum
2360
+
2361
+ CONSOLIDATE: :CONSOLIDATE
2362
+ SEPARATE: :SEPARATE
2363
+
2364
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::HierarchyConfiguration::ChildHierarchyConfigurationV2::usage_statement_behavior]
2365
+ end
2366
+ end
2367
+
2368
+ def self?.variants: -> ::Array[MetronomeSDK::Models::ContractV2::hierarchy_configuration]
2369
+ end
2370
+
2144
2371
  type multiplier_override_prioritization = :LOWEST_MULTIPLIER | :EXPLICIT
2145
2372
 
2146
2373
  module MultiplierOverridePrioritization
@@ -9,18 +9,27 @@ module MetronomeSDK
9
9
 
10
10
  type parent_hierarchy_configuration =
11
11
  {
12
- children: ::Array[MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::Child]
12
+ children: ::Array[MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::Child],
13
+ parent_behavior: MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
13
14
  }
14
15
 
15
16
  class ParentHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
16
17
  attr_accessor children: ::Array[MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::Child]
17
18
 
19
+ attr_reader parent_behavior: MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior?
20
+
21
+ def parent_behavior=: (
22
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
23
+ ) -> MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
24
+
18
25
  def initialize: (
19
- children: ::Array[MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::Child]
26
+ children: ::Array[MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::Child],
27
+ ?parent_behavior: MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
20
28
  ) -> void
21
29
 
22
30
  def to_hash: -> {
23
- children: ::Array[MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::Child]
31
+ children: ::Array[MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::Child],
32
+ parent_behavior: MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
24
33
  }
25
34
 
26
35
  type child = { contract_id: String, customer_id: String }
@@ -34,22 +43,72 @@ module MetronomeSDK
34
43
 
35
44
  def to_hash: -> { contract_id: String, customer_id: String }
36
45
  end
46
+
47
+ type parent_behavior =
48
+ {
49
+ invoice_consolidation_type: MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type
50
+ }
51
+
52
+ class ParentBehavior < MetronomeSDK::Internal::Type::BaseModel
53
+ attr_reader invoice_consolidation_type: MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type?
54
+
55
+ def invoice_consolidation_type=: (
56
+ MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type
57
+ ) -> MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type
58
+
59
+ def initialize: (
60
+ ?invoice_consolidation_type: MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type
61
+ ) -> void
62
+
63
+ def to_hash: -> {
64
+ invoice_consolidation_type: MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type
65
+ }
66
+
67
+ type invoice_consolidation_type = :CONCATENATE | :NONE
68
+
69
+ module InvoiceConsolidationType
70
+ extend MetronomeSDK::Internal::Type::Enum
71
+
72
+ CONCATENATE: :CONCATENATE
73
+ NONE: :NONE
74
+
75
+ def self?.values: -> ::Array[MetronomeSDK::Models::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::invoice_consolidation_type]
76
+ end
77
+ end
37
78
  end
38
79
 
39
80
  type child_hierarchy_configuration =
40
81
  {
41
- parent: MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent
82
+ parent: MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent,
83
+ payer: MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::payer,
84
+ usage_statement_behavior: MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::usage_statement_behavior
42
85
  }
43
86
 
44
87
  class ChildHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
45
88
  attr_accessor parent: MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent
46
89
 
90
+ attr_reader payer: MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::payer?
91
+
92
+ def payer=: (
93
+ MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::payer
94
+ ) -> MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::payer
95
+
96
+ attr_reader usage_statement_behavior: MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::usage_statement_behavior?
97
+
98
+ def usage_statement_behavior=: (
99
+ MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::usage_statement_behavior
100
+ ) -> MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::usage_statement_behavior
101
+
47
102
  def initialize: (
48
- parent: MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent
103
+ parent: MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent,
104
+ ?payer: MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::payer,
105
+ ?usage_statement_behavior: MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::usage_statement_behavior
49
106
  ) -> void
50
107
 
51
108
  def to_hash: -> {
52
- parent: MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent
109
+ parent: MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent,
110
+ payer: MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::payer,
111
+ usage_statement_behavior: MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::usage_statement_behavior
53
112
  }
54
113
 
55
114
  type parent = { contract_id: String, customer_id: String }
@@ -63,6 +122,28 @@ module MetronomeSDK
63
122
 
64
123
  def to_hash: -> { contract_id: String, customer_id: String }
65
124
  end
125
+
126
+ type payer = :SELF | :PARENT
127
+
128
+ module Payer
129
+ extend MetronomeSDK::Internal::Type::Enum
130
+
131
+ SELF: :SELF
132
+ PARENT: :PARENT
133
+
134
+ def self?.values: -> ::Array[MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::payer]
135
+ end
136
+
137
+ type usage_statement_behavior = :CONSOLIDATE | :SEPARATE
138
+
139
+ module UsageStatementBehavior
140
+ extend MetronomeSDK::Internal::Type::Enum
141
+
142
+ CONSOLIDATE: :CONSOLIDATE
143
+ SEPARATE: :SEPARATE
144
+
145
+ def self?.values: -> ::Array[MetronomeSDK::Models::HierarchyConfiguration::ChildHierarchyConfiguration::usage_statement_behavior]
146
+ end
66
147
  end
67
148
 
68
149
  def self?.variants: -> ::Array[MetronomeSDK::Models::hierarchy_configuration]
@@ -106,7 +106,7 @@ module MetronomeSDK
106
106
  end
107
107
  end
108
108
 
109
- type tax_type = :NONE | :STRIPE | :ANROK | :PRECALCULATED
109
+ type tax_type = :NONE | :STRIPE | :ANROK | :AVALARA | :PRECALCULATED
110
110
 
111
111
  module TaxType
112
112
  extend MetronomeSDK::Internal::Type::Enum
@@ -114,6 +114,7 @@ module MetronomeSDK
114
114
  NONE: :NONE
115
115
  STRIPE: :STRIPE
116
116
  ANROK: :ANROK
117
+ AVALARA: :AVALARA
117
118
  PRECALCULATED: :PRECALCULATED
118
119
 
119
120
  def self?.values: -> ::Array[MetronomeSDK::Models::PaymentGateConfig::tax_type]
@@ -106,7 +106,7 @@ module MetronomeSDK
106
106
  end
107
107
  end
108
108
 
109
- type tax_type = :NONE | :STRIPE | :ANROK | :PRECALCULATED
109
+ type tax_type = :NONE | :STRIPE | :ANROK | :AVALARA | :PRECALCULATED
110
110
 
111
111
  module TaxType
112
112
  extend MetronomeSDK::Internal::Type::Enum
@@ -114,6 +114,7 @@ module MetronomeSDK
114
114
  NONE: :NONE
115
115
  STRIPE: :STRIPE
116
116
  ANROK: :ANROK
117
+ AVALARA: :AVALARA
117
118
  PRECALCULATED: :PRECALCULATED
118
119
 
119
120
  def self?.values: -> ::Array[MetronomeSDK::Models::PaymentGateConfigV2::tax_type]