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
@@ -15,39 +15,41 @@ module MetronomeSDK
15
15
  )
16
16
  end
17
17
 
18
- # Type of the alert
18
+ # Type of the threshold notification
19
19
  sig do
20
20
  returns(MetronomeSDK::V1::AlertCreateParams::AlertType::OrSymbol)
21
21
  end
22
22
  attr_accessor :alert_type
23
23
 
24
- # Name of the alert
24
+ # Name of the threshold notification
25
25
  sig { returns(String) }
26
26
  attr_accessor :name
27
27
 
28
- # Threshold value of the alert policy. Depending upon the alert type, this number
29
- # may represent a financial amount, the days remaining, or a percentage reached.
28
+ # Threshold value of the notification policy. Depending upon the notification
29
+ # type, this number may represent a financial amount, the days remaining, or a
30
+ # percentage reached.
30
31
  sig { returns(Float) }
31
32
  attr_accessor :threshold
32
33
 
33
- # For alerts of type `usage_threshold_reached`, specifies which billable metric to
34
- # track the usage for.
34
+ # For threshold notifications of type `usage_threshold_reached`, specifies which
35
+ # billable metric to track the usage for.
35
36
  sig { returns(T.nilable(String)) }
36
37
  attr_reader :billable_metric_id
37
38
 
38
39
  sig { params(billable_metric_id: String).void }
39
40
  attr_writer :billable_metric_id
40
41
 
41
- # An array of strings, representing a way to filter the credit grant this alert
42
- # applies to, by looking at the credit_grant_type field on the credit grant. This
43
- # field is only defined for CreditPercentage and CreditBalance alerts
42
+ # An array of strings, representing a way to filter the credit grant this
43
+ # threshold notification applies to, by looking at the credit_grant_type field on
44
+ # the credit grant. This field is only defined for CreditPercentage and
45
+ # CreditBalance notifications
44
46
  sig { returns(T.nilable(T::Array[String])) }
45
47
  attr_reader :credit_grant_type_filters
46
48
 
47
49
  sig { params(credit_grant_type_filters: T::Array[String]).void }
48
50
  attr_writer :credit_grant_type_filters
49
51
 
50
- # ID of the credit's currency, defaults to USD. If the specific alert type
52
+ # ID of the credit's currency, defaults to USD. If the specific notification type
51
53
  # requires a pricing unit/currency, find the ID in the
52
54
  # [Metronome app](https://app.metronome.com/offering/pricing-units).
53
55
  sig { returns(T.nilable(String)) }
@@ -56,8 +58,8 @@ module MetronomeSDK
56
58
  sig { params(credit_type_id: String).void }
57
59
  attr_writer :credit_type_id
58
60
 
59
- # A list of custom field filters for alert types that support advanced filtering.
60
- # Only present for contract invoices.
61
+ # A list of custom field filters for threshold notification types that support
62
+ # advanced filtering. Only present for contract invoices.
61
63
  sig do
62
64
  returns(
63
65
  T.nilable(
@@ -77,25 +79,25 @@ module MetronomeSDK
77
79
  end
78
80
  attr_writer :custom_field_filters
79
81
 
80
- # If provided, will create this alert for this specific customer. To create an
81
- # alert for all customers, do not specify a `customer_id`.
82
+ # If provided, will create this threshold notification for this specific customer.
83
+ # To create a notification for all customers, do not specify a `customer_id`.
82
84
  sig { returns(T.nilable(String)) }
83
85
  attr_reader :customer_id
84
86
 
85
87
  sig { params(customer_id: String).void }
86
88
  attr_writer :customer_id
87
89
 
88
- # If true, the alert will evaluate immediately on customers that already meet the
89
- # alert threshold. If false, it will only evaluate on future customers that
90
- # trigger the alert threshold. Defaults to true.
90
+ # If true, the threshold notification will evaluate immediately on customers that
91
+ # already meet the notification threshold. If false, it will only evaluate on
92
+ # future customers that trigger the threshold. Defaults to true.
91
93
  sig { returns(T.nilable(T::Boolean)) }
92
94
  attr_reader :evaluate_on_create
93
95
 
94
96
  sig { params(evaluate_on_create: T::Boolean).void }
95
97
  attr_writer :evaluate_on_create
96
98
 
97
- # Only present for `spend_threshold_reached` alerts. Scope alert to a specific
98
- # group key on individual line items.
99
+ # Only present for `spend_threshold_reached` notifications. Scope notification to
100
+ # a specific group key on individual line items.
99
101
  sig do
100
102
  returns(
101
103
  T.nilable(T::Array[MetronomeSDK::V1::AlertCreateParams::GroupValue])
@@ -111,16 +113,16 @@ module MetronomeSDK
111
113
  end
112
114
  attr_writer :group_values
113
115
 
114
- # Only supported for invoice_total_reached alerts. A list of invoice types to
115
- # evaluate.
116
+ # Only supported for invoice_total_reached threshold notifications. A list of
117
+ # invoice types to evaluate.
116
118
  sig { returns(T.nilable(T::Array[String])) }
117
119
  attr_reader :invoice_types_filter
118
120
 
119
121
  sig { params(invoice_types_filter: T::Array[String]).void }
120
122
  attr_writer :invoice_types_filter
121
123
 
122
- # If provided, will create this alert for this specific plan. To create an alert
123
- # for all customers, do not specify a `plan_id`.
124
+ # If provided, will create this threshold notification for this specific plan. To
125
+ # create a notification for all customers, do not specify a `plan_id`.
124
126
  sig { returns(T.nilable(String)) }
125
127
  attr_reader :plan_id
126
128
 
@@ -160,42 +162,44 @@ module MetronomeSDK
160
162
  ).returns(T.attached_class)
161
163
  end
162
164
  def self.new(
163
- # Type of the alert
165
+ # Type of the threshold notification
164
166
  alert_type:,
165
- # Name of the alert
167
+ # Name of the threshold notification
166
168
  name:,
167
- # Threshold value of the alert policy. Depending upon the alert type, this number
168
- # may represent a financial amount, the days remaining, or a percentage reached.
169
+ # Threshold value of the notification policy. Depending upon the notification
170
+ # type, this number may represent a financial amount, the days remaining, or a
171
+ # percentage reached.
169
172
  threshold:,
170
- # For alerts of type `usage_threshold_reached`, specifies which billable metric to
171
- # track the usage for.
173
+ # For threshold notifications of type `usage_threshold_reached`, specifies which
174
+ # billable metric to track the usage for.
172
175
  billable_metric_id: nil,
173
- # An array of strings, representing a way to filter the credit grant this alert
174
- # applies to, by looking at the credit_grant_type field on the credit grant. This
175
- # field is only defined for CreditPercentage and CreditBalance alerts
176
+ # An array of strings, representing a way to filter the credit grant this
177
+ # threshold notification applies to, by looking at the credit_grant_type field on
178
+ # the credit grant. This field is only defined for CreditPercentage and
179
+ # CreditBalance notifications
176
180
  credit_grant_type_filters: nil,
177
- # ID of the credit's currency, defaults to USD. If the specific alert type
181
+ # ID of the credit's currency, defaults to USD. If the specific notification type
178
182
  # requires a pricing unit/currency, find the ID in the
179
183
  # [Metronome app](https://app.metronome.com/offering/pricing-units).
180
184
  credit_type_id: nil,
181
- # A list of custom field filters for alert types that support advanced filtering.
182
- # Only present for contract invoices.
185
+ # A list of custom field filters for threshold notification types that support
186
+ # advanced filtering. Only present for contract invoices.
183
187
  custom_field_filters: nil,
184
- # If provided, will create this alert for this specific customer. To create an
185
- # alert for all customers, do not specify a `customer_id`.
188
+ # If provided, will create this threshold notification for this specific customer.
189
+ # To create a notification for all customers, do not specify a `customer_id`.
186
190
  customer_id: nil,
187
- # If true, the alert will evaluate immediately on customers that already meet the
188
- # alert threshold. If false, it will only evaluate on future customers that
189
- # trigger the alert threshold. Defaults to true.
191
+ # If true, the threshold notification will evaluate immediately on customers that
192
+ # already meet the notification threshold. If false, it will only evaluate on
193
+ # future customers that trigger the threshold. Defaults to true.
190
194
  evaluate_on_create: nil,
191
- # Only present for `spend_threshold_reached` alerts. Scope alert to a specific
192
- # group key on individual line items.
195
+ # Only present for `spend_threshold_reached` notifications. Scope notification to
196
+ # a specific group key on individual line items.
193
197
  group_values: nil,
194
- # Only supported for invoice_total_reached alerts. A list of invoice types to
195
- # evaluate.
198
+ # Only supported for invoice_total_reached threshold notifications. A list of
199
+ # invoice types to evaluate.
196
200
  invoice_types_filter: nil,
197
- # If provided, will create this alert for this specific plan. To create an alert
198
- # for all customers, do not specify a `plan_id`.
201
+ # If provided, will create this threshold notification for this specific plan. To
202
+ # create a notification for all customers, do not specify a `plan_id`.
199
203
  plan_id: nil,
200
204
  # Prevents the creation of duplicates. If a request to create a record is made
201
205
  # with a previously used uniqueness key, a new record will not be created and the
@@ -233,7 +237,7 @@ module MetronomeSDK
233
237
  def to_hash
234
238
  end
235
239
 
236
- # Type of the alert
240
+ # Type of the threshold notification
237
241
  module AlertType
238
242
  extend MetronomeSDK::Internal::Type::Enum
239
243
 
@@ -1469,6 +1469,11 @@ module MetronomeSDK
1469
1469
  :ANROK,
1470
1470
  MetronomeSDK::V1::ContractAmendParams::Commit::PaymentGateConfig::TaxType::TaggedSymbol
1471
1471
  )
1472
+ AVALARA =
1473
+ T.let(
1474
+ :AVALARA,
1475
+ MetronomeSDK::V1::ContractAmendParams::Commit::PaymentGateConfig::TaxType::TaggedSymbol
1476
+ )
1472
1477
  PRECALCULATED =
1473
1478
  T.let(
1474
1479
  :PRECALCULATED,
@@ -2011,6 +2011,11 @@ module MetronomeSDK
2011
2011
  :ANROK,
2012
2012
  MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::TaxType::TaggedSymbol
2013
2013
  )
2014
+ AVALARA =
2015
+ T.let(
2016
+ :AVALARA,
2017
+ MetronomeSDK::V1::ContractCreateParams::Commit::PaymentGateConfig::TaxType::TaggedSymbol
2018
+ )
2014
2019
  PRECALCULATED =
2015
2020
  T.let(
2016
2021
  :PRECALCULATED,
@@ -2888,7 +2893,9 @@ module MetronomeSDK
2888
2893
 
2889
2894
  sig do
2890
2895
  returns(
2891
- MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Parent
2896
+ T.nilable(
2897
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Parent
2898
+ )
2892
2899
  )
2893
2900
  end
2894
2901
  attr_reader :parent
@@ -2901,20 +2908,116 @@ module MetronomeSDK
2901
2908
  end
2902
2909
  attr_writer :parent
2903
2910
 
2911
+ sig do
2912
+ returns(
2913
+ T.nilable(
2914
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior
2915
+ )
2916
+ )
2917
+ end
2918
+ attr_reader :parent_behavior
2919
+
2920
+ sig do
2921
+ params(
2922
+ parent_behavior:
2923
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior::OrHash
2924
+ ).void
2925
+ end
2926
+ attr_writer :parent_behavior
2927
+
2928
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
2929
+ # invoice charges
2930
+ #
2931
+ # **SELF**: The child pays for its own invoice charges
2932
+ #
2933
+ # **PARENT**: The parent pays for the child's invoice charges
2934
+ sig do
2935
+ returns(
2936
+ T.nilable(
2937
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Payer::OrSymbol
2938
+ )
2939
+ )
2940
+ end
2941
+ attr_reader :payer
2942
+
2943
+ sig do
2944
+ params(
2945
+ payer:
2946
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Payer::OrSymbol
2947
+ ).void
2948
+ end
2949
+ attr_writer :payer
2950
+
2951
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
2952
+ # on the parent's invoices.
2953
+ #
2954
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
2955
+ # consolidated invoices
2956
+ #
2957
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
2958
+ # consolidated invoices
2959
+ sig do
2960
+ returns(
2961
+ T.nilable(
2962
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::UsageStatementBehavior::OrSymbol
2963
+ )
2964
+ )
2965
+ end
2966
+ attr_reader :usage_statement_behavior
2967
+
2968
+ sig do
2969
+ params(
2970
+ usage_statement_behavior:
2971
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::UsageStatementBehavior::OrSymbol
2972
+ ).void
2973
+ end
2974
+ attr_writer :usage_statement_behavior
2975
+
2904
2976
  sig do
2905
2977
  params(
2906
2978
  parent:
2907
- MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Parent::OrHash
2979
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Parent::OrHash,
2980
+ parent_behavior:
2981
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior::OrHash,
2982
+ payer:
2983
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Payer::OrSymbol,
2984
+ usage_statement_behavior:
2985
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::UsageStatementBehavior::OrSymbol
2908
2986
  ).returns(T.attached_class)
2909
2987
  end
2910
- def self.new(parent:)
2988
+ def self.new(
2989
+ parent: nil,
2990
+ parent_behavior: nil,
2991
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
2992
+ # invoice charges
2993
+ #
2994
+ # **SELF**: The child pays for its own invoice charges
2995
+ #
2996
+ # **PARENT**: The parent pays for the child's invoice charges
2997
+ payer: nil,
2998
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
2999
+ # on the parent's invoices.
3000
+ #
3001
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
3002
+ # consolidated invoices
3003
+ #
3004
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
3005
+ # consolidated invoices
3006
+ usage_statement_behavior: nil
3007
+ )
2911
3008
  end
2912
3009
 
2913
3010
  sig do
2914
3011
  override.returns(
2915
3012
  {
2916
3013
  parent:
2917
- MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Parent
3014
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Parent,
3015
+ parent_behavior:
3016
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior,
3017
+ payer:
3018
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Payer::OrSymbol,
3019
+ usage_statement_behavior:
3020
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::UsageStatementBehavior::OrSymbol
2918
3021
  }
2919
3022
  )
2920
3023
  end
@@ -2950,6 +3053,192 @@ module MetronomeSDK
2950
3053
  def to_hash
2951
3054
  end
2952
3055
  end
3056
+
3057
+ class ParentBehavior < MetronomeSDK::Internal::Type::BaseModel
3058
+ OrHash =
3059
+ T.type_alias do
3060
+ T.any(
3061
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior,
3062
+ MetronomeSDK::Internal::AnyHash
3063
+ )
3064
+ end
3065
+
3066
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
3067
+ # generated by the parent in a customer hierarchy
3068
+ #
3069
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
3070
+ # to the consolidated invoice
3071
+ #
3072
+ # **NONE**: Do not generate consolidated invoices
3073
+ sig do
3074
+ returns(
3075
+ T.nilable(
3076
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::OrSymbol
3077
+ )
3078
+ )
3079
+ end
3080
+ attr_reader :invoice_consolidation_type
3081
+
3082
+ sig do
3083
+ params(
3084
+ invoice_consolidation_type:
3085
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::OrSymbol
3086
+ ).void
3087
+ end
3088
+ attr_writer :invoice_consolidation_type
3089
+
3090
+ sig do
3091
+ params(
3092
+ invoice_consolidation_type:
3093
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::OrSymbol
3094
+ ).returns(T.attached_class)
3095
+ end
3096
+ def self.new(
3097
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
3098
+ # generated by the parent in a customer hierarchy
3099
+ #
3100
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
3101
+ # to the consolidated invoice
3102
+ #
3103
+ # **NONE**: Do not generate consolidated invoices
3104
+ invoice_consolidation_type: nil
3105
+ )
3106
+ end
3107
+
3108
+ sig do
3109
+ override.returns(
3110
+ {
3111
+ invoice_consolidation_type:
3112
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::OrSymbol
3113
+ }
3114
+ )
3115
+ end
3116
+ def to_hash
3117
+ end
3118
+
3119
+ # Account hierarchy M3 - Indicates the desired behavior of consolidated invoices
3120
+ # generated by the parent in a customer hierarchy
3121
+ #
3122
+ # **CONCATENATE**: Statements on the invoices of child customers will be appended
3123
+ # to the consolidated invoice
3124
+ #
3125
+ # **NONE**: Do not generate consolidated invoices
3126
+ module InvoiceConsolidationType
3127
+ extend MetronomeSDK::Internal::Type::Enum
3128
+
3129
+ TaggedSymbol =
3130
+ T.type_alias do
3131
+ T.all(
3132
+ Symbol,
3133
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior::InvoiceConsolidationType
3134
+ )
3135
+ end
3136
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3137
+
3138
+ CONCATENATE =
3139
+ T.let(
3140
+ :CONCATENATE,
3141
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
3142
+ )
3143
+ NONE =
3144
+ T.let(
3145
+ :NONE,
3146
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
3147
+ )
3148
+
3149
+ sig do
3150
+ override.returns(
3151
+ T::Array[
3152
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::ParentBehavior::InvoiceConsolidationType::TaggedSymbol
3153
+ ]
3154
+ )
3155
+ end
3156
+ def self.values
3157
+ end
3158
+ end
3159
+ end
3160
+
3161
+ # Account hierarchy M3 - Indicates which customer should pay for the child's
3162
+ # invoice charges
3163
+ #
3164
+ # **SELF**: The child pays for its own invoice charges
3165
+ #
3166
+ # **PARENT**: The parent pays for the child's invoice charges
3167
+ module Payer
3168
+ extend MetronomeSDK::Internal::Type::Enum
3169
+
3170
+ TaggedSymbol =
3171
+ T.type_alias do
3172
+ T.all(
3173
+ Symbol,
3174
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Payer
3175
+ )
3176
+ end
3177
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3178
+
3179
+ SELF =
3180
+ T.let(
3181
+ :SELF,
3182
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Payer::TaggedSymbol
3183
+ )
3184
+ PARENT =
3185
+ T.let(
3186
+ :PARENT,
3187
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Payer::TaggedSymbol
3188
+ )
3189
+
3190
+ sig do
3191
+ override.returns(
3192
+ T::Array[
3193
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::Payer::TaggedSymbol
3194
+ ]
3195
+ )
3196
+ end
3197
+ def self.values
3198
+ end
3199
+ end
3200
+
3201
+ # Account hierarchy M3 - Indicates the behavior of the child's invoice statements
3202
+ # on the parent's invoices.
3203
+ #
3204
+ # **CONSOLIDATE**: Child's invoice statements will be added to parent's
3205
+ # consolidated invoices
3206
+ #
3207
+ # **SEPARATE**: Child's invoice statements will appear not appear on parent's
3208
+ # consolidated invoices
3209
+ module UsageStatementBehavior
3210
+ extend MetronomeSDK::Internal::Type::Enum
3211
+
3212
+ TaggedSymbol =
3213
+ T.type_alias do
3214
+ T.all(
3215
+ Symbol,
3216
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::UsageStatementBehavior
3217
+ )
3218
+ end
3219
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
3220
+
3221
+ CONSOLIDATE =
3222
+ T.let(
3223
+ :CONSOLIDATE,
3224
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::UsageStatementBehavior::TaggedSymbol
3225
+ )
3226
+ SEPARATE =
3227
+ T.let(
3228
+ :SEPARATE,
3229
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::UsageStatementBehavior::TaggedSymbol
3230
+ )
3231
+
3232
+ sig do
3233
+ override.returns(
3234
+ T::Array[
3235
+ MetronomeSDK::V1::ContractCreateParams::HierarchyConfiguration::UsageStatementBehavior::TaggedSymbol
3236
+ ]
3237
+ )
3238
+ end
3239
+ def self.values
3240
+ end
3241
+ end
2953
3242
  end
2954
3243
 
2955
3244
  # Defaults to LOWEST_MULTIPLIER, which applies the greatest discount to list
@@ -4499,7 +4788,9 @@ module MetronomeSDK
4499
4788
  sig { returns(String) }
4500
4789
  attr_accessor :subscription_id
4501
4790
 
4502
- # If set to POOLED, allocation added per seat is pooled across the account.
4791
+ # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
4792
+ # If set to INDIVIDUAL, each seat in the subscription will have its own
4793
+ # allocation.
4503
4794
  sig do
4504
4795
  returns(
4505
4796
  T.nilable(
@@ -4531,7 +4822,9 @@ module MetronomeSDK
4531
4822
  apply_seat_increase_config:,
4532
4823
  # ID of the subscription to configure on the recurring commit/credit.
4533
4824
  subscription_id:,
4534
- # If set to POOLED, allocation added per seat is pooled across the account.
4825
+ # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
4826
+ # If set to INDIVIDUAL, each seat in the subscription will have its own
4827
+ # allocation.
4535
4828
  allocation: nil
4536
4829
  )
4537
4830
  end
@@ -4575,7 +4868,9 @@ module MetronomeSDK
4575
4868
  end
4576
4869
  end
4577
4870
 
4578
- # If set to POOLED, allocation added per seat is pooled across the account.
4871
+ # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
4872
+ # If set to INDIVIDUAL, each seat in the subscription will have its own
4873
+ # allocation.
4579
4874
  module Allocation
4580
4875
  extend MetronomeSDK::Internal::Type::Enum
4581
4876
 
@@ -5240,7 +5535,9 @@ module MetronomeSDK
5240
5535
  sig { returns(String) }
5241
5536
  attr_accessor :subscription_id
5242
5537
 
5243
- # If set to POOLED, allocation added per seat is pooled across the account.
5538
+ # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
5539
+ # If set to INDIVIDUAL, each seat in the subscription will have its own
5540
+ # allocation.
5244
5541
  sig do
5245
5542
  returns(
5246
5543
  T.nilable(
@@ -5272,7 +5569,9 @@ module MetronomeSDK
5272
5569
  apply_seat_increase_config:,
5273
5570
  # ID of the subscription to configure on the recurring commit/credit.
5274
5571
  subscription_id:,
5275
- # If set to POOLED, allocation added per seat is pooled across the account.
5572
+ # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
5573
+ # If set to INDIVIDUAL, each seat in the subscription will have its own
5574
+ # allocation.
5276
5575
  allocation: nil
5277
5576
  )
5278
5577
  end
@@ -5316,7 +5615,9 @@ module MetronomeSDK
5316
5615
  end
5317
5616
  end
5318
5617
 
5319
- # If set to POOLED, allocation added per seat is pooled across the account.
5618
+ # If set to POOLED, allocation added per seat is pooled across the account. (BETA)
5619
+ # If set to INDIVIDUAL, each seat in the subscription will have its own
5620
+ # allocation.
5320
5621
  module Allocation
5321
5622
  extend MetronomeSDK::Internal::Type::Enum
5322
5623
 
@@ -6225,6 +6526,11 @@ module MetronomeSDK
6225
6526
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6226
6527
  # directly on the subscription. `initial_quantity` must be provided with this
6227
6528
  # option. Compatible with recurring commits/credits that use POOLED allocation.
6529
+ # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
6530
+ # add user_123) to increment and decrement a subscription quantity, rather than
6531
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
6532
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
6533
+ # provided with this option.
6228
6534
  sig do
6229
6535
  returns(
6230
6536
  T.nilable(
@@ -6295,6 +6601,11 @@ module MetronomeSDK
6295
6601
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6296
6602
  # directly on the subscription. `initial_quantity` must be provided with this
6297
6603
  # option. Compatible with recurring commits/credits that use POOLED allocation.
6604
+ # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
6605
+ # add user_123) to increment and decrement a subscription quantity, rather than
6606
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
6607
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
6608
+ # provided with this option.
6298
6609
  quantity_management_mode: nil,
6299
6610
  # Inclusive start time for the subscription. If not provided, defaults to contract
6300
6611
  # start date
@@ -6573,6 +6884,11 @@ module MetronomeSDK
6573
6884
  # QUANTITY_ONLY. **QUANTITY_ONLY**: The subscription quantity is specified
6574
6885
  # directly on the subscription. `initial_quantity` must be provided with this
6575
6886
  # option. Compatible with recurring commits/credits that use POOLED allocation.
6887
+ # **SEAT_BASED**: (BETA) Use when you want to pass specific seat identifiers (e.g.
6888
+ # add user_123) to increment and decrement a subscription quantity, rather than
6889
+ # directly providing the quantity. You must use a **SEAT_BASED** subscription to
6890
+ # use a linked recurring credit with an allocation per seat. `seat_config` must be
6891
+ # provided with this option.
6576
6892
  module QuantityManagementMode
6577
6893
  extend MetronomeSDK::Internal::Type::Enum
6578
6894
 
@@ -38,6 +38,13 @@ module MetronomeSDK
38
38
  sig { params(effective_before: Time).void }
39
39
  attr_writer :effective_before
40
40
 
41
+ # Exclude balances with zero amounts from the response.
42
+ sig { returns(T.nilable(T::Boolean)) }
43
+ attr_reader :exclude_zero_balances
44
+
45
+ sig { params(exclude_zero_balances: T::Boolean).void }
46
+ attr_writer :exclude_zero_balances
47
+
41
48
  # Include archived credits and credits from archived contracts.
42
49
  sig { returns(T.nilable(T::Boolean)) }
43
50
  attr_reader :include_archived
@@ -95,6 +102,7 @@ module MetronomeSDK
95
102
  id: String,
96
103
  covering_date: Time,
97
104
  effective_before: Time,
105
+ exclude_zero_balances: T::Boolean,
98
106
  include_archived: T::Boolean,
99
107
  include_balance: T::Boolean,
100
108
  include_contract_balances: T::Boolean,
@@ -112,6 +120,8 @@ module MetronomeSDK
112
120
  covering_date: nil,
113
121
  # Include only balances that have any access before the provided date (exclusive)
114
122
  effective_before: nil,
123
+ # Exclude balances with zero amounts from the response.
124
+ exclude_zero_balances: nil,
115
125
  # Include archived credits and credits from archived contracts.
116
126
  include_archived: nil,
117
127
  # Include the balance of credits and commits in the response. Setting this flag
@@ -139,6 +149,7 @@ module MetronomeSDK
139
149
  id: String,
140
150
  covering_date: Time,
141
151
  effective_before: Time,
152
+ exclude_zero_balances: T::Boolean,
142
153
  include_archived: T::Boolean,
143
154
  include_balance: T::Boolean,
144
155
  include_contract_balances: T::Boolean,