metronome-sdk 2.1.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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +39 -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 +18 -12
  6. data/lib/metronome_sdk/internal/util.rb +7 -2
  7. data/lib/metronome_sdk/models/contract_v2.rb +29 -2
  8. data/lib/metronome_sdk/models/subscription.rb +32 -5
  9. data/lib/metronome_sdk/models/v1/alert_create_params.rb +33 -1
  10. data/lib/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rb +10 -1
  11. data/lib/metronome_sdk/models/v1/contract_create_params.rb +136 -20
  12. data/lib/metronome_sdk/models/v1/customer_create_params.rb +94 -2
  13. data/lib/metronome_sdk/models/v1/customer_set_billing_configurations_response.rb +111 -0
  14. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +32 -1
  15. data/lib/metronome_sdk/models/v1/customers/billing_config_create_params.rb +15 -1
  16. data/lib/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rb +15 -1
  17. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +33 -1
  18. data/lib/metronome_sdk/models/v1/customers/invoice.rb +20 -2
  19. data/lib/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rb +8 -1
  20. data/lib/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rb +10 -1
  21. data/lib/metronome_sdk/models/v1/settings/billing_provider_create_params.rb +1 -0
  22. data/lib/metronome_sdk/models/v1/usage_search_response.rb +6 -3
  23. data/lib/metronome_sdk/models/v2/contract_edit_commit_params.rb +17 -1
  24. data/lib/metronome_sdk/models/v2/contract_edit_credit_params.rb +17 -1
  25. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +285 -22
  26. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +177 -3
  27. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  28. data/lib/metronome_sdk/resources/v1/contracts.rb +6 -2
  29. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +3 -1
  30. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +5 -1
  31. data/lib/metronome_sdk/resources/v1/customers.rb +5 -3
  32. data/lib/metronome_sdk/resources/v1/settings.rb +3 -1
  33. data/lib/metronome_sdk/resources/v2/contracts.rb +10 -2
  34. data/lib/metronome_sdk/version.rb +1 -1
  35. data/lib/metronome_sdk.rb +3 -0
  36. data/manifest.yaml +2 -0
  37. data/rbi/metronome_sdk/internal/transport/base_client.rbi +5 -0
  38. data/rbi/metronome_sdk/internal/transport/pooled_net_requester.rbi +6 -2
  39. data/rbi/metronome_sdk/internal/type/base_model.rbi +8 -4
  40. data/rbi/metronome_sdk/models/contract_v2.rbi +63 -6
  41. data/rbi/metronome_sdk/models/subscription.rbi +55 -9
  42. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +69 -0
  43. data/rbi/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbi +13 -0
  44. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +288 -24
  45. data/rbi/metronome_sdk/models/v1/customer_create_params.rbi +204 -0
  46. data/rbi/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbi +281 -0
  47. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +67 -0
  48. data/rbi/metronome_sdk/models/v1/customers/billing_config_create_params.rbi +18 -0
  49. data/rbi/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbi +18 -0
  50. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +71 -0
  51. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +32 -0
  52. data/rbi/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbi +9 -0
  53. data/rbi/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbi +13 -0
  54. data/rbi/metronome_sdk/models/v1/settings/billing_provider_create_params.rbi +5 -0
  55. data/rbi/metronome_sdk/models/v1/usage_search_response.rbi +11 -3
  56. data/rbi/metronome_sdk/models/v2/contract_edit_commit_params.rbi +22 -0
  57. data/rbi/metronome_sdk/models/v2/contract_edit_credit_params.rbi +22 -0
  58. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +616 -27
  59. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +367 -3
  60. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -0
  61. data/rbi/metronome_sdk/resources/v1/contracts.rbi +9 -0
  62. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +5 -0
  63. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +6 -0
  64. data/rbi/metronome_sdk/resources/v1/customers.rbi +8 -1
  65. data/rbi/metronome_sdk/resources/v1/settings.rbi +4 -0
  66. data/rbi/metronome_sdk/resources/v2/contracts.rbi +12 -0
  67. data/sig/metronome_sdk/internal/transport/base_client.rbs +2 -0
  68. data/sig/metronome_sdk/internal/transport/pooled_net_requester.rbs +4 -1
  69. data/sig/metronome_sdk/models/contract_v2.rbs +31 -6
  70. data/sig/metronome_sdk/models/subscription.rbs +22 -3
  71. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +28 -0
  72. data/sig/metronome_sdk/models/v1/contract_add_manual_balance_entry_params.rbs +7 -0
  73. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +104 -0
  74. data/sig/metronome_sdk/models/v1/customer_create_params.rbs +83 -0
  75. data/sig/metronome_sdk/models/v1/customer_set_billing_configurations_response.rbs +119 -0
  76. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +26 -1
  77. data/sig/metronome_sdk/models/v1/customers/billing_config_create_params.rbs +14 -0
  78. data/sig/metronome_sdk/models/v1/customers/billing_config_retrieve_response.rbs +14 -0
  79. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +30 -0
  80. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +18 -0
  81. data/sig/metronome_sdk/models/v1/customers/plan_list_price_adjustments_response.rbs +7 -0
  82. data/sig/metronome_sdk/models/v1/setting_upsert_avalara_credentials_params.rbs +8 -1
  83. data/sig/metronome_sdk/models/v1/settings/billing_provider_create_params.rbs +3 -1
  84. data/sig/metronome_sdk/models/v1/usage_search_response.rbs +3 -1
  85. data/sig/metronome_sdk/models/v2/contract_edit_commit_params.rbs +14 -0
  86. data/sig/metronome_sdk/models/v2/contract_edit_credit_params.rbs +14 -0
  87. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +232 -3
  88. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +131 -3
  89. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  90. data/sig/metronome_sdk/resources/v1/contracts.rbs +2 -0
  91. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  92. data/sig/metronome_sdk/resources/v1/customers/billing_config.rbs +2 -0
  93. data/sig/metronome_sdk/resources/v1/customers.rbs +2 -1
  94. data/sig/metronome_sdk/resources/v1/settings.rbs +1 -0
  95. data/sig/metronome_sdk/resources/v2/contracts.rbs +4 -0
  96. metadata +5 -2
@@ -0,0 +1,281 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Models
5
+ module V1
6
+ class CustomerSetBillingConfigurationsResponse < MetronomeSDK::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse,
11
+ MetronomeSDK::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ sig do
16
+ returns(
17
+ T::Array[
18
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data
19
+ ]
20
+ )
21
+ end
22
+ attr_accessor :data
23
+
24
+ sig do
25
+ params(
26
+ data:
27
+ T::Array[
28
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::OrHash
29
+ ]
30
+ ).returns(T.attached_class)
31
+ end
32
+ def self.new(data:)
33
+ end
34
+
35
+ sig do
36
+ override.returns(
37
+ {
38
+ data:
39
+ T::Array[
40
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data
41
+ ]
42
+ }
43
+ )
44
+ end
45
+ def to_hash
46
+ end
47
+
48
+ class Data < MetronomeSDK::Internal::Type::BaseModel
49
+ OrHash =
50
+ T.type_alias do
51
+ T.any(
52
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data,
53
+ MetronomeSDK::Internal::AnyHash
54
+ )
55
+ end
56
+
57
+ # ID of the created configuration
58
+ sig { returns(T.nilable(String)) }
59
+ attr_reader :id
60
+
61
+ sig { params(id: String).void }
62
+ attr_writer :id
63
+
64
+ # The billing provider set for this configuration.
65
+ sig do
66
+ returns(
67
+ T.nilable(
68
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
69
+ )
70
+ )
71
+ end
72
+ attr_reader :billing_provider
73
+
74
+ sig do
75
+ params(
76
+ billing_provider:
77
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::OrSymbol
78
+ ).void
79
+ end
80
+ attr_writer :billing_provider
81
+
82
+ # Configuration for the billing provider. The structure of this object is specific
83
+ # to the billing provider and delivery method combination.
84
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
85
+ attr_reader :configuration
86
+
87
+ sig { params(configuration: T::Hash[Symbol, T.anything]).void }
88
+ attr_writer :configuration
89
+
90
+ # ID of the customer this configuration is associated with.
91
+ sig { returns(T.nilable(String)) }
92
+ attr_reader :customer_id
93
+
94
+ sig { params(customer_id: String).void }
95
+ attr_writer :customer_id
96
+
97
+ # ID of the delivery method used for this customer configuration.
98
+ sig { returns(T.nilable(String)) }
99
+ attr_reader :delivery_method_id
100
+
101
+ sig { params(delivery_method_id: String).void }
102
+ attr_writer :delivery_method_id
103
+
104
+ # The tax provider set for this configuration.
105
+ sig do
106
+ returns(
107
+ T.nilable(
108
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider::TaggedSymbol
109
+ )
110
+ )
111
+ end
112
+ attr_reader :tax_provider
113
+
114
+ sig do
115
+ params(
116
+ tax_provider:
117
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider::OrSymbol
118
+ ).void
119
+ end
120
+ attr_writer :tax_provider
121
+
122
+ sig do
123
+ params(
124
+ id: String,
125
+ billing_provider:
126
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::OrSymbol,
127
+ configuration: T::Hash[Symbol, T.anything],
128
+ customer_id: String,
129
+ delivery_method_id: String,
130
+ tax_provider:
131
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider::OrSymbol
132
+ ).returns(T.attached_class)
133
+ end
134
+ def self.new(
135
+ # ID of the created configuration
136
+ id: nil,
137
+ # The billing provider set for this configuration.
138
+ billing_provider: nil,
139
+ # Configuration for the billing provider. The structure of this object is specific
140
+ # to the billing provider and delivery method combination.
141
+ configuration: nil,
142
+ # ID of the customer this configuration is associated with.
143
+ customer_id: nil,
144
+ # ID of the delivery method used for this customer configuration.
145
+ delivery_method_id: nil,
146
+ # The tax provider set for this configuration.
147
+ tax_provider: nil
148
+ )
149
+ end
150
+
151
+ sig do
152
+ override.returns(
153
+ {
154
+ id: String,
155
+ billing_provider:
156
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol,
157
+ configuration: T::Hash[Symbol, T.anything],
158
+ customer_id: String,
159
+ delivery_method_id: String,
160
+ tax_provider:
161
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider::TaggedSymbol
162
+ }
163
+ )
164
+ end
165
+ def to_hash
166
+ end
167
+
168
+ # The billing provider set for this configuration.
169
+ module BillingProvider
170
+ extend MetronomeSDK::Internal::Type::Enum
171
+
172
+ TaggedSymbol =
173
+ T.type_alias do
174
+ T.all(
175
+ Symbol,
176
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider
177
+ )
178
+ end
179
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
180
+
181
+ AWS_MARKETPLACE =
182
+ T.let(
183
+ :aws_marketplace,
184
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
185
+ )
186
+ STRIPE =
187
+ T.let(
188
+ :stripe,
189
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
190
+ )
191
+ NETSUITE =
192
+ T.let(
193
+ :netsuite,
194
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
195
+ )
196
+ CUSTOM =
197
+ T.let(
198
+ :custom,
199
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
200
+ )
201
+ AZURE_MARKETPLACE =
202
+ T.let(
203
+ :azure_marketplace,
204
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
205
+ )
206
+ QUICKBOOKS_ONLINE =
207
+ T.let(
208
+ :quickbooks_online,
209
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
210
+ )
211
+ WORKDAY =
212
+ T.let(
213
+ :workday,
214
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
215
+ )
216
+ GCP_MARKETPLACE =
217
+ T.let(
218
+ :gcp_marketplace,
219
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
220
+ )
221
+ METRONOME =
222
+ T.let(
223
+ :metronome,
224
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
225
+ )
226
+
227
+ sig do
228
+ override.returns(
229
+ T::Array[
230
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
231
+ ]
232
+ )
233
+ end
234
+ def self.values
235
+ end
236
+ end
237
+
238
+ # The tax provider set for this configuration.
239
+ module TaxProvider
240
+ extend MetronomeSDK::Internal::Type::Enum
241
+
242
+ TaggedSymbol =
243
+ T.type_alias do
244
+ T.all(
245
+ Symbol,
246
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider
247
+ )
248
+ end
249
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
250
+
251
+ ANROK =
252
+ T.let(
253
+ :anrok,
254
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider::TaggedSymbol
255
+ )
256
+ AVALARA =
257
+ T.let(
258
+ :avalara,
259
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider::TaggedSymbol
260
+ )
261
+ STRIPE =
262
+ T.let(
263
+ :stripe,
264
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider::TaggedSymbol
265
+ )
266
+
267
+ sig do
268
+ override.returns(
269
+ T::Array[
270
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse::Data::TaxProvider::TaggedSymbol
271
+ ]
272
+ )
273
+ end
274
+ def self.values
275
+ end
276
+ end
277
+ end
278
+ end
279
+ end
280
+ end
281
+ end
@@ -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
 
@@ -79,6 +91,8 @@ module MetronomeSDK
79
91
  billing_provider_type:
80
92
  MetronomeSDK::V1::Customers::BillingConfigCreateParams::BillingProviderType::OrSymbol,
81
93
  billing_provider_customer_id: String,
94
+ aws_customer_account_id: String,
95
+ aws_customer_id: String,
82
96
  aws_product_code: String,
83
97
  aws_region:
84
98
  MetronomeSDK::V1::Customers::BillingConfigCreateParams::AwsRegion::OrSymbol,
@@ -93,6 +107,8 @@ module MetronomeSDK
93
107
  # The customer ID in the billing provider's system. For Azure, this is the
94
108
  # subscription ID.
95
109
  billing_provider_customer_id:,
110
+ aws_customer_account_id: nil,
111
+ aws_customer_id: nil,
96
112
  aws_product_code: nil,
97
113
  aws_region: nil,
98
114
  # The collection method for the customer's invoices. NOTE:
@@ -109,6 +125,8 @@ module MetronomeSDK
109
125
  billing_provider_type:
110
126
  MetronomeSDK::V1::Customers::BillingConfigCreateParams::BillingProviderType::OrSymbol,
111
127
  billing_provider_customer_id: String,
128
+ aws_customer_account_id: String,
129
+ aws_customer_id: String,
112
130
  aws_product_code: String,
113
131
  aws_region:
114
132
  MetronomeSDK::V1::Customers::BillingConfigCreateParams::AwsRegion::OrSymbol,
@@ -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).
@@ -164,6 +176,8 @@ module MetronomeSDK
164
176
 
165
177
  sig do
166
178
  params(
179
+ aws_customer_account_id: String,
180
+ aws_customer_id: String,
167
181
  aws_expiration_date: Time,
168
182
  aws_is_subscription_product: T::Boolean,
169
183
  aws_product_code: String,
@@ -180,6 +194,8 @@ module MetronomeSDK
180
194
  ).returns(T.attached_class)
181
195
  end
182
196
  def self.new(
197
+ aws_customer_account_id: nil,
198
+ aws_customer_id: nil,
183
199
  # Contract expiration date for the customer. The expected format is RFC 3339 and
184
200
  # can be retrieved from
185
201
  # [AWS's GetEntitlements API](https://docs.aws.amazon.com/marketplaceentitlement/latest/APIReference/API_GetEntitlements.html).
@@ -208,6 +224,8 @@ module MetronomeSDK
208
224
  sig do
209
225
  override.returns(
210
226
  {
227
+ aws_customer_account_id: String,
228
+ aws_customer_id: String,
211
229
  aws_expiration_date: Time,
212
230
  aws_is_subscription_product: T::Boolean,
213
231
  aws_product_code: String,
@@ -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
  )
@@ -595,6 +621,51 @@ module MetronomeSDK
595
621
  def to_hash
596
622
  end
597
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
598
669
  end
599
670
 
600
671
  # The status of the threshold notification. If the notification is archived, null
@@ -1648,6 +1648,13 @@ module MetronomeSDK
1648
1648
  sig { params(billing_provider_error: String).void }
1649
1649
  attr_writer :billing_provider_error
1650
1650
 
1651
+ # The ID of the payment in the external system, if available.
1652
+ sig { returns(T.nilable(String)) }
1653
+ attr_reader :external_payment_id
1654
+
1655
+ sig { params(external_payment_id: String).void }
1656
+ attr_writer :external_payment_id
1657
+
1651
1658
  sig do
1652
1659
  returns(
1653
1660
  T.nilable(
@@ -1721,6 +1728,7 @@ module MetronomeSDK
1721
1728
  billing_provider_type:
1722
1729
  MetronomeSDK::V1::Customers::Invoice::CorrectionRecord::CorrectedExternalInvoice::BillingProviderType::OrSymbol,
1723
1730
  billing_provider_error: String,
1731
+ external_payment_id: String,
1724
1732
  external_status:
1725
1733
  MetronomeSDK::V1::Customers::Invoice::CorrectionRecord::CorrectedExternalInvoice::ExternalStatus::OrSymbol,
1726
1734
  invoice_id: String,
@@ -1736,6 +1744,8 @@ module MetronomeSDK
1736
1744
  billing_provider_type:,
1737
1745
  # Error message from the billing provider, if available.
1738
1746
  billing_provider_error: nil,
1747
+ # The ID of the payment in the external system, if available.
1748
+ external_payment_id: nil,
1739
1749
  external_status: nil,
1740
1750
  invoice_id: nil,
1741
1751
  # The subtotal amount invoiced, if available from the billing provider.
@@ -1756,6 +1766,7 @@ module MetronomeSDK
1756
1766
  billing_provider_type:
1757
1767
  MetronomeSDK::V1::Customers::Invoice::CorrectionRecord::CorrectedExternalInvoice::BillingProviderType::TaggedSymbol,
1758
1768
  billing_provider_error: String,
1769
+ external_payment_id: String,
1759
1770
  external_status:
1760
1771
  MetronomeSDK::V1::Customers::Invoice::CorrectionRecord::CorrectedExternalInvoice::ExternalStatus::TaggedSymbol,
1761
1772
  invoice_id: String,
@@ -1867,6 +1878,11 @@ module MetronomeSDK
1867
1878
  :PAID,
1868
1879
  MetronomeSDK::V1::Customers::Invoice::CorrectionRecord::CorrectedExternalInvoice::ExternalStatus::TaggedSymbol
1869
1880
  )
1881
+ PARTIALLY_PAID =
1882
+ T.let(
1883
+ :PARTIALLY_PAID,
1884
+ MetronomeSDK::V1::Customers::Invoice::CorrectionRecord::CorrectedExternalInvoice::ExternalStatus::TaggedSymbol
1885
+ )
1870
1886
  UNCOLLECTIBLE =
1871
1887
  T.let(
1872
1888
  :UNCOLLECTIBLE,
@@ -2005,6 +2021,13 @@ module MetronomeSDK
2005
2021
  sig { params(billing_provider_error: String).void }
2006
2022
  attr_writer :billing_provider_error
2007
2023
 
2024
+ # The ID of the payment in the external system, if available.
2025
+ sig { returns(T.nilable(String)) }
2026
+ attr_reader :external_payment_id
2027
+
2028
+ sig { params(external_payment_id: String).void }
2029
+ attr_writer :external_payment_id
2030
+
2008
2031
  sig do
2009
2032
  returns(
2010
2033
  T.nilable(
@@ -2078,6 +2101,7 @@ module MetronomeSDK
2078
2101
  billing_provider_type:
2079
2102
  MetronomeSDK::V1::Customers::Invoice::ExternalInvoice::BillingProviderType::OrSymbol,
2080
2103
  billing_provider_error: String,
2104
+ external_payment_id: String,
2081
2105
  external_status:
2082
2106
  MetronomeSDK::V1::Customers::Invoice::ExternalInvoice::ExternalStatus::OrSymbol,
2083
2107
  invoice_id: String,
@@ -2093,6 +2117,8 @@ module MetronomeSDK
2093
2117
  billing_provider_type:,
2094
2118
  # Error message from the billing provider, if available.
2095
2119
  billing_provider_error: nil,
2120
+ # The ID of the payment in the external system, if available.
2121
+ external_payment_id: nil,
2096
2122
  external_status: nil,
2097
2123
  invoice_id: nil,
2098
2124
  # The subtotal amount invoiced, if available from the billing provider.
@@ -2113,6 +2139,7 @@ module MetronomeSDK
2113
2139
  billing_provider_type:
2114
2140
  MetronomeSDK::V1::Customers::Invoice::ExternalInvoice::BillingProviderType::TaggedSymbol,
2115
2141
  billing_provider_error: String,
2142
+ external_payment_id: String,
2116
2143
  external_status:
2117
2144
  MetronomeSDK::V1::Customers::Invoice::ExternalInvoice::ExternalStatus::TaggedSymbol,
2118
2145
  invoice_id: String,
@@ -2224,6 +2251,11 @@ module MetronomeSDK
2224
2251
  :PAID,
2225
2252
  MetronomeSDK::V1::Customers::Invoice::ExternalInvoice::ExternalStatus::TaggedSymbol
2226
2253
  )
2254
+ PARTIALLY_PAID =
2255
+ T.let(
2256
+ :PARTIALLY_PAID,
2257
+ MetronomeSDK::V1::Customers::Invoice::ExternalInvoice::ExternalStatus::TaggedSymbol
2258
+ )
2227
2259
  UNCOLLECTIBLE =
2228
2260
  T.let(
2229
2261
  :UNCOLLECTIBLE,