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
@@ -5,7 +5,8 @@ module MetronomeSDK
5
5
  class V1
6
6
  class Customers
7
7
  class Plans
8
- # List the given customer's plans in reverse-chronological order.
8
+ # List the given customer's plans in reverse-chronological order. This is a Plans
9
+ # (deprecated) endpoint. New clients should implement using Contracts.
9
10
  sig do
10
11
  params(
11
12
  customer_id: String,
@@ -31,7 +32,8 @@ module MetronomeSDK
31
32
 
32
33
  # Associate an existing customer with a plan for a specified date range. See the
33
34
  # [price adjustments documentation](https://plans-docs.metronome.com/pricing/managing-plans/#price-adjustments)
34
- # for details on the price adjustments.
35
+ # for details on the price adjustments. This is a Plans (deprecated) endpoint. New
36
+ # clients should implement using Contracts.
35
37
  sig do
36
38
  params(
37
39
  customer_id: String,
@@ -82,7 +84,8 @@ module MetronomeSDK
82
84
  )
83
85
  end
84
86
 
85
- # Change the end date of a customer's plan.
87
+ # Change the end date of a customer's plan. This is a Plans (deprecated) endpoint.
88
+ # New clients should implement using Contracts.
86
89
  sig do
87
90
  params(
88
91
  customer_id: String,
@@ -116,7 +119,8 @@ module MetronomeSDK
116
119
 
117
120
  # Lists a customer plans adjustments. See the
118
121
  # [price adjustments documentation](https://plans-docs.metronome.com/pricing/managing-plans/#price-adjustments)
119
- # for details.
122
+ # for details. This is a Plans (deprecated) endpoint. New clients should implement
123
+ # using Contracts.
120
124
  sig do
121
125
  params(
122
126
  customer_id: String,
@@ -69,6 +69,10 @@ module MetronomeSDK
69
69
  T::Array[
70
70
  MetronomeSDK::V1::CustomerCreateParams::CustomerBillingProviderConfiguration::OrHash
71
71
  ],
72
+ customer_revenue_system_configurations:
73
+ T::Array[
74
+ MetronomeSDK::V1::CustomerCreateParams::CustomerRevenueSystemConfiguration::OrHash
75
+ ],
72
76
  external_id: String,
73
77
  ingest_aliases: T::Array[String],
74
78
  request_options: MetronomeSDK::RequestOptions::OrHash
@@ -81,6 +85,7 @@ module MetronomeSDK
81
85
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
82
86
  custom_fields: nil,
83
87
  customer_billing_provider_configurations: nil,
88
+ customer_revenue_system_configurations: nil,
84
89
  # (deprecated, use ingest_aliases instead) an alias that can be used to refer to
85
90
  # this customer in usage events
86
91
  external_id: nil,
@@ -202,7 +207,8 @@ module MetronomeSDK
202
207
 
203
208
  # Fetch daily pending costs for the specified customer, broken down by credit type
204
209
  # and line items. Note: this is not supported for customers whose plan includes a
205
- # UNIQUE-type billable metric.
210
+ # UNIQUE-type billable metric. This is a Plans (deprecated) endpoint. New clients
211
+ # should implement using Contracts.
206
212
  sig do
207
213
  params(
208
214
  customer_id: String,
@@ -235,7 +241,8 @@ module MetronomeSDK
235
241
  # Preview how a set of events will affect a customer's invoices. Generates draft
236
242
  # invoices for a customer using their current contract configuration and the
237
243
  # provided events. This is useful for testing how new events will affect the
238
- # customer's invoices before they are actually processed.
244
+ # customer's invoices before they are actually processed. Customers on contracts
245
+ # with SQL billable metrics are not supported.
239
246
  sig do
240
247
  params(
241
248
  customer_id: String,
@@ -251,14 +258,15 @@ module MetronomeSDK
251
258
  def preview_events(
252
259
  # Path param:
253
260
  customer_id:,
254
- # Body param:
261
+ # Body param: Array of usage events to include in the preview calculation. Must
262
+ # contain at least one event in `merge` mode.
255
263
  events:,
256
- # Body param: If set to "replace", the preview will be generated as if those were
257
- # the only events for the specified customer. If set to "merge", the events will
258
- # be merged with any existing events for the specified customer. Defaults to
259
- # "replace".
264
+ # Body param: Controls how the provided events are combined with existing usage
265
+ # data. Use `replace` to calculate the preview as if these are the only events for
266
+ # the customer, ignoring all historical usage. Use `merge` to combine these events
267
+ # with the customer's existing usage. Defaults to `replace`.
260
268
  mode: nil,
261
- # Body param: If set, all zero quantity line items will be filtered out of the
269
+ # Body param: When `true`, line items with zero quantity are excluded from the
262
270
  # response.
263
271
  skip_zero_qty_line_items: nil,
264
272
  request_options: {}
@@ -332,7 +340,9 @@ module MetronomeSDK
332
340
  MetronomeSDK::V1::CustomerSetBillingConfigurationsParams::Data::OrHash
333
341
  ],
334
342
  request_options: MetronomeSDK::RequestOptions::OrHash
335
- ).void
343
+ ).returns(
344
+ MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsResponse
345
+ )
336
346
  end
337
347
  def set_billing_configurations(data:, request_options: {})
338
348
  end
@@ -4,7 +4,8 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Plans
7
- # List all available plans.
7
+ # List all available plans. This is a Plans (deprecated) endpoint. New clients
8
+ # should implement using Contracts.
8
9
  sig do
9
10
  params(
10
11
  limit: Integer,
@@ -25,7 +26,8 @@ module MetronomeSDK
25
26
  )
26
27
  end
27
28
 
28
- # Fetch high level details of a specific plan.
29
+ # Fetch high level details of a specific plan. This is a Plans (deprecated)
30
+ # endpoint. New clients should implement using Contracts.
29
31
  sig do
30
32
  params(
31
33
  plan_id: String,
@@ -35,7 +37,8 @@ module MetronomeSDK
35
37
  def get_details(plan_id:, request_options: {})
36
38
  end
37
39
 
38
- # Fetches a list of charges of a specific plan.
40
+ # Fetches a list of charges of a specific plan. This is a Plans (deprecated)
41
+ # endpoint. New clients should implement using Contracts.
39
42
  sig do
40
43
  params(
41
44
  plan_id: String,
@@ -60,7 +63,8 @@ module MetronomeSDK
60
63
  end
61
64
 
62
65
  # Fetches a list of customers on a specific plan (by default, only currently
63
- # active plans are included)
66
+ # active plans are included). This is a Plans (deprecated) endpoint. New clients
67
+ # should implement using Contracts.
64
68
  sig do
65
69
  params(
66
70
  plan_id: String,
@@ -0,0 +1,63 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Resources
5
+ class V1
6
+ class Settings
7
+ class BillingProviders
8
+ # Set up account-level configuration for a billing provider. Once configured,
9
+ # individual contracts across customers can be mapped to this configuration using
10
+ # the returned delivery_method_id.
11
+ sig do
12
+ params(
13
+ billing_provider:
14
+ MetronomeSDK::V1::Settings::BillingProviderCreateParams::BillingProvider::OrSymbol,
15
+ configuration: T::Hash[Symbol, T.anything],
16
+ delivery_method:
17
+ MetronomeSDK::V1::Settings::BillingProviderCreateParams::DeliveryMethod::OrSymbol,
18
+ request_options: MetronomeSDK::RequestOptions::OrHash
19
+ ).returns(
20
+ MetronomeSDK::Models::V1::Settings::BillingProviderCreateResponse
21
+ )
22
+ end
23
+ def create(
24
+ # The billing provider set for this configuration.
25
+ billing_provider:,
26
+ # Account-level configuration for the billing provider. The structure of this
27
+ # object is specific to the billing provider and delivery provider combination.
28
+ # See examples below.
29
+ configuration:,
30
+ # The method to use for delivering invoices for this configuration.
31
+ delivery_method:,
32
+ request_options: {}
33
+ )
34
+ end
35
+
36
+ # Lists all configured billing providers and their delivery method configurations
37
+ # for your account. Returns provider details, delivery method IDs, and
38
+ # configuration settings needed for mapping individual customer contracts to
39
+ # billing integrations.
40
+ sig do
41
+ params(
42
+ next_page: T.nilable(String),
43
+ request_options: MetronomeSDK::RequestOptions::OrHash
44
+ ).returns(
45
+ MetronomeSDK::Models::V1::Settings::BillingProviderListResponse
46
+ )
47
+ end
48
+ def list(
49
+ # The cursor to the next page of results
50
+ next_page: nil,
51
+ request_options: {}
52
+ )
53
+ end
54
+
55
+ # @api private
56
+ sig { params(client: MetronomeSDK::Client).returns(T.attached_class) }
57
+ def self.new(client:)
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,51 @@
1
+ # typed: strong
2
+
3
+ module MetronomeSDK
4
+ module Resources
5
+ class V1
6
+ class Settings
7
+ sig { returns(MetronomeSDK::Resources::V1::Settings::BillingProviders) }
8
+ attr_reader :billing_providers
9
+
10
+ # Set the Avalara credentials for some specified `delivery_method_ids`, which can
11
+ # be found in the `/listConfiguredBillingProviders` response. This maps the
12
+ # Avalara credentials to the appropriate billing entity. These credentials are
13
+ # only used for PLG Invoicing today.
14
+ sig do
15
+ params(
16
+ avalara_environment:
17
+ MetronomeSDK::V1::SettingUpsertAvalaraCredentialsParams::AvalaraEnvironment::OrSymbol,
18
+ avalara_password: String,
19
+ avalara_username: String,
20
+ delivery_method_ids: T::Array[String],
21
+ commit_transactions: T::Boolean,
22
+ request_options: MetronomeSDK::RequestOptions::OrHash
23
+ ).returns(
24
+ MetronomeSDK::Models::V1::SettingUpsertAvalaraCredentialsResponse
25
+ )
26
+ end
27
+ def upsert_avalara_credentials(
28
+ # The Avalara environment to use (SANDBOX or PRODUCTION).
29
+ avalara_environment:,
30
+ # The password for the Avalara account.
31
+ avalara_password:,
32
+ # The username for the Avalara account.
33
+ avalara_username:,
34
+ # The delivery method IDs of the billing provider configurations to update, can be
35
+ # found in the response of the `/listConfiguredBillingProviders` endpoint.
36
+ delivery_method_ids:,
37
+ # Commit transactions if you want Metronome tax calculations used for reporting
38
+ # and tax filings.
39
+ commit_transactions: nil,
40
+ request_options: {}
41
+ )
42
+ end
43
+
44
+ # @api private
45
+ sig { params(client: MetronomeSDK::Client).returns(T.attached_class) }
46
+ def self.new(client:)
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -45,6 +45,9 @@ module MetronomeSDK
45
45
  sig { returns(MetronomeSDK::Resources::V1::Payments) }
46
46
  attr_reader :payments
47
47
 
48
+ sig { returns(MetronomeSDK::Resources::V1::Settings) }
49
+ attr_reader :settings
50
+
48
51
  # @api private
49
52
  sig { params(client: MetronomeSDK::Client).returns(T.attached_class) }
50
53
  def self.new(client:)
@@ -300,11 +300,13 @@ module MetronomeSDK
300
300
  MetronomeSDK::V2::ContractEditCommitParams::AccessSchedule::OrHash,
301
301
  applicable_product_ids: T.nilable(T::Array[String]),
302
302
  applicable_product_tags: T.nilable(T::Array[String]),
303
+ description: String,
303
304
  hierarchy_configuration:
304
305
  MetronomeSDK::CommitHierarchyConfiguration::OrHash,
305
306
  invoice_contract_id: String,
306
307
  invoice_schedule:
307
308
  MetronomeSDK::V2::ContractEditCommitParams::InvoiceSchedule::OrHash,
309
+ name: String,
308
310
  priority: T.nilable(Float),
309
311
  product_id: String,
310
312
  rate_type:
@@ -328,11 +330,15 @@ module MetronomeSDK
328
330
  # applicable_product_tags or specifiers are not provided, the commit applies to
329
331
  # all products.
330
332
  applicable_product_tags: nil,
333
+ # Updated description for the commit
334
+ description: nil,
331
335
  # Optional configuration for commit hierarchy access control
332
336
  hierarchy_configuration: nil,
333
337
  # ID of contract to use for invoicing
334
338
  invoice_contract_id: nil,
335
339
  invoice_schedule: nil,
340
+ # Updated name for the commit
341
+ name: nil,
336
342
  # If multiple commits are applicable, the one with the lower priority will apply
337
343
  # first.
338
344
  priority: nil,
@@ -376,8 +382,10 @@ module MetronomeSDK
376
382
  MetronomeSDK::V2::ContractEditCreditParams::AccessSchedule::OrHash,
377
383
  applicable_product_ids: T.nilable(T::Array[String]),
378
384
  applicable_product_tags: T.nilable(T::Array[String]),
385
+ description: String,
379
386
  hierarchy_configuration:
380
387
  MetronomeSDK::CommitHierarchyConfiguration::OrHash,
388
+ name: String,
381
389
  priority: T.nilable(Float),
382
390
  product_id: String,
383
391
  rate_type:
@@ -399,8 +407,12 @@ module MetronomeSDK
399
407
  # Which tags the credit applies to. If both applicable_product_ids and
400
408
  # applicable_product_tags are not provided, the credit applies to all products.
401
409
  applicable_product_tags: nil,
410
+ # Updated description for the credit
411
+ description: nil,
402
412
  # Optional configuration for credit hierarchy access control
403
413
  hierarchy_configuration: nil,
414
+ # Updated name for the credit
415
+ name: nil,
404
416
  # If multiple commits are applicable, the one with the lower priority will apply
405
417
  # first.
406
418
  priority: nil,
@@ -87,6 +87,8 @@ module MetronomeSDK
87
87
 
88
88
  private def auth_headers: -> ::Hash[String, String]
89
89
 
90
+ private def user_agent: -> String
91
+
90
92
  private def generate_idempotency_key: -> String
91
93
 
92
94
  private def build_request: (
@@ -17,7 +17,10 @@ module MetronomeSDK
17
17
 
18
18
  DEFAULT_MAX_CONNECTIONS: Integer
19
19
 
20
- def self.connect: (URI::Generic url) -> top
20
+ def self.connect: (
21
+ cert_store: OpenSSL::X509::Store,
22
+ url: URI::Generic
23
+ ) -> top
21
24
 
22
25
  def self.calibrate_socket_timeout: (top conn, Float deadline) -> void
23
26
 
@@ -353,6 +353,7 @@ module MetronomeSDK
353
353
  | :quickbooks_online
354
354
  | :workday
355
355
  | :gcp_marketplace
356
+ | :metronome
356
357
 
357
358
  module BillingProvider
358
359
  extend MetronomeSDK::Internal::Type::Enum
@@ -365,6 +366,7 @@ module MetronomeSDK
365
366
  QUICKBOOKS_ONLINE: :quickbooks_online
366
367
  WORKDAY: :workday
367
368
  GCP_MARKETPLACE: :gcp_marketplace
369
+ METRONOME: :metronome
368
370
 
369
371
  def self?.values: -> ::Array[MetronomeSDK::Models::Contract::CustomerBillingProviderConfiguration::billing_provider]
370
372
  end
@@ -295,7 +295,8 @@ module MetronomeSDK
295
295
  rolled_over_from: MetronomeSDK::ContractV2::Commit::RolledOverFrom,
296
296
  rollover_fraction: Float,
297
297
  salesforce_opportunity_id: String,
298
- specifiers: ::Array[MetronomeSDK::CommitSpecifier]
298
+ specifiers: ::Array[MetronomeSDK::CommitSpecifier],
299
+ subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
299
300
  }
300
301
 
301
302
  class Commit < MetronomeSDK::Internal::Type::BaseModel
@@ -409,6 +410,12 @@ module MetronomeSDK
409
410
  ::Array[MetronomeSDK::CommitSpecifier]
410
411
  ) -> ::Array[MetronomeSDK::CommitSpecifier]
411
412
 
413
+ attr_reader subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig?
414
+
415
+ def subscription_config=: (
416
+ MetronomeSDK::RecurringCommitSubscriptionConfig
417
+ ) -> MetronomeSDK::RecurringCommitSubscriptionConfig
418
+
412
419
  def initialize: (
413
420
  id: String,
414
421
  created_at: Time,
@@ -434,7 +441,8 @@ module MetronomeSDK
434
441
  ?rolled_over_from: MetronomeSDK::ContractV2::Commit::RolledOverFrom,
435
442
  ?rollover_fraction: Float,
436
443
  ?salesforce_opportunity_id: String,
437
- ?specifiers: ::Array[MetronomeSDK::CommitSpecifier]
444
+ ?specifiers: ::Array[MetronomeSDK::CommitSpecifier],
445
+ ?subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
438
446
  ) -> void
439
447
 
440
448
  def to_hash: -> {
@@ -462,7 +470,8 @@ module MetronomeSDK
462
470
  rolled_over_from: MetronomeSDK::ContractV2::Commit::RolledOverFrom,
463
471
  rollover_fraction: Float,
464
472
  salesforce_opportunity_id: String,
465
- specifiers: ::Array[MetronomeSDK::CommitSpecifier]
473
+ specifiers: ::Array[MetronomeSDK::CommitSpecifier],
474
+ subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
466
475
  }
467
476
 
468
477
  type product = { id: String, name: String }
@@ -1633,6 +1642,7 @@ module MetronomeSDK
1633
1642
  applicable_product_tags: ::Array[String],
1634
1643
  balance: Float,
1635
1644
  contract: MetronomeSDK::ContractV2::Credit::Contract,
1645
+ created_at: Time,
1636
1646
  custom_fields: ::Hash[Symbol, String],
1637
1647
  description: String,
1638
1648
  hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
@@ -1641,7 +1651,8 @@ module MetronomeSDK
1641
1651
  netsuite_sales_order_id: String,
1642
1652
  priority: Float,
1643
1653
  salesforce_opportunity_id: String,
1644
- specifiers: ::Array[MetronomeSDK::CommitSpecifier]
1654
+ specifiers: ::Array[MetronomeSDK::CommitSpecifier],
1655
+ subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
1645
1656
  }
1646
1657
 
1647
1658
  class Credit < MetronomeSDK::Internal::Type::BaseModel
@@ -1679,6 +1690,10 @@ module MetronomeSDK
1679
1690
  MetronomeSDK::ContractV2::Credit::Contract
1680
1691
  ) -> MetronomeSDK::ContractV2::Credit::Contract
1681
1692
 
1693
+ attr_reader created_at: Time?
1694
+
1695
+ def created_at=: (Time) -> Time
1696
+
1682
1697
  attr_reader custom_fields: ::Hash[Symbol, String]?
1683
1698
 
1684
1699
  def custom_fields=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
@@ -1721,6 +1736,12 @@ module MetronomeSDK
1721
1736
  ::Array[MetronomeSDK::CommitSpecifier]
1722
1737
  ) -> ::Array[MetronomeSDK::CommitSpecifier]
1723
1738
 
1739
+ attr_reader subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig?
1740
+
1741
+ def subscription_config=: (
1742
+ MetronomeSDK::RecurringCommitSubscriptionConfig
1743
+ ) -> MetronomeSDK::RecurringCommitSubscriptionConfig
1744
+
1724
1745
  def initialize: (
1725
1746
  id: String,
1726
1747
  product: MetronomeSDK::ContractV2::Credit::Product,
@@ -1731,6 +1752,7 @@ module MetronomeSDK
1731
1752
  ?applicable_product_tags: ::Array[String],
1732
1753
  ?balance: Float,
1733
1754
  ?contract: MetronomeSDK::ContractV2::Credit::Contract,
1755
+ ?created_at: Time,
1734
1756
  ?custom_fields: ::Hash[Symbol, String],
1735
1757
  ?description: String,
1736
1758
  ?hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
@@ -1739,7 +1761,8 @@ module MetronomeSDK
1739
1761
  ?netsuite_sales_order_id: String,
1740
1762
  ?priority: Float,
1741
1763
  ?salesforce_opportunity_id: String,
1742
- ?specifiers: ::Array[MetronomeSDK::CommitSpecifier]
1764
+ ?specifiers: ::Array[MetronomeSDK::CommitSpecifier],
1765
+ ?subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
1743
1766
  ) -> void
1744
1767
 
1745
1768
  def to_hash: -> {
@@ -1752,6 +1775,7 @@ module MetronomeSDK
1752
1775
  applicable_product_tags: ::Array[String],
1753
1776
  balance: Float,
1754
1777
  contract: MetronomeSDK::ContractV2::Credit::Contract,
1778
+ created_at: Time,
1755
1779
  custom_fields: ::Hash[Symbol, String],
1756
1780
  description: String,
1757
1781
  hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
@@ -1760,7 +1784,8 @@ module MetronomeSDK
1760
1784
  netsuite_sales_order_id: String,
1761
1785
  priority: Float,
1762
1786
  salesforce_opportunity_id: String,
1763
- specifiers: ::Array[MetronomeSDK::CommitSpecifier]
1787
+ specifiers: ::Array[MetronomeSDK::CommitSpecifier],
1788
+ subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
1764
1789
  }
1765
1790
 
1766
1791
  type product = { id: String, name: String }
@@ -2176,6 +2201,7 @@ module MetronomeSDK
2176
2201
  | :quickbooks_online
2177
2202
  | :workday
2178
2203
  | :gcp_marketplace
2204
+ | :metronome
2179
2205
 
2180
2206
  module BillingProvider
2181
2207
  extend MetronomeSDK::Internal::Type::Enum
@@ -2188,6 +2214,7 @@ module MetronomeSDK
2188
2214
  QUICKBOOKS_ONLINE: :quickbooks_online
2189
2215
  WORKDAY: :workday
2190
2216
  GCP_MARKETPLACE: :gcp_marketplace
2217
+ METRONOME: :metronome
2191
2218
 
2192
2219
  def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::CustomerBillingProviderConfiguration::billing_provider]
2193
2220
  end
@@ -14,7 +14,8 @@ module MetronomeSDK
14
14
  description: String,
15
15
  ending_before: Time,
16
16
  fiat_credit_type_id: String,
17
- name: String
17
+ name: String,
18
+ seat_config: MetronomeSDK::Subscription::SeatConfig
18
19
  }
19
20
 
20
21
  class Subscription < MetronomeSDK::Internal::Type::BaseModel
@@ -56,6 +57,12 @@ module MetronomeSDK
56
57
 
57
58
  def name=: (String) -> String
58
59
 
60
+ attr_reader seat_config: MetronomeSDK::Subscription::SeatConfig?
61
+
62
+ def seat_config=: (
63
+ MetronomeSDK::Subscription::SeatConfig
64
+ ) -> MetronomeSDK::Subscription::SeatConfig
65
+
59
66
  def initialize: (
60
67
  billing_periods: MetronomeSDK::Subscription::BillingPeriods,
61
68
  collection_schedule: MetronomeSDK::Models::Subscription::collection_schedule,
@@ -69,7 +76,8 @@ module MetronomeSDK
69
76
  ?description: String,
70
77
  ?ending_before: Time,
71
78
  ?fiat_credit_type_id: String,
72
- ?name: String
79
+ ?name: String,
80
+ ?seat_config: MetronomeSDK::Subscription::SeatConfig
73
81
  ) -> void
74
82
 
75
83
  def to_hash: -> {
@@ -85,7 +93,8 @@ module MetronomeSDK
85
93
  description: String,
86
94
  ending_before: Time,
87
95
  fiat_credit_type_id: String,
88
- name: String
96
+ name: String,
97
+ seat_config: MetronomeSDK::Subscription::SeatConfig
89
98
  }
90
99
 
91
100
  type billing_periods =
@@ -290,6 +299,16 @@ module MetronomeSDK
290
299
  def to_hash: -> { id: String, name: String }
291
300
  end
292
301
  end
302
+
303
+ type seat_config = { seat_group_key: String }
304
+
305
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
306
+ attr_accessor seat_group_key: String
307
+
308
+ def initialize: (seat_group_key: String) -> void
309
+
310
+ def to_hash: -> { seat_group_key: String }
311
+ end
293
312
  end
294
313
  end
295
314
  end
@@ -15,6 +15,7 @@ module MetronomeSDK
15
15
  group_values: ::Array[MetronomeSDK::V1::AlertCreateParams::GroupValue],
16
16
  invoice_types_filter: ::Array[String],
17
17
  plan_id: String,
18
+ seat_filter: MetronomeSDK::V1::AlertCreateParams::SeatFilter,
18
19
  uniqueness_key: String
19
20
  }
20
21
  & MetronomeSDK::Internal::Type::request_parameters
@@ -69,6 +70,12 @@ module MetronomeSDK
69
70
 
70
71
  def plan_id=: (String) -> String
71
72
 
73
+ attr_reader seat_filter: MetronomeSDK::V1::AlertCreateParams::SeatFilter?
74
+
75
+ def seat_filter=: (
76
+ MetronomeSDK::V1::AlertCreateParams::SeatFilter
77
+ ) -> MetronomeSDK::V1::AlertCreateParams::SeatFilter
78
+
72
79
  attr_reader uniqueness_key: String?
73
80
 
74
81
  def uniqueness_key=: (String) -> String
@@ -86,6 +93,7 @@ module MetronomeSDK
86
93
  ?group_values: ::Array[MetronomeSDK::V1::AlertCreateParams::GroupValue],
87
94
  ?invoice_types_filter: ::Array[String],
88
95
  ?plan_id: String,
96
+ ?seat_filter: MetronomeSDK::V1::AlertCreateParams::SeatFilter,
89
97
  ?uniqueness_key: String,
90
98
  ?request_options: MetronomeSDK::request_opts
91
99
  ) -> void
@@ -103,6 +111,7 @@ module MetronomeSDK
103
111
  group_values: ::Array[MetronomeSDK::V1::AlertCreateParams::GroupValue],
104
112
  invoice_types_filter: ::Array[String],
105
113
  plan_id: String,
114
+ seat_filter: MetronomeSDK::V1::AlertCreateParams::SeatFilter,
106
115
  uniqueness_key: String,
107
116
  request_options: MetronomeSDK::RequestOptions
108
117
  }
@@ -122,6 +131,7 @@ module MetronomeSDK
122
131
  | :low_remaining_contract_credit_percentage_reached
123
132
  | :low_remaining_contract_credit_and_commit_balance_reached
124
133
  | :invoice_total_reached
134
+ | :low_remaining_seat_balance_reached
125
135
 
126
136
  module AlertType
127
137
  extend MetronomeSDK::Internal::Type::Enum
@@ -140,6 +150,7 @@ module MetronomeSDK
140
150
  LOW_REMAINING_CONTRACT_CREDIT_PERCENTAGE_REACHED: :low_remaining_contract_credit_percentage_reached
141
151
  LOW_REMAINING_CONTRACT_CREDIT_AND_COMMIT_BALANCE_REACHED: :low_remaining_contract_credit_and_commit_balance_reached
142
152
  INVOICE_TOTAL_REACHED: :invoice_total_reached
153
+ LOW_REMAINING_SEAT_BALANCE_REACHED: :low_remaining_seat_balance_reached
143
154
 
144
155
  def self?.values: -> ::Array[MetronomeSDK::Models::V1::AlertCreateParams::alert_type]
145
156
  end
@@ -196,6 +207,23 @@ module MetronomeSDK
196
207
 
197
208
  def to_hash: -> { key: String, value: String }
198
209
  end
210
+
211
+ type seat_filter = { seat_group_key: String, seat_group_value: String }
212
+
213
+ class SeatFilter < MetronomeSDK::Internal::Type::BaseModel
214
+ attr_accessor seat_group_key: String
215
+
216
+ attr_reader seat_group_value: String?
217
+
218
+ def seat_group_value=: (String) -> String
219
+
220
+ def initialize: (
221
+ seat_group_key: String,
222
+ ?seat_group_value: String
223
+ ) -> void
224
+
225
+ def to_hash: -> { seat_group_key: String, seat_group_value: String }
226
+ end
199
227
  end
200
228
  end
201
229
  end
@@ -9,6 +9,7 @@ module MetronomeSDK
9
9
  reason: String,
10
10
  segment_id: String,
11
11
  contract_id: String,
12
+ per_group_amounts: ::Hash[Symbol, Float],
12
13
  timestamp: Time
13
14
  }
14
15
  & MetronomeSDK::Internal::Type::request_parameters
@@ -31,6 +32,10 @@ module MetronomeSDK
31
32
 
32
33
  def contract_id=: (String) -> String
33
34
 
35
+ attr_reader per_group_amounts: ::Hash[Symbol, Float]?
36
+
37
+ def per_group_amounts=: (::Hash[Symbol, Float]) -> ::Hash[Symbol, Float]
38
+
34
39
  attr_reader timestamp: Time?
35
40
 
36
41
  def timestamp=: (Time) -> Time
@@ -42,6 +47,7 @@ module MetronomeSDK
42
47
  reason: String,
43
48
  segment_id: String,
44
49
  ?contract_id: String,
50
+ ?per_group_amounts: ::Hash[Symbol, Float],
45
51
  ?timestamp: Time,
46
52
  ?request_options: MetronomeSDK::request_opts
47
53
  ) -> void
@@ -53,6 +59,7 @@ module MetronomeSDK
53
59
  reason: String,
54
60
  segment_id: String,
55
61
  contract_id: String,
62
+ per_group_amounts: ::Hash[Symbol, Float],
56
63
  timestamp: Time,
57
64
  request_options: MetronomeSDK::RequestOptions
58
65
  }