metronome-sdk 3.1.0 → 3.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 (152) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/util.rb +32 -1
  5. data/lib/metronome_sdk/models/commit_rate.rb +29 -3
  6. data/lib/metronome_sdk/models/contract.rb +1 -9
  7. data/lib/metronome_sdk/models/contract_v2.rb +22 -1
  8. data/lib/metronome_sdk/models/overwrite_rate.rb +22 -1
  9. data/lib/metronome_sdk/models/payment_gate_config.rb +0 -1
  10. data/lib/metronome_sdk/models/payment_gate_config_v2.rb +0 -1
  11. data/lib/metronome_sdk/models/rate.rb +22 -1
  12. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +23 -2
  13. data/lib/metronome_sdk/models/v1/contract_create_params.rb +24 -11
  14. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rb +23 -1
  15. data/lib/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rb +21 -1
  16. data/lib/metronome_sdk/models/v1/customers/invoice.rb +10 -1
  17. data/lib/metronome_sdk/models/v1/package_archive_params.rb +24 -0
  18. data/lib/metronome_sdk/models/v1/package_archive_response.rb +18 -0
  19. data/lib/metronome_sdk/models/v1/package_create_params.rb +2719 -0
  20. data/lib/metronome_sdk/models/v1/package_create_response.rb +18 -0
  21. data/lib/metronome_sdk/models/v1/package_list_contracts_on_package_params.rb +69 -0
  22. data/lib/metronome_sdk/models/v1/package_list_contracts_on_package_response.rb +42 -0
  23. data/lib/metronome_sdk/models/v1/package_list_params.rb +52 -0
  24. data/lib/metronome_sdk/models/v1/package_list_response.rb +2446 -0
  25. data/lib/metronome_sdk/models/v1/package_retrieve_params.rb +22 -0
  26. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +2479 -0
  27. data/lib/metronome_sdk/models/v1/usage_list_with_groups_params.rb +39 -2
  28. data/lib/metronome_sdk/models/v1/usage_list_with_groups_response.rb +27 -3
  29. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +23 -2
  30. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +23 -1
  31. data/lib/metronome_sdk/resources/v1/alerts.rb +5 -0
  32. data/lib/metronome_sdk/resources/v1/audit_logs.rb +4 -1
  33. data/lib/metronome_sdk/resources/v1/billable_metrics.rb +5 -1
  34. data/lib/metronome_sdk/resources/v1/contracts/named_schedules.rb +2 -0
  35. data/lib/metronome_sdk/resources/v1/contracts/products.rb +4 -2
  36. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/named_schedules.rb +2 -0
  37. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rb +1 -0
  38. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +7 -3
  39. data/lib/metronome_sdk/resources/v1/contracts/rate_cards.rb +10 -3
  40. data/lib/metronome_sdk/resources/v1/contracts.rb +8 -5
  41. data/lib/metronome_sdk/resources/v1/credit_grants.rb +9 -4
  42. data/lib/metronome_sdk/resources/v1/custom_fields.rb +6 -2
  43. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +8 -2
  44. data/lib/metronome_sdk/resources/v1/customers/billing_config.rb +4 -0
  45. data/lib/metronome_sdk/resources/v1/customers/commits.rb +1 -0
  46. data/lib/metronome_sdk/resources/v1/customers/credits.rb +1 -0
  47. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +10 -3
  48. data/lib/metronome_sdk/resources/v1/customers/named_schedules.rb +2 -0
  49. data/lib/metronome_sdk/resources/v1/customers/plans.rb +8 -2
  50. data/lib/metronome_sdk/resources/v1/customers.rb +27 -3
  51. data/lib/metronome_sdk/resources/v1/dashboards.rb +4 -0
  52. data/lib/metronome_sdk/resources/v1/invoices.rb +4 -0
  53. data/lib/metronome_sdk/resources/v1/packages.rb +269 -0
  54. data/lib/metronome_sdk/resources/v1/plans.rb +10 -3
  55. data/lib/metronome_sdk/resources/v1/pricing_units.rb +4 -1
  56. data/lib/metronome_sdk/resources/v1/services.rb +2 -0
  57. data/lib/metronome_sdk/resources/v1/settings/billing_providers.rb +2 -0
  58. data/lib/metronome_sdk/resources/v1/settings.rb +4 -0
  59. data/lib/metronome_sdk/resources/v1/usage.rb +26 -13
  60. data/lib/metronome_sdk/resources/v1.rb +41 -0
  61. data/lib/metronome_sdk/version.rb +1 -1
  62. data/lib/metronome_sdk.rb +11 -0
  63. data/rbi/metronome_sdk/internal/util.rbi +21 -1
  64. data/rbi/metronome_sdk/models/commit_rate.rbi +43 -2
  65. data/rbi/metronome_sdk/models/contract.rbi +0 -11
  66. data/rbi/metronome_sdk/models/contract_v2.rbi +46 -0
  67. data/rbi/metronome_sdk/models/overwrite_rate.rbi +37 -0
  68. data/rbi/metronome_sdk/models/payment_gate_config.rbi +0 -5
  69. data/rbi/metronome_sdk/models/payment_gate_config_v2.rbi +0 -5
  70. data/rbi/metronome_sdk/models/rate.rbi +35 -0
  71. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +46 -5
  72. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +46 -16
  73. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbi +46 -0
  74. data/rbi/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbi +46 -0
  75. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +13 -0
  76. data/rbi/metronome_sdk/models/v1/package_archive_params.rbi +48 -0
  77. data/rbi/metronome_sdk/models/v1/package_archive_response.rbi +31 -0
  78. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +6362 -0
  79. data/rbi/metronome_sdk/models/v1/package_create_response.rbi +31 -0
  80. data/rbi/metronome_sdk/models/v1/package_list_contracts_on_package_params.rbi +105 -0
  81. data/rbi/metronome_sdk/models/v1/package_list_contracts_on_package_response.rbi +70 -0
  82. data/rbi/metronome_sdk/models/v1/package_list_params.rbi +123 -0
  83. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +5796 -0
  84. data/rbi/metronome_sdk/models/v1/package_retrieve_params.rbi +43 -0
  85. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +5864 -0
  86. data/rbi/metronome_sdk/models/v1/usage_list_with_groups_params.rbi +52 -0
  87. data/rbi/metronome_sdk/models/v1/usage_list_with_groups_response.rbi +24 -3
  88. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +46 -5
  89. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +46 -0
  90. data/rbi/metronome_sdk/resources/v1/alerts.rbi +5 -0
  91. data/rbi/metronome_sdk/resources/v1/audit_logs.rbi +2 -0
  92. data/rbi/metronome_sdk/resources/v1/billable_metrics.rbi +3 -0
  93. data/rbi/metronome_sdk/resources/v1/contracts/named_schedules.rbi +2 -0
  94. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +1 -0
  95. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/named_schedules.rbi +2 -0
  96. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/product_orders.rbi +1 -0
  97. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +5 -0
  98. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards.rbi +5 -0
  99. data/rbi/metronome_sdk/resources/v1/contracts.rbi +4 -3
  100. data/rbi/metronome_sdk/resources/v1/credit_grants.rbi +3 -0
  101. data/rbi/metronome_sdk/resources/v1/custom_fields.rbi +3 -0
  102. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +5 -0
  103. data/rbi/metronome_sdk/resources/v1/customers/billing_config.rbi +4 -0
  104. data/rbi/metronome_sdk/resources/v1/customers/commits.rbi +1 -0
  105. data/rbi/metronome_sdk/resources/v1/customers/credits.rbi +1 -0
  106. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  107. data/rbi/metronome_sdk/resources/v1/customers/named_schedules.rbi +2 -0
  108. data/rbi/metronome_sdk/resources/v1/customers/plans.rbi +4 -0
  109. data/rbi/metronome_sdk/resources/v1/customers.rbi +21 -0
  110. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +4 -0
  111. data/rbi/metronome_sdk/resources/v1/invoices.rbi +4 -0
  112. data/rbi/metronome_sdk/resources/v1/packages.rbi +268 -0
  113. data/rbi/metronome_sdk/resources/v1/plans.rbi +4 -0
  114. data/rbi/metronome_sdk/resources/v1/pricing_units.rbi +2 -0
  115. data/rbi/metronome_sdk/resources/v1/services.rbi +2 -0
  116. data/rbi/metronome_sdk/resources/v1/settings/billing_providers.rbi +2 -0
  117. data/rbi/metronome_sdk/resources/v1/settings.rbi +4 -0
  118. data/rbi/metronome_sdk/resources/v1/usage.rbi +35 -8
  119. data/rbi/metronome_sdk/resources/v1.rbi +40 -0
  120. data/sig/metronome_sdk/internal/util.rbs +10 -0
  121. data/sig/metronome_sdk/models/commit_rate.rbs +19 -0
  122. data/sig/metronome_sdk/models/contract.rbs +0 -7
  123. data/sig/metronome_sdk/models/contract_v2.rbs +19 -0
  124. data/sig/metronome_sdk/models/overwrite_rate.rbs +19 -0
  125. data/sig/metronome_sdk/models/payment_gate_config.rbs +1 -2
  126. data/sig/metronome_sdk/models/payment_gate_config_v2.rbs +1 -2
  127. data/sig/metronome_sdk/models/rate.rbs +19 -0
  128. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +20 -2
  129. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +20 -9
  130. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_many_params.rbs +19 -0
  131. data/sig/metronome_sdk/models/v1/contracts/rate_cards/rate_add_params.rbs +19 -0
  132. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +7 -0
  133. data/sig/metronome_sdk/models/v1/package_archive_params.rbs +26 -0
  134. data/sig/metronome_sdk/models/v1/package_archive_response.rbs +15 -0
  135. data/sig/metronome_sdk/models/v1/package_create_params.rbs +2532 -0
  136. data/sig/metronome_sdk/models/v1/package_create_response.rbs +15 -0
  137. data/sig/metronome_sdk/models/v1/package_list_contracts_on_package_params.rbs +63 -0
  138. data/sig/metronome_sdk/models/v1/package_list_contracts_on_package_response.rbs +46 -0
  139. data/sig/metronome_sdk/models/v1/package_list_params.rbs +58 -0
  140. data/sig/metronome_sdk/models/v1/package_list_response.rbs +2441 -0
  141. data/sig/metronome_sdk/models/v1/package_retrieve_params.rbs +26 -0
  142. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +2467 -0
  143. data/sig/metronome_sdk/models/v1/usage_list_with_groups_params.rbs +16 -0
  144. data/sig/metronome_sdk/models/v1/usage_list_with_groups_response.rbs +10 -3
  145. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +20 -2
  146. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +19 -0
  147. data/sig/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbs +1 -0
  148. data/sig/metronome_sdk/resources/v1/contracts.rbs +0 -1
  149. data/sig/metronome_sdk/resources/v1/packages.rbs +63 -0
  150. data/sig/metronome_sdk/resources/v1/usage.rbs +2 -0
  151. data/sig/metronome_sdk/resources/v1.rbs +2 -0
  152. metadata +35 -2
@@ -60,6 +60,8 @@ module MetronomeSDK
60
60
  sig { params(ending_before: Time).void }
61
61
  attr_writer :ending_before
62
62
 
63
+ # Use group_key and group_filters instead. Use a single group key to group by.
64
+ # Compound group keys are not supported.
63
65
  sig do
64
66
  returns(
65
67
  T.nilable(MetronomeSDK::V1::UsageListWithGroupsParams::GroupBy)
@@ -75,6 +77,32 @@ module MetronomeSDK
75
77
  end
76
78
  attr_writer :group_by
77
79
 
80
+ # Object mapping group keys to arrays of values to filter on. Only usage matching
81
+ # these filter values will be returned. Keys must be present in group_key. Omit a
82
+ # key or use an empty array to include all values for that dimension.
83
+ sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
84
+ attr_reader :group_filters
85
+
86
+ sig { params(group_filters: T::Hash[Symbol, T::Array[String]]).void }
87
+ attr_writer :group_filters
88
+
89
+ # Group key to group usage by. Supports both simple (single key) and compound
90
+ # (multiple keys) group keys.
91
+ #
92
+ # For simple group keys, provide a single key e.g. `["region"]`. For compound
93
+ # group keys, provide multiple keys e.g. `["region", "team"]`.
94
+ #
95
+ # For streaming metrics, the keys must be defined as a simple or compound group
96
+ # key on the billable metric. For compound group keys, all keys must match an
97
+ # exact compound group key definition — partial matches are not allowed.
98
+ #
99
+ # Cannot be used together with `group_by`.
100
+ sig { returns(T.nilable(T::Array[String])) }
101
+ attr_reader :group_key
102
+
103
+ sig { params(group_key: T::Array[String]).void }
104
+ attr_writer :group_key
105
+
78
106
  sig { returns(T.nilable(Time)) }
79
107
  attr_reader :starting_on
80
108
 
@@ -93,6 +121,8 @@ module MetronomeSDK
93
121
  ending_before: Time,
94
122
  group_by:
95
123
  MetronomeSDK::V1::UsageListWithGroupsParams::GroupBy::OrHash,
124
+ group_filters: T::Hash[Symbol, T::Array[String]],
125
+ group_key: T::Array[String],
96
126
  starting_on: Time,
97
127
  request_options: MetronomeSDK::RequestOptions::OrHash
98
128
  ).returns(T.attached_class)
@@ -113,7 +143,25 @@ module MetronomeSDK
113
143
  # are specified when this is true.
114
144
  current_period: nil,
115
145
  ending_before: nil,
146
+ # Use group_key and group_filters instead. Use a single group key to group by.
147
+ # Compound group keys are not supported.
116
148
  group_by: nil,
149
+ # Object mapping group keys to arrays of values to filter on. Only usage matching
150
+ # these filter values will be returned. Keys must be present in group_key. Omit a
151
+ # key or use an empty array to include all values for that dimension.
152
+ group_filters: nil,
153
+ # Group key to group usage by. Supports both simple (single key) and compound
154
+ # (multiple keys) group keys.
155
+ #
156
+ # For simple group keys, provide a single key e.g. `["region"]`. For compound
157
+ # group keys, provide multiple keys e.g. `["region", "team"]`.
158
+ #
159
+ # For streaming metrics, the keys must be defined as a simple or compound group
160
+ # key on the billable metric. For compound group keys, all keys must match an
161
+ # exact compound group key definition — partial matches are not allowed.
162
+ #
163
+ # Cannot be used together with `group_by`.
164
+ group_key: nil,
117
165
  starting_on: nil,
118
166
  request_options: {}
119
167
  )
@@ -131,6 +179,8 @@ module MetronomeSDK
131
179
  current_period: T::Boolean,
132
180
  ending_before: Time,
133
181
  group_by: MetronomeSDK::V1::UsageListWithGroupsParams::GroupBy,
182
+ group_filters: T::Hash[Symbol, T::Array[String]],
183
+ group_key: T::Array[String],
134
184
  starting_on: Time,
135
185
  request_options: MetronomeSDK::RequestOptions
136
186
  }
@@ -202,6 +252,8 @@ module MetronomeSDK
202
252
  sig { params(values: T::Array[String]).void }
203
253
  attr_writer :values
204
254
 
255
+ # Use group_key and group_filters instead. Use a single group key to group by.
256
+ # Compound group keys are not supported.
205
257
  sig do
206
258
  params(key: String, values: T::Array[String]).returns(
207
259
  T.attached_class
@@ -15,9 +15,11 @@ module MetronomeSDK
15
15
  sig { returns(Time) }
16
16
  attr_accessor :ending_before
17
17
 
18
+ # Use `group` instead. The group key for single-key grouping.
18
19
  sig { returns(T.nilable(String)) }
19
20
  attr_accessor :group_key
20
21
 
22
+ # Use `group` instead. The group value for single-key grouping.
21
23
  sig { returns(T.nilable(String)) }
22
24
  attr_accessor :group_value
23
25
 
@@ -27,21 +29,39 @@ module MetronomeSDK
27
29
  sig { returns(T.nilable(Float)) }
28
30
  attr_accessor :value
29
31
 
32
+ # Map of group key to their value for this usage aggregate. For simple group keys,
33
+ # this should be a single key e.g. `{"region": "US-East"}` For compound group
34
+ # keys, this should contain the values of each group key that forms the compound
35
+ # e.g. `{"region": "US-East", "team": "engineering"}`
36
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
37
+ attr_reader :group
38
+
39
+ sig { params(group: T::Hash[Symbol, String]).void }
40
+ attr_writer :group
41
+
30
42
  sig do
31
43
  params(
32
44
  ending_before: Time,
33
45
  group_key: T.nilable(String),
34
46
  group_value: T.nilable(String),
35
47
  starting_on: Time,
36
- value: T.nilable(Float)
48
+ value: T.nilable(Float),
49
+ group: T::Hash[Symbol, String]
37
50
  ).returns(T.attached_class)
38
51
  end
39
52
  def self.new(
40
53
  ending_before:,
54
+ # Use `group` instead. The group key for single-key grouping.
41
55
  group_key:,
56
+ # Use `group` instead. The group value for single-key grouping.
42
57
  group_value:,
43
58
  starting_on:,
44
- value:
59
+ value:,
60
+ # Map of group key to their value for this usage aggregate. For simple group keys,
61
+ # this should be a single key e.g. `{"region": "US-East"}` For compound group
62
+ # keys, this should contain the values of each group key that forms the compound
63
+ # e.g. `{"region": "US-East", "team": "engineering"}`
64
+ group: nil
45
65
  )
46
66
  end
47
67
 
@@ -52,7 +72,8 @@ module MetronomeSDK
52
72
  group_key: T.nilable(String),
53
73
  group_value: T.nilable(String),
54
74
  starting_on: Time,
55
- value: T.nilable(Float)
75
+ value: T.nilable(Float),
76
+ group: T::Hash[Symbol, String]
56
77
  }
57
78
  )
58
79
  end
@@ -2355,11 +2355,6 @@ module MetronomeSDK
2355
2355
  :ANROK,
2356
2356
  MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::TaxType::TaggedSymbol
2357
2357
  )
2358
- AVALARA =
2359
- T.let(
2360
- :AVALARA,
2361
- MetronomeSDK::V2::ContractEditParams::AddCommit::PaymentGateConfig::TaxType::TaggedSymbol
2362
- )
2363
2358
  PRECALCULATED =
2364
2359
  T.let(
2365
2360
  :PRECALCULATED,
@@ -3725,6 +3720,24 @@ module MetronomeSDK
3725
3720
  sig { params(is_prorated: T::Boolean).void }
3726
3721
  attr_writer :is_prorated
3727
3722
 
3723
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
3724
+ sig do
3725
+ returns(
3726
+ T.nilable(
3727
+ MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::MinimumConfig
3728
+ )
3729
+ )
3730
+ end
3731
+ attr_reader :minimum_config
3732
+
3733
+ sig do
3734
+ params(
3735
+ minimum_config:
3736
+ MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::MinimumConfig::OrHash
3737
+ ).void
3738
+ end
3739
+ attr_writer :minimum_config
3740
+
3728
3741
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
3729
3742
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
3730
3743
  sig { returns(T.nilable(Float)) }
@@ -3755,6 +3768,8 @@ module MetronomeSDK
3755
3768
  credit_type_id: String,
3756
3769
  custom_rate: T::Hash[Symbol, T.anything],
3757
3770
  is_prorated: T::Boolean,
3771
+ minimum_config:
3772
+ MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::MinimumConfig::OrHash,
3758
3773
  price: Float,
3759
3774
  quantity: Float,
3760
3775
  tiers: T::Array[MetronomeSDK::Tier::OrHash]
@@ -3769,6 +3784,8 @@ module MetronomeSDK
3769
3784
  # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
3770
3785
  # set to true.
3771
3786
  is_prorated: nil,
3787
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
3788
+ minimum_config: nil,
3772
3789
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
3773
3790
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
3774
3791
  price: nil,
@@ -3787,6 +3804,8 @@ module MetronomeSDK
3787
3804
  credit_type_id: String,
3788
3805
  custom_rate: T::Hash[Symbol, T.anything],
3789
3806
  is_prorated: T::Boolean,
3807
+ minimum_config:
3808
+ MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::MinimumConfig,
3790
3809
  price: Float,
3791
3810
  quantity: Float,
3792
3811
  tiers: T::Array[MetronomeSDK::Tier]
@@ -3849,6 +3868,28 @@ module MetronomeSDK
3849
3868
  def self.values
3850
3869
  end
3851
3870
  end
3871
+
3872
+ class MinimumConfig < MetronomeSDK::Internal::Type::BaseModel
3873
+ OrHash =
3874
+ T.type_alias do
3875
+ T.any(
3876
+ MetronomeSDK::V2::ContractEditParams::AddOverride::OverwriteRate::MinimumConfig,
3877
+ MetronomeSDK::Internal::AnyHash
3878
+ )
3879
+ end
3880
+
3881
+ sig { returns(Float) }
3882
+ attr_accessor :minimum
3883
+
3884
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
3885
+ sig { params(minimum: Float).returns(T.attached_class) }
3886
+ def self.new(minimum:)
3887
+ end
3888
+
3889
+ sig { override.returns({ minimum: Float }) }
3890
+ def to_hash
3891
+ end
3892
+ end
3852
3893
  end
3853
3894
 
3854
3895
  # Indicates whether the override applies to commit rates or list rates. Can only
@@ -2017,6 +2017,24 @@ module MetronomeSDK
2017
2017
  sig { params(is_prorated: T::Boolean).void }
2018
2018
  attr_writer :is_prorated
2019
2019
 
2020
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
2021
+ sig do
2022
+ returns(
2023
+ T.nilable(
2024
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::MinimumConfig
2025
+ )
2026
+ )
2027
+ end
2028
+ attr_reader :minimum_config
2029
+
2030
+ sig do
2031
+ params(
2032
+ minimum_config:
2033
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::MinimumConfig::OrHash
2034
+ ).void
2035
+ end
2036
+ attr_writer :minimum_config
2037
+
2020
2038
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
2021
2039
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
2022
2040
  sig { returns(T.nilable(Float)) }
@@ -2046,6 +2064,8 @@ module MetronomeSDK
2046
2064
  credit_type: MetronomeSDK::CreditTypeData::OrHash,
2047
2065
  custom_rate: T::Hash[Symbol, T.anything],
2048
2066
  is_prorated: T::Boolean,
2067
+ minimum_config:
2068
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::MinimumConfig::OrHash,
2049
2069
  price: Float,
2050
2070
  quantity: Float,
2051
2071
  tiers: T::Array[MetronomeSDK::Tier::OrHash]
@@ -2060,6 +2080,8 @@ module MetronomeSDK
2060
2080
  # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
2061
2081
  # set to true.
2062
2082
  is_prorated: nil,
2083
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
2084
+ minimum_config: nil,
2063
2085
  # Default price. For FLAT rate_type, this must be >=0. For PERCENTAGE rate_type,
2064
2086
  # this is a decimal fraction, e.g. use 0.1 for 10%; this must be >=0 and <=1.
2065
2087
  price: nil,
@@ -2078,6 +2100,8 @@ module MetronomeSDK
2078
2100
  credit_type: MetronomeSDK::CreditTypeData,
2079
2101
  custom_rate: T::Hash[Symbol, T.anything],
2080
2102
  is_prorated: T::Boolean,
2103
+ minimum_config:
2104
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::MinimumConfig,
2081
2105
  price: Float,
2082
2106
  quantity: Float,
2083
2107
  tiers: T::Array[MetronomeSDK::Tier]
@@ -2140,6 +2164,28 @@ module MetronomeSDK
2140
2164
  def self.values
2141
2165
  end
2142
2166
  end
2167
+
2168
+ class MinimumConfig < MetronomeSDK::Internal::Type::BaseModel
2169
+ OrHash =
2170
+ T.type_alias do
2171
+ T.any(
2172
+ MetronomeSDK::Models::V2::ContractGetEditHistoryResponse::Data::AddOverride::OverwriteRate::MinimumConfig,
2173
+ MetronomeSDK::Internal::AnyHash
2174
+ )
2175
+ end
2176
+
2177
+ sig { returns(Float) }
2178
+ attr_accessor :minimum
2179
+
2180
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
2181
+ sig { params(minimum: Float).returns(T.attached_class) }
2182
+ def self.new(minimum:)
2183
+ end
2184
+
2185
+ sig { override.returns({ minimum: Float }) }
2186
+ def to_hash
2187
+ end
2188
+ end
2143
2189
  end
2144
2190
 
2145
2191
  class Product < MetronomeSDK::Internal::Type::BaseModel
@@ -3,6 +3,11 @@
3
3
  module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
+ # [Alerts](https://docs.metronome.com/connecting-metronome/alerts/) monitor
7
+ # customer spending, balances, and other billing factors. Use these endpoints to
8
+ # create, retrieve, and archive customer alerts. To view sample alert payloads by
9
+ # alert type, navigate
10
+ # [here.](https://docs.metronome.com/manage-product-access/create-manage-alerts/#webhook-notifications)
6
11
  class Alerts
7
12
  # Create a new threshold notification to monitor customer spending, balances, and
8
13
  # billing metrics in real-time. Metronome's notification system provides
@@ -3,6 +3,8 @@
3
3
  module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
+ # [Security](https://docs.metronome.com/developer-resources/security/) endpoints
7
+ # allow you to retrieve security-related data.
6
8
  class AuditLogs
7
9
  # Get a comprehensive audit trail of all operations performed in your Metronome
8
10
  # account, whether initiated through the API, web interface, or automated
@@ -3,6 +3,9 @@
3
3
  module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
+ # [Billable metrics](https://docs.metronome.com/understanding-metronome/how-metronome-works#billable-metrics)
7
+ # in Metronome represent the various consumption components that Metronome meters
8
+ # and aggregates.
6
9
  class BillableMetrics
7
10
  # Create billable metrics programmatically with this endpoint—an essential step in
8
11
  # configuring your pricing and packaging in Metronome.
@@ -4,6 +4,8 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Contracts
7
+ # Named schedules are used for storing custom data that can change over time.
8
+ # Named schedules are often used in custom pricing logic.
7
9
  class NamedSchedules
8
10
  # Get a named schedule for the given rate card. This endpoint's availability is
9
11
  # dependent on your client's configuration.
@@ -4,6 +4,7 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Contracts
7
+ # Products are the items that customers purchase.
7
8
  class Products
8
9
  # Create a new product object. Products in Metronome represent your company's
9
10
  # individual product or service offerings. A Product can be thought of as the
@@ -5,6 +5,8 @@ module MetronomeSDK
5
5
  class V1
6
6
  class Contracts
7
7
  class RateCards
8
+ # Named schedules are used for storing custom data that can change over time.
9
+ # Named schedules are often used in custom pricing logic.
8
10
  class NamedSchedules
9
11
  # Get a named schedule for the given contract. This endpoint's availability is
10
12
  # dependent on your client's configuration.
@@ -5,6 +5,7 @@ module MetronomeSDK
5
5
  class V1
6
6
  class Contracts
7
7
  class RateCards
8
+ # Rate cards are used to define default pricing for products.
8
9
  class ProductOrders
9
10
  # The ordering of products on a rate card determines the order in which the
10
11
  # products will appear on customers' invoices. Use this endpoint to set the order
@@ -5,6 +5,7 @@ module MetronomeSDK
5
5
  class V1
6
6
  class Contracts
7
7
  class RateCards
8
+ # Rate cards are used to define default pricing for products.
8
9
  class Rates
9
10
  # Understand the rate schedule at a given timestamp, optionally filtering the list
10
11
  # of rates returned based on properties such as `product_id` and
@@ -65,6 +66,8 @@ module MetronomeSDK
65
66
  custom_rate: T::Hash[Symbol, T.anything],
66
67
  ending_before: Time,
67
68
  is_prorated: T::Boolean,
69
+ minimum_config:
70
+ MetronomeSDK::V1::Contracts::RateCards::RateAddParams::MinimumConfig::OrHash,
68
71
  price: Float,
69
72
  pricing_group_values: T::Hash[Symbol, String],
70
73
  quantity: Float,
@@ -101,6 +104,8 @@ module MetronomeSDK
101
104
  # Default proration configuration. Only valid for SUBSCRIPTION rate_type. Must be
102
105
  # set to true.
103
106
  is_prorated: nil,
107
+ # Only set for TIERED_PERCENTAGE or PERCENTAGE rate_type.
108
+ minimum_config: nil,
104
109
  # Default price. For FLAT and SUBSCRIPTION rate_type, this must be >=0. For
105
110
  # PERCENTAGE rate_type, this is a decimal fraction, e.g. use 0.1 for 10%; this
106
111
  # must be >=0 and <=1.
@@ -4,7 +4,9 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Contracts
7
+ # Rate cards are used to define default pricing for products.
7
8
  class RateCards
9
+ # Rate cards are used to define default pricing for products.
8
10
  sig do
9
11
  returns(
10
12
  MetronomeSDK::Resources::V1::Contracts::RateCards::ProductOrders
@@ -12,11 +14,14 @@ module MetronomeSDK
12
14
  end
13
15
  attr_reader :product_orders
14
16
 
17
+ # Rate cards are used to define default pricing for products.
15
18
  sig do
16
19
  returns(MetronomeSDK::Resources::V1::Contracts::RateCards::Rates)
17
20
  end
18
21
  attr_reader :rates
19
22
 
23
+ # Named schedules are used for storing custom data that can change over time.
24
+ # Named schedules are often used in custom pricing logic.
20
25
  sig do
21
26
  returns(
22
27
  MetronomeSDK::Resources::V1::Contracts::RateCards::NamedSchedules
@@ -4,12 +4,16 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Contracts
7
+ # Products are the items that customers purchase.
7
8
  sig { returns(MetronomeSDK::Resources::V1::Contracts::Products) }
8
9
  attr_reader :products
9
10
 
11
+ # Rate cards are used to define default pricing for products.
10
12
  sig { returns(MetronomeSDK::Resources::V1::Contracts::RateCards) }
11
13
  attr_reader :rate_cards
12
14
 
15
+ # Named schedules are used for storing custom data that can change over time.
16
+ # Named schedules are often used in custom pricing logic.
13
17
  sig { returns(MetronomeSDK::Resources::V1::Contracts::NamedSchedules) }
14
18
  attr_reader :named_schedules
15
19
 
@@ -167,7 +171,6 @@ module MetronomeSDK
167
171
  package_id: String,
168
172
  prepaid_balance_threshold_configuration:
169
173
  MetronomeSDK::PrepaidBalanceThresholdConfiguration::OrHash,
170
- priority: Float,
171
174
  professional_services:
172
175
  T::Array[
173
176
  MetronomeSDK::V1::ContractCreateParams::ProfessionalService::OrHash
@@ -245,8 +248,6 @@ module MetronomeSDK
245
248
  # and uniqueness_key are allowed.
246
249
  package_id: nil,
247
250
  prepaid_balance_threshold_configuration: nil,
248
- # Priority of the contract.
249
- priority: nil,
250
251
  # This field's availability is dependent on your client's configuration.
251
252
  professional_services: nil,
252
253
  # Selects the rate card linked to the specified alias as of the contract's start
@@ -3,6 +3,9 @@
3
3
  module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
+ # [Credit grants](https://docs.metronome.com/invoicing/how-billing-works/manage-credits/)
7
+ # adjust a customer balance for prepayments, reimbursements, promotions, and so
8
+ # on. Use these endpoints to create, retrieve, update, and delete credit grants.
6
9
  class CreditGrants
7
10
  # Create a new credit grant. This is a Plans (deprecated) endpoint. New clients
8
11
  # should implement using Contracts.
@@ -3,6 +3,9 @@
3
3
  module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
+ # [Custom fields](https://docs.metronome.com/integrations/custom-fields/) enable
7
+ # adding additional data to Metronome entities. Use these endpoints to create,
8
+ # retrieve, update, and delete custom fields.
6
9
  class CustomFields
7
10
  # Creates a new custom field key for a given entity (e.g. billable metric,
8
11
  # contract, alert).
@@ -4,6 +4,11 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Customers
7
+ # [Alerts](https://docs.metronome.com/connecting-metronome/alerts/) monitor
8
+ # customer spending, balances, and other billing factors. Use these endpoints to
9
+ # create, retrieve, and archive customer alerts. To view sample alert payloads by
10
+ # alert type, navigate
11
+ # [here.](https://docs.metronome.com/manage-product-access/create-manage-alerts/#webhook-notifications)
7
12
  class Alerts
8
13
  # Retrieve the real-time evaluation status for a specific threshold
9
14
  # notification-customer pair. This endpoint provides instant visibility into
@@ -4,6 +4,10 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Customers
7
+ # [Customers](https://docs.metronome.com/provisioning/create-customers/) in
8
+ # Metronome represent your users for all billing and reporting. Use these
9
+ # endpoints to create, retrieve, update, and archive customers and their billing
10
+ # configuration.
7
11
  class BillingConfig
8
12
  # Set the billing configuration for a given customer. This is a Plans (deprecated)
9
13
  # endpoint. New clients should implement using Contracts.
@@ -4,6 +4,7 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Customers
7
+ # Credits and commits are used to manage customer balances.
7
8
  class Commits
8
9
  # Creates customer-level commits that establish spending commitments for customers
9
10
  # across their Metronome usage. Commits represent contracted spending obligations
@@ -4,6 +4,7 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Customers
7
+ # Credits and commits are used to manage customer balances.
7
8
  class Credits
8
9
  # Creates customer-level credits that provide spending allowances or free credit
9
10
  # balances for customers across their Metronome usage. Note: In most cases, you
@@ -4,6 +4,10 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Customers
7
+ # [Invoices](https://docs.metronome.com/invoicing/) reflect how much a customer
8
+ # spent during a period, which is the basis for billing. Metronome automatically
9
+ # generates invoices based upon your pricing, packaging, and usage events. Use
10
+ # these endpoints to retrieve invoices.
7
11
  class Invoices
8
12
  # Retrieve detailed information for a specific invoice by its unique identifier.
9
13
  # This endpoint returns comprehensive invoice data including line items, applied
@@ -4,6 +4,8 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Customers
7
+ # Named schedules are used for storing custom data that can change over time.
8
+ # Named schedules are often used in custom pricing logic.
7
9
  class NamedSchedules
8
10
  # Get a named schedule for the given customer. This endpoint's availability is
9
11
  # dependent on your client's configuration.
@@ -4,6 +4,10 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Customers
7
+ # [Plans](https://docs.metronome.com/pricing-and-packaging/create-plans/)
8
+ # determine the base pricing for a customer. Use these endpoints to add a plan to
9
+ # a customer, end a customer plan, retrieve plans, and retrieve plan details.
10
+ # Create plans in the [Metronome app](https://app.metronome.com/plans).
7
11
  class Plans
8
12
  # List the given customer's plans in reverse-chronological order. This is a Plans
9
13
  # (deprecated) endpoint. New clients should implement using Contracts.
@@ -4,24 +4,45 @@ module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
6
  class Customers
7
+ # [Alerts](https://docs.metronome.com/connecting-metronome/alerts/) monitor
8
+ # customer spending, balances, and other billing factors. Use these endpoints to
9
+ # create, retrieve, and archive customer alerts. To view sample alert payloads by
10
+ # alert type, navigate
11
+ # [here.](https://docs.metronome.com/manage-product-access/create-manage-alerts/#webhook-notifications)
7
12
  sig { returns(MetronomeSDK::Resources::V1::Customers::Alerts) }
8
13
  attr_reader :alerts
9
14
 
15
+ # [Plans](https://docs.metronome.com/pricing-and-packaging/create-plans/)
16
+ # determine the base pricing for a customer. Use these endpoints to add a plan to
17
+ # a customer, end a customer plan, retrieve plans, and retrieve plan details.
18
+ # Create plans in the [Metronome app](https://app.metronome.com/plans).
10
19
  sig { returns(MetronomeSDK::Resources::V1::Customers::Plans) }
11
20
  attr_reader :plans
12
21
 
22
+ # [Invoices](https://docs.metronome.com/invoicing/) reflect how much a customer
23
+ # spent during a period, which is the basis for billing. Metronome automatically
24
+ # generates invoices based upon your pricing, packaging, and usage events. Use
25
+ # these endpoints to retrieve invoices.
13
26
  sig { returns(MetronomeSDK::Resources::V1::Customers::Invoices) }
14
27
  attr_reader :invoices
15
28
 
29
+ # [Customers](https://docs.metronome.com/provisioning/create-customers/) in
30
+ # Metronome represent your users for all billing and reporting. Use these
31
+ # endpoints to create, retrieve, update, and archive customers and their billing
32
+ # configuration.
16
33
  sig { returns(MetronomeSDK::Resources::V1::Customers::BillingConfig) }
17
34
  attr_reader :billing_config
18
35
 
36
+ # Credits and commits are used to manage customer balances.
19
37
  sig { returns(MetronomeSDK::Resources::V1::Customers::Commits) }
20
38
  attr_reader :commits
21
39
 
40
+ # Credits and commits are used to manage customer balances.
22
41
  sig { returns(MetronomeSDK::Resources::V1::Customers::Credits) }
23
42
  attr_reader :credits
24
43
 
44
+ # Named schedules are used for storing custom data that can change over time.
45
+ # Named schedules are often used in custom pricing logic.
25
46
  sig { returns(MetronomeSDK::Resources::V1::Customers::NamedSchedules) }
26
47
  attr_reader :named_schedules
27
48
 
@@ -3,6 +3,10 @@
3
3
  module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
+ # [Customers](https://docs.metronome.com/provisioning/create-customers/) in
7
+ # Metronome represent your users for all billing and reporting. Use these
8
+ # endpoints to create, retrieve, update, and archive customers and their billing
9
+ # configuration.
6
10
  class Dashboards
7
11
  # Generate secure, embeddable dashboard URLs that allow you to seamlessly
8
12
  # integrate Metronome's billing visualizations directly into your application.
@@ -3,6 +3,10 @@
3
3
  module MetronomeSDK
4
4
  module Resources
5
5
  class V1
6
+ # [Invoices](https://docs.metronome.com/invoicing/) reflect how much a customer
7
+ # spent during a period, which is the basis for billing. Metronome automatically
8
+ # generates invoices based upon your pricing, packaging, and usage events. Use
9
+ # these endpoints to retrieve invoices.
6
10
  class Invoices
7
11
  # This endpoint regenerates a voided invoice and recalculates the invoice based on
8
12
  # up-to-date rates, available balances, and other fees regardless of the billing