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
@@ -34,17 +34,37 @@ module MetronomeSDK
34
34
  end
35
35
  attr_accessor :children
36
36
 
37
+ sig do
38
+ returns(
39
+ T.nilable(
40
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
41
+ )
42
+ )
43
+ end
44
+ attr_reader :parent_behavior
45
+
46
+ sig do
47
+ params(
48
+ parent_behavior:
49
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::OrHash
50
+ ).void
51
+ end
52
+ attr_writer :parent_behavior
53
+
37
54
  sig do
38
55
  params(
39
56
  children:
40
57
  T::Array[
41
58
  MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::Child::OrHash
42
- ]
59
+ ],
60
+ parent_behavior:
61
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::OrHash
43
62
  ).returns(T.attached_class)
44
63
  end
45
64
  def self.new(
46
65
  # List of contracts that belong to this parent.
47
- children:
66
+ children:,
67
+ parent_behavior: nil
48
68
  )
49
69
  end
50
70
 
@@ -54,7 +74,9 @@ module MetronomeSDK
54
74
  children:
55
75
  T::Array[
56
76
  MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::Child
57
- ]
77
+ ],
78
+ parent_behavior:
79
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior
58
80
  }
59
81
  )
60
82
  end
@@ -88,6 +110,101 @@ module MetronomeSDK
88
110
  def to_hash
89
111
  end
90
112
  end
113
+
114
+ class ParentBehavior < MetronomeSDK::Internal::Type::BaseModel
115
+ OrHash =
116
+ T.type_alias do
117
+ T.any(
118
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior,
119
+ MetronomeSDK::Internal::AnyHash
120
+ )
121
+ end
122
+
123
+ # Indicates the desired behavior of consolidated invoices generated by the parent
124
+ # in a customer hierarchy **CONCATENATE**: Statements on the invoices of child
125
+ # customers will be appended to the consolidated invoice **NONE**: Do not generate
126
+ # consolidated invoices
127
+ sig do
128
+ returns(
129
+ T.nilable(
130
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
131
+ )
132
+ )
133
+ end
134
+ attr_reader :invoice_consolidation_type
135
+
136
+ sig do
137
+ params(
138
+ invoice_consolidation_type:
139
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::OrSymbol
140
+ ).void
141
+ end
142
+ attr_writer :invoice_consolidation_type
143
+
144
+ sig do
145
+ params(
146
+ invoice_consolidation_type:
147
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::OrSymbol
148
+ ).returns(T.attached_class)
149
+ end
150
+ def self.new(
151
+ # Indicates the desired behavior of consolidated invoices generated by the parent
152
+ # in a customer hierarchy **CONCATENATE**: Statements on the invoices of child
153
+ # customers will be appended to the consolidated invoice **NONE**: Do not generate
154
+ # consolidated invoices
155
+ invoice_consolidation_type: nil
156
+ )
157
+ end
158
+
159
+ sig do
160
+ override.returns(
161
+ {
162
+ invoice_consolidation_type:
163
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
164
+ }
165
+ )
166
+ end
167
+ def to_hash
168
+ end
169
+
170
+ # Indicates the desired behavior of consolidated invoices generated by the parent
171
+ # in a customer hierarchy **CONCATENATE**: Statements on the invoices of child
172
+ # customers will be appended to the consolidated invoice **NONE**: Do not generate
173
+ # consolidated invoices
174
+ module InvoiceConsolidationType
175
+ extend MetronomeSDK::Internal::Type::Enum
176
+
177
+ TaggedSymbol =
178
+ T.type_alias do
179
+ T.all(
180
+ Symbol,
181
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType
182
+ )
183
+ end
184
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
185
+
186
+ CONCATENATE =
187
+ T.let(
188
+ :CONCATENATE,
189
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
190
+ )
191
+ NONE =
192
+ T.let(
193
+ :NONE,
194
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
195
+ )
196
+
197
+ sig do
198
+ override.returns(
199
+ T::Array[
200
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
201
+ ]
202
+ )
203
+ end
204
+ def self.values
205
+ end
206
+ end
207
+ end
91
208
  end
92
209
 
93
210
  class ChildHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
@@ -115,15 +232,65 @@ module MetronomeSDK
115
232
  end
116
233
  attr_writer :parent
117
234
 
235
+ # Indicates whether the parent should pay for the child's invoice charges
236
+ sig do
237
+ returns(
238
+ T.nilable(
239
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer::TaggedSymbol
240
+ )
241
+ )
242
+ end
243
+ attr_reader :payer
244
+
245
+ sig do
246
+ params(
247
+ payer:
248
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer::OrSymbol
249
+ ).void
250
+ end
251
+ attr_writer :payer
252
+
253
+ # Indicates the behavior of the child's invoice statements on the parent's
254
+ # invoices **CONSOLIDATE**: Child's invoice statements will be added to parent's
255
+ # consolidated invoices **SEPARATE**: Child's invoice statements will appear not
256
+ # appear on parent's consolidated invoices
257
+ sig do
258
+ returns(
259
+ T.nilable(
260
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior::TaggedSymbol
261
+ )
262
+ )
263
+ end
264
+ attr_reader :usage_statement_behavior
265
+
266
+ sig do
267
+ params(
268
+ usage_statement_behavior:
269
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior::OrSymbol
270
+ ).void
271
+ end
272
+ attr_writer :usage_statement_behavior
273
+
118
274
  sig do
119
275
  params(
120
276
  parent:
121
- MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent::OrHash
277
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent::OrHash,
278
+ payer:
279
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer::OrSymbol,
280
+ usage_statement_behavior:
281
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior::OrSymbol
122
282
  ).returns(T.attached_class)
123
283
  end
124
284
  def self.new(
125
285
  # The single parent contract/customer for this child.
126
- parent:
286
+ parent:,
287
+ # Indicates whether the parent should pay for the child's invoice charges
288
+ payer: nil,
289
+ # Indicates the behavior of the child's invoice statements on the parent's
290
+ # invoices **CONSOLIDATE**: Child's invoice statements will be added to parent's
291
+ # consolidated invoices **SEPARATE**: Child's invoice statements will appear not
292
+ # appear on parent's consolidated invoices
293
+ usage_statement_behavior: nil
127
294
  )
128
295
  end
129
296
 
@@ -131,7 +298,11 @@ module MetronomeSDK
131
298
  override.returns(
132
299
  {
133
300
  parent:
134
- MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent
301
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent,
302
+ payer:
303
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer::TaggedSymbol,
304
+ usage_statement_behavior:
305
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior::TaggedSymbol
135
306
  }
136
307
  )
137
308
  end
@@ -166,6 +337,79 @@ module MetronomeSDK
166
337
  def to_hash
167
338
  end
168
339
  end
340
+
341
+ # Indicates whether the parent should pay for the child's invoice charges
342
+ module Payer
343
+ extend MetronomeSDK::Internal::Type::Enum
344
+
345
+ TaggedSymbol =
346
+ T.type_alias do
347
+ T.all(
348
+ Symbol,
349
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer
350
+ )
351
+ end
352
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
353
+
354
+ SELF =
355
+ T.let(
356
+ :SELF,
357
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer::TaggedSymbol
358
+ )
359
+ PARENT =
360
+ T.let(
361
+ :PARENT,
362
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer::TaggedSymbol
363
+ )
364
+
365
+ sig do
366
+ override.returns(
367
+ T::Array[
368
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer::TaggedSymbol
369
+ ]
370
+ )
371
+ end
372
+ def self.values
373
+ end
374
+ end
375
+
376
+ # Indicates the behavior of the child's invoice statements on the parent's
377
+ # invoices **CONSOLIDATE**: Child's invoice statements will be added to parent's
378
+ # consolidated invoices **SEPARATE**: Child's invoice statements will appear not
379
+ # appear on parent's consolidated invoices
380
+ module UsageStatementBehavior
381
+ extend MetronomeSDK::Internal::Type::Enum
382
+
383
+ TaggedSymbol =
384
+ T.type_alias do
385
+ T.all(
386
+ Symbol,
387
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior
388
+ )
389
+ end
390
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
391
+
392
+ CONSOLIDATE =
393
+ T.let(
394
+ :CONSOLIDATE,
395
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior::TaggedSymbol
396
+ )
397
+ SEPARATE =
398
+ T.let(
399
+ :SEPARATE,
400
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior::TaggedSymbol
401
+ )
402
+
403
+ sig do
404
+ override.returns(
405
+ T::Array[
406
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior::TaggedSymbol
407
+ ]
408
+ )
409
+ end
410
+ def self.values
411
+ end
412
+ end
169
413
  end
170
414
 
171
415
  sig do
@@ -293,6 +293,11 @@ module MetronomeSDK
293
293
  T.let(:STRIPE, MetronomeSDK::PaymentGateConfig::TaxType::TaggedSymbol)
294
294
  ANROK =
295
295
  T.let(:ANROK, MetronomeSDK::PaymentGateConfig::TaxType::TaggedSymbol)
296
+ AVALARA =
297
+ T.let(
298
+ :AVALARA,
299
+ MetronomeSDK::PaymentGateConfig::TaxType::TaggedSymbol
300
+ )
296
301
  PRECALCULATED =
297
302
  T.let(
298
303
  :PRECALCULATED,
@@ -302,6 +302,11 @@ module MetronomeSDK
302
302
  :ANROK,
303
303
  MetronomeSDK::PaymentGateConfigV2::TaxType::TaggedSymbol
304
304
  )
305
+ AVALARA =
306
+ T.let(
307
+ :AVALARA,
308
+ MetronomeSDK::PaymentGateConfigV2::TaxType::TaggedSymbol
309
+ )
305
310
  PRECALCULATED =
306
311
  T.let(
307
312
  :PRECALCULATED,
@@ -8,6 +8,17 @@ module MetronomeSDK
8
8
  T.any(MetronomeSDK::Subscription, MetronomeSDK::Internal::AnyHash)
9
9
  end
10
10
 
11
+ # Previous, current, and next billing periods for the subscription.
12
+ sig { returns(MetronomeSDK::Subscription::BillingPeriods) }
13
+ attr_reader :billing_periods
14
+
15
+ sig do
16
+ params(
17
+ billing_periods: MetronomeSDK::Subscription::BillingPeriods::OrHash
18
+ ).void
19
+ end
20
+ attr_writer :billing_periods
21
+
11
22
  sig do
12
23
  returns(MetronomeSDK::Subscription::CollectionSchedule::TaggedSymbol)
13
24
  end
@@ -90,6 +101,7 @@ module MetronomeSDK
90
101
 
91
102
  sig do
92
103
  params(
104
+ billing_periods: MetronomeSDK::Subscription::BillingPeriods::OrHash,
93
105
  collection_schedule:
94
106
  MetronomeSDK::Subscription::CollectionSchedule::OrSymbol,
95
107
  proration: MetronomeSDK::Subscription::Proration::OrHash,
@@ -109,6 +121,8 @@ module MetronomeSDK
109
121
  ).returns(T.attached_class)
110
122
  end
111
123
  def self.new(
124
+ # Previous, current, and next billing periods for the subscription.
125
+ billing_periods:,
112
126
  collection_schedule:,
113
127
  proration:,
114
128
  # Determines how the subscription's quantity is controlled. Defaults to
@@ -134,6 +148,7 @@ module MetronomeSDK
134
148
  sig do
135
149
  override.returns(
136
150
  {
151
+ billing_periods: MetronomeSDK::Subscription::BillingPeriods,
137
152
  collection_schedule:
138
153
  MetronomeSDK::Subscription::CollectionSchedule::TaggedSymbol,
139
154
  proration: MetronomeSDK::Subscription::Proration,
@@ -155,6 +170,166 @@ module MetronomeSDK
155
170
  def to_hash
156
171
  end
157
172
 
173
+ class BillingPeriods < MetronomeSDK::Internal::Type::BaseModel
174
+ OrHash =
175
+ T.type_alias do
176
+ T.any(
177
+ MetronomeSDK::Subscription::BillingPeriods,
178
+ MetronomeSDK::Internal::AnyHash
179
+ )
180
+ end
181
+
182
+ sig do
183
+ returns(
184
+ T.nilable(MetronomeSDK::Subscription::BillingPeriods::Current)
185
+ )
186
+ end
187
+ attr_reader :current
188
+
189
+ sig do
190
+ params(
191
+ current: MetronomeSDK::Subscription::BillingPeriods::Current::OrHash
192
+ ).void
193
+ end
194
+ attr_writer :current
195
+
196
+ sig do
197
+ returns(T.nilable(MetronomeSDK::Subscription::BillingPeriods::Next))
198
+ end
199
+ attr_reader :next_
200
+
201
+ sig do
202
+ params(
203
+ next_: MetronomeSDK::Subscription::BillingPeriods::Next::OrHash
204
+ ).void
205
+ end
206
+ attr_writer :next_
207
+
208
+ sig do
209
+ returns(
210
+ T.nilable(MetronomeSDK::Subscription::BillingPeriods::Previous)
211
+ )
212
+ end
213
+ attr_reader :previous
214
+
215
+ sig do
216
+ params(
217
+ previous:
218
+ MetronomeSDK::Subscription::BillingPeriods::Previous::OrHash
219
+ ).void
220
+ end
221
+ attr_writer :previous
222
+
223
+ # Previous, current, and next billing periods for the subscription.
224
+ sig do
225
+ params(
226
+ current:
227
+ MetronomeSDK::Subscription::BillingPeriods::Current::OrHash,
228
+ next_: MetronomeSDK::Subscription::BillingPeriods::Next::OrHash,
229
+ previous:
230
+ MetronomeSDK::Subscription::BillingPeriods::Previous::OrHash
231
+ ).returns(T.attached_class)
232
+ end
233
+ def self.new(current: nil, next_: nil, previous: nil)
234
+ end
235
+
236
+ sig do
237
+ override.returns(
238
+ {
239
+ current: MetronomeSDK::Subscription::BillingPeriods::Current,
240
+ next_: MetronomeSDK::Subscription::BillingPeriods::Next,
241
+ previous: MetronomeSDK::Subscription::BillingPeriods::Previous
242
+ }
243
+ )
244
+ end
245
+ def to_hash
246
+ end
247
+
248
+ class Current < MetronomeSDK::Internal::Type::BaseModel
249
+ OrHash =
250
+ T.type_alias do
251
+ T.any(
252
+ MetronomeSDK::Subscription::BillingPeriods::Current,
253
+ MetronomeSDK::Internal::AnyHash
254
+ )
255
+ end
256
+
257
+ sig { returns(Time) }
258
+ attr_accessor :ending_before
259
+
260
+ sig { returns(Time) }
261
+ attr_accessor :starting_at
262
+
263
+ sig do
264
+ params(ending_before: Time, starting_at: Time).returns(
265
+ T.attached_class
266
+ )
267
+ end
268
+ def self.new(ending_before:, starting_at:)
269
+ end
270
+
271
+ sig { override.returns({ ending_before: Time, starting_at: Time }) }
272
+ def to_hash
273
+ end
274
+ end
275
+
276
+ class Next < MetronomeSDK::Internal::Type::BaseModel
277
+ OrHash =
278
+ T.type_alias do
279
+ T.any(
280
+ MetronomeSDK::Subscription::BillingPeriods::Next,
281
+ MetronomeSDK::Internal::AnyHash
282
+ )
283
+ end
284
+
285
+ sig { returns(Time) }
286
+ attr_accessor :ending_before
287
+
288
+ sig { returns(Time) }
289
+ attr_accessor :starting_at
290
+
291
+ sig do
292
+ params(ending_before: Time, starting_at: Time).returns(
293
+ T.attached_class
294
+ )
295
+ end
296
+ def self.new(ending_before:, starting_at:)
297
+ end
298
+
299
+ sig { override.returns({ ending_before: Time, starting_at: Time }) }
300
+ def to_hash
301
+ end
302
+ end
303
+
304
+ class Previous < MetronomeSDK::Internal::Type::BaseModel
305
+ OrHash =
306
+ T.type_alias do
307
+ T.any(
308
+ MetronomeSDK::Subscription::BillingPeriods::Previous,
309
+ MetronomeSDK::Internal::AnyHash
310
+ )
311
+ end
312
+
313
+ sig { returns(Time) }
314
+ attr_accessor :ending_before
315
+
316
+ sig { returns(Time) }
317
+ attr_accessor :starting_at
318
+
319
+ sig do
320
+ params(ending_before: Time, starting_at: Time).returns(
321
+ T.attached_class
322
+ )
323
+ end
324
+ def self.new(ending_before:, starting_at:)
325
+ end
326
+
327
+ sig { override.returns({ ending_before: Time, starting_at: Time }) }
328
+ def to_hash
329
+ end
330
+ end
331
+ end
332
+
158
333
  module CollectionSchedule
159
334
  extend MetronomeSDK::Internal::Type::Enum
160
335
 
@@ -15,11 +15,12 @@ module MetronomeSDK
15
15
  )
16
16
  end
17
17
 
18
- # The Metronome ID of the alert
18
+ # The Metronome ID of the threshold notification
19
19
  sig { returns(String) }
20
20
  attr_accessor :id
21
21
 
22
- # If true, resets the uniqueness key on this alert so it can be re-used
22
+ # If true, resets the uniqueness key on this threshold notification so it can be
23
+ # re-used
23
24
  sig { returns(T.nilable(T::Boolean)) }
24
25
  attr_reader :release_uniqueness_key
25
26
 
@@ -34,9 +35,10 @@ module MetronomeSDK
34
35
  ).returns(T.attached_class)
35
36
  end
36
37
  def self.new(
37
- # The Metronome ID of the alert
38
+ # The Metronome ID of the threshold notification
38
39
  id:,
39
- # If true, resets the uniqueness key on this alert so it can be re-used
40
+ # If true, resets the uniqueness key on this threshold notification so it can be
41
+ # re-used
40
42
  release_uniqueness_key: nil,
41
43
  request_options: {}
42
44
  )