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
@@ -177,6 +177,8 @@ module MetronomeSDK
177
177
  end
178
178
  attr_writer :aws_region
179
179
 
180
+ # The collection method for the customer's invoices. NOTE:
181
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
180
182
  sig do
181
183
  returns(
182
184
  T.nilable(
@@ -214,6 +216,8 @@ module MetronomeSDK
214
216
  aws_is_subscription_product: nil,
215
217
  aws_product_code: nil,
216
218
  aws_region: nil,
219
+ # The collection method for the customer's invoices. NOTE:
220
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
217
221
  stripe_collection_method: nil
218
222
  )
219
223
  end
@@ -288,6 +292,11 @@ module MetronomeSDK
288
292
  :gcp_marketplace,
289
293
  MetronomeSDK::V1::CustomerCreateParams::BillingConfig::BillingProviderType::TaggedSymbol
290
294
  )
295
+ METRONOME =
296
+ T.let(
297
+ :metronome,
298
+ MetronomeSDK::V1::CustomerCreateParams::BillingConfig::BillingProviderType::TaggedSymbol
299
+ )
291
300
 
292
301
  sig do
293
302
  override.returns(
@@ -449,6 +458,8 @@ module MetronomeSDK
449
458
  end
450
459
  end
451
460
 
461
+ # The collection method for the customer's invoices. NOTE:
462
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
452
463
  module StripeCollectionMethod
453
464
  extend MetronomeSDK::Internal::Type::Enum
454
465
 
@@ -48,6 +48,10 @@ module MetronomeSDK
48
48
  sig { returns(String) }
49
49
  attr_accessor :name
50
50
 
51
+ # RFC 3339 timestamp indicating when the customer was last updated.
52
+ sig { returns(Time) }
53
+ attr_accessor :updated_at
54
+
51
55
  # RFC 3339 timestamp indicating when the customer was archived. Null if the
52
56
  # customer is active.
53
57
  sig { returns(T.nilable(Time)) }
@@ -79,6 +83,7 @@ module MetronomeSDK
79
83
  external_id: String,
80
84
  ingest_aliases: T::Array[String],
81
85
  name: String,
86
+ updated_at: Time,
82
87
  archived_at: T.nilable(Time),
83
88
  current_billable_status:
84
89
  MetronomeSDK::V1::CustomerDetail::CurrentBillableStatus::OrHash
@@ -99,6 +104,8 @@ module MetronomeSDK
99
104
  # in usage events
100
105
  ingest_aliases:,
101
106
  name:,
107
+ # RFC 3339 timestamp indicating when the customer was last updated.
108
+ updated_at:,
102
109
  # RFC 3339 timestamp indicating when the customer was archived. Null if the
103
110
  # customer is active.
104
111
  archived_at: nil,
@@ -117,6 +124,7 @@ module MetronomeSDK
117
124
  external_id: String,
118
125
  ingest_aliases: T::Array[String],
119
126
  name: String,
127
+ updated_at: Time,
120
128
  archived_at: T.nilable(Time),
121
129
  current_billable_status:
122
130
  MetronomeSDK::V1::CustomerDetail::CurrentBillableStatus
@@ -18,6 +18,8 @@ module MetronomeSDK
18
18
  sig { returns(String) }
19
19
  attr_accessor :customer_id
20
20
 
21
+ # Array of usage events to include in the preview calculation. Must contain at
22
+ # least one event in `merge` mode.
21
23
  sig do
22
24
  returns(
23
25
  T::Array[MetronomeSDK::V1::CustomerPreviewEventsParams::Event]
@@ -25,9 +27,10 @@ module MetronomeSDK
25
27
  end
26
28
  attr_accessor :events
27
29
 
28
- # If set to "replace", the preview will be generated as if those were the only
29
- # events for the specified customer. If set to "merge", the events will be merged
30
- # with any existing events for the specified customer. Defaults to "replace".
30
+ # Controls how the provided events are combined with existing usage data. Use
31
+ # `replace` to calculate the preview as if these are the only events for the
32
+ # customer, ignoring all historical usage. Use `merge` to combine these events
33
+ # with the customer's existing usage. Defaults to `replace`.
31
34
  sig do
32
35
  returns(
33
36
  T.nilable(
@@ -44,7 +47,7 @@ module MetronomeSDK
44
47
  end
45
48
  attr_writer :mode
46
49
 
47
- # If set, all zero quantity line items will be filtered out of the response.
50
+ # When `true`, line items with zero quantity are excluded from the response.
48
51
  sig { returns(T.nilable(T::Boolean)) }
49
52
  attr_reader :skip_zero_qty_line_items
50
53
 
@@ -65,12 +68,15 @@ module MetronomeSDK
65
68
  end
66
69
  def self.new(
67
70
  customer_id:,
71
+ # Array of usage events to include in the preview calculation. Must contain at
72
+ # least one event in `merge` mode.
68
73
  events:,
69
- # If set to "replace", the preview will be generated as if those were the only
70
- # events for the specified customer. If set to "merge", the events will be merged
71
- # with any existing events for the specified customer. Defaults to "replace".
74
+ # Controls how the provided events are combined with existing usage data. Use
75
+ # `replace` to calculate the preview as if these are the only events for the
76
+ # customer, ignoring all historical usage. Use `merge` to combine these events
77
+ # with the customer's existing usage. Defaults to `replace`.
72
78
  mode: nil,
73
- # If set, all zero quantity line items will be filtered out of the response.
79
+ # When `true`, line items with zero quantity are excluded from the response.
74
80
  skip_zero_qty_line_items: nil,
75
81
  request_options: {}
76
82
  )
@@ -104,15 +110,6 @@ module MetronomeSDK
104
110
  sig { returns(String) }
105
111
  attr_accessor :event_type
106
112
 
107
- # This has no effect for preview events, but may be set for consistency with Event
108
- # objects. They will be processed even if they do not match the customer's ID or
109
- # ingest aliases.
110
- sig { returns(T.nilable(String)) }
111
- attr_reader :customer_id
112
-
113
- sig { params(customer_id: String).void }
114
- attr_writer :customer_id
115
-
116
113
  sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
117
114
  attr_reader :properties
118
115
 
@@ -126,9 +123,9 @@ module MetronomeSDK
126
123
  sig { params(timestamp: String).void }
127
124
  attr_writer :timestamp
128
125
 
129
- # This has no effect for preview events, but may be set for consistency with Event
130
- # objects. Duplicate transaction_ids are NOT filtered out, even within the same
131
- # request.
126
+ # Optional unique identifier for event deduplication. When provided, preview
127
+ # events are automatically deduplicated against historical events from the past 34
128
+ # days. Duplicate transaction IDs within the same request will return an error.
132
129
  sig { returns(T.nilable(String)) }
133
130
  attr_reader :transaction_id
134
131
 
@@ -138,7 +135,6 @@ module MetronomeSDK
138
135
  sig do
139
136
  params(
140
137
  event_type: String,
141
- customer_id: String,
142
138
  properties: T::Hash[Symbol, T.anything],
143
139
  timestamp: String,
144
140
  transaction_id: String
@@ -146,16 +142,12 @@ module MetronomeSDK
146
142
  end
147
143
  def self.new(
148
144
  event_type:,
149
- # This has no effect for preview events, but may be set for consistency with Event
150
- # objects. They will be processed even if they do not match the customer's ID or
151
- # ingest aliases.
152
- customer_id: nil,
153
145
  properties: nil,
154
146
  # RFC 3339 formatted. If not provided, the current time will be used.
155
147
  timestamp: nil,
156
- # This has no effect for preview events, but may be set for consistency with Event
157
- # objects. Duplicate transaction_ids are NOT filtered out, even within the same
158
- # request.
148
+ # Optional unique identifier for event deduplication. When provided, preview
149
+ # events are automatically deduplicated against historical events from the past 34
150
+ # days. Duplicate transaction IDs within the same request will return an error.
159
151
  transaction_id: nil
160
152
  )
161
153
  end
@@ -164,7 +156,6 @@ module MetronomeSDK
164
156
  override.returns(
165
157
  {
166
158
  event_type: String,
167
- customer_id: String,
168
159
  properties: T::Hash[Symbol, T.anything],
169
160
  timestamp: String,
170
161
  transaction_id: String
@@ -175,9 +166,10 @@ module MetronomeSDK
175
166
  end
176
167
  end
177
168
 
178
- # If set to "replace", the preview will be generated as if those were the only
179
- # events for the specified customer. If set to "merge", the events will be merged
180
- # with any existing events for the specified customer. Defaults to "replace".
169
+ # Controls how the provided events are combined with existing usage data. Use
170
+ # `replace` to calculate the preview as if these are the only events for the
171
+ # customer, ignoring all historical usage. Use `merge` to combine these events
172
+ # with the customer's existing usage. Defaults to `replace`.
181
173
  module Mode
182
174
  extend MetronomeSDK::Internal::Type::Enum
183
175
 
@@ -12,21 +12,22 @@ module MetronomeSDK
12
12
  )
13
13
  end
14
14
 
15
- sig { returns(MetronomeSDK::V1::Customers::Invoice) }
16
- attr_reader :data
17
-
18
- sig { params(data: MetronomeSDK::V1::Customers::Invoice::OrHash).void }
19
- attr_writer :data
15
+ sig { returns(T::Array[MetronomeSDK::V1::Customers::Invoice]) }
16
+ attr_accessor :data
20
17
 
21
18
  sig do
22
- params(data: MetronomeSDK::V1::Customers::Invoice::OrHash).returns(
23
- T.attached_class
24
- )
19
+ params(
20
+ data: T::Array[MetronomeSDK::V1::Customers::Invoice::OrHash]
21
+ ).returns(T.attached_class)
25
22
  end
26
23
  def self.new(data:)
27
24
  end
28
25
 
29
- sig { override.returns({ data: MetronomeSDK::V1::Customers::Invoice }) }
26
+ sig do
27
+ override.returns(
28
+ { data: T::Array[MetronomeSDK::V1::Customers::Invoice] }
29
+ )
30
+ end
30
31
  def to_hash
31
32
  end
32
33
  end
@@ -202,6 +202,11 @@ module MetronomeSDK
202
202
  :gcp_marketplace,
203
203
  MetronomeSDK::Models::V1::CustomerRetrieveBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
204
204
  )
205
+ METRONOME =
206
+ T.let(
207
+ :metronome,
208
+ MetronomeSDK::Models::V1::CustomerRetrieveBillingConfigurationsResponse::Data::BillingProvider::TaggedSymbol
209
+ )
205
210
 
206
211
  sig do
207
212
  override.returns(
@@ -241,6 +241,11 @@ module MetronomeSDK
241
241
  :gcp_marketplace,
242
242
  MetronomeSDK::V1::CustomerSetBillingConfigurationsParams::Data::BillingProvider::TaggedSymbol
243
243
  )
244
+ METRONOME =
245
+ T.let(
246
+ :metronome,
247
+ MetronomeSDK::V1::CustomerSetBillingConfigurationsParams::Data::BillingProvider::TaggedSymbol
248
+ )
244
249
 
245
250
  sig do
246
251
  override.returns(
@@ -27,8 +27,8 @@ module MetronomeSDK
27
27
  sig { params(next_page: String).void }
28
28
  attr_writer :next_page
29
29
 
30
- # Optionally filter by alert status. If absent, only enabled alerts will be
31
- # returned.
30
+ # Optionally filter by threshold notification status. If absent, only enabled
31
+ # notifications will be returned.
32
32
  sig do
33
33
  returns(
34
34
  T.nilable(
@@ -66,8 +66,8 @@ module MetronomeSDK
66
66
  customer_id:,
67
67
  # Cursor that indicates where the next page of results should start.
68
68
  next_page: nil,
69
- # Optionally filter by alert status. If absent, only enabled alerts will be
70
- # returned.
69
+ # Optionally filter by threshold notification status. If absent, only enabled
70
+ # notifications will be returned.
71
71
  alert_statuses: nil,
72
72
  request_options: {}
73
73
  )
@@ -16,7 +16,7 @@ module MetronomeSDK
16
16
  )
17
17
  end
18
18
 
19
- # The Metronome ID of the alert
19
+ # The Metronome ID of the threshold notification
20
20
  sig { returns(String) }
21
21
  attr_accessor :alert_id
22
22
 
@@ -32,7 +32,7 @@ module MetronomeSDK
32
32
  ).returns(T.attached_class)
33
33
  end
34
34
  def self.new(
35
- # The Metronome ID of the alert
35
+ # The Metronome ID of the threshold notification
36
36
  alert_id:,
37
37
  # The Metronome ID of the customer
38
38
  customer_id:,
@@ -16,7 +16,7 @@ module MetronomeSDK
16
16
  )
17
17
  end
18
18
 
19
- # The Metronome ID of the alert
19
+ # The Metronome ID of the threshold notification
20
20
  sig { returns(String) }
21
21
  attr_accessor :alert_id
22
22
 
@@ -24,8 +24,8 @@ module MetronomeSDK
24
24
  sig { returns(String) }
25
25
  attr_accessor :customer_id
26
26
 
27
- # Only present for `spend_threshold_reached` alerts. Retrieve the alert for a
28
- # specific group key-value pair.
27
+ # Only present for `spend_threshold_reached` notifications. Retrieve the
28
+ # notification for a specific group key-value pair.
29
29
  sig do
30
30
  returns(
31
31
  T.nilable(
@@ -47,8 +47,8 @@ module MetronomeSDK
47
47
  end
48
48
  attr_writer :group_values
49
49
 
50
- # When parallel alerts are enabled during migration, this flag denotes whether to
51
- # fetch alerts for plans or contracts.
50
+ # When parallel threshold notifications are enabled during migration, this flag
51
+ # denotes whether to fetch notifications for plans or contracts.
52
52
  sig do
53
53
  returns(
54
54
  T.nilable(
@@ -80,15 +80,15 @@ module MetronomeSDK
80
80
  ).returns(T.attached_class)
81
81
  end
82
82
  def self.new(
83
- # The Metronome ID of the alert
83
+ # The Metronome ID of the threshold notification
84
84
  alert_id:,
85
85
  # The Metronome ID of the customer
86
86
  customer_id:,
87
- # Only present for `spend_threshold_reached` alerts. Retrieve the alert for a
88
- # specific group key-value pair.
87
+ # Only present for `spend_threshold_reached` notifications. Retrieve the
88
+ # notification for a specific group key-value pair.
89
89
  group_values: nil,
90
- # When parallel alerts are enabled during migration, this flag denotes whether to
91
- # fetch alerts for plans or contracts.
90
+ # When parallel threshold notifications are enabled during migration, this flag
91
+ # denotes whether to fetch notifications for plans or contracts.
92
92
  plans_or_contracts: nil,
93
93
  request_options: {}
94
94
  )
@@ -127,8 +127,8 @@ module MetronomeSDK
127
127
  sig { returns(String) }
128
128
  attr_accessor :value
129
129
 
130
- # Scopes alert evaluation to a specific presentation group key on individual line
131
- # items. Only present for spend alerts.
130
+ # Scopes threshold notification evaluation to a specific presentation group key on
131
+ # individual line items. Only present for spend notifications.
132
132
  sig { params(key: String, value: String).returns(T.attached_class) }
133
133
  def self.new(key:, value:)
134
134
  end
@@ -138,8 +138,8 @@ module MetronomeSDK
138
138
  end
139
139
  end
140
140
 
141
- # When parallel alerts are enabled during migration, this flag denotes whether to
142
- # fetch alerts for plans or contracts.
141
+ # When parallel threshold notifications are enabled during migration, this flag
142
+ # denotes whether to fetch notifications for plans or contracts.
143
143
  module PlansOrContracts
144
144
  extend MetronomeSDK::Internal::Type::Enum
145
145
 
@@ -54,6 +54,8 @@ module MetronomeSDK
54
54
  end
55
55
  attr_writer :aws_region
56
56
 
57
+ # The collection method for the customer's invoices. NOTE:
58
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
57
59
  sig do
58
60
  returns(
59
61
  T.nilable(
@@ -93,6 +95,8 @@ module MetronomeSDK
93
95
  billing_provider_customer_id:,
94
96
  aws_product_code: nil,
95
97
  aws_region: nil,
98
+ # The collection method for the customer's invoices. NOTE:
99
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
96
100
  stripe_collection_method: nil,
97
101
  request_options: {}
98
102
  )
@@ -169,6 +173,11 @@ module MetronomeSDK
169
173
  :gcp_marketplace,
170
174
  MetronomeSDK::V1::Customers::BillingConfigCreateParams::BillingProviderType::TaggedSymbol
171
175
  )
176
+ METRONOME =
177
+ T.let(
178
+ :metronome,
179
+ MetronomeSDK::V1::Customers::BillingConfigCreateParams::BillingProviderType::TaggedSymbol
180
+ )
172
181
 
173
182
  sig do
174
183
  override.returns(
@@ -330,6 +339,8 @@ module MetronomeSDK
330
339
  end
331
340
  end
332
341
 
342
+ # The collection method for the customer's invoices. NOTE:
343
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
333
344
  module StripeCollectionMethod
334
345
  extend MetronomeSDK::Internal::Type::Enum
335
346
 
@@ -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(
@@ -143,6 +143,8 @@ module MetronomeSDK
143
143
  sig { params(billing_provider_customer_id: String).void }
144
144
  attr_writer :billing_provider_customer_id
145
145
 
146
+ # The collection method for the customer's invoices. NOTE:
147
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
146
148
  sig do
147
149
  returns(
148
150
  T.nilable(
@@ -197,6 +199,8 @@ module MetronomeSDK
197
199
  azure_start_date: nil,
198
200
  azure_subscription_status: nil,
199
201
  billing_provider_customer_id: nil,
202
+ # The collection method for the customer's invoices. NOTE:
203
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
200
204
  stripe_collection_method: nil
201
205
  )
202
206
  end
@@ -416,6 +420,8 @@ module MetronomeSDK
416
420
  end
417
421
  end
418
422
 
423
+ # The collection method for the customer's invoices. NOTE:
424
+ # `auto_charge_payment_intent` and `manually_charge_payment_intent` are in beta.
419
425
  module StripeCollectionMethod
420
426
  extend MetronomeSDK::Internal::Type::Enum
421
427
 
@@ -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