metronome-sdk 3.4.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 (95) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +84 -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/internal/util.rb +22 -7
  7. data/lib/metronome_sdk/models/base_threshold_commit.rb +10 -1
  8. data/lib/metronome_sdk/models/contract_v2.rb +443 -15
  9. data/lib/metronome_sdk/models/credit.rb +74 -4
  10. data/lib/metronome_sdk/models/override.rb +9 -8
  11. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +27 -1
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +28 -2
  13. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +26 -1
  14. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +30 -4
  15. data/lib/metronome_sdk/models/update_base_threshold_commit.rb +11 -1
  16. data/lib/metronome_sdk/models/v1/alert_create_params.rb +1 -0
  17. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +2 -189
  18. data/lib/metronome_sdk/models/v1/contract_create_params.rb +3 -191
  19. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +119 -0
  20. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_response.rb +315 -0
  21. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +31 -1
  22. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +31 -1
  23. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +1 -0
  24. data/lib/metronome_sdk/models/v1/customers/invoice.rb +8 -1
  25. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +29 -1
  26. data/lib/metronome_sdk/models/v1/package_create_params.rb +2 -30
  27. data/lib/metronome_sdk/models/v1/package_list_response.rb +28 -9
  28. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +29 -9
  29. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +67 -20
  30. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +496 -15
  31. data/lib/metronome_sdk/resources/v1/contracts/products.rb +6 -2
  32. data/lib/metronome_sdk/resources/v1/contracts.rb +76 -2
  33. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +5 -1
  34. data/lib/metronome_sdk/resources/v1/packages.rb +1 -3
  35. data/lib/metronome_sdk/version.rb +1 -1
  36. data/lib/metronome_sdk.rb +3 -1
  37. data/rbi/metronome_sdk/internal/util.rbi +8 -0
  38. data/rbi/metronome_sdk/models/base_threshold_commit.rbi +24 -5
  39. data/rbi/metronome_sdk/models/contract_v2.rbi +916 -19
  40. data/rbi/metronome_sdk/models/credit.rbi +139 -3
  41. data/rbi/metronome_sdk/models/override.rbi +9 -12
  42. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +54 -3
  43. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +55 -4
  44. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +54 -3
  45. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +58 -9
  46. data/rbi/metronome_sdk/models/update_base_threshold_commit.rbi +22 -4
  47. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +5 -0
  48. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +3 -416
  49. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +5 -418
  50. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +179 -0
  51. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_response.rbi +714 -0
  52. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +74 -0
  53. data/rbi/metronome_sdk/models/v1/contracts/product_update_params.rbi +74 -0
  54. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +5 -0
  55. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +9 -0
  56. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +75 -0
  57. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +3 -76
  58. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +72 -15
  59. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +72 -17
  60. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +133 -28
  61. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1174 -145
  62. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +18 -0
  63. data/rbi/metronome_sdk/resources/v1/contracts.rbi +88 -3
  64. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +7 -0
  65. data/rbi/metronome_sdk/resources/v1/packages.rbi +0 -3
  66. data/sig/metronome_sdk/internal/util.rbs +4 -0
  67. data/sig/metronome_sdk/models/base_threshold_commit.rbs +13 -3
  68. data/sig/metronome_sdk/models/contract_v2.rbs +401 -16
  69. data/sig/metronome_sdk/models/credit.rbs +69 -0
  70. data/sig/metronome_sdk/models/override.rbs +8 -10
  71. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +22 -3
  72. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +23 -4
  73. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +22 -3
  74. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +26 -7
  75. data/sig/metronome_sdk/models/update_base_threshold_commit.rbs +15 -2
  76. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +3 -1
  77. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +3 -147
  78. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +3 -147
  79. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +96 -0
  80. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_response.rbs +299 -0
  81. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +20 -0
  82. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +20 -0
  83. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +3 -1
  84. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +7 -0
  85. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +29 -1
  86. data/sig/metronome_sdk/models/v1/package_create_params.rbs +3 -30
  87. data/sig/metronome_sdk/models/v1/package_list_response.rbs +33 -15
  88. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +33 -15
  89. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +33 -10
  90. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +409 -19
  91. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +2 -0
  92. data/sig/metronome_sdk/resources/v1/contracts.rbs +15 -0
  93. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +2 -0
  94. data/sig/metronome_sdk/resources/v1/packages.rbs +0 -1
  95. metadata +8 -2
@@ -0,0 +1,714 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ class ContractListSeatBalancesResponse < MetronomeSDK::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse,
11
+ MetronomeSDK::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig do
16
+ returns(
17
+ T::Array[
18
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data
19
+ ]
20
+ )
21
+ end
22
+ attr_accessor :data
23
+
24
+ sig do
25
+ returns(
26
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Pagination
27
+ )
28
+ end
29
+ attr_reader :pagination
30
+
31
+ sig do
32
+ params(
33
+ pagination:
34
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Pagination::OrHash
35
+ ).void
36
+ end
37
+ attr_writer :pagination
38
+
39
+ sig do
40
+ params(
41
+ data:
42
+ T::Array[
43
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::OrHash
44
+ ],
45
+ pagination:
46
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Pagination::OrHash
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(data:, pagination:)
50
+ end
51
+
52
+ sig do
53
+ override.returns(
54
+ {
55
+ data:
56
+ T::Array[
57
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data
58
+ ],
59
+ pagination:
60
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Pagination
61
+ }
62
+ )
63
+ end
64
+ def to_hash
65
+ end
66
+
67
+ class Data < MetronomeSDK::Internal::Type::BaseModel
68
+ OrHash =
69
+ T.type_alias do
70
+ T.any(
71
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data,
72
+ MetronomeSDK::Internal::AnyHash
73
+ )
74
+ end
75
+
76
+ sig do
77
+ returns(
78
+ T::Array[
79
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Balance
80
+ ]
81
+ )
82
+ end
83
+ attr_accessor :balances
84
+
85
+ # The unique identifier for the seat
86
+ sig { returns(String) }
87
+ attr_accessor :seat_id
88
+
89
+ # Array of commits applicable to this seat with their balances
90
+ sig do
91
+ returns(
92
+ T.nilable(
93
+ T::Array[
94
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit
95
+ ]
96
+ )
97
+ )
98
+ end
99
+ attr_accessor :commits
100
+
101
+ # Array of credits applicable to this seat with their balances
102
+ sig do
103
+ returns(
104
+ T.nilable(
105
+ T::Array[
106
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit
107
+ ]
108
+ )
109
+ )
110
+ end
111
+ attr_reader :credits
112
+
113
+ sig do
114
+ params(
115
+ credits:
116
+ T::Array[
117
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::OrHash
118
+ ]
119
+ ).void
120
+ end
121
+ attr_writer :credits
122
+
123
+ sig do
124
+ params(
125
+ balances:
126
+ T::Array[
127
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Balance::OrHash
128
+ ],
129
+ seat_id: String,
130
+ commits:
131
+ T.nilable(
132
+ T::Array[
133
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::OrHash
134
+ ]
135
+ ),
136
+ credits:
137
+ T::Array[
138
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::OrHash
139
+ ]
140
+ ).returns(T.attached_class)
141
+ end
142
+ def self.new(
143
+ balances:,
144
+ # The unique identifier for the seat
145
+ seat_id:,
146
+ # Array of commits applicable to this seat with their balances
147
+ commits: nil,
148
+ # Array of credits applicable to this seat with their balances
149
+ credits: nil
150
+ )
151
+ end
152
+
153
+ sig do
154
+ override.returns(
155
+ {
156
+ balances:
157
+ T::Array[
158
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Balance
159
+ ],
160
+ seat_id: String,
161
+ commits:
162
+ T.nilable(
163
+ T::Array[
164
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit
165
+ ]
166
+ ),
167
+ credits:
168
+ T::Array[
169
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit
170
+ ]
171
+ }
172
+ )
173
+ end
174
+ def to_hash
175
+ end
176
+
177
+ class Balance < MetronomeSDK::Internal::Type::BaseModel
178
+ OrHash =
179
+ T.type_alias do
180
+ T.any(
181
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Balance,
182
+ MetronomeSDK::Internal::AnyHash
183
+ )
184
+ end
185
+
186
+ # The total balance across all commits and credits for this seat, of this credit
187
+ # type.
188
+ sig { returns(Float) }
189
+ attr_accessor :balance
190
+
191
+ sig { returns(String) }
192
+ attr_accessor :credit_type_id
193
+
194
+ # The total initial balances of all commits and credits for this seat, of this
195
+ # credit type.
196
+ sig { returns(Float) }
197
+ attr_accessor :starting_balance
198
+
199
+ sig do
200
+ params(
201
+ balance: Float,
202
+ credit_type_id: String,
203
+ starting_balance: Float
204
+ ).returns(T.attached_class)
205
+ end
206
+ def self.new(
207
+ # The total balance across all commits and credits for this seat, of this credit
208
+ # type.
209
+ balance:,
210
+ credit_type_id:,
211
+ # The total initial balances of all commits and credits for this seat, of this
212
+ # credit type.
213
+ starting_balance:
214
+ )
215
+ end
216
+
217
+ sig do
218
+ override.returns(
219
+ {
220
+ balance: Float,
221
+ credit_type_id: String,
222
+ starting_balance: Float
223
+ }
224
+ )
225
+ end
226
+ def to_hash
227
+ end
228
+ end
229
+
230
+ class Commit < MetronomeSDK::Internal::Type::BaseModel
231
+ OrHash =
232
+ T.type_alias do
233
+ T.any(
234
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit,
235
+ MetronomeSDK::Internal::AnyHash
236
+ )
237
+ end
238
+
239
+ # The commit or credit ID
240
+ sig { returns(String) }
241
+ attr_accessor :id
242
+
243
+ # The current balance for this commit for this specific seat
244
+ sig { returns(Float) }
245
+ attr_accessor :balance
246
+
247
+ # The datetime when the commit becomes active
248
+ sig { returns(Time) }
249
+ attr_accessor :start_date
250
+
251
+ # The datetime when the commit expires
252
+ sig { returns(T.nilable(Time)) }
253
+ attr_accessor :end_date
254
+
255
+ # Transaction history for this commit for this seat (only included if
256
+ # include_ledgers=true)
257
+ sig do
258
+ returns(
259
+ T.nilable(
260
+ T::Array[
261
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry
262
+ ]
263
+ )
264
+ )
265
+ end
266
+ attr_reader :ledger_entries
267
+
268
+ sig do
269
+ params(
270
+ ledger_entries:
271
+ T::Array[
272
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry::OrHash
273
+ ]
274
+ ).void
275
+ end
276
+ attr_writer :ledger_entries
277
+
278
+ sig do
279
+ params(
280
+ id: String,
281
+ balance: Float,
282
+ start_date: Time,
283
+ end_date: T.nilable(Time),
284
+ ledger_entries:
285
+ T::Array[
286
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry::OrHash
287
+ ]
288
+ ).returns(T.attached_class)
289
+ end
290
+ def self.new(
291
+ # The commit or credit ID
292
+ id:,
293
+ # The current balance for this commit for this specific seat
294
+ balance:,
295
+ # The datetime when the commit becomes active
296
+ start_date:,
297
+ # The datetime when the commit expires
298
+ end_date: nil,
299
+ # Transaction history for this commit for this seat (only included if
300
+ # include_ledgers=true)
301
+ ledger_entries: nil
302
+ )
303
+ end
304
+
305
+ sig do
306
+ override.returns(
307
+ {
308
+ id: String,
309
+ balance: Float,
310
+ start_date: Time,
311
+ end_date: T.nilable(Time),
312
+ ledger_entries:
313
+ T::Array[
314
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry
315
+ ]
316
+ }
317
+ )
318
+ end
319
+ def to_hash
320
+ end
321
+
322
+ class LedgerEntry < MetronomeSDK::Internal::Type::BaseModel
323
+ OrHash =
324
+ T.type_alias do
325
+ T.any(
326
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry,
327
+ MetronomeSDK::Internal::AnyHash
328
+ )
329
+ end
330
+
331
+ # Amount of the ledger entry
332
+ sig { returns(Float) }
333
+ attr_accessor :amount
334
+
335
+ # The datetime when the ledger is created
336
+ sig { returns(Time) }
337
+ attr_accessor :timestamp
338
+
339
+ # Commit ledger type
340
+ sig do
341
+ returns(
342
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry::Type::TaggedSymbol
343
+ )
344
+ end
345
+ attr_accessor :type
346
+
347
+ sig do
348
+ params(
349
+ amount: Float,
350
+ timestamp: Time,
351
+ type:
352
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry::Type::OrSymbol
353
+ ).returns(T.attached_class)
354
+ end
355
+ def self.new(
356
+ # Amount of the ledger entry
357
+ amount:,
358
+ # The datetime when the ledger is created
359
+ timestamp:,
360
+ # Commit ledger type
361
+ type:
362
+ )
363
+ end
364
+
365
+ sig do
366
+ override.returns(
367
+ {
368
+ amount: Float,
369
+ timestamp: Time,
370
+ type:
371
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry::Type::TaggedSymbol
372
+ }
373
+ )
374
+ end
375
+ def to_hash
376
+ end
377
+
378
+ # Commit ledger type
379
+ module Type
380
+ extend MetronomeSDK::Internal::Type::Enum
381
+
382
+ TaggedSymbol =
383
+ T.type_alias do
384
+ T.all(
385
+ Symbol,
386
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry::Type
387
+ )
388
+ end
389
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
390
+
391
+ PREPAID_COMMIT_SEGMENT_START =
392
+ T.let(
393
+ :PREPAID_COMMIT_SEGMENT_START,
394
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry::Type::TaggedSymbol
395
+ )
396
+ PREPAID_COMMIT_AUTOMATED_INVOICE_DEDUCTION =
397
+ T.let(
398
+ :PREPAID_COMMIT_AUTOMATED_INVOICE_DEDUCTION,
399
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry::Type::TaggedSymbol
400
+ )
401
+ PREPAID_COMMIT_ROLLOVER =
402
+ T.let(
403
+ :PREPAID_COMMIT_ROLLOVER,
404
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry::Type::TaggedSymbol
405
+ )
406
+ PREPAID_COMMIT_EXPIRATION =
407
+ T.let(
408
+ :PREPAID_COMMIT_EXPIRATION,
409
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry::Type::TaggedSymbol
410
+ )
411
+ PREPAID_COMMIT_CANCELED =
412
+ T.let(
413
+ :PREPAID_COMMIT_CANCELED,
414
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry::Type::TaggedSymbol
415
+ )
416
+ PREPAID_COMMIT_CREDITED =
417
+ T.let(
418
+ :PREPAID_COMMIT_CREDITED,
419
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry::Type::TaggedSymbol
420
+ )
421
+ PREPAID_COMMIT_MANUAL =
422
+ T.let(
423
+ :PREPAID_COMMIT_MANUAL,
424
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry::Type::TaggedSymbol
425
+ )
426
+ PREPAID_COMMIT_SEAT_BASED_ADJUSTMENT =
427
+ T.let(
428
+ :PREPAID_COMMIT_SEAT_BASED_ADJUSTMENT,
429
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry::Type::TaggedSymbol
430
+ )
431
+
432
+ sig do
433
+ override.returns(
434
+ T::Array[
435
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Commit::LedgerEntry::Type::TaggedSymbol
436
+ ]
437
+ )
438
+ end
439
+ def self.values
440
+ end
441
+ end
442
+ end
443
+ end
444
+
445
+ class Credit < MetronomeSDK::Internal::Type::BaseModel
446
+ OrHash =
447
+ T.type_alias do
448
+ T.any(
449
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit,
450
+ MetronomeSDK::Internal::AnyHash
451
+ )
452
+ end
453
+
454
+ # The credit ID
455
+ sig { returns(String) }
456
+ attr_accessor :id
457
+
458
+ # The current balance for this credit for this specific seat
459
+ sig { returns(Float) }
460
+ attr_accessor :balance
461
+
462
+ # The datetime when the credit becomes active
463
+ sig { returns(Time) }
464
+ attr_accessor :start_date
465
+
466
+ # The datetime when the credit expires
467
+ sig { returns(T.nilable(Time)) }
468
+ attr_accessor :end_date
469
+
470
+ # Transaction history for this credit for this seat (only included if
471
+ # include_ledgers=true)
472
+ sig do
473
+ returns(
474
+ T.nilable(
475
+ T::Array[
476
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry
477
+ ]
478
+ )
479
+ )
480
+ end
481
+ attr_reader :ledger_entries
482
+
483
+ sig do
484
+ params(
485
+ ledger_entries:
486
+ T::Array[
487
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry::OrHash
488
+ ]
489
+ ).void
490
+ end
491
+ attr_writer :ledger_entries
492
+
493
+ sig do
494
+ params(
495
+ id: String,
496
+ balance: Float,
497
+ start_date: Time,
498
+ end_date: T.nilable(Time),
499
+ ledger_entries:
500
+ T::Array[
501
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry::OrHash
502
+ ]
503
+ ).returns(T.attached_class)
504
+ end
505
+ def self.new(
506
+ # The credit ID
507
+ id:,
508
+ # The current balance for this credit for this specific seat
509
+ balance:,
510
+ # The datetime when the credit becomes active
511
+ start_date:,
512
+ # The datetime when the credit expires
513
+ end_date: nil,
514
+ # Transaction history for this credit for this seat (only included if
515
+ # include_ledgers=true)
516
+ ledger_entries: nil
517
+ )
518
+ end
519
+
520
+ sig do
521
+ override.returns(
522
+ {
523
+ id: String,
524
+ balance: Float,
525
+ start_date: Time,
526
+ end_date: T.nilable(Time),
527
+ ledger_entries:
528
+ T::Array[
529
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry
530
+ ]
531
+ }
532
+ )
533
+ end
534
+ def to_hash
535
+ end
536
+
537
+ class LedgerEntry < MetronomeSDK::Internal::Type::BaseModel
538
+ OrHash =
539
+ T.type_alias do
540
+ T.any(
541
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry,
542
+ MetronomeSDK::Internal::AnyHash
543
+ )
544
+ end
545
+
546
+ # Amount of the ledger entry
547
+ sig { returns(Float) }
548
+ attr_accessor :amount
549
+
550
+ # The datetime when the ledger is created
551
+ sig { returns(Time) }
552
+ attr_accessor :timestamp
553
+
554
+ # Credit ledger type
555
+ sig do
556
+ returns(
557
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry::Type::TaggedSymbol
558
+ )
559
+ end
560
+ attr_accessor :type
561
+
562
+ sig do
563
+ params(
564
+ amount: Float,
565
+ timestamp: Time,
566
+ type:
567
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry::Type::OrSymbol
568
+ ).returns(T.attached_class)
569
+ end
570
+ def self.new(
571
+ # Amount of the ledger entry
572
+ amount:,
573
+ # The datetime when the ledger is created
574
+ timestamp:,
575
+ # Credit ledger type
576
+ type:
577
+ )
578
+ end
579
+
580
+ sig do
581
+ override.returns(
582
+ {
583
+ amount: Float,
584
+ timestamp: Time,
585
+ type:
586
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry::Type::TaggedSymbol
587
+ }
588
+ )
589
+ end
590
+ def to_hash
591
+ end
592
+
593
+ # Credit ledger type
594
+ module Type
595
+ extend MetronomeSDK::Internal::Type::Enum
596
+
597
+ TaggedSymbol =
598
+ T.type_alias do
599
+ T.all(
600
+ Symbol,
601
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry::Type
602
+ )
603
+ end
604
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
605
+
606
+ CREDIT_SEGMENT_START =
607
+ T.let(
608
+ :CREDIT_SEGMENT_START,
609
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry::Type::TaggedSymbol
610
+ )
611
+ CREDIT_AUTOMATED_INVOICE_DEDUCTION =
612
+ T.let(
613
+ :CREDIT_AUTOMATED_INVOICE_DEDUCTION,
614
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry::Type::TaggedSymbol
615
+ )
616
+ CREDIT_EXPIRATION =
617
+ T.let(
618
+ :CREDIT_EXPIRATION,
619
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry::Type::TaggedSymbol
620
+ )
621
+ CREDIT_CANCELED =
622
+ T.let(
623
+ :CREDIT_CANCELED,
624
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry::Type::TaggedSymbol
625
+ )
626
+ CREDIT_CREDITED =
627
+ T.let(
628
+ :CREDIT_CREDITED,
629
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry::Type::TaggedSymbol
630
+ )
631
+ CREDIT_MANUAL =
632
+ T.let(
633
+ :CREDIT_MANUAL,
634
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry::Type::TaggedSymbol
635
+ )
636
+ CREDIT_SEAT_BASED_ADJUSTMENT =
637
+ T.let(
638
+ :CREDIT_SEAT_BASED_ADJUSTMENT,
639
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry::Type::TaggedSymbol
640
+ )
641
+ CREDIT_ROLLOVER =
642
+ T.let(
643
+ :CREDIT_ROLLOVER,
644
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry::Type::TaggedSymbol
645
+ )
646
+
647
+ sig do
648
+ override.returns(
649
+ T::Array[
650
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Data::Credit::LedgerEntry::Type::TaggedSymbol
651
+ ]
652
+ )
653
+ end
654
+ def self.values
655
+ end
656
+ end
657
+ end
658
+ end
659
+ end
660
+
661
+ class Pagination < MetronomeSDK::Internal::Type::BaseModel
662
+ OrHash =
663
+ T.type_alias do
664
+ T.any(
665
+ MetronomeSDK::Models::V1::ContractListSeatBalancesResponse::Pagination,
666
+ MetronomeSDK::Internal::AnyHash
667
+ )
668
+ end
669
+
670
+ # Number of seats available to fetch in the next page
671
+ sig { returns(Float) }
672
+ attr_accessor :seats_available_for_next_page
673
+
674
+ # Number of seats included in this response
675
+ sig { returns(Float) }
676
+ attr_accessor :seats_included
677
+
678
+ # Token to retrieve the next page of results. Null if no more pages available
679
+ sig { returns(T.nilable(String)) }
680
+ attr_accessor :next_page
681
+
682
+ sig do
683
+ params(
684
+ seats_available_for_next_page: Float,
685
+ seats_included: Float,
686
+ next_page: T.nilable(String)
687
+ ).returns(T.attached_class)
688
+ end
689
+ def self.new(
690
+ # Number of seats available to fetch in the next page
691
+ seats_available_for_next_page:,
692
+ # Number of seats included in this response
693
+ seats_included:,
694
+ # Token to retrieve the next page of results. Null if no more pages available
695
+ next_page: nil
696
+ )
697
+ end
698
+
699
+ sig do
700
+ override.returns(
701
+ {
702
+ seats_available_for_next_page: Float,
703
+ seats_included: Float,
704
+ next_page: T.nilable(String)
705
+ }
706
+ )
707
+ end
708
+ def to_hash
709
+ end
710
+ end
711
+ end
712
+ end
713
+ end
714
+ end