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
@@ -0,0 +1,316 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ class Payment < MetronomeSDK::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(MetronomeSDK::V1::Payment, MetronomeSDK::Internal::AnyHash)
10
+ end
11
+
12
+ sig { returns(String) }
13
+ attr_accessor :id
14
+
15
+ sig { returns(T.nilable(Float)) }
16
+ attr_reader :amount
17
+
18
+ sig { params(amount: Float).void }
19
+ attr_writer :amount
20
+
21
+ sig { returns(T.nilable(Float)) }
22
+ attr_reader :amount_paid
23
+
24
+ sig { params(amount_paid: Float).void }
25
+ attr_writer :amount_paid
26
+
27
+ sig { returns(T.nilable(String)) }
28
+ attr_reader :contract_id
29
+
30
+ sig { params(contract_id: String).void }
31
+ attr_writer :contract_id
32
+
33
+ sig { returns(T.nilable(Time)) }
34
+ attr_reader :created_at
35
+
36
+ sig { params(created_at: Time).void }
37
+ attr_writer :created_at
38
+
39
+ sig { returns(T.nilable(String)) }
40
+ attr_reader :customer_id
41
+
42
+ sig { params(customer_id: String).void }
43
+ attr_writer :customer_id
44
+
45
+ sig { returns(T.nilable(String)) }
46
+ attr_reader :error_message
47
+
48
+ sig { params(error_message: String).void }
49
+ attr_writer :error_message
50
+
51
+ sig { returns(T.nilable(MetronomeSDK::CreditTypeData)) }
52
+ attr_reader :fiat_credit_type
53
+
54
+ sig do
55
+ params(fiat_credit_type: MetronomeSDK::CreditTypeData::OrHash).void
56
+ end
57
+ attr_writer :fiat_credit_type
58
+
59
+ sig { returns(T.nilable(String)) }
60
+ attr_reader :invoice_id
61
+
62
+ sig { params(invoice_id: String).void }
63
+ attr_writer :invoice_id
64
+
65
+ sig { returns(T.nilable(MetronomeSDK::V1::Payment::PaymentGateway)) }
66
+ attr_reader :payment_gateway
67
+
68
+ sig do
69
+ params(
70
+ payment_gateway: MetronomeSDK::V1::Payment::PaymentGateway::OrHash
71
+ ).void
72
+ end
73
+ attr_writer :payment_gateway
74
+
75
+ sig do
76
+ returns(T.nilable(MetronomeSDK::V1::PaymentStatus::TaggedSymbol))
77
+ end
78
+ attr_reader :status
79
+
80
+ sig { params(status: MetronomeSDK::V1::PaymentStatus::OrSymbol).void }
81
+ attr_writer :status
82
+
83
+ sig { returns(T.nilable(Time)) }
84
+ attr_reader :updated_at
85
+
86
+ sig { params(updated_at: Time).void }
87
+ attr_writer :updated_at
88
+
89
+ sig do
90
+ params(
91
+ id: String,
92
+ amount: Float,
93
+ amount_paid: Float,
94
+ contract_id: String,
95
+ created_at: Time,
96
+ customer_id: String,
97
+ error_message: String,
98
+ fiat_credit_type: MetronomeSDK::CreditTypeData::OrHash,
99
+ invoice_id: String,
100
+ payment_gateway: MetronomeSDK::V1::Payment::PaymentGateway::OrHash,
101
+ status: MetronomeSDK::V1::PaymentStatus::OrSymbol,
102
+ updated_at: Time
103
+ ).returns(T.attached_class)
104
+ end
105
+ def self.new(
106
+ id:,
107
+ amount: nil,
108
+ amount_paid: nil,
109
+ contract_id: nil,
110
+ created_at: nil,
111
+ customer_id: nil,
112
+ error_message: nil,
113
+ fiat_credit_type: nil,
114
+ invoice_id: nil,
115
+ payment_gateway: nil,
116
+ status: nil,
117
+ updated_at: nil
118
+ )
119
+ end
120
+
121
+ sig do
122
+ override.returns(
123
+ {
124
+ id: String,
125
+ amount: Float,
126
+ amount_paid: Float,
127
+ contract_id: String,
128
+ created_at: Time,
129
+ customer_id: String,
130
+ error_message: String,
131
+ fiat_credit_type: MetronomeSDK::CreditTypeData,
132
+ invoice_id: String,
133
+ payment_gateway: MetronomeSDK::V1::Payment::PaymentGateway,
134
+ status: MetronomeSDK::V1::PaymentStatus::TaggedSymbol,
135
+ updated_at: Time
136
+ }
137
+ )
138
+ end
139
+ def to_hash
140
+ end
141
+
142
+ class PaymentGateway < MetronomeSDK::Internal::Type::BaseModel
143
+ OrHash =
144
+ T.type_alias do
145
+ T.any(
146
+ MetronomeSDK::V1::Payment::PaymentGateway,
147
+ MetronomeSDK::Internal::AnyHash
148
+ )
149
+ end
150
+
151
+ sig { returns(MetronomeSDK::V1::Payment::PaymentGateway::Stripe) }
152
+ attr_reader :stripe
153
+
154
+ sig do
155
+ params(
156
+ stripe: MetronomeSDK::V1::Payment::PaymentGateway::Stripe::OrHash
157
+ ).void
158
+ end
159
+ attr_writer :stripe
160
+
161
+ sig do
162
+ returns(
163
+ MetronomeSDK::V1::Payment::PaymentGateway::Type::TaggedSymbol
164
+ )
165
+ end
166
+ attr_accessor :type
167
+
168
+ sig do
169
+ params(
170
+ stripe: MetronomeSDK::V1::Payment::PaymentGateway::Stripe::OrHash,
171
+ type: MetronomeSDK::V1::Payment::PaymentGateway::Type::OrSymbol
172
+ ).returns(T.attached_class)
173
+ end
174
+ def self.new(stripe:, type:)
175
+ end
176
+
177
+ sig do
178
+ override.returns(
179
+ {
180
+ stripe: MetronomeSDK::V1::Payment::PaymentGateway::Stripe,
181
+ type:
182
+ MetronomeSDK::V1::Payment::PaymentGateway::Type::TaggedSymbol
183
+ }
184
+ )
185
+ end
186
+ def to_hash
187
+ end
188
+
189
+ class Stripe < MetronomeSDK::Internal::Type::BaseModel
190
+ OrHash =
191
+ T.type_alias do
192
+ T.any(
193
+ MetronomeSDK::V1::Payment::PaymentGateway::Stripe,
194
+ MetronomeSDK::Internal::AnyHash
195
+ )
196
+ end
197
+
198
+ sig { returns(String) }
199
+ attr_accessor :payment_intent_id
200
+
201
+ sig do
202
+ returns(
203
+ T.nilable(
204
+ MetronomeSDK::V1::Payment::PaymentGateway::Stripe::Error
205
+ )
206
+ )
207
+ end
208
+ attr_reader :error
209
+
210
+ sig do
211
+ params(
212
+ error:
213
+ MetronomeSDK::V1::Payment::PaymentGateway::Stripe::Error::OrHash
214
+ ).void
215
+ end
216
+ attr_writer :error
217
+
218
+ sig do
219
+ params(
220
+ payment_intent_id: String,
221
+ error:
222
+ MetronomeSDK::V1::Payment::PaymentGateway::Stripe::Error::OrHash
223
+ ).returns(T.attached_class)
224
+ end
225
+ def self.new(payment_intent_id:, error: nil)
226
+ end
227
+
228
+ sig do
229
+ override.returns(
230
+ {
231
+ payment_intent_id: String,
232
+ error:
233
+ MetronomeSDK::V1::Payment::PaymentGateway::Stripe::Error
234
+ }
235
+ )
236
+ end
237
+ def to_hash
238
+ end
239
+
240
+ class Error < MetronomeSDK::Internal::Type::BaseModel
241
+ OrHash =
242
+ T.type_alias do
243
+ T.any(
244
+ MetronomeSDK::V1::Payment::PaymentGateway::Stripe::Error,
245
+ MetronomeSDK::Internal::AnyHash
246
+ )
247
+ end
248
+
249
+ sig { returns(T.nilable(String)) }
250
+ attr_reader :code
251
+
252
+ sig { params(code: String).void }
253
+ attr_writer :code
254
+
255
+ sig { returns(T.nilable(String)) }
256
+ attr_reader :decline_code
257
+
258
+ sig { params(decline_code: String).void }
259
+ attr_writer :decline_code
260
+
261
+ sig { returns(T.nilable(String)) }
262
+ attr_reader :type
263
+
264
+ sig { params(type: String).void }
265
+ attr_writer :type
266
+
267
+ sig do
268
+ params(
269
+ code: String,
270
+ decline_code: String,
271
+ type: String
272
+ ).returns(T.attached_class)
273
+ end
274
+ def self.new(code: nil, decline_code: nil, type: nil)
275
+ end
276
+
277
+ sig do
278
+ override.returns(
279
+ { code: String, decline_code: String, type: String }
280
+ )
281
+ end
282
+ def to_hash
283
+ end
284
+ end
285
+ end
286
+
287
+ module Type
288
+ extend MetronomeSDK::Internal::Type::Enum
289
+
290
+ TaggedSymbol =
291
+ T.type_alias do
292
+ T.all(Symbol, MetronomeSDK::V1::Payment::PaymentGateway::Type)
293
+ end
294
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
295
+
296
+ STRIPE =
297
+ T.let(
298
+ :stripe,
299
+ MetronomeSDK::V1::Payment::PaymentGateway::Type::TaggedSymbol
300
+ )
301
+
302
+ sig do
303
+ override.returns(
304
+ T::Array[
305
+ MetronomeSDK::V1::Payment::PaymentGateway::Type::TaggedSymbol
306
+ ]
307
+ )
308
+ end
309
+ def self.values
310
+ end
311
+ end
312
+ end
313
+ end
314
+ end
315
+ end
316
+ end
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ class PaymentAttemptParams < MetronomeSDK::Internal::Type::BaseModel
7
+ extend MetronomeSDK::Internal::Type::RequestParameters::Converter
8
+ include MetronomeSDK::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ MetronomeSDK::V1::PaymentAttemptParams,
14
+ MetronomeSDK::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :customer_id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :invoice_id
23
+
24
+ sig do
25
+ params(
26
+ customer_id: String,
27
+ invoice_id: String,
28
+ request_options: MetronomeSDK::RequestOptions::OrHash
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(customer_id:, invoice_id:, request_options: {})
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ customer_id: String,
38
+ invoice_id: String,
39
+ request_options: MetronomeSDK::RequestOptions
40
+ }
41
+ )
42
+ end
43
+ def to_hash
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ class PaymentAttemptResponse < MetronomeSDK::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ MetronomeSDK::Models::V1::PaymentAttemptResponse,
11
+ MetronomeSDK::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig { returns(MetronomeSDK::V1::Payment) }
16
+ attr_reader :data
17
+
18
+ sig { params(data: MetronomeSDK::V1::Payment::OrHash).void }
19
+ attr_writer :data
20
+
21
+ sig do
22
+ params(data: MetronomeSDK::V1::Payment::OrHash).returns(
23
+ T.attached_class
24
+ )
25
+ end
26
+ def self.new(data:)
27
+ end
28
+
29
+ sig { override.returns({ data: MetronomeSDK::V1::Payment }) }
30
+ def to_hash
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,48 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ class PaymentCancelParams < MetronomeSDK::Internal::Type::BaseModel
7
+ extend MetronomeSDK::Internal::Type::RequestParameters::Converter
8
+ include MetronomeSDK::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ MetronomeSDK::V1::PaymentCancelParams,
14
+ MetronomeSDK::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :customer_id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :invoice_id
23
+
24
+ sig do
25
+ params(
26
+ customer_id: String,
27
+ invoice_id: String,
28
+ request_options: MetronomeSDK::RequestOptions::OrHash
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(customer_id:, invoice_id:, request_options: {})
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ customer_id: String,
38
+ invoice_id: String,
39
+ request_options: MetronomeSDK::RequestOptions
40
+ }
41
+ )
42
+ end
43
+ def to_hash
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ class PaymentCancelResponse < MetronomeSDK::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ MetronomeSDK::Models::V1::PaymentCancelResponse,
11
+ MetronomeSDK::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig { returns(MetronomeSDK::V1::Payment) }
16
+ attr_reader :data
17
+
18
+ sig { params(data: MetronomeSDK::V1::Payment::OrHash).void }
19
+ attr_writer :data
20
+
21
+ sig do
22
+ params(data: MetronomeSDK::V1::Payment::OrHash).returns(
23
+ T.attached_class
24
+ )
25
+ end
26
+ def self.new(data:)
27
+ end
28
+
29
+ sig { override.returns({ data: MetronomeSDK::V1::Payment }) }
30
+ def to_hash
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,91 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ class PaymentListParams < MetronomeSDK::Internal::Type::BaseModel
7
+ extend MetronomeSDK::Internal::Type::RequestParameters::Converter
8
+ include MetronomeSDK::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ MetronomeSDK::V1::PaymentListParams,
14
+ MetronomeSDK::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :customer_id
20
+
21
+ sig { returns(String) }
22
+ attr_accessor :invoice_id
23
+
24
+ # The maximum number of payments to return. Defaults to 25.
25
+ sig { returns(T.nilable(Integer)) }
26
+ attr_reader :limit
27
+
28
+ sig { params(limit: Integer).void }
29
+ attr_writer :limit
30
+
31
+ # The next page token from a previous response.
32
+ sig { returns(T.nilable(String)) }
33
+ attr_reader :next_page
34
+
35
+ sig { params(next_page: String).void }
36
+ attr_writer :next_page
37
+
38
+ sig do
39
+ returns(
40
+ T.nilable(T::Array[MetronomeSDK::V1::PaymentStatus::OrSymbol])
41
+ )
42
+ end
43
+ attr_reader :statuses
44
+
45
+ sig do
46
+ params(
47
+ statuses: T::Array[MetronomeSDK::V1::PaymentStatus::OrSymbol]
48
+ ).void
49
+ end
50
+ attr_writer :statuses
51
+
52
+ sig do
53
+ params(
54
+ customer_id: String,
55
+ invoice_id: String,
56
+ limit: Integer,
57
+ next_page: String,
58
+ statuses: T::Array[MetronomeSDK::V1::PaymentStatus::OrSymbol],
59
+ request_options: MetronomeSDK::RequestOptions::OrHash
60
+ ).returns(T.attached_class)
61
+ end
62
+ def self.new(
63
+ customer_id:,
64
+ invoice_id:,
65
+ # The maximum number of payments to return. Defaults to 25.
66
+ limit: nil,
67
+ # The next page token from a previous response.
68
+ next_page: nil,
69
+ statuses: nil,
70
+ request_options: {}
71
+ )
72
+ end
73
+
74
+ sig do
75
+ override.returns(
76
+ {
77
+ customer_id: String,
78
+ invoice_id: String,
79
+ limit: Integer,
80
+ next_page: String,
81
+ statuses: T::Array[MetronomeSDK::V1::PaymentStatus::OrSymbol],
82
+ request_options: MetronomeSDK::RequestOptions
83
+ }
84
+ )
85
+ end
86
+ def to_hash
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,33 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ module PaymentStatus
7
+ extend MetronomeSDK::Internal::Type::Enum
8
+
9
+ TaggedSymbol =
10
+ T.type_alias { T.all(Symbol, MetronomeSDK::V1::PaymentStatus) }
11
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
12
+
13
+ PENDING = T.let(:pending, MetronomeSDK::V1::PaymentStatus::TaggedSymbol)
14
+ REQUIRES_INTERVENTION =
15
+ T.let(
16
+ :requires_intervention,
17
+ MetronomeSDK::V1::PaymentStatus::TaggedSymbol
18
+ )
19
+ PAID = T.let(:paid, MetronomeSDK::V1::PaymentStatus::TaggedSymbol)
20
+ CANCELED =
21
+ T.let(:canceled, MetronomeSDK::V1::PaymentStatus::TaggedSymbol)
22
+
23
+ sig do
24
+ override.returns(
25
+ T::Array[MetronomeSDK::V1::PaymentStatus::TaggedSymbol]
26
+ )
27
+ end
28
+ def self.values
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -52,6 +52,18 @@ module MetronomeSDK
52
52
  sig { returns(T.nilable(T::Array[String])) }
53
53
  attr_accessor :applicable_product_tags
54
54
 
55
+ # Optional configuration for commit hierarchy access control
56
+ sig { returns(T.nilable(MetronomeSDK::CommitHierarchyConfiguration)) }
57
+ attr_reader :hierarchy_configuration
58
+
59
+ sig do
60
+ params(
61
+ hierarchy_configuration:
62
+ MetronomeSDK::CommitHierarchyConfiguration::OrHash
63
+ ).void
64
+ end
65
+ attr_writer :hierarchy_configuration
66
+
55
67
  # ID of contract to use for invoicing
56
68
  sig { returns(T.nilable(String)) }
57
69
  attr_reader :invoice_contract_id
@@ -124,6 +136,8 @@ module MetronomeSDK
124
136
  MetronomeSDK::V2::ContractEditCommitParams::AccessSchedule::OrHash,
125
137
  applicable_product_ids: T.nilable(T::Array[String]),
126
138
  applicable_product_tags: T.nilable(T::Array[String]),
139
+ hierarchy_configuration:
140
+ MetronomeSDK::CommitHierarchyConfiguration::OrHash,
127
141
  invoice_contract_id: String,
128
142
  invoice_schedule:
129
143
  MetronomeSDK::V2::ContractEditCommitParams::InvoiceSchedule::OrHash,
@@ -150,6 +164,8 @@ module MetronomeSDK
150
164
  # applicable_product_tags or specifiers are not provided, the commit applies to
151
165
  # all products.
152
166
  applicable_product_tags: nil,
167
+ # Optional configuration for commit hierarchy access control
168
+ hierarchy_configuration: nil,
153
169
  # ID of contract to use for invoicing
154
170
  invoice_contract_id: nil,
155
171
  invoice_schedule: nil,
@@ -181,6 +197,8 @@ module MetronomeSDK
181
197
  MetronomeSDK::V2::ContractEditCommitParams::AccessSchedule,
182
198
  applicable_product_ids: T.nilable(T::Array[String]),
183
199
  applicable_product_tags: T.nilable(T::Array[String]),
200
+ hierarchy_configuration:
201
+ MetronomeSDK::CommitHierarchyConfiguration,
184
202
  invoice_contract_id: String,
185
203
  invoice_schedule:
186
204
  MetronomeSDK::V2::ContractEditCommitParams::InvoiceSchedule,
@@ -50,6 +50,18 @@ module MetronomeSDK
50
50
  sig { returns(T.nilable(T::Array[String])) }
51
51
  attr_accessor :applicable_product_tags
52
52
 
53
+ # Optional configuration for credit hierarchy access control
54
+ sig { returns(T.nilable(MetronomeSDK::CommitHierarchyConfiguration)) }
55
+ attr_reader :hierarchy_configuration
56
+
57
+ sig do
58
+ params(
59
+ hierarchy_configuration:
60
+ MetronomeSDK::CommitHierarchyConfiguration::OrHash
61
+ ).void
62
+ end
63
+ attr_writer :hierarchy_configuration
64
+
53
65
  # If multiple commits are applicable, the one with the lower priority will apply
54
66
  # first.
55
67
  sig { returns(T.nilable(Float)) }
@@ -98,6 +110,8 @@ module MetronomeSDK
98
110
  MetronomeSDK::V2::ContractEditCreditParams::AccessSchedule::OrHash,
99
111
  applicable_product_ids: T.nilable(T::Array[String]),
100
112
  applicable_product_tags: T.nilable(T::Array[String]),
113
+ hierarchy_configuration:
114
+ MetronomeSDK::CommitHierarchyConfiguration::OrHash,
101
115
  priority: T.nilable(Float),
102
116
  product_id: String,
103
117
  rate_type:
@@ -119,6 +133,8 @@ module MetronomeSDK
119
133
  # Which tags the credit applies to. If both applicable_product_ids and
120
134
  # applicable_product_tags are not provided, the credit applies to all products.
121
135
  applicable_product_tags: nil,
136
+ # Optional configuration for credit hierarchy access control
137
+ hierarchy_configuration: nil,
122
138
  # If multiple commits are applicable, the one with the lower priority will apply
123
139
  # first.
124
140
  priority: nil,
@@ -147,6 +163,8 @@ module MetronomeSDK
147
163
  MetronomeSDK::V2::ContractEditCreditParams::AccessSchedule,
148
164
  applicable_product_ids: T.nilable(T::Array[String]),
149
165
  applicable_product_tags: T.nilable(T::Array[String]),
166
+ hierarchy_configuration:
167
+ MetronomeSDK::CommitHierarchyConfiguration,
150
168
  priority: T.nilable(Float),
151
169
  product_id: String,
152
170
  rate_type: