metronome-sdk 1.0.0 → 2.1.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 (193) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +91 -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 +34 -31
  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.rb +1 -0
  16. data/lib/metronome_sdk/models/contract_v2.rb +275 -6
  17. data/lib/metronome_sdk/models/contract_without_amendments.rb +2 -2
  18. data/lib/metronome_sdk/models/hierarchy_configuration.rb +123 -2
  19. data/lib/metronome_sdk/models/payment_gate_config.rb +1 -0
  20. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +1 -0
  21. data/lib/metronome_sdk/models/subscription.rb +95 -1
  22. data/lib/metronome_sdk/models/v1/alert_archive_params.rb +8 -4
  23. data/lib/metronome_sdk/models/v1/alert_create_params.rb +38 -36
  24. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +1 -0
  25. data/lib/metronome_sdk/models/v1/contract_create_params.rb +157 -9
  26. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +9 -1
  27. data/lib/metronome_sdk/models/v1/customer_create_params.rb +11 -1
  28. data/lib/metronome_sdk/models/v1/customer_detail.rb +9 -1
  29. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +19 -25
  30. data/lib/metronome_sdk/models/v1/customer_preview_events_response.rb +3 -3
  31. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +1 -0
  32. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +1 -0
  33. data/lib/metronome_sdk/models/v1/customers/alert_list_params.rb +3 -3
  34. data/lib/metronome_sdk/models/v1/customers/alert_reset_params.rb +2 -2
  35. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +12 -12
  36. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +6 -1
  37. data/lib/metronome_sdk/models/v1/customers/billing_config_delete_params.rb +1 -0
  38. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rb +1 -0
  39. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +6 -1
  40. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +1 -1
  41. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +41 -38
  42. data/lib/metronome_sdk/models/v1/customers/invoice.rb +256 -16
  43. data/lib/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rb +30 -0
  44. data/lib/metronome_sdk/models/v1/payment.rb +157 -0
  45. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +28 -0
  46. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +18 -0
  47. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +28 -0
  48. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +18 -0
  49. data/lib/metronome_sdk/models/v1/payment_list_params.rb +53 -0
  50. data/lib/metronome_sdk/models/v1/payment_status.rb +19 -0
  51. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rb +65 -0
  52. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rb +12 -0
  53. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_params.rb +73 -0
  54. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_response.rb +31 -0
  55. data/lib/metronome_sdk/models/v1/settings/billing_provider_list_params.rb +26 -0
  56. data/lib/metronome_sdk/models/v1/settings/billing_provider_list_response.rb +105 -0
  57. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +9 -1
  58. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +9 -1
  59. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +219 -9
  60. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +195 -8
  61. data/lib/metronome_sdk/resources/v1/alerts.rb +57 -53
  62. data/lib/metronome_sdk/resources/v1/contracts.rb +8 -5
  63. data/lib/metronome_sdk/resources/v1/credit_grants.rb +10 -5
  64. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +70 -51
  65. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +7 -4
  66. data/lib/metronome_sdk/resources/v1/customers/commits.rb +2 -1
  67. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +57 -1
  68. data/lib/metronome_sdk/resources/v1/customers/plans.rb +8 -4
  69. data/lib/metronome_sdk/resources/v1/customers.rb +13 -8
  70. data/lib/metronome_sdk/resources/v1/payments.rb +102 -0
  71. data/lib/metronome_sdk/resources/v1/plans.rb +8 -4
  72. data/lib/metronome_sdk/resources/v1/settings/billing_providers.rb +75 -0
  73. data/lib/metronome_sdk/resources/v1/settings.rb +55 -0
  74. data/lib/metronome_sdk/resources/v1/usage.rb +4 -2
  75. data/lib/metronome_sdk/resources/v1.rb +8 -0
  76. data/lib/metronome_sdk/resources/v2/contracts.rb +9 -3
  77. data/lib/metronome_sdk/version.rb +1 -1
  78. data/lib/metronome_sdk.rb +17 -0
  79. data/rbi/metronome_sdk/errors.rbi +29 -2
  80. data/rbi/metronome_sdk/file_part.rbi +1 -1
  81. data/rbi/metronome_sdk/internal/transport/base_client.rbi +4 -5
  82. data/rbi/metronome_sdk/internal/type/base_page.rbi +1 -1
  83. data/rbi/metronome_sdk/internal/util.rbi +1 -1
  84. data/rbi/metronome_sdk/models/contract.rbi +5 -0
  85. data/rbi/metronome_sdk/models/contract_v2.rbi +635 -10
  86. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +2 -2
  87. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +286 -6
  88. data/rbi/metronome_sdk/models/payment_gate_config.rbi +5 -0
  89. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +5 -0
  90. data/rbi/metronome_sdk/models/subscription.rbi +190 -0
  91. data/rbi/metronome_sdk/models/v1/alert_archive_params.rbi +6 -4
  92. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +51 -47
  93. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +5 -0
  94. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +326 -10
  95. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +11 -0
  96. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +11 -0
  97. data/rbi/metronome_sdk/models/v1/customer_detail.rbi +8 -0
  98. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +24 -32
  99. data/rbi/metronome_sdk/models/v1/customer_preview_events_response.rbi +10 -9
  100. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +5 -0
  101. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +5 -0
  102. data/rbi/metronome_sdk/models/v1/customers/alert_list_params.rbi +4 -4
  103. data/rbi/metronome_sdk/models/v1/customers/alert_reset_params.rbi +2 -2
  104. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +14 -14
  105. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +11 -0
  106. data/rbi/metronome_sdk/models/v1/customers/billing_config_delete_params.rbi +5 -0
  107. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbi +5 -0
  108. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +6 -0
  109. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +2 -2
  110. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +53 -44
  111. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +462 -38
  112. data/rbi/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbi +50 -0
  113. data/rbi/metronome_sdk/models/v1/payment.rbi +324 -0
  114. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +48 -0
  115. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +35 -0
  116. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +48 -0
  117. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +35 -0
  118. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +91 -0
  119. data/rbi/metronome_sdk/models/v1/payment_status.rbi +33 -0
  120. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbi +115 -0
  121. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rbi +25 -0
  122. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_params.rbi +157 -0
  123. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_response.rbi +75 -0
  124. data/rbi/metronome_sdk/models/v1/settings/billing_provider_list_params.rbi +50 -0
  125. data/rbi/metronome_sdk/models/v1/settings/billing_provider_list_response.rbi +245 -0
  126. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +18 -0
  127. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +18 -0
  128. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +536 -12
  129. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +462 -14
  130. data/rbi/metronome_sdk/resources/v1/alerts.rbi +68 -64
  131. data/rbi/metronome_sdk/resources/v1/contracts.rbi +8 -4
  132. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +10 -5
  133. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +73 -54
  134. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +8 -4
  135. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +3 -2
  136. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +38 -1
  137. data/rbi/metronome_sdk/resources/v1/customers/plans.rbi +8 -4
  138. data/rbi/metronome_sdk/resources/v1/customers.rbi +17 -11
  139. data/rbi/metronome_sdk/resources/v1/payments.rbi +72 -0
  140. data/rbi/metronome_sdk/resources/v1/plans.rbi +8 -4
  141. data/rbi/metronome_sdk/resources/v1/settings/billing_providers.rbi +63 -0
  142. data/rbi/metronome_sdk/resources/v1/settings.rbi +47 -0
  143. data/rbi/metronome_sdk/resources/v1/usage.rbi +4 -2
  144. data/rbi/metronome_sdk/resources/v1.rbi +6 -0
  145. data/rbi/metronome_sdk/resources/v2/contracts.rbi +14 -0
  146. data/sig/metronome_sdk/errors.rbs +7 -0
  147. data/sig/metronome_sdk/file_part.rbs +1 -1
  148. data/sig/metronome_sdk/models/contract.rbs +2 -0
  149. data/sig/metronome_sdk/models/contract_v2.rbs +241 -12
  150. data/sig/metronome_sdk/models/hierarchy_configuration.rbs +87 -6
  151. data/sig/metronome_sdk/models/payment_gate_config.rbs +2 -1
  152. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +2 -1
  153. data/sig/metronome_sdk/models/subscription.rbs +80 -0
  154. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +2 -1
  155. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +91 -5
  156. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +7 -0
  157. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +2 -0
  158. data/sig/metronome_sdk/models/v1/customer_detail.rbs +5 -0
  159. data/sig/metronome_sdk/models/v1/customer_preview_events_params.rbs +0 -7
  160. data/sig/metronome_sdk/models/v1/customer_preview_events_response.rbs +6 -4
  161. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +2 -0
  162. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +2 -0
  163. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +2 -0
  164. data/sig/metronome_sdk/models/v1/customers/billing_config_delete_params.rbs +2 -0
  165. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbs +2 -0
  166. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +2 -0
  167. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +244 -19
  168. data/sig/metronome_sdk/models/v1/customers/invoice_retrieve_pdf_params.rbs +32 -0
  169. data/sig/metronome_sdk/models/v1/payment.rbs +198 -0
  170. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +30 -0
  171. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +15 -0
  172. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +30 -0
  173. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +15 -0
  174. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +56 -0
  175. data/sig/metronome_sdk/models/v1/payment_status.rbs +19 -0
  176. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbs +54 -0
  177. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rbs +13 -0
  178. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_params.rbs +64 -0
  179. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_response.rbs +34 -0
  180. data/sig/metronome_sdk/models/v1/settings/billing_provider_list_params.rbs +28 -0
  181. data/sig/metronome_sdk/models/v1/settings/billing_provider_list_response.rbs +102 -0
  182. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +9 -0
  183. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +9 -0
  184. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +184 -7
  185. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +221 -18
  186. data/sig/metronome_sdk/resources/v1/contracts.rbs +1 -0
  187. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +6 -0
  188. data/sig/metronome_sdk/resources/v1/payments.rbs +30 -0
  189. data/sig/metronome_sdk/resources/v1/settings/billing_providers.rbs +23 -0
  190. data/sig/metronome_sdk/resources/v1/settings.rbs +19 -0
  191. data/sig/metronome_sdk/resources/v1.rbs +4 -0
  192. data/sig/metronome_sdk/resources/v2/contracts.rbs +3 -0
  193. metadata +53 -2
@@ -53,7 +53,7 @@ module MetronomeSDK
53
53
  sig { params(credits: T::Array[MetronomeSDK::Credit::OrHash]).void }
54
54
  attr_writer :credits
55
55
 
56
- # This field's availability is dependent on your client's configuration.
56
+ # This field's availability is dependent on your client's
57
57
  sig { returns(T.nilable(T::Array[MetronomeSDK::Discount])) }
58
58
  attr_reader :discounts
59
59
 
@@ -310,7 +310,7 @@ module MetronomeSDK
310
310
  transitions:,
311
311
  usage_statement_schedule:,
312
312
  credits: nil,
313
- # This field's availability is dependent on your client's configuration.
313
+ # This field's availability is dependent on your client's
314
314
  discounts: nil,
315
315
  ending_before: nil,
316
316
  # Either a **parent** configuration with a list of children or a **child**
@@ -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,110 @@ 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
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
124
+ # generated by the parent in a customer hierarchy
125
+ #
126
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
127
+ # to the consolidated invoice
128
+ #
129
+ # **NONE**: Do not generate consolidated invoices
130
+ sig do
131
+ returns(
132
+ T.nilable(
133
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
134
+ )
135
+ )
136
+ end
137
+ attr_reader :invoice_consolidation_type
138
+
139
+ sig do
140
+ params(
141
+ invoice_consolidation_type:
142
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::OrSymbol
143
+ ).void
144
+ end
145
+ attr_writer :invoice_consolidation_type
146
+
147
+ sig do
148
+ params(
149
+ invoice_consolidation_type:
150
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::OrSymbol
151
+ ).returns(T.attached_class)
152
+ end
153
+ def self.new(
154
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
155
+ # generated by the parent in a customer hierarchy
156
+ #
157
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
158
+ # to the consolidated invoice
159
+ #
160
+ # **NONE**: Do not generate consolidated invoices
161
+ invoice_consolidation_type: nil
162
+ )
163
+ end
164
+
165
+ sig do
166
+ override.returns(
167
+ {
168
+ invoice_consolidation_type:
169
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
170
+ }
171
+ )
172
+ end
173
+ def to_hash
174
+ end
175
+
176
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
177
+ # generated by the parent in a customer hierarchy
178
+ #
179
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
180
+ # to the consolidated invoice
181
+ #
182
+ # **NONE**: Do not generate consolidated invoices
183
+ module InvoiceConsolidationType
184
+ extend MetronomeSDK::Internal::Type::Enum
185
+
186
+ TaggedSymbol =
187
+ T.type_alias do
188
+ T.all(
189
+ Symbol,
190
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType
191
+ )
192
+ end
193
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
194
+
195
+ CONCATENATE =
196
+ T.let(
197
+ :CONCATENATE,
198
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
199
+ )
200
+ NONE =
201
+ T.let(
202
+ :NONE,
203
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
204
+ )
205
+
206
+ sig do
207
+ override.returns(
208
+ T::Array[
209
+ MetronomeSDK::HierarchyConfiguration::ParentHierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
210
+ ]
211
+ )
212
+ end
213
+ def self.values
214
+ end
215
+ end
216
+ end
91
217
  end
92
218
 
93
219
  class ChildHierarchyConfiguration < MetronomeSDK::Internal::Type::BaseModel
@@ -115,15 +241,83 @@ module MetronomeSDK
115
241
  end
116
242
  attr_writer :parent
117
243
 
244
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
245
+ # invoice charges
246
+ #
247
+ # **SELF**: The child pays for its own invoice charges
248
+ #
249
+ # **PARENT**: The parent pays for the child's invoice charges
250
+ sig do
251
+ returns(
252
+ T.nilable(
253
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer::TaggedSymbol
254
+ )
255
+ )
256
+ end
257
+ attr_reader :payer
258
+
259
+ sig do
260
+ params(
261
+ payer:
262
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer::OrSymbol
263
+ ).void
264
+ end
265
+ attr_writer :payer
266
+
267
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
268
+ # on the parent's invoices.
269
+ #
270
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
271
+ # consolidated invoices
272
+ #
273
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
274
+ # consolidated invoices
275
+ sig do
276
+ returns(
277
+ T.nilable(
278
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior::TaggedSymbol
279
+ )
280
+ )
281
+ end
282
+ attr_reader :usage_statement_behavior
283
+
284
+ sig do
285
+ params(
286
+ usage_statement_behavior:
287
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior::OrSymbol
288
+ ).void
289
+ end
290
+ attr_writer :usage_statement_behavior
291
+
118
292
  sig do
119
293
  params(
120
294
  parent:
121
- MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent::OrHash
295
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent::OrHash,
296
+ payer:
297
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer::OrSymbol,
298
+ usage_statement_behavior:
299
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior::OrSymbol
122
300
  ).returns(T.attached_class)
123
301
  end
124
302
  def self.new(
125
303
  # The single parent contract/customer for this child.
126
- parent:
304
+ parent:,
305
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
306
+ # invoice charges
307
+ #
308
+ # **SELF**: The child pays for its own invoice charges
309
+ #
310
+ # **PARENT**: The parent pays for the child's invoice charges
311
+ payer: nil,
312
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
313
+ # on the parent's invoices.
314
+ #
315
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
316
+ # consolidated invoices
317
+ #
318
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
319
+ # consolidated invoices
320
+ usage_statement_behavior: nil
127
321
  )
128
322
  end
129
323
 
@@ -131,7 +325,11 @@ module MetronomeSDK
131
325
  override.returns(
132
326
  {
133
327
  parent:
134
- MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent
328
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Parent,
329
+ payer:
330
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer::TaggedSymbol,
331
+ usage_statement_behavior:
332
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior::TaggedSymbol
135
333
  }
136
334
  )
137
335
  end
@@ -166,6 +364,88 @@ module MetronomeSDK
166
364
  def to_hash
167
365
  end
168
366
  end
367
+
368
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
369
+ # invoice charges
370
+ #
371
+ # **SELF**: The child pays for its own invoice charges
372
+ #
373
+ # **PARENT**: The parent pays for the child's invoice charges
374
+ module Payer
375
+ extend MetronomeSDK::Internal::Type::Enum
376
+
377
+ TaggedSymbol =
378
+ T.type_alias do
379
+ T.all(
380
+ Symbol,
381
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer
382
+ )
383
+ end
384
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
385
+
386
+ SELF =
387
+ T.let(
388
+ :SELF,
389
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer::TaggedSymbol
390
+ )
391
+ PARENT =
392
+ T.let(
393
+ :PARENT,
394
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer::TaggedSymbol
395
+ )
396
+
397
+ sig do
398
+ override.returns(
399
+ T::Array[
400
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::Payer::TaggedSymbol
401
+ ]
402
+ )
403
+ end
404
+ def self.values
405
+ end
406
+ end
407
+
408
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
409
+ # on the parent's invoices.
410
+ #
411
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
412
+ # consolidated invoices
413
+ #
414
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
415
+ # consolidated invoices
416
+ module UsageStatementBehavior
417
+ extend MetronomeSDK::Internal::Type::Enum
418
+
419
+ TaggedSymbol =
420
+ T.type_alias do
421
+ T.all(
422
+ Symbol,
423
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior
424
+ )
425
+ end
426
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
427
+
428
+ CONSOLIDATE =
429
+ T.let(
430
+ :CONSOLIDATE,
431
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior::TaggedSymbol
432
+ )
433
+ SEPARATE =
434
+ T.let(
435
+ :SEPARATE,
436
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior::TaggedSymbol
437
+ )
438
+
439
+ sig do
440
+ override.returns(
441
+ T::Array[
442
+ MetronomeSDK::HierarchyConfiguration::ChildHierarchyConfiguration::UsageStatementBehavior::TaggedSymbol
443
+ ]
444
+ )
445
+ end
446
+ def self.values
447
+ end
448
+ end
169
449
  end
170
450
 
171
451
  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
@@ -25,6 +36,11 @@ module MetronomeSDK
25
36
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
26
37
  # directly on the subscription. `initial_quantity` must be provided with this
27
38
  # option. Compatible with recurring commits/credits that use POOLED allocation.
39
+ # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
40
+ # add user_123) to increment and decrement a subscription quantity, rather than
41
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
42
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
43
+ # provided with this option.
28
44
  sig do
29
45
  returns(
30
46
  MetronomeSDK::Subscription::QuantityManagementMode::TaggedSymbol
@@ -90,6 +106,7 @@ module MetronomeSDK
90
106
 
91
107
  sig do
92
108
  params(
109
+ billing_periods: MetronomeSDK::Subscription::BillingPeriods::OrHash,
93
110
  collection_schedule:
94
111
  MetronomeSDK::Subscription::CollectionSchedule::OrSymbol,
95
112
  proration: MetronomeSDK::Subscription::Proration::OrHash,
@@ -109,12 +126,19 @@ module MetronomeSDK
109
126
  ).returns(T.attached_class)
110
127
  end
111
128
  def self.new(
129
+ # Previous, current, and next billing periods for the subscription.
130
+ billing_periods:,
112
131
  collection_schedule:,
113
132
  proration:,
114
133
  # Determines how the subscription's quantity is controlled. Defaults to
115
134
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
116
135
  # directly on the subscription. `initial_quantity` must be provided with this
117
136
  # option. Compatible with recurring commits/credits that use POOLED allocation.
137
+ # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
138
+ # add user_123) to increment and decrement a subscription quantity, rather than
139
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
140
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
141
+ # provided with this option.
118
142
  quantity_management_mode:,
119
143
  # List of quantity schedule items for the subscription. Only includes the current
120
144
  # quantity and future quantity changes.
@@ -134,6 +158,7 @@ module MetronomeSDK
134
158
  sig do
135
159
  override.returns(
136
160
  {
161
+ billing_periods: MetronomeSDK::Subscription::BillingPeriods,
137
162
  collection_schedule:
138
163
  MetronomeSDK::Subscription::CollectionSchedule::TaggedSymbol,
139
164
  proration: MetronomeSDK::Subscription::Proration,
@@ -155,6 +180,166 @@ module MetronomeSDK
155
180
  def to_hash
156
181
  end
157
182
 
183
+ class BillingPeriods < MetronomeSDK::Internal::Type::BaseModel
184
+ OrHash =
185
+ T.type_alias do
186
+ T.any(
187
+ MetronomeSDK::Subscription::BillingPeriods,
188
+ MetronomeSDK::Internal::AnyHash
189
+ )
190
+ end
191
+
192
+ sig do
193
+ returns(
194
+ T.nilable(MetronomeSDK::Subscription::BillingPeriods::Current)
195
+ )
196
+ end
197
+ attr_reader :current
198
+
199
+ sig do
200
+ params(
201
+ current: MetronomeSDK::Subscription::BillingPeriods::Current::OrHash
202
+ ).void
203
+ end
204
+ attr_writer :current
205
+
206
+ sig do
207
+ returns(T.nilable(MetronomeSDK::Subscription::BillingPeriods::Next))
208
+ end
209
+ attr_reader :next_
210
+
211
+ sig do
212
+ params(
213
+ next_: MetronomeSDK::Subscription::BillingPeriods::Next::OrHash
214
+ ).void
215
+ end
216
+ attr_writer :next_
217
+
218
+ sig do
219
+ returns(
220
+ T.nilable(MetronomeSDK::Subscription::BillingPeriods::Previous)
221
+ )
222
+ end
223
+ attr_reader :previous
224
+
225
+ sig do
226
+ params(
227
+ previous:
228
+ MetronomeSDK::Subscription::BillingPeriods::Previous::OrHash
229
+ ).void
230
+ end
231
+ attr_writer :previous
232
+
233
+ # Previous, current, and next billing periods for the subscription.
234
+ sig do
235
+ params(
236
+ current:
237
+ MetronomeSDK::Subscription::BillingPeriods::Current::OrHash,
238
+ next_: MetronomeSDK::Subscription::BillingPeriods::Next::OrHash,
239
+ previous:
240
+ MetronomeSDK::Subscription::BillingPeriods::Previous::OrHash
241
+ ).returns(T.attached_class)
242
+ end
243
+ def self.new(current: nil, next_: nil, previous: nil)
244
+ end
245
+
246
+ sig do
247
+ override.returns(
248
+ {
249
+ current: MetronomeSDK::Subscription::BillingPeriods::Current,
250
+ next_: MetronomeSDK::Subscription::BillingPeriods::Next,
251
+ previous: MetronomeSDK::Subscription::BillingPeriods::Previous
252
+ }
253
+ )
254
+ end
255
+ def to_hash
256
+ end
257
+
258
+ class Current < MetronomeSDK::Internal::Type::BaseModel
259
+ OrHash =
260
+ T.type_alias do
261
+ T.any(
262
+ MetronomeSDK::Subscription::BillingPeriods::Current,
263
+ MetronomeSDK::Internal::AnyHash
264
+ )
265
+ end
266
+
267
+ sig { returns(Time) }
268
+ attr_accessor :ending_before
269
+
270
+ sig { returns(Time) }
271
+ attr_accessor :starting_at
272
+
273
+ sig do
274
+ params(ending_before: Time, starting_at: Time).returns(
275
+ T.attached_class
276
+ )
277
+ end
278
+ def self.new(ending_before:, starting_at:)
279
+ end
280
+
281
+ sig { override.returns({ ending_before: Time, starting_at: Time }) }
282
+ def to_hash
283
+ end
284
+ end
285
+
286
+ class Next < MetronomeSDK::Internal::Type::BaseModel
287
+ OrHash =
288
+ T.type_alias do
289
+ T.any(
290
+ MetronomeSDK::Subscription::BillingPeriods::Next,
291
+ MetronomeSDK::Internal::AnyHash
292
+ )
293
+ end
294
+
295
+ sig { returns(Time) }
296
+ attr_accessor :ending_before
297
+
298
+ sig { returns(Time) }
299
+ attr_accessor :starting_at
300
+
301
+ sig do
302
+ params(ending_before: Time, starting_at: Time).returns(
303
+ T.attached_class
304
+ )
305
+ end
306
+ def self.new(ending_before:, starting_at:)
307
+ end
308
+
309
+ sig { override.returns({ ending_before: Time, starting_at: Time }) }
310
+ def to_hash
311
+ end
312
+ end
313
+
314
+ class Previous < MetronomeSDK::Internal::Type::BaseModel
315
+ OrHash =
316
+ T.type_alias do
317
+ T.any(
318
+ MetronomeSDK::Subscription::BillingPeriods::Previous,
319
+ MetronomeSDK::Internal::AnyHash
320
+ )
321
+ end
322
+
323
+ sig { returns(Time) }
324
+ attr_accessor :ending_before
325
+
326
+ sig { returns(Time) }
327
+ attr_accessor :starting_at
328
+
329
+ sig do
330
+ params(ending_before: Time, starting_at: Time).returns(
331
+ T.attached_class
332
+ )
333
+ end
334
+ def self.new(ending_before:, starting_at:)
335
+ end
336
+
337
+ sig { override.returns({ ending_before: Time, starting_at: Time }) }
338
+ def to_hash
339
+ end
340
+ end
341
+ end
342
+
158
343
  module CollectionSchedule
159
344
  extend MetronomeSDK::Internal::Type::Enum
160
345
 
@@ -266,6 +451,11 @@ module MetronomeSDK
266
451
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
267
452
  # directly on the subscription. `initial_quantity` must be provided with this
268
453
  # option. Compatible with recurring commits/credits that use POOLED allocation.
454
+ # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
455
+ # add user_123) to increment and decrement a subscription quantity, rather than
456
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
457
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
458
+ # provided with this option.
269
459
  module QuantityManagementMode
270
460
  extend MetronomeSDK::Internal::Type::Enum
271
461
 
@@ -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
  )