metronome-sdk 2.0.0 → 2.2.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 (151) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +75 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +7 -1
  5. data/lib/metronome_sdk/internal/transport/pooled_net_requester.rb +38 -26
  6. data/lib/metronome_sdk/internal/util.rb +7 -2
  7. data/lib/metronome_sdk/models/contract.rb +1 -0
  8. data/lib/metronome_sdk/models/contract_v2.rb +69 -23
  9. data/lib/metronome_sdk/models/hierarchy_configuration.rb +45 -21
  10. data/lib/metronome_sdk/models/subscription.rb +38 -1
  11. data/lib/metronome_sdk/models/v1/alert_create_params.rb +33 -1
  12. data/lib/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rb +10 -1
  13. data/lib/metronome_sdk/models/v1/contract_create_params.rb +195 -29
  14. data/lib/metronome_sdk/models/v1/contract_list_balances_params.rb +9 -1
  15. data/lib/metronome_sdk/models/v1/customer_create_params.rb +105 -3
  16. data/lib/metronome_sdk/models/v1/customer_preview_events_params.rb +14 -10
  17. data/lib/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rb +1 -0
  18. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb +1 -0
  19. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_response.rb +111 -0
  20. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +32 -1
  21. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +21 -2
  22. data/lib/metronome_sdk/models/v1/customers/billing_config_delete_params.rb +1 -0
  23. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rb +1 -0
  24. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +21 -2
  25. data/lib/metronome_sdk/models/v1/customers/commit_create_params.rb +1 -1
  26. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +34 -1
  27. data/lib/metronome_sdk/models/v1/customers/invoice.rb +144 -4
  28. data/lib/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rb +8 -1
  29. data/lib/metronome_sdk/models/v1/payment.rb +7 -1
  30. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rb +74 -0
  31. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rb +12 -0
  32. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_params.rb +74 -0
  33. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_response.rb +31 -0
  34. data/lib/metronome_sdk/models/v1/settings/billing_provider_list_params.rb +26 -0
  35. data/lib/metronome_sdk/models/v1/settings/billing_provider_list_response.rb +105 -0
  36. data/lib/metronome_sdk/models/v1/usage_search_response.rb +6 -3
  37. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +17 -1
  38. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +17 -1
  39. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +300 -10
  40. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +177 -3
  41. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  42. data/lib/metronome_sdk/resources/v1/contracts.rb +10 -4
  43. data/lib/metronome_sdk/resources/v1/credit_grants.rb +10 -5
  44. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +3 -1
  45. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +12 -5
  46. data/lib/metronome_sdk/resources/v1/customers/commits.rb +2 -1
  47. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +2 -1
  48. data/lib/metronome_sdk/resources/v1/customers/plans.rb +8 -4
  49. data/lib/metronome_sdk/resources/v1/customers.rb +12 -8
  50. data/lib/metronome_sdk/resources/v1/plans.rb +8 -4
  51. data/lib/metronome_sdk/resources/v1/settings/billing_providers.rb +75 -0
  52. data/lib/metronome_sdk/resources/v1/settings.rb +57 -0
  53. data/lib/metronome_sdk/resources/v1.rb +4 -0
  54. data/lib/metronome_sdk/resources/v2/contracts.rb +10 -2
  55. data/lib/metronome_sdk/version.rb +1 -1
  56. data/lib/metronome_sdk.rb +11 -0
  57. data/manifest.yaml +2 -0
  58. data/rbi/metronome_sdk/internal/transport/base_client.rbi +5 -0
  59. data/rbi/metronome_sdk/internal/transport/pooled_net_requester.rbi +6 -2
  60. data/rbi/metronome_sdk/internal/type/base_model.rbi +8 -4
  61. data/rbi/metronome_sdk/models/contract.rbi +5 -0
  62. data/rbi/metronome_sdk/models/contract_v2.rbi +122 -33
  63. data/rbi/metronome_sdk/models/hierarchy_configuration.rbi +63 -27
  64. data/rbi/metronome_sdk/models/subscription.rbi +64 -3
  65. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +69 -0
  66. data/rbi/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbi +13 -0
  67. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +360 -33
  68. data/rbi/metronome_sdk/models/v1/contract_list_balances_params.rbi +11 -0
  69. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +215 -0
  70. data/rbi/metronome_sdk/models/v1/customer_preview_events_params.rbi +18 -11
  71. data/rbi/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbi +5 -0
  72. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbi +5 -0
  73. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbi +281 -0
  74. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +67 -0
  75. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +29 -0
  76. data/rbi/metronome_sdk/models/v1/customers/billing_config_delete_params.rbi +5 -0
  77. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbi +5 -0
  78. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +24 -0
  79. data/rbi/metronome_sdk/models/v1/customers/commit_create_params.rbi +2 -2
  80. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +76 -0
  81. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +268 -0
  82. data/rbi/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbi +9 -0
  83. data/rbi/metronome_sdk/models/v1/payment.rbi +11 -3
  84. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbi +128 -0
  85. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rbi +25 -0
  86. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_params.rbi +162 -0
  87. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_response.rbi +75 -0
  88. data/rbi/metronome_sdk/models/v1/settings/billing_provider_list_params.rbi +50 -0
  89. data/rbi/metronome_sdk/models/v1/settings/billing_provider_list_response.rbi +245 -0
  90. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +11 -3
  91. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +22 -0
  92. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +22 -0
  93. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +630 -9
  94. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +367 -3
  95. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -0
  96. data/rbi/metronome_sdk/resources/v1/contracts.rbi +13 -1
  97. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +10 -5
  98. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +5 -0
  99. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +14 -4
  100. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +3 -2
  101. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +2 -1
  102. data/rbi/metronome_sdk/resources/v1/customers/plans.rbi +8 -4
  103. data/rbi/metronome_sdk/resources/v1/customers.rbi +19 -9
  104. data/rbi/metronome_sdk/resources/v1/plans.rbi +8 -4
  105. data/rbi/metronome_sdk/resources/v1/settings/billing_providers.rbi +63 -0
  106. data/rbi/metronome_sdk/resources/v1/settings.rbi +51 -0
  107. data/rbi/metronome_sdk/resources/v1.rbi +3 -0
  108. data/rbi/metronome_sdk/resources/v2/contracts.rbi +12 -0
  109. data/sig/metronome_sdk/internal/transport/base_client.rbs +2 -0
  110. data/sig/metronome_sdk/internal/transport/pooled_net_requester.rbs +4 -1
  111. data/sig/metronome_sdk/models/contract.rbs +2 -0
  112. data/sig/metronome_sdk/models/contract_v2.rbs +33 -6
  113. data/sig/metronome_sdk/models/subscription.rbs +22 -3
  114. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +28 -0
  115. data/sig/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbs +7 -0
  116. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +104 -0
  117. data/sig/metronome_sdk/models/v1/contract_list_balances_params.rbs +7 -0
  118. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +85 -0
  119. data/sig/metronome_sdk/models/v1/customer_retrieve_billing_configurations_response.rbs +2 -0
  120. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_params.rbs +2 -0
  121. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbs +119 -0
  122. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +26 -1
  123. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +16 -0
  124. data/sig/metronome_sdk/models/v1/customers/billing_config_delete_params.rbs +2 -0
  125. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_params.rbs +2 -0
  126. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +14 -0
  127. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +32 -0
  128. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +130 -0
  129. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbs +7 -0
  130. data/sig/metronome_sdk/models/v1/payment.rbs +10 -3
  131. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbs +61 -0
  132. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_response.rbs +13 -0
  133. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_params.rbs +66 -0
  134. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_response.rbs +34 -0
  135. data/sig/metronome_sdk/models/v1/settings/billing_provider_list_params.rbs +28 -0
  136. data/sig/metronome_sdk/models/v1/settings/billing_provider_list_response.rbs +102 -0
  137. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +3 -1
  138. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +14 -0
  139. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +14 -0
  140. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +234 -3
  141. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +131 -3
  142. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  143. data/sig/metronome_sdk/resources/v1/contracts.rbs +3 -0
  144. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  145. data/sig/metronome_sdk/resources/v1/customers/billing_config.rbs +2 -0
  146. data/sig/metronome_sdk/resources/v1/customers.rbs +2 -1
  147. data/sig/metronome_sdk/resources/v1/settings/billing_providers.rbs +23 -0
  148. data/sig/metronome_sdk/resources/v1/settings.rbs +20 -0
  149. data/sig/metronome_sdk/resources/v1.rbs +2 -0
  150. data/sig/metronome_sdk/resources/v2/contracts.rbs +4 -0
  151. metadata +29 -2
@@ -66,6 +66,25 @@ module MetronomeSDK
66
66
  end
67
67
  attr_writer :plans_or_contracts
68
68
 
69
+ # Only allowed for `low_remaining_seat_balance_reached` notifications. This
70
+ # filters alerts by the seat group key-value pair.
71
+ sig do
72
+ returns(
73
+ T.nilable(
74
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::SeatFilter
75
+ )
76
+ )
77
+ end
78
+ attr_reader :seat_filter
79
+
80
+ sig do
81
+ params(
82
+ seat_filter:
83
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::SeatFilter::OrHash
84
+ ).void
85
+ end
86
+ attr_writer :seat_filter
87
+
69
88
  sig do
70
89
  params(
71
90
  alert_id: String,
@@ -76,6 +95,8 @@ module MetronomeSDK
76
95
  ],
77
96
  plans_or_contracts:
78
97
  MetronomeSDK::V1::Customers::AlertRetrieveParams::PlansOrContracts::OrSymbol,
98
+ seat_filter:
99
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::SeatFilter::OrHash,
79
100
  request_options: MetronomeSDK::RequestOptions::OrHash
80
101
  ).returns(T.attached_class)
81
102
  end
@@ -90,6 +111,9 @@ module MetronomeSDK
90
111
  # When parallel threshold notifications are enabled during migration, this flag
91
112
  # denotes whether to fetch notifications for plans or contracts.
92
113
  plans_or_contracts: nil,
114
+ # Only allowed for `low_remaining_seat_balance_reached` notifications. This
115
+ # filters alerts by the seat group key-value pair.
116
+ seat_filter: nil,
93
117
  request_options: {}
94
118
  )
95
119
  end
@@ -105,6 +129,8 @@ module MetronomeSDK
105
129
  ],
106
130
  plans_or_contracts:
107
131
  MetronomeSDK::V1::Customers::AlertRetrieveParams::PlansOrContracts::OrSymbol,
132
+ seat_filter:
133
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::SeatFilter,
108
134
  request_options: MetronomeSDK::RequestOptions
109
135
  }
110
136
  )
@@ -173,6 +199,47 @@ module MetronomeSDK
173
199
  def self.values
174
200
  end
175
201
  end
202
+
203
+ class SeatFilter < MetronomeSDK::Internal::Type::BaseModel
204
+ OrHash =
205
+ T.type_alias do
206
+ T.any(
207
+ MetronomeSDK::V1::Customers::AlertRetrieveParams::SeatFilter,
208
+ MetronomeSDK::Internal::AnyHash
209
+ )
210
+ end
211
+
212
+ # The seat group key (e.g., "seat_id", "user_id")
213
+ sig { returns(String) }
214
+ attr_accessor :seat_group_key
215
+
216
+ # The specific seat identifier to filter by
217
+ sig { returns(String) }
218
+ attr_accessor :seat_group_value
219
+
220
+ # Only allowed for `low_remaining_seat_balance_reached` notifications. This
221
+ # filters alerts by the seat group key-value pair.
222
+ sig do
223
+ params(seat_group_key: String, seat_group_value: String).returns(
224
+ T.attached_class
225
+ )
226
+ end
227
+ def self.new(
228
+ # The seat group key (e.g., "seat_id", "user_id")
229
+ seat_group_key:,
230
+ # The specific seat identifier to filter by
231
+ seat_group_value:
232
+ )
233
+ end
234
+
235
+ sig do
236
+ override.returns(
237
+ { seat_group_key: String, seat_group_value: String }
238
+ )
239
+ end
240
+ def to_hash
241
+ end
242
+ end
176
243
  end
177
244
  end
178
245
  end
@@ -31,6 +31,18 @@ module MetronomeSDK
31
31
  sig { returns(String) }
32
32
  attr_accessor :billing_provider_customer_id
33
33
 
34
+ sig { returns(T.nilable(String)) }
35
+ attr_reader :aws_customer_account_id
36
+
37
+ sig { params(aws_customer_account_id: String).void }
38
+ attr_writer :aws_customer_account_id
39
+
40
+ sig { returns(T.nilable(String)) }
41
+ attr_reader :aws_customer_id
42
+
43
+ sig { params(aws_customer_id: String).void }
44
+ attr_writer :aws_customer_id
45
+
34
46
  sig { returns(T.nilable(String)) }
35
47
  attr_reader :aws_product_code
36
48
 
@@ -54,6 +66,8 @@ module MetronomeSDK
54
66
  end
55
67
  attr_writer :aws_region
56
68
 
69
+ # The collection method for the customer's invoices. NOTE:
70
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
57
71
  sig do
58
72
  returns(
59
73
  T.nilable(
@@ -77,6 +91,8 @@ module MetronomeSDK
77
91
  billing_provider_type:
78
92
  MetronomeSDK::V1::Customers::BillingConfigCreateParams::BillingProviderType::OrSymbol,
79
93
  billing_provider_customer_id: String,
94
+ aws_customer_account_id: String,
95
+ aws_customer_id: String,
80
96
  aws_product_code: String,
81
97
  aws_region:
82
98
  MetronomeSDK::V1::Customers::BillingConfigCreateParams::AwsRegion::OrSymbol,
@@ -91,8 +107,12 @@ module MetronomeSDK
91
107
  # The customer ID in the billing provider's system. For Azure, this is the
92
108
  # subscription ID.
93
109
  billing_provider_customer_id:,
110
+ aws_customer_account_id: nil,
111
+ aws_customer_id: nil,
94
112
  aws_product_code: nil,
95
113
  aws_region: nil,
114
+ # The collection method for the customer's invoices. NOTE:
115
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
96
116
  stripe_collection_method: nil,
97
117
  request_options: {}
98
118
  )
@@ -105,6 +125,8 @@ module MetronomeSDK
105
125
  billing_provider_type:
106
126
  MetronomeSDK::V1::Customers::BillingConfigCreateParams::BillingProviderType::OrSymbol,
107
127
  billing_provider_customer_id: String,
128
+ aws_customer_account_id: String,
129
+ aws_customer_id: String,
108
130
  aws_product_code: String,
109
131
  aws_region:
110
132
  MetronomeSDK::V1::Customers::BillingConfigCreateParams::AwsRegion::OrSymbol,
@@ -169,6 +191,11 @@ module MetronomeSDK
169
191
  :gcp_marketplace,
170
192
  MetronomeSDK::V1::Customers::BillingConfigCreateParams::BillingProviderType::TaggedSymbol
171
193
  )
194
+ METRONOME =
195
+ T.let(
196
+ :metronome,
197
+ MetronomeSDK::V1::Customers::BillingConfigCreateParams::BillingProviderType::TaggedSymbol
198
+ )
172
199
 
173
200
  sig do
174
201
  override.returns(
@@ -330,6 +357,8 @@ module MetronomeSDK
330
357
  end
331
358
  end
332
359
 
360
+ # The collection method for the customer's invoices. NOTE:
361
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
333
362
  module StripeCollectionMethod
334
363
  extend MetronomeSDK::Internal::Type::Enum
335
364
 
@@ -106,6 +106,11 @@ module MetronomeSDK
106
106
  :gcp_marketplace,
107
107
  MetronomeSDK::V1::Customers::BillingConfigDeleteParams::BillingProviderType::TaggedSymbol
108
108
  )
109
+ METRONOME =
110
+ T.let(
111
+ :metronome,
112
+ MetronomeSDK::V1::Customers::BillingConfigDeleteParams::BillingProviderType::TaggedSymbol
113
+ )
109
114
 
110
115
  sig do
111
116
  override.returns(
@@ -106,6 +106,11 @@ module MetronomeSDK
106
106
  :gcp_marketplace,
107
107
  MetronomeSDK::V1::Customers::BillingConfigRetrieveParams::BillingProviderType::TaggedSymbol
108
108
  )
109
+ METRONOME =
110
+ T.let(
111
+ :metronome,
112
+ MetronomeSDK::V1::Customers::BillingConfigRetrieveParams::BillingProviderType::TaggedSymbol
113
+ )
109
114
 
110
115
  sig do
111
116
  override.returns(
@@ -57,6 +57,18 @@ module MetronomeSDK
57
57
  )
58
58
  end
59
59
 
60
+ sig { returns(T.nilable(String)) }
61
+ attr_reader :aws_customer_account_id
62
+
63
+ sig { params(aws_customer_account_id: String).void }
64
+ attr_writer :aws_customer_account_id
65
+
66
+ sig { returns(T.nilable(String)) }
67
+ attr_reader :aws_customer_id
68
+
69
+ sig { params(aws_customer_id: String).void }
70
+ attr_writer :aws_customer_id
71
+
60
72
  # Contract expiration date for the customer. The expected format is RFC 3339 and
61
73
  # can be retrieved from
62
74
  # [AWS's GetEntitlements API](https://docs.aws.amazon.com/marketplaceentitlement/latest/APIReference/API_GetEntitlements.html).
@@ -143,6 +155,8 @@ module MetronomeSDK
143
155
  sig { params(billing_provider_customer_id: String).void }
144
156
  attr_writer :billing_provider_customer_id
145
157
 
158
+ # The collection method for the customer's invoices. NOTE:
159
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
146
160
  sig do
147
161
  returns(
148
162
  T.nilable(
@@ -162,6 +176,8 @@ module MetronomeSDK
162
176
 
163
177
  sig do
164
178
  params(
179
+ aws_customer_account_id: String,
180
+ aws_customer_id: String,
165
181
  aws_expiration_date: Time,
166
182
  aws_is_subscription_product: T::Boolean,
167
183
  aws_product_code: String,
@@ -178,6 +194,8 @@ module MetronomeSDK
178
194
  ).returns(T.attached_class)
179
195
  end
180
196
  def self.new(
197
+ aws_customer_account_id: nil,
198
+ aws_customer_id: nil,
181
199
  # Contract expiration date for the customer. The expected format is RFC 3339 and
182
200
  # can be retrieved from
183
201
  # [AWS's GetEntitlements API](https://docs.aws.amazon.com/marketplaceentitlement/latest/APIReference/API_GetEntitlements.html).
@@ -197,6 +215,8 @@ module MetronomeSDK
197
215
  azure_start_date: nil,
198
216
  azure_subscription_status: nil,
199
217
  billing_provider_customer_id: nil,
218
+ # The collection method for the customer's invoices. NOTE:
219
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
200
220
  stripe_collection_method: nil
201
221
  )
202
222
  end
@@ -204,6 +224,8 @@ module MetronomeSDK
204
224
  sig do
205
225
  override.returns(
206
226
  {
227
+ aws_customer_account_id: String,
228
+ aws_customer_id: String,
207
229
  aws_expiration_date: Time,
208
230
  aws_is_subscription_product: T::Boolean,
209
231
  aws_product_code: String,
@@ -416,6 +438,8 @@ module MetronomeSDK
416
438
  end
417
439
  end
418
440
 
441
+ # The collection method for the customer's invoices. NOTE:
442
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
419
443
  module StripeCollectionMethod
420
444
  extend MetronomeSDK::Internal::Type::Enum
421
445
 
@@ -95,7 +95,7 @@ module MetronomeSDK
95
95
 
96
96
  # The contract that this commit will be billed on. This is required for "POSTPAID"
97
97
  # commits and for "PREPAID" commits unless there is no invoice schedule above
98
- # (i.e., the commit is 'free').
98
+ # (i.e., the commit is 'free'), or if do_not_invoice is set to true.
99
99
  sig { returns(T.nilable(String)) }
100
100
  attr_reader :invoice_contract_id
101
101
 
@@ -243,7 +243,7 @@ module MetronomeSDK
243
243
  description: nil,
244
244
  # The contract that this commit will be billed on. This is required for "POSTPAID"
245
245
  # commits and for "PREPAID" commits unless there is no invoice schedule above
246
- # (i.e., the commit is 'free').
246
+ # (i.e., the commit is 'free'), or if do_not_invoice is set to true.
247
247
  invoice_contract_id: nil,
248
248
  # Required for "POSTPAID" commits: the true up invoice will be generated at this
249
249
  # time and only one schedule item is allowed; the total must match
@@ -209,6 +209,25 @@ module MetronomeSDK
209
209
  sig { params(invoice_types_filter: T::Array[String]).void }
210
210
  attr_writer :invoice_types_filter
211
211
 
212
+ # Only present for low_remaining_seat_balance_reached notifications. The seat
213
+ # group key or seat group key-value pair the alert is scoped to.
214
+ sig do
215
+ returns(
216
+ T.nilable(
217
+ MetronomeSDK::V1::Customers::CustomerAlert::Alert::SeatFilter
218
+ )
219
+ )
220
+ end
221
+ attr_reader :seat_filter
222
+
223
+ sig do
224
+ params(
225
+ seat_filter:
226
+ MetronomeSDK::V1::Customers::CustomerAlert::Alert::SeatFilter::OrHash
227
+ ).void
228
+ end
229
+ attr_writer :seat_filter
230
+
212
231
  # Prevents the creation of duplicates. If a request to create a record is made
213
232
  # with a previously used uniqueness key, a new record will not be created and the
214
233
  # request will fail with a 409 error.
@@ -241,6 +260,8 @@ module MetronomeSDK
241
260
  MetronomeSDK::V1::Customers::CustomerAlert::Alert::GroupValue::OrHash
242
261
  ],
243
262
  invoice_types_filter: T::Array[String],
263
+ seat_filter:
264
+ MetronomeSDK::V1::Customers::CustomerAlert::Alert::SeatFilter::OrHash,
244
265
  uniqueness_key: String
245
266
  ).returns(T.attached_class)
246
267
  end
@@ -275,6 +296,9 @@ module MetronomeSDK
275
296
  # Only supported for invoice_total_reached threshold notifications. A list of
276
297
  # invoice types to evaluate.
277
298
  invoice_types_filter: nil,
299
+ # Only present for low_remaining_seat_balance_reached notifications. The seat
300
+ # group key or seat group key-value pair the alert is scoped to.
301
+ seat_filter: nil,
278
302
  # Prevents the creation of duplicates. If a request to create a record is made
279
303
  # with a previously used uniqueness key, a new record will not be created and the
280
304
  # request will fail with a 409 error.
@@ -306,6 +330,8 @@ module MetronomeSDK
306
330
  MetronomeSDK::V1::Customers::CustomerAlert::Alert::GroupValue
307
331
  ],
308
332
  invoice_types_filter: T::Array[String],
333
+ seat_filter:
334
+ MetronomeSDK::V1::Customers::CustomerAlert::Alert::SeatFilter,
309
335
  uniqueness_key: String
310
336
  }
311
337
  )
@@ -431,6 +457,11 @@ module MetronomeSDK
431
457
  :low_remaining_contract_credit_and_commit_balance_reached,
432
458
  MetronomeSDK::V1::Customers::CustomerAlert::Alert::Type::TaggedSymbol
433
459
  )
460
+ LOW_REMAINING_SEAT_BALANCE_REACHED =
461
+ T.let(
462
+ :low_remaining_seat_balance_reached,
463
+ MetronomeSDK::V1::Customers::CustomerAlert::Alert::Type::TaggedSymbol
464
+ )
434
465
  INVOICE_TOTAL_REACHED =
435
466
  T.let(
436
467
  :invoice_total_reached,
@@ -590,6 +621,51 @@ module MetronomeSDK
590
621
  def to_hash
591
622
  end
592
623
  end
624
+
625
+ class SeatFilter < MetronomeSDK::Internal::Type::BaseModel
626
+ OrHash =
627
+ T.type_alias do
628
+ T.any(
629
+ MetronomeSDK::V1::Customers::CustomerAlert::Alert::SeatFilter,
630
+ MetronomeSDK::Internal::AnyHash
631
+ )
632
+ end
633
+
634
+ # The seat group key (e.g., "seat_id", "user_id") that the alert is scoped to.
635
+ sig { returns(String) }
636
+ attr_accessor :seat_group_key
637
+
638
+ # The seat group value that the alert is scoped to.
639
+ sig { returns(T.nilable(String)) }
640
+ attr_reader :seat_group_value
641
+
642
+ sig { params(seat_group_value: String).void }
643
+ attr_writer :seat_group_value
644
+
645
+ # Only present for low_remaining_seat_balance_reached notifications. The seat
646
+ # group key or seat group key-value pair the alert is scoped to.
647
+ sig do
648
+ params(
649
+ seat_group_key: String,
650
+ seat_group_value: String
651
+ ).returns(T.attached_class)
652
+ end
653
+ def self.new(
654
+ # The seat group key (e.g., "seat_id", "user_id") that the alert is scoped to.
655
+ seat_group_key:,
656
+ # The seat group value that the alert is scoped to.
657
+ seat_group_value: nil
658
+ )
659
+ end
660
+
661
+ sig do
662
+ override.returns(
663
+ { seat_group_key: String, seat_group_value: String }
664
+ )
665
+ end
666
+ def to_hash
667
+ end
668
+ end
593
669
  end
594
670
 
595
671
  # The status of the threshold notification. If the notification is archived, null