metronome-sdk 3.2.0 → 3.4.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/client.rb +7 -0
  5. data/lib/metronome_sdk/models/commit_rate.rb +1 -22
  6. data/lib/metronome_sdk/models/contract_v2.rb +1 -22
  7. data/lib/metronome_sdk/models/overwrite_rate.rb +1 -22
  8. data/lib/metronome_sdk/models/rate.rb +1 -22
  9. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +10 -24
  10. data/lib/metronome_sdk/models/v1/contract_create_params.rb +10 -24
  11. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +1 -23
  12. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +1 -21
  13. data/lib/metronome_sdk/models/v1/customer_archive_billing_configurations_params.rb +32 -0
  14. data/lib/metronome_sdk/models/v1/customer_archive_billing_configurations_response.rb +38 -0
  15. data/lib/metronome_sdk/models/v1/package_create_params.rb +1 -23
  16. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +18 -25
  17. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +1 -23
  18. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +1 -3
  19. data/lib/metronome_sdk/resources/v1/customers.rb +53 -0
  20. data/lib/metronome_sdk/resources/v1/usage.rb +21 -0
  21. data/lib/metronome_sdk/version.rb +1 -1
  22. data/lib/metronome_sdk.rb +2 -0
  23. data/rbi/metronome_sdk/client.rbi +6 -0
  24. data/rbi/metronome_sdk/models/commit_rate.rbi +0 -37
  25. data/rbi/metronome_sdk/models/contract_v2.rbi +0 -46
  26. data/rbi/metronome_sdk/models/overwrite_rate.rbi +0 -37
  27. data/rbi/metronome_sdk/models/rate.rbi +0 -35
  28. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +11 -46
  29. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +11 -46
  30. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +0 -46
  31. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +0 -46
  32. data/rbi/metronome_sdk/models/v1/customer_archive_billing_configurations_params.rbi +56 -0
  33. data/rbi/metronome_sdk/models/v1/customer_archive_billing_configurations_response.rbi +95 -0
  34. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +0 -46
  35. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +20 -49
  36. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +0 -46
  37. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +0 -4
  38. data/rbi/metronome_sdk/resources/v1/customers.rbi +48 -0
  39. data/rbi/metronome_sdk/resources/v1/usage.rbi +21 -0
  40. data/sig/metronome_sdk/client.rbs +3 -0
  41. data/sig/metronome_sdk/models/commit_rate.rbs +0 -19
  42. data/sig/metronome_sdk/models/contract_v2.rbs +0 -19
  43. data/sig/metronome_sdk/models/overwrite_rate.rbs +0 -19
  44. data/sig/metronome_sdk/models/rate.rbs +0 -19
  45. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +7 -19
  46. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +7 -19
  47. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +0 -19
  48. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +0 -19
  49. data/sig/metronome_sdk/models/v1/customer_archive_billing_configurations_params.rbs +33 -0
  50. data/sig/metronome_sdk/models/v1/customer_archive_billing_configurations_response.rbs +44 -0
  51. data/sig/metronome_sdk/models/v1/package_create_params.rbs +0 -19
  52. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +15 -22
  53. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +0 -19
  54. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +0 -1
  55. data/sig/metronome_sdk/resources/v1/customers.rbs +6 -0
  56. metadata +8 -2
@@ -1194,13 +1194,6 @@ module MetronomeSDK
1194
1194
  # @return [Boolean, nil]
1195
1195
  optional :is_prorated, MetronomeSDK::Internal::Type::Boolean
1196
1196
 
1197
- # @!attribute minimum_config
1198
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
1199
- #
1200
- # @return [MetronomeSDK::Models::V1::PackageCreateParams::Override::OverwriteRate::MinimumConfig, nil]
1201
- optional :minimum_config,
1202
- -> { MetronomeSDK::V1::PackageCreateParams::Override::OverwriteRate::MinimumConfig }
1203
-
1204
1197
  # @!attribute price
1205
1198
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
1206
1199
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
@@ -1220,7 +1213,7 @@ module MetronomeSDK
1220
1213
  # @return [Array<MetronomeSDK::Models::Tier>, nil]
1221
1214
  optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
1222
1215
 
1223
- # @!method initialize(rate_type:, credit_type_id: nil, custom_rate: nil, is_prorated: nil, minimum_config: nil, price: nil, quantity: nil, tiers: nil)
1216
+ # @!method initialize(rate_type:, credit_type_id: nil, custom_rate: nil, is_prorated: nil, price: nil, quantity: nil, tiers: nil)
1224
1217
  # Some parameter documentations has been truncated, see
1225
1218
  # {MetronomeSDK::Models::V1::PackageCreateParams::Override::OverwriteRate} for
1226
1219
  # more details.
@@ -1235,8 +1228,6 @@ module MetronomeSDK
1235
1228
  #
1236
1229
  # @param is_prorated [Boolean] Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
1237
1230
  #
1238
- # @param minimum_config [MetronomeSDK::Models::V1::PackageCreateParams::Override::OverwriteRate::MinimumConfig] Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
1239
- #
1240
1231
  # @param price [Float] Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type, t
1241
1232
  #
1242
1233
  # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
@@ -1257,19 +1248,6 @@ module MetronomeSDK
1257
1248
  # @!method self.values
1258
1249
  # @return [Array<Symbol>]
1259
1250
  end
1260
-
1261
- # @see MetronomeSDK::Models::V1::PackageCreateParams::Override::OverwriteRate#minimum_config
1262
- class MinimumConfig < MetronomeSDK::Internal::Type::BaseModel
1263
- # @!attribute minimum
1264
- #
1265
- # @return [Float]
1266
- required :minimum, Float
1267
-
1268
- # @!method initialize(minimum:)
1269
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
1270
- #
1271
- # @param minimum [Float]
1272
- end
1273
1251
  end
1274
1252
 
1275
1253
  # Indicates whether the override applies to commit rates or list rates. Can only
@@ -1081,6 +1081,12 @@ module MetronomeSDK
1081
1081
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::RateType, nil]
1082
1082
  optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::AddCredit::RateType }
1083
1083
 
1084
+ # @!attribute rollover_fraction
1085
+ # Fraction of unused segments that will be rolled over. Must be between 0 and 1.
1086
+ #
1087
+ # @return [Float, nil]
1088
+ optional :rollover_fraction, Float
1089
+
1084
1090
  # @!attribute specifiers
1085
1091
  # List of filters that determine what kind of customer usage draws down a commit
1086
1092
  # or credit. A customer's usage needs to meet the condition of at least one of the
@@ -1092,7 +1098,7 @@ module MetronomeSDK
1092
1098
  # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
1093
1099
  optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] }
1094
1100
 
1095
- # @!method initialize(access_schedule:, product_id:, applicable_product_ids: nil, applicable_product_tags: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, specifiers: nil)
1101
+ # @!method initialize(access_schedule:, product_id:, applicable_product_ids: nil, applicable_product_tags: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, rollover_fraction: nil, specifiers: nil)
1096
1102
  # Some parameter documentations has been truncated, see
1097
1103
  # {MetronomeSDK::Models::V2::ContractEditParams::AddCredit} for more details.
1098
1104
  #
@@ -1118,6 +1124,8 @@ module MetronomeSDK
1118
1124
  #
1119
1125
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::AddCredit::RateType]
1120
1126
  #
1127
+ # @param rollover_fraction [Float] Fraction of unused segments that will be rolled over. Must be between 0 and 1.
1128
+ #
1121
1129
  # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>] List of filters that determine what kind of customer usage draws down a commit o
1122
1130
 
1123
1131
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddCredit#access_schedule
@@ -1653,13 +1661,6 @@ module MetronomeSDK
1653
1661
  # @return [Boolean, nil]
1654
1662
  optional :is_prorated, MetronomeSDK::Internal::Type::Boolean
1655
1663
 
1656
- # @!attribute minimum_config
1657
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
1658
- #
1659
- # @return [MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate::MinimumConfig, nil]
1660
- optional :minimum_config,
1661
- -> { MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::MinimumConfig }
1662
-
1663
1664
  # @!attribute price
1664
1665
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
1665
1666
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
@@ -1679,7 +1680,7 @@ module MetronomeSDK
1679
1680
  # @return [Array<MetronomeSDK::Models::Tier>, nil]
1680
1681
  optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
1681
1682
 
1682
- # @!method initialize(rate_type:, credit_type_id: nil, custom_rate: nil, is_prorated: nil, minimum_config: nil, price: nil, quantity: nil, tiers: nil)
1683
+ # @!method initialize(rate_type:, credit_type_id: nil, custom_rate: nil, is_prorated: nil, price: nil, quantity: nil, tiers: nil)
1683
1684
  # Some parameter documentations has been truncated, see
1684
1685
  # {MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate} for
1685
1686
  # more details.
@@ -1694,8 +1695,6 @@ module MetronomeSDK
1694
1695
  #
1695
1696
  # @param is_prorated [Boolean] Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
1696
1697
  #
1697
- # @param minimum_config [MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate::MinimumConfig] Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
1698
- #
1699
1698
  # @param price [Float] Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type, t
1700
1699
  #
1701
1700
  # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
@@ -1716,19 +1715,6 @@ module MetronomeSDK
1716
1715
  # @!method self.values
1717
1716
  # @return [Array<Symbol>]
1718
1717
  end
1719
-
1720
- # @see MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverwriteRate#minimum_config
1721
- class MinimumConfig < MetronomeSDK::Internal::Type::BaseModel
1722
- # @!attribute minimum
1723
- #
1724
- # @return [Float]
1725
- required :minimum, Float
1726
-
1727
- # @!method initialize(minimum:)
1728
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
1729
- #
1730
- # @param minimum [Float]
1731
- end
1732
1718
  end
1733
1719
 
1734
1720
  # Indicates whether the override applies to commit rates or list rates. Can only
@@ -3718,7 +3704,12 @@ module MetronomeSDK
3718
3704
  # @return [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::RateType, nil]
3719
3705
  optional :rate_type, enum: -> { MetronomeSDK::V2::ContractEditParams::UpdateCredit::RateType }
3720
3706
 
3721
- # @!method initialize(credit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, product_id: nil, rate_type: nil)
3707
+ # @!attribute rollover_fraction
3708
+ #
3709
+ # @return [Float, nil]
3710
+ optional :rollover_fraction, Float, nil?: true
3711
+
3712
+ # @!method initialize(credit_id:, access_schedule: nil, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, hierarchy_configuration: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, product_id: nil, rate_type: nil, rollover_fraction: nil)
3722
3713
  # Some parameter documentations has been truncated, see
3723
3714
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit} for more details.
3724
3715
  #
@@ -3743,6 +3734,8 @@ module MetronomeSDK
3743
3734
  # @param product_id [String]
3744
3735
  #
3745
3736
  # @param rate_type [Symbol, MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::RateType] If provided, updates the credit to use the specified rate type for current and f
3737
+ #
3738
+ # @param rollover_fraction [Float, nil]
3746
3739
 
3747
3740
  # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit#access_schedule
3748
3741
  class AccessSchedule < MetronomeSDK::Internal::Type::BaseModel
@@ -843,13 +843,6 @@ module MetronomeSDK
843
843
  # @return [Boolean, nil]
844
844
  optional :is_prorated, MetronomeSDK::Internal::Type::Boolean
845
845
 
846
- # @!attribute minimum_config
847
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
848
- #
849
- # @return [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::MinimumConfig, nil]
850
- optional :minimum_config,
851
- -> { MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::MinimumConfig }
852
-
853
846
  # @!attribute price
854
847
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
855
848
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
@@ -869,7 +862,7 @@ module MetronomeSDK
869
862
  # @return [Array<MetronomeSDK::Models::Tier>, nil]
870
863
  optional :tiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Tier] }
871
864
 
872
- # @!method initialize(rate_type:, credit_type: nil, custom_rate: nil, is_prorated: nil, minimum_config: nil, price: nil, quantity: nil, tiers: nil)
865
+ # @!method initialize(rate_type:, credit_type: nil, custom_rate: nil, is_prorated: nil, price: nil, quantity: nil, tiers: nil)
873
866
  # Some parameter documentations has been truncated, see
874
867
  # {MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate}
875
868
  # for more details.
@@ -882,8 +875,6 @@ module MetronomeSDK
882
875
  #
883
876
  # @param is_prorated [Boolean] Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
884
877
  #
885
- # @param minimum_config [MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::MinimumConfig] Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
886
- #
887
878
  # @param price [Float] Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type, t
888
879
  #
889
880
  # @param quantity [Float] Default quantity. For SUBSCRIPTION rate_type, this must be >=0.
@@ -904,19 +895,6 @@ module MetronomeSDK
904
895
  # @!method self.values
905
896
  # @return [Array<Symbol>]
906
897
  end
907
-
908
- # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate#minimum_config
909
- class MinimumConfig < MetronomeSDK::Internal::Type::BaseModel
910
- # @!attribute minimum
911
- #
912
- # @return [Float]
913
- required :minimum, Float
914
-
915
- # @!method initialize(minimum:)
916
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
917
- #
918
- # @param minimum [Float]
919
- end
920
898
  end
921
899
 
922
900
  # @see MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride#product
@@ -59,7 +59,7 @@ module MetronomeSDK
59
59
  #
60
60
  # Add a new rate
61
61
  #
62
- # @overload add(entitled:, product_id:, rate_card_id:, rate_type:, starting_at:, billing_frequency: nil, commit_rate: nil, credit_type_id: nil, custom_rate: nil, ending_before: nil, is_prorated: nil, minimum_config: nil, price: nil, pricing_group_values: nil, quantity: nil, tiers: nil, request_options: {})
62
+ # @overload add(entitled:, product_id:, rate_card_id:, rate_type:, starting_at:, billing_frequency: nil, commit_rate: nil, credit_type_id: nil, custom_rate: nil, ending_before: nil, is_prorated: nil, price: nil, pricing_group_values: nil, quantity: nil, tiers: nil, request_options: {})
63
63
  #
64
64
  # @param entitled [Boolean]
65
65
  #
@@ -83,8 +83,6 @@ module MetronomeSDK
83
83
  #
84
84
  # @param is_prorated [Boolean] Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
85
85
  #
86
- # @param minimum_config [MetronomeSDK::Models::V1::Contracts::RateCards::RateAddParams::MinimumConfig] Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
87
- #
88
86
  # @param price [Float] Default price. For FLAT and SUBSCRIPTION rate_type, this must be >=0. For PERCEN
89
87
  #
90
88
  # @param pricing_group_values [Hash{Symbol=>String}] Optional. List of pricing group key value pairs which will be used to calculate
@@ -221,6 +221,59 @@ module MetronomeSDK
221
221
  )
222
222
  end
223
223
 
224
+ # Deprecate an existing billing configuration for a customer to handle churn or
225
+ # billing and collection preference changes. Archiving a billing configuration
226
+ # takes effect immediately. If there are active contracts using the configuration,
227
+ # Metronome will archive the configuration on the contract and immediately stop
228
+ # metering to downstream systems.
229
+ #
230
+ # ### Use this endpoint to:
231
+ #
232
+ # - Remove billing provider customer data and configurations when no longer needed
233
+ # - Clean up test or deprecated billing provider configurations
234
+ # - Free up uniqueness keys for reuse with new billing provider configurations
235
+ # - Disable threshold recharge configurations associated with archived billing
236
+ # providers
237
+ #
238
+ # ### Key response fields:
239
+ #
240
+ # A successful response returns:
241
+ #
242
+ # - `success`: Boolean indicating the operation completed successfully
243
+ # - `error`: Null on success, error message on failure
244
+ #
245
+ # ### Usage guidelines:
246
+ #
247
+ # - Archiving a contract configuration during a grace period will result in the
248
+ # invoice not being sent to the customer
249
+ # - Automatically disables both spend-based and credit-based threshold recharge
250
+ # configurations for contracts using the archived billing provider
251
+ # - You can archive multiple configurations for a single customer in a single
252
+ # request, but any validation failures for an individual configuration will
253
+ # prevent the entire operation from succeeding
254
+ #
255
+ # @overload archive_billing_configurations(customer_billing_provider_configuration_ids:, customer_id:, request_options: {})
256
+ #
257
+ # @param customer_billing_provider_configuration_ids [Array<String>] Array of billing provider configuration IDs to archive
258
+ #
259
+ # @param customer_id [String] The customer ID the billing provider configurations belong to
260
+ #
261
+ # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}, nil]
262
+ #
263
+ # @return [MetronomeSDK::Models::V1::CustomerArchiveBillingConfigurationsResponse]
264
+ #
265
+ # @see MetronomeSDK::Models::V1::CustomerArchiveBillingConfigurationsParams
266
+ def archive_billing_configurations(params)
267
+ parsed, options = MetronomeSDK::V1::CustomerArchiveBillingConfigurationsParams.dump_request(params)
268
+ @client.request(
269
+ method: :post,
270
+ path: "v1/archiveCustomerBillingProviderConfigurations",
271
+ body: parsed,
272
+ model: MetronomeSDK::Models::V1::CustomerArchiveBillingConfigurationsResponse,
273
+ options: options
274
+ )
275
+ end
276
+
224
277
  # Some parameter documentations has been truncated, see
225
278
  # {MetronomeSDK::Models::V1::CustomerListBillableMetricsParams} for more details.
226
279
  #
@@ -199,6 +199,27 @@ module MetronomeSDK
199
199
  # - Build detailed usage dashboards with dimensional filtering
200
200
  # - Identify high-usage segments for optimization opportunities
201
201
  #
202
+ # ### Request parameters
203
+ #
204
+ # Use [`group_key`](#body-group-key) and [`group_filters`](#body-group-filters) to
205
+ # group by one or more dimensions. This is required for compound group keys and
206
+ # recommended for all new integrations:
207
+ #
208
+ # ```json
209
+ # {
210
+ # "group_key": ["region", "team"],
211
+ # "group_filters": {
212
+ # "region": ["US-East", "US-West"]
213
+ # }
214
+ # }
215
+ # ```
216
+ #
217
+ # Important: For compound group keys, you must pass the complete set of keys that
218
+ # make up the compound key. Partial key combinations are not supported. For
219
+ # example, if your billable metric has a compound group key [region, team,
220
+ # environment], you must pass all three keys in group_key—you cannot pass just
221
+ # `[region]` or `[region, team]`.
222
+ #
202
223
  # ### Key response fields:
203
224
  #
204
225
  # An array of `PagedUsageAggregate` objects containing:
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MetronomeSDK
4
- VERSION = "3.2.0"
4
+ VERSION = "3.4.0"
5
5
  end
data/lib/metronome_sdk.rb CHANGED
@@ -185,6 +185,8 @@ require_relative "metronome_sdk/models/v1/credit_grant_void_params"
185
185
  require_relative "metronome_sdk/models/v1/credit_grant_void_response"
186
186
  require_relative "metronome_sdk/models/v1/credit_ledger_entry"
187
187
  require_relative "metronome_sdk/models/v1/customer"
188
+ require_relative "metronome_sdk/models/v1/customer_archive_billing_configurations_params"
189
+ require_relative "metronome_sdk/models/v1/customer_archive_billing_configurations_response"
188
190
  require_relative "metronome_sdk/models/v1/customer_archive_params"
189
191
  require_relative "metronome_sdk/models/v1/customer_archive_response"
190
192
  require_relative "metronome_sdk/models/v1/customer_create_params"
@@ -13,6 +13,9 @@ module MetronomeSDK
13
13
  sig { returns(String) }
14
14
  attr_reader :bearer_token
15
15
 
16
+ sig { returns(T.nilable(String)) }
17
+ attr_reader :webhook_secret
18
+
16
19
  sig { returns(MetronomeSDK::Resources::V2) }
17
20
  attr_reader :v2
18
21
 
@@ -28,6 +31,7 @@ module MetronomeSDK
28
31
  sig do
29
32
  params(
30
33
  bearer_token: T.nilable(String),
34
+ webhook_secret: T.nilable(String),
31
35
  base_url: T.nilable(String),
32
36
  max_retries: Integer,
33
37
  timeout: Float,
@@ -38,6 +42,8 @@ module MetronomeSDK
38
42
  def self.new(
39
43
  # Defaults to `ENV["METRONOME_BEARER_TOKEN"]`
40
44
  bearer_token: ENV["METRONOME_BEARER_TOKEN"],
45
+ # Defaults to `ENV["METRONOME_WEBHOOK_SECRET"]`
46
+ webhook_secret: ENV["METRONOME_WEBHOOK_SECRET"],
41
47
  # Override the default base URL for the API, e.g.,
42
48
  # `"https://api.example.com/v2/"`. Defaults to `ENV["METRONOME_BASE_URL"]`
43
49
  base_url: ENV["METRONOME_BASE_URL"],
@@ -11,17 +11,6 @@ module MetronomeSDK
11
11
  sig { returns(MetronomeSDK::CommitRate::RateType::OrSymbol) }
12
12
  attr_accessor :rate_type
13
13
 
14
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
15
- sig { returns(T.nilable(MetronomeSDK::CommitRate::MinimumConfig)) }
16
- attr_reader :minimum_config
17
-
18
- sig do
19
- params(
20
- minimum_config: MetronomeSDK::CommitRate::MinimumConfig::OrHash
21
- ).void
22
- end
23
- attr_writer :minimum_config
24
-
25
14
  # Commit rate price. For FLAT rate_type, this must be >=0. For PERCENTAGE
26
15
  # rate_type, this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0
27
16
  # and <=1.
@@ -43,15 +32,12 @@ module MetronomeSDK
43
32
  sig do
44
33
  params(
45
34
  rate_type: MetronomeSDK::CommitRate::RateType::OrSymbol,
46
- minimum_config: MetronomeSDK::CommitRate::MinimumConfig::OrHash,
47
35
  price: Float,
48
36
  tiers: T::Array[MetronomeSDK::Tier::OrHash]
49
37
  ).returns(T.attached_class)
50
38
  end
51
39
  def self.new(
52
40
  rate_type:,
53
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
54
- minimum_config: nil,
55
41
  # Commit rate price. For FLAT rate_type, this must be >=0. For PERCENTAGE
56
42
  # rate_type, this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0
57
43
  # and <=1.
@@ -65,7 +51,6 @@ module MetronomeSDK
65
51
  override.returns(
66
52
  {
67
53
  rate_type: MetronomeSDK::CommitRate::RateType::OrSymbol,
68
- minimum_config: MetronomeSDK::CommitRate::MinimumConfig,
69
54
  price: Float,
70
55
  tiers: T::Array[MetronomeSDK::Tier]
71
56
  }
@@ -104,28 +89,6 @@ module MetronomeSDK
104
89
  def self.values
105
90
  end
106
91
  end
107
-
108
- class MinimumConfig < MetronomeSDK::Internal::Type::BaseModel
109
- OrHash =
110
- T.type_alias do
111
- T.any(
112
- MetronomeSDK::CommitRate::MinimumConfig,
113
- MetronomeSDK::Internal::AnyHash
114
- )
115
- end
116
-
117
- sig { returns(Float) }
118
- attr_accessor :minimum
119
-
120
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
121
- sig { params(minimum: Float).returns(T.attached_class) }
122
- def self.new(minimum:)
123
- end
124
-
125
- sig { override.returns({ minimum: Float }) }
126
- def to_hash
127
- end
128
- end
129
92
  end
130
93
  end
131
94
  end
@@ -2724,24 +2724,6 @@ module MetronomeSDK
2724
2724
  sig { params(is_prorated: T::Boolean).void }
2725
2725
  attr_writer :is_prorated
2726
2726
 
2727
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
2728
- sig do
2729
- returns(
2730
- T.nilable(
2731
- MetronomeSDK::ContractV2::Override::OverwriteRate::MinimumConfig
2732
- )
2733
- )
2734
- end
2735
- attr_reader :minimum_config
2736
-
2737
- sig do
2738
- params(
2739
- minimum_config:
2740
- MetronomeSDK::ContractV2::Override::OverwriteRate::MinimumConfig::OrHash
2741
- ).void
2742
- end
2743
- attr_writer :minimum_config
2744
-
2745
2727
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
2746
2728
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
2747
2729
  sig { returns(T.nilable(Float)) }
@@ -2771,8 +2753,6 @@ module MetronomeSDK
2771
2753
  credit_type: MetronomeSDK::CreditTypeData::OrHash,
2772
2754
  custom_rate: T::Hash[Symbol, T.anything],
2773
2755
  is_prorated: T::Boolean,
2774
- minimum_config:
2775
- MetronomeSDK::ContractV2::Override::OverwriteRate::MinimumConfig::OrHash,
2776
2756
  price: Float,
2777
2757
  quantity: Float,
2778
2758
  tiers: T::Array[MetronomeSDK::Tier::OrHash]
@@ -2787,8 +2767,6 @@ module MetronomeSDK
2787
2767
  # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
2788
2768
  # set to true.
2789
2769
  is_prorated: nil,
2790
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
2791
- minimum_config: nil,
2792
2770
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
2793
2771
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
2794
2772
  price: nil,
@@ -2807,8 +2785,6 @@ module MetronomeSDK
2807
2785
  credit_type: MetronomeSDK::CreditTypeData,
2808
2786
  custom_rate: T::Hash[Symbol, T.anything],
2809
2787
  is_prorated: T::Boolean,
2810
- minimum_config:
2811
- MetronomeSDK::ContractV2::Override::OverwriteRate::MinimumConfig,
2812
2788
  price: Float,
2813
2789
  quantity: Float,
2814
2790
  tiers: T::Array[MetronomeSDK::Tier]
@@ -2871,28 +2847,6 @@ module MetronomeSDK
2871
2847
  def self.values
2872
2848
  end
2873
2849
  end
2874
-
2875
- class MinimumConfig < MetronomeSDK::Internal::Type::BaseModel
2876
- OrHash =
2877
- T.type_alias do
2878
- T.any(
2879
- MetronomeSDK::ContractV2::Override::OverwriteRate::MinimumConfig,
2880
- MetronomeSDK::Internal::AnyHash
2881
- )
2882
- end
2883
-
2884
- sig { returns(Float) }
2885
- attr_accessor :minimum
2886
-
2887
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
2888
- sig { params(minimum: Float).returns(T.attached_class) }
2889
- def self.new(minimum:)
2890
- end
2891
-
2892
- sig { override.returns({ minimum: Float }) }
2893
- def to_hash
2894
- end
2895
- end
2896
2850
  end
2897
2851
 
2898
2852
  class Product < MetronomeSDK::Internal::Type::BaseModel
@@ -33,17 +33,6 @@ module MetronomeSDK
33
33
  sig { params(is_prorated: T::Boolean).void }
34
34
  attr_writer :is_prorated
35
35
 
36
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
37
- sig { returns(T.nilable(MetronomeSDK::OverwriteRate::MinimumConfig)) }
38
- attr_reader :minimum_config
39
-
40
- sig do
41
- params(
42
- minimum_config: MetronomeSDK::OverwriteRate::MinimumConfig::OrHash
43
- ).void
44
- end
45
- attr_writer :minimum_config
46
-
47
36
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
48
37
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
49
38
  sig { returns(T.nilable(Float)) }
@@ -72,7 +61,6 @@ module MetronomeSDK
72
61
  credit_type: MetronomeSDK::CreditTypeData::OrHash,
73
62
  custom_rate: T::Hash[Symbol, T.anything],
74
63
  is_prorated: T::Boolean,
75
- minimum_config: MetronomeSDK::OverwriteRate::MinimumConfig::OrHash,
76
64
  price: Float,
77
65
  quantity: Float,
78
66
  tiers: T::Array[MetronomeSDK::Tier::OrHash]
@@ -87,8 +75,6 @@ module MetronomeSDK
87
75
  # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
88
76
  # set to true.
89
77
  is_prorated: nil,
90
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
91
- minimum_config: nil,
92
78
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
93
79
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
94
80
  price: nil,
@@ -106,7 +92,6 @@ module MetronomeSDK
106
92
  credit_type: MetronomeSDK::CreditTypeData,
107
93
  custom_rate: T::Hash[Symbol, T.anything],
108
94
  is_prorated: T::Boolean,
109
- minimum_config: MetronomeSDK::OverwriteRate::MinimumConfig,
110
95
  price: Float,
111
96
  quantity: Float,
112
97
  tiers: T::Array[MetronomeSDK::Tier]
@@ -152,28 +137,6 @@ module MetronomeSDK
152
137
  def self.values
153
138
  end
154
139
  end
155
-
156
- class MinimumConfig < MetronomeSDK::Internal::Type::BaseModel
157
- OrHash =
158
- T.type_alias do
159
- T.any(
160
- MetronomeSDK::OverwriteRate::MinimumConfig,
161
- MetronomeSDK::Internal::AnyHash
162
- )
163
- end
164
-
165
- sig { returns(Float) }
166
- attr_accessor :minimum
167
-
168
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
169
- sig { params(minimum: Float).returns(T.attached_class) }
170
- def self.new(minimum:)
171
- end
172
-
173
- sig { override.returns({ minimum: Float }) }
174
- def to_hash
175
- end
176
- end
177
140
  end
178
141
  end
179
142
  end
@@ -33,15 +33,6 @@ module MetronomeSDK
33
33
  sig { params(is_prorated: T::Boolean).void }
34
34
  attr_writer :is_prorated
35
35
 
36
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
37
- sig { returns(T.nilable(MetronomeSDK::Rate::MinimumConfig)) }
38
- attr_reader :minimum_config
39
-
40
- sig do
41
- params(minimum_config: MetronomeSDK::Rate::MinimumConfig::OrHash).void
42
- end
43
- attr_writer :minimum_config
44
-
45
36
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
46
37
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
47
38
  sig { returns(T.nilable(Float)) }
@@ -78,7 +69,6 @@ module MetronomeSDK
78
69
  credit_type: MetronomeSDK::CreditTypeData::OrHash,
79
70
  custom_rate: T::Hash[Symbol, T.anything],
80
71
  is_prorated: T::Boolean,
81
- minimum_config: MetronomeSDK::Rate::MinimumConfig::OrHash,
82
72
  price: Float,
83
73
  pricing_group_values: T::Hash[Symbol, String],
84
74
  quantity: Float,
@@ -94,8 +84,6 @@ module MetronomeSDK
94
84
  # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
95
85
  # set to true.
96
86
  is_prorated: nil,
97
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
98
- minimum_config: nil,
99
87
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
100
88
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
101
89
  price: nil,
@@ -116,7 +104,6 @@ module MetronomeSDK
116
104
  credit_type: MetronomeSDK::CreditTypeData,
117
105
  custom_rate: T::Hash[Symbol, T.anything],
118
106
  is_prorated: T::Boolean,
119
- minimum_config: MetronomeSDK::Rate::MinimumConfig,
120
107
  price: Float,
121
108
  pricing_group_values: T::Hash[Symbol, String],
122
109
  quantity: Float,
@@ -150,28 +137,6 @@ module MetronomeSDK
150
137
  def self.values
151
138
  end
152
139
  end
153
-
154
- class MinimumConfig < MetronomeSDK::Internal::Type::BaseModel
155
- OrHash =
156
- T.type_alias do
157
- T.any(
158
- MetronomeSDK::Rate::MinimumConfig,
159
- MetronomeSDK::Internal::AnyHash
160
- )
161
- end
162
-
163
- sig { returns(Float) }
164
- attr_accessor :minimum
165
-
166
- # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
167
- sig { params(minimum: Float).returns(T.attached_class) }
168
- def self.new(minimum:)
169
- end
170
-
171
- sig { override.returns({ minimum: Float }) }
172
- def to_hash
173
- end
174
- end
175
140
  end
176
141
  end
177
142
  end