metronome-sdk 3.6.0 → 3.8.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 (141) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +54 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +4 -1
  5. data/lib/metronome_sdk/internal/type/enum.rb +0 -25
  6. data/lib/metronome_sdk/models/commit.rb +36 -1
  7. data/lib/metronome_sdk/models/contract.rb +140 -1
  8. data/lib/metronome_sdk/models/contract_v2.rb +457 -8
  9. data/lib/metronome_sdk/models/contract_without_amendments.rb +320 -5
  10. data/lib/metronome_sdk/models/credit.rb +10 -1
  11. data/lib/metronome_sdk/models/override.rb +7 -1
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +113 -2
  13. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +105 -2
  14. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +33 -1
  15. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +33 -1
  16. data/lib/metronome_sdk/models/subscription.rb +90 -2
  17. data/lib/metronome_sdk/models/v1/alert_create_params.rb +127 -1
  18. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +46 -5
  19. data/lib/metronome_sdk/models/v1/contract_create_params.rb +436 -12
  20. data/lib/metronome_sdk/models/v1/contract_create_response.rb +1308 -3
  21. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rb +88 -0
  22. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rb +62 -0
  23. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +10 -1
  24. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +127 -1
  25. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +130 -3
  26. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +10 -1
  27. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  28. data/lib/metronome_sdk/models/v1/package_create_params.rb +394 -11
  29. data/lib/metronome_sdk/models/v1/package_list_response.rb +374 -8
  30. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +378 -8
  31. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +817 -13
  32. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +4310 -3
  33. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +600 -10
  34. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  35. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +4 -0
  36. data/lib/metronome_sdk/resources/v1/contracts.rb +71 -2
  37. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +4 -2
  38. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +3 -1
  39. data/lib/metronome_sdk/resources/v1/dashboards.rb +7 -2
  40. data/lib/metronome_sdk/resources/v1/packages.rb +6 -5
  41. data/lib/metronome_sdk/resources/v1.rb +0 -4
  42. data/lib/metronome_sdk/resources/v2/contracts.rb +5 -1
  43. data/lib/metronome_sdk/version.rb +1 -1
  44. data/lib/metronome_sdk.rb +2 -8
  45. data/rbi/metronome_sdk/models/commit.rbi +61 -0
  46. data/rbi/metronome_sdk/models/contract.rbi +354 -0
  47. data/rbi/metronome_sdk/models/contract_v2.rbi +1132 -11
  48. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +831 -0
  49. data/rbi/metronome_sdk/models/credit.rbi +13 -0
  50. data/rbi/metronome_sdk/models/override.rbi +9 -0
  51. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +299 -6
  52. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +287 -6
  53. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +78 -3
  54. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -3
  55. data/rbi/metronome_sdk/models/subscription.rbi +212 -3
  56. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +373 -0
  57. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +81 -6
  58. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1095 -17
  59. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +2911 -4
  60. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbi +112 -0
  61. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbi +119 -0
  62. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +13 -0
  63. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +360 -0
  64. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +379 -2
  65. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +13 -0
  66. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  67. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +1049 -42
  68. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +1051 -54
  69. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +1051 -54
  70. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +2130 -114
  71. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +9749 -4
  72. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1567 -82
  73. data/rbi/metronome_sdk/resources/v1/alerts.rbi +8 -0
  74. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +4 -0
  75. data/rbi/metronome_sdk/resources/v1/contracts.rbi +77 -0
  76. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +8 -1
  77. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  78. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +7 -2
  79. data/rbi/metronome_sdk/resources/v1/packages.rbi +8 -4
  80. data/rbi/metronome_sdk/resources/v1.rbi +0 -3
  81. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  82. data/sig/metronome_sdk/models/commit.rbs +26 -0
  83. data/sig/metronome_sdk/models/contract.rbs +151 -0
  84. data/sig/metronome_sdk/models/contract_v2.rbs +448 -5
  85. data/sig/metronome_sdk/models/contract_without_amendments.rbs +320 -2
  86. data/sig/metronome_sdk/models/credit.rbs +7 -0
  87. data/sig/metronome_sdk/models/override.rbs +7 -0
  88. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +116 -6
  89. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +116 -6
  90. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +31 -3
  91. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +31 -3
  92. data/sig/metronome_sdk/models/subscription.rbs +88 -3
  93. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +144 -0
  94. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +26 -0
  95. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +412 -5
  96. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +1210 -4
  97. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbs +63 -0
  98. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbs +59 -0
  99. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +7 -0
  100. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +141 -0
  101. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +150 -0
  102. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +8 -1
  103. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  104. data/sig/metronome_sdk/models/v1/package_create_params.rbs +386 -5
  105. data/sig/metronome_sdk/models/v1/package_list_response.rbs +380 -5
  106. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +378 -5
  107. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +751 -14
  108. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +4215 -4
  109. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +569 -14
  110. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  111. data/sig/metronome_sdk/resources/v1/contracts.rbs +14 -0
  112. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  113. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -0
  114. data/sig/metronome_sdk/resources/v1/packages.rbs +1 -0
  115. data/sig/metronome_sdk/resources/v1.rbs +0 -2
  116. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  117. metadata +8 -26
  118. data/lib/metronome_sdk/models/v1/payment.rb +0 -196
  119. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +0 -28
  120. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +0 -18
  121. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +0 -28
  122. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +0 -18
  123. data/lib/metronome_sdk/models/v1/payment_list_params.rb +0 -53
  124. data/lib/metronome_sdk/models/v1/payment_status.rb +0 -19
  125. data/lib/metronome_sdk/resources/v1/payments.rb +0 -102
  126. data/rbi/metronome_sdk/models/v1/payment.rbi +0 -403
  127. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +0 -48
  128. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +0 -35
  129. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +0 -48
  130. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +0 -35
  131. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +0 -91
  132. data/rbi/metronome_sdk/models/v1/payment_status.rbi +0 -33
  133. data/rbi/metronome_sdk/resources/v1/payments.rbi +0 -72
  134. data/sig/metronome_sdk/models/v1/payment.rbs +0 -243
  135. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +0 -30
  136. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +0 -15
  137. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +0 -30
  138. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +0 -15
  139. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +0 -56
  140. data/sig/metronome_sdk/models/v1/payment_status.rbs +0 -19
  141. data/sig/metronome_sdk/resources/v1/payments.rbs +0 -30
@@ -47,7 +47,15 @@ module MetronomeSDK
47
47
  optional :discount_configuration,
48
48
  -> { MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration }
49
49
 
50
- # @!method initialize(commit:, is_enabled:, payment_gate_config:, recharge_to_amount:, threshold_amount:, custom_credit_type_id: nil, discount_configuration: nil)
50
+ # @!attribute threshold_balance_specifiers
51
+ # Determines which balances are excluded from remaining balance calculation for
52
+ # threshold billing.
53
+ #
54
+ # @return [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier>, nil]
55
+ optional :threshold_balance_specifiers,
56
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier] }
57
+
58
+ # @!method initialize(commit:, is_enabled:, payment_gate_config:, recharge_to_amount:, threshold_amount:, custom_credit_type_id: nil, discount_configuration: nil, threshold_balance_specifiers: nil)
51
59
  # Some parameter documentations has been truncated, see
52
60
  # {MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2} for more details.
53
61
  #
@@ -64,6 +72,8 @@ module MetronomeSDK
64
72
  # @param custom_credit_type_id [String] If provided, the threshold, recharge-to amount, and the resulting threshold comm
65
73
  #
66
74
  # @param discount_configuration [MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration]
75
+ #
76
+ # @param threshold_balance_specifiers [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier>] Determines which balances are excluded from remaining balance calculation for th
67
77
 
68
78
  # @see MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2#commit
69
79
  class Commit < MetronomeSDK::Models::BaseThresholdCommit
@@ -116,12 +126,105 @@ module MetronomeSDK
116
126
  # @return [Float]
117
127
  required :payment_fraction, Float
118
128
 
119
- # @!method initialize(payment_fraction:)
129
+ # @!attribute cap
130
+ # If provided, the discount stops applying once the spend tracker has accumulated
131
+ # this much spend in the billing period.
132
+ #
133
+ # @return [MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::Cap, nil]
134
+ optional :cap, -> { MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::Cap }
135
+
136
+ # @!method initialize(payment_fraction:, cap: nil)
120
137
  # Some parameter documentations has been truncated, see
121
138
  # {MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration}
122
139
  # for more details.
123
140
  #
124
141
  # @param payment_fraction [Float] The fraction of the original amount that the customer pays after applying the di
142
+ #
143
+ # @param cap [MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::Cap] If provided, the discount stops applying once the spend tracker has accumulated
144
+
145
+ # @see MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration#cap
146
+ class Cap < MetronomeSDK::Internal::Type::BaseModel
147
+ # @!attribute amount
148
+ # Accumulated spend ceiling above which the discount stops applying.
149
+ #
150
+ # @return [Float]
151
+ required :amount, Float
152
+
153
+ # @!attribute spend_tracker_alias
154
+ # Alias of the spend tracker this cap is measured against.
155
+ #
156
+ # @return [String]
157
+ required :spend_tracker_alias, String
158
+
159
+ # @!method initialize(amount:, spend_tracker_alias:)
160
+ # If provided, the discount stops applying once the spend tracker has accumulated
161
+ # this much spend in the billing period.
162
+ #
163
+ # @param amount [Float] Accumulated spend ceiling above which the discount stops applying.
164
+ #
165
+ # @param spend_tracker_alias [String] Alias of the spend tracker this cap is measured against.
166
+ end
167
+ end
168
+
169
+ class ThresholdBalanceSpecifier < MetronomeSDK::Internal::Type::BaseModel
170
+ # @!attribute exclude
171
+ #
172
+ # @return [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude>]
173
+ required :exclude,
174
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude] }
175
+
176
+ # @!method initialize(exclude:)
177
+ # @param exclude [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude>]
178
+
179
+ class Exclude < MetronomeSDK::Internal::Type::BaseModel
180
+ # @!attribute custom_field_filters
181
+ #
182
+ # @return [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter>]
183
+ required :custom_field_filters,
184
+ -> do
185
+ MetronomeSDK::Internal::Type::ArrayOf[
186
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter
187
+ ]
188
+ end
189
+
190
+ # @!method initialize(custom_field_filters:)
191
+ # @param custom_field_filters [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter>]
192
+
193
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
194
+ # @!attribute entity
195
+ #
196
+ # @return [Symbol, MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity]
197
+ required :entity,
198
+ enum: -> { MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity }
199
+
200
+ # @!attribute key
201
+ #
202
+ # @return [String]
203
+ required :key, String
204
+
205
+ # @!attribute value
206
+ #
207
+ # @return [String]
208
+ required :value, String
209
+
210
+ # @!method initialize(entity:, key:, value:)
211
+ # @param entity [Symbol, MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity]
212
+ # @param key [String]
213
+ # @param value [String]
214
+
215
+ # @see MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter#entity
216
+ module Entity
217
+ extend MetronomeSDK::Internal::Type::Enum
218
+
219
+ COMMIT = :Commit
220
+ CONTRACT_CREDIT = :ContractCredit
221
+ CONTRACT_CREDIT_OR_COMMIT = :ContractCreditOrCommit
222
+
223
+ # @!method self.values
224
+ # @return [Array<Symbol>]
225
+ end
226
+ end
227
+ end
125
228
  end
126
229
  end
127
230
  end
@@ -57,12 +57,44 @@ module MetronomeSDK
57
57
  # @return [Float]
58
58
  required :payment_fraction, Float
59
59
 
60
- # @!method initialize(payment_fraction:)
60
+ # @!attribute cap
61
+ # If provided, the discount stops applying once the spend tracker has accumulated
62
+ # this much spend in the billing period.
63
+ #
64
+ # @return [MetronomeSDK::Models::SpendThresholdConfiguration::DiscountConfiguration::Cap, nil]
65
+ optional :cap, -> { MetronomeSDK::SpendThresholdConfiguration::DiscountConfiguration::Cap }
66
+
67
+ # @!method initialize(payment_fraction:, cap: nil)
61
68
  # Some parameter documentations has been truncated, see
62
69
  # {MetronomeSDK::Models::SpendThresholdConfiguration::DiscountConfiguration} for
63
70
  # more details.
64
71
  #
65
72
  # @param payment_fraction [Float] The fraction of the original amount that the customer pays after applying the di
73
+ #
74
+ # @param cap [MetronomeSDK::Models::SpendThresholdConfiguration::DiscountConfiguration::Cap] If provided, the discount stops applying once the spend tracker has accumulated
75
+
76
+ # @see MetronomeSDK::Models::SpendThresholdConfiguration::DiscountConfiguration#cap
77
+ class Cap < MetronomeSDK::Internal::Type::BaseModel
78
+ # @!attribute amount
79
+ # Accumulated spend ceiling above which the discount stops applying.
80
+ #
81
+ # @return [Float]
82
+ required :amount, Float
83
+
84
+ # @!attribute spend_tracker_alias
85
+ # Alias of the spend tracker this cap is measured against.
86
+ #
87
+ # @return [String]
88
+ required :spend_tracker_alias, String
89
+
90
+ # @!method initialize(amount:, spend_tracker_alias:)
91
+ # If provided, the discount stops applying once the spend tracker has accumulated
92
+ # this much spend in the billing period.
93
+ #
94
+ # @param amount [Float] Accumulated spend ceiling above which the discount stops applying.
95
+ #
96
+ # @param spend_tracker_alias [String] Alias of the spend tracker this cap is measured against.
97
+ end
66
98
  end
67
99
  end
68
100
  end
@@ -58,12 +58,44 @@ module MetronomeSDK
58
58
  # @return [Float]
59
59
  required :payment_fraction, Float
60
60
 
61
- # @!method initialize(payment_fraction:)
61
+ # @!attribute cap
62
+ # If provided, the discount stops applying once the spend tracker has accumulated
63
+ # this much spend in the billing period.
64
+ #
65
+ # @return [MetronomeSDK::Models::SpendThresholdConfigurationV2::DiscountConfiguration::Cap, nil]
66
+ optional :cap, -> { MetronomeSDK::SpendThresholdConfigurationV2::DiscountConfiguration::Cap }
67
+
68
+ # @!method initialize(payment_fraction:, cap: nil)
62
69
  # Some parameter documentations has been truncated, see
63
70
  # {MetronomeSDK::Models::SpendThresholdConfigurationV2::DiscountConfiguration} for
64
71
  # more details.
65
72
  #
66
73
  # @param payment_fraction [Float] The fraction of the original amount that the customer pays after applying the di
74
+ #
75
+ # @param cap [MetronomeSDK::Models::SpendThresholdConfigurationV2::DiscountConfiguration::Cap] If provided, the discount stops applying once the spend tracker has accumulated
76
+
77
+ # @see MetronomeSDK::Models::SpendThresholdConfigurationV2::DiscountConfiguration#cap
78
+ class Cap < MetronomeSDK::Internal::Type::BaseModel
79
+ # @!attribute amount
80
+ # Accumulated spend ceiling above which the discount stops applying.
81
+ #
82
+ # @return [Float]
83
+ required :amount, Float
84
+
85
+ # @!attribute spend_tracker_alias
86
+ # Alias of the spend tracker this cap is measured against.
87
+ #
88
+ # @return [String]
89
+ required :spend_tracker_alias, String
90
+
91
+ # @!method initialize(amount:, spend_tracker_alias:)
92
+ # If provided, the discount stops applying once the spend tracker has accumulated
93
+ # this much spend in the billing period.
94
+ #
95
+ # @param amount [Float] Accumulated spend ceiling above which the discount stops applying.
96
+ #
97
+ # @param spend_tracker_alias [String] Alias of the spend tracker this cap is measured against.
98
+ end
67
99
  end
68
100
  end
69
101
  end
@@ -56,6 +56,11 @@ module MetronomeSDK
56
56
  # @return [String, nil]
57
57
  optional :id, String
58
58
 
59
+ # @!attribute billing_cycle_config
60
+ #
61
+ # @return [MetronomeSDK::Models::Subscription::BillingCycleConfig, nil]
62
+ optional :billing_cycle_config, -> { MetronomeSDK::Subscription::BillingCycleConfig }
63
+
59
64
  # @!attribute custom_fields
60
65
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
61
66
  #
@@ -87,7 +92,7 @@ module MetronomeSDK
87
92
  # @return [MetronomeSDK::Models::Subscription::SeatConfig, nil]
88
93
  optional :seat_config, -> { MetronomeSDK::Subscription::SeatConfig }
89
94
 
90
- # @!method initialize(billing_periods:, collection_schedule:, proration:, quantity_management_mode:, quantity_schedule:, starting_at:, subscription_rate:, id: nil, custom_fields: nil, description: nil, ending_before: nil, fiat_credit_type_id: nil, name: nil, seat_config: nil)
95
+ # @!method initialize(billing_periods:, collection_schedule:, proration:, quantity_management_mode:, quantity_schedule:, starting_at:, subscription_rate:, id: nil, billing_cycle_config: nil, custom_fields: nil, description: nil, ending_before: nil, fiat_credit_type_id: nil, name: nil, seat_config: nil)
91
96
  # Some parameter documentations has been truncated, see
92
97
  # {MetronomeSDK::Models::Subscription} for more details.
93
98
  #
@@ -107,6 +112,8 @@ module MetronomeSDK
107
112
  #
108
113
  # @param id [String]
109
114
  #
115
+ # @param billing_cycle_config [MetronomeSDK::Models::Subscription::BillingCycleConfig]
116
+ #
110
117
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
111
118
  #
112
119
  # @param description [String]
@@ -218,9 +225,15 @@ module MetronomeSDK
218
225
  # @return [Boolean]
219
226
  required :is_prorated, MetronomeSDK::Internal::Type::Boolean
220
227
 
221
- # @!method initialize(invoice_behavior:, is_prorated:)
228
+ # @!attribute rounding
229
+ #
230
+ # @return [MetronomeSDK::Models::Subscription::Proration::Rounding, nil]
231
+ optional :rounding, -> { MetronomeSDK::Subscription::Proration::Rounding }
232
+
233
+ # @!method initialize(invoice_behavior:, is_prorated:, rounding: nil)
222
234
  # @param invoice_behavior [Symbol, MetronomeSDK::Models::Subscription::Proration::InvoiceBehavior]
223
235
  # @param is_prorated [Boolean]
236
+ # @param rounding [MetronomeSDK::Models::Subscription::Proration::Rounding]
224
237
 
225
238
  # @see MetronomeSDK::Models::Subscription::Proration#invoice_behavior
226
239
  module InvoiceBehavior
@@ -232,6 +245,43 @@ module MetronomeSDK
232
245
  # @!method self.values
233
246
  # @return [Array<Symbol>]
234
247
  end
248
+
249
+ # @see MetronomeSDK::Models::Subscription::Proration#rounding
250
+ class Rounding < MetronomeSDK::Internal::Type::BaseModel
251
+ # @!attribute decimal_places
252
+ # Number of decimal places to round to. Applied directly to the stored monetary
253
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
254
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
255
+ # dollar).
256
+ #
257
+ # @return [Float]
258
+ required :decimal_places, Float
259
+
260
+ # @!attribute rounding_method
261
+ #
262
+ # @return [Symbol, MetronomeSDK::Models::Subscription::Proration::Rounding::RoundingMethod]
263
+ required :rounding_method, enum: -> { MetronomeSDK::Subscription::Proration::Rounding::RoundingMethod }
264
+
265
+ # @!method initialize(decimal_places:, rounding_method:)
266
+ # Some parameter documentations has been truncated, see
267
+ # {MetronomeSDK::Models::Subscription::Proration::Rounding} for more details.
268
+ #
269
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
270
+ #
271
+ # @param rounding_method [Symbol, MetronomeSDK::Models::Subscription::Proration::Rounding::RoundingMethod]
272
+
273
+ # @see MetronomeSDK::Models::Subscription::Proration::Rounding#rounding_method
274
+ module RoundingMethod
275
+ extend MetronomeSDK::Internal::Type::Enum
276
+
277
+ HALF_UP = :HALF_UP
278
+ FLOOR = :FLOOR
279
+ CEILING = :CEILING
280
+
281
+ # @!method self.values
282
+ # @return [Array<Symbol>]
283
+ end
284
+ end
235
285
  end
236
286
 
237
287
  # Determines how the subscription's quantity is controlled. Defaults to
@@ -324,6 +374,44 @@ module MetronomeSDK
324
374
  end
325
375
  end
326
376
 
377
+ # @see MetronomeSDK::Models::Subscription#billing_cycle_config
378
+ class BillingCycleConfig < MetronomeSDK::Internal::Type::BaseModel
379
+ # @!attribute anchor_date
380
+ # The date this subscription's billing cycle is anchored to.
381
+ #
382
+ # @return [Time]
383
+ required :anchor_date, Time
384
+
385
+ # @!attribute invoice_placement
386
+ # Controls whether this subscription consolidates onto usage invoices or gets its
387
+ # own scheduled invoice.
388
+ #
389
+ # @return [Symbol, MetronomeSDK::Models::Subscription::BillingCycleConfig::InvoicePlacement]
390
+ required :invoice_placement, enum: -> { MetronomeSDK::Subscription::BillingCycleConfig::InvoicePlacement }
391
+
392
+ # @!method initialize(anchor_date:, invoice_placement:)
393
+ # Some parameter documentations has been truncated, see
394
+ # {MetronomeSDK::Models::Subscription::BillingCycleConfig} for more details.
395
+ #
396
+ # @param anchor_date [Time] The date this subscription's billing cycle is anchored to.
397
+ #
398
+ # @param invoice_placement [Symbol, MetronomeSDK::Models::Subscription::BillingCycleConfig::InvoicePlacement] Controls whether this subscription consolidates onto usage invoices or gets its
399
+
400
+ # Controls whether this subscription consolidates onto usage invoices or gets its
401
+ # own scheduled invoice.
402
+ #
403
+ # @see MetronomeSDK::Models::Subscription::BillingCycleConfig#invoice_placement
404
+ module InvoicePlacement
405
+ extend MetronomeSDK::Internal::Type::Enum
406
+
407
+ ON_SCHEDULED_INVOICE = :ON_SCHEDULED_INVOICE
408
+ ON_USAGE_INVOICE = :ON_USAGE_INVOICE
409
+
410
+ # @!method self.values
411
+ # @return [Array<Symbol>]
412
+ end
413
+ end
414
+
327
415
  # @see MetronomeSDK::Models::Subscription#seat_config
328
416
  class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
329
417
  # @!attribute seat_group_key
@@ -28,6 +28,15 @@ module MetronomeSDK
28
28
  # @return [Float]
29
29
  required :threshold, Float
30
30
 
31
+ # @!attribute alert_specifiers
32
+ # Can be used with only `low_remaining_contract_credit_and_commit_balance_reached`
33
+ # notifications. Defines the balances that are considered when evaluating the
34
+ # alert.
35
+ #
36
+ # @return [Array<MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier>, nil]
37
+ optional :alert_specifiers,
38
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::AlertCreateParams::AlertSpecifier] }
39
+
31
40
  # @!attribute billable_metric_id
32
41
  # For threshold notifications of type `usage_threshold_reached`, specifies which
33
42
  # billable metric to track the usage for.
@@ -112,7 +121,7 @@ module MetronomeSDK
112
121
  # @return [String, nil]
113
122
  optional :uniqueness_key, String
114
123
 
115
- # @!method initialize(alert_type:, name:, threshold:, billable_metric_id: nil, credit_grant_type_filters: nil, credit_type_id: nil, custom_field_filters: nil, customer_id: nil, evaluate_on_create: nil, group_values: nil, invoice_types_filter: nil, plan_id: nil, seat_filter: nil, uniqueness_key: nil, request_options: {})
124
+ # @!method initialize(alert_type:, name:, threshold:, alert_specifiers: nil, billable_metric_id: nil, credit_grant_type_filters: nil, credit_type_id: nil, custom_field_filters: nil, customer_id: nil, evaluate_on_create: nil, group_values: nil, invoice_types_filter: nil, plan_id: nil, seat_filter: nil, uniqueness_key: nil, request_options: {})
116
125
  # Some parameter documentations has been truncated, see
117
126
  # {MetronomeSDK::Models::V1::AlertCreateParams} for more details.
118
127
  #
@@ -122,6 +131,8 @@ module MetronomeSDK
122
131
  #
123
132
  # @param threshold [Float] Threshold value of the notification policy. Depending upon the notification typ
124
133
  #
134
+ # @param alert_specifiers [Array<MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier>] Can be used with only `low_remaining_contract_credit_and_commit_balance_reached`
135
+ #
125
136
  # @param billable_metric_id [String] For threshold notifications of type `usage_threshold_reached`, specifies which b
126
137
  #
127
138
  # @param credit_grant_type_filters [Array<String>] An array of strings, representing a way to filter the credit grant this threshol
@@ -172,6 +183,121 @@ module MetronomeSDK
172
183
  # @return [Array<Symbol>]
173
184
  end
174
185
 
186
+ class AlertSpecifier < MetronomeSDK::Internal::Type::BaseModel
187
+ # @!attribute custom_field_filters
188
+ # A list of custom field filters for notification types that support advanced
189
+ # filtering
190
+ #
191
+ # @return [Array<MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::CustomFieldFilter>, nil]
192
+ optional :custom_field_filters,
193
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::AlertCreateParams::AlertSpecifier::CustomFieldFilter] }
194
+
195
+ # @!attribute exclude
196
+ # If provided, the specifier will not apply to balances that matches the inclusion
197
+ # criteria and any of the excluding values.
198
+ #
199
+ # @return [Array<MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::Exclude>, nil]
200
+ optional :exclude,
201
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::AlertCreateParams::AlertSpecifier::Exclude] }
202
+
203
+ # @!method initialize(custom_field_filters: nil, exclude: nil)
204
+ # Some parameter documentations has been truncated, see
205
+ # {MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier} for more details.
206
+ #
207
+ # @param custom_field_filters [Array<MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::CustomFieldFilter>] A list of custom field filters for notification types that support advanced filt
208
+ #
209
+ # @param exclude [Array<MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::Exclude>] If provided, the specifier will not apply to balances that matches the inclusion
210
+
211
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
212
+ # @!attribute entity
213
+ #
214
+ # @return [Symbol, MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::CustomFieldFilter::Entity]
215
+ required :entity,
216
+ enum: -> { MetronomeSDK::V1::AlertCreateParams::AlertSpecifier::CustomFieldFilter::Entity }
217
+
218
+ # @!attribute key
219
+ #
220
+ # @return [String]
221
+ required :key, String
222
+
223
+ # @!attribute value
224
+ #
225
+ # @return [String, nil]
226
+ optional :value, String
227
+
228
+ # @!method initialize(entity:, key:, value: nil)
229
+ # @param entity [Symbol, MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::CustomFieldFilter::Entity]
230
+ # @param key [String]
231
+ # @param value [String]
232
+
233
+ # @see MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::CustomFieldFilter#entity
234
+ module Entity
235
+ extend MetronomeSDK::Internal::Type::Enum
236
+
237
+ CONTRACT = :Contract
238
+ COMMIT = :Commit
239
+ CONTRACT_CREDIT = :ContractCredit
240
+ CONTRACT_CREDIT_OR_COMMIT = :ContractCreditOrCommit
241
+
242
+ # @!method self.values
243
+ # @return [Array<Symbol>]
244
+ end
245
+ end
246
+
247
+ class Exclude < MetronomeSDK::Internal::Type::BaseModel
248
+ # @!attribute custom_field_filters
249
+ # A list of custom field filters for notification types that support advanced
250
+ # filtering
251
+ #
252
+ # @return [Array<MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::Exclude::CustomFieldFilter>, nil]
253
+ optional :custom_field_filters,
254
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::AlertCreateParams::AlertSpecifier::Exclude::CustomFieldFilter] }
255
+
256
+ # @!method initialize(custom_field_filters: nil)
257
+ # Some parameter documentations has been truncated, see
258
+ # {MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::Exclude} for more
259
+ # details.
260
+ #
261
+ # @param custom_field_filters [Array<MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::Exclude::CustomFieldFilter>] A list of custom field filters for notification types that support advanced filt
262
+
263
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
264
+ # @!attribute entity
265
+ #
266
+ # @return [Symbol, MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity]
267
+ required :entity,
268
+ enum: -> { MetronomeSDK::V1::AlertCreateParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity }
269
+
270
+ # @!attribute key
271
+ #
272
+ # @return [String]
273
+ required :key, String
274
+
275
+ # @!attribute value
276
+ #
277
+ # @return [String]
278
+ required :value, String
279
+
280
+ # @!method initialize(entity:, key:, value:)
281
+ # @param entity [Symbol, MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::Exclude::CustomFieldFilter::Entity]
282
+ # @param key [String]
283
+ # @param value [String]
284
+
285
+ # @see MetronomeSDK::Models::V1::AlertCreateParams::AlertSpecifier::Exclude::CustomFieldFilter#entity
286
+ module Entity
287
+ extend MetronomeSDK::Internal::Type::Enum
288
+
289
+ CONTRACT = :Contract
290
+ COMMIT = :Commit
291
+ CONTRACT_CREDIT = :ContractCredit
292
+ CONTRACT_CREDIT_OR_COMMIT = :ContractCreditOrCommit
293
+
294
+ # @!method self.values
295
+ # @return [Array<Symbol>]
296
+ end
297
+ end
298
+ end
299
+ end
300
+
175
301
  class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
176
302
  # @!attribute entity
177
303
  #
@@ -233,6 +233,13 @@ module MetronomeSDK
233
233
  # @return [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil]
234
234
  optional :specifiers, -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::CommitSpecifierInput] }
235
235
 
236
+ # @!attribute spend_tracker_attributes
237
+ # Optional attributes for spend tracker integration. Immutable after creation.
238
+ #
239
+ # @return [MetronomeSDK::Models::V1::ContractAmendParams::Commit::SpendTrackerAttributes, nil]
240
+ optional :spend_tracker_attributes,
241
+ -> { MetronomeSDK::V1::ContractAmendParams::Commit::SpendTrackerAttributes }
242
+
236
243
  # @!attribute temporary_id
237
244
  # A temporary ID for the commit that can be used to reference the commit for
238
245
  # commit specific overrides.
@@ -240,7 +247,7 @@ module MetronomeSDK
240
247
  # @return [String, nil]
241
248
  optional :temporary_id, String
242
249
 
243
- # @!method initialize(product_id:, type:, access_schedule: nil, amount: nil, applicable_product_ids: nil, applicable_product_tags: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, invoice_schedule: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, rollover_fraction: nil, specifiers: nil, temporary_id: nil)
250
+ # @!method initialize(product_id:, type:, access_schedule: nil, amount: nil, applicable_product_ids: nil, applicable_product_tags: nil, custom_fields: nil, description: nil, hierarchy_configuration: nil, invoice_schedule: nil, name: nil, netsuite_sales_order_id: nil, priority: nil, rate_type: nil, rollover_fraction: nil, specifiers: nil, spend_tracker_attributes: nil, temporary_id: nil)
244
251
  # Some parameter documentations has been truncated, see
245
252
  # {MetronomeSDK::Models::V1::ContractAmendParams::Commit} for more details.
246
253
  #
@@ -276,6 +283,8 @@ module MetronomeSDK
276
283
  #
277
284
  # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>] List of filters that determine what kind of customer usage draws down a commit o
278
285
  #
286
+ # @param spend_tracker_attributes [MetronomeSDK::Models::V1::ContractAmendParams::Commit::SpendTrackerAttributes] Optional attributes for spend tracker integration. Immutable after creation.
287
+ #
279
288
  # @param temporary_id [String] A temporary ID for the commit that can be used to reference the commit for commi
280
289
 
281
290
  # @see MetronomeSDK::Models::V1::ContractAmendParams::Commit#type
@@ -543,6 +552,25 @@ module MetronomeSDK
543
552
  # @!method self.values
544
553
  # @return [Array<Symbol>]
545
554
  end
555
+
556
+ # @see MetronomeSDK::Models::V1::ContractAmendParams::Commit#spend_tracker_attributes
557
+ class SpendTrackerAttributes < MetronomeSDK::Internal::Type::BaseModel
558
+ # @!attribute counts_as_discounted
559
+ # If true, this commit will be included in spend trackers with discounted set to
560
+ # DISCOUNTED_ONLY
561
+ #
562
+ # @return [Boolean]
563
+ required :counts_as_discounted, MetronomeSDK::Internal::Type::Boolean
564
+
565
+ # @!method initialize(counts_as_discounted:)
566
+ # Some parameter documentations has been truncated, see
567
+ # {MetronomeSDK::Models::V1::ContractAmendParams::Commit::SpendTrackerAttributes}
568
+ # for more details.
569
+ #
570
+ # Optional attributes for spend tracker integration. Immutable after creation.
571
+ #
572
+ # @param counts_as_discounted [Boolean] If true, this commit will be included in spend trackers with discounted set to D
573
+ end
546
574
  end
547
575
 
548
576
  class Credit < MetronomeSDK::Internal::Type::BaseModel
@@ -978,9 +1006,10 @@ module MetronomeSDK
978
1006
 
979
1007
  # @!attribute is_commit_specific
980
1008
  # Indicates whether the override should only apply to commits. Defaults to
981
- # `false`. If `true`, you can specify relevant commits in `override_specifiers` by
982
- # passing `commit_ids`. if you do not specify `commit_ids`, then the override will
983
- # apply when consuming any prepaid or postpaid commit.
1009
+ # `false`. If `true` you can specify relevant commits in `override_specifiers` by
1010
+ # passing `commit_ids`, `recurring_commit_ids`, or `any_commit_or_credit_ids`. If
1011
+ # you do not specify any of these fields, the override will apply when consuming
1012
+ # any prepaid commit, postpaid commit, or credit
984
1013
  #
985
1014
  # @return [Boolean, nil]
986
1015
  optional :is_commit_specific, MetronomeSDK::Internal::Type::Boolean
@@ -1073,6 +1102,16 @@ module MetronomeSDK
1073
1102
  # @param type [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Override::Type] Overwrites are prioritized over multipliers and tiered overrides.
1074
1103
 
1075
1104
  class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
1105
+ # @!attribute any_commit_or_credit_ids
1106
+ # Can only be used for commit specific overrides. Must be used in conjunction with
1107
+ # one of `product_id`, `product_tags`, `pricing_group_values`, or
1108
+ # `presentation_group_values`. Must be used instead of both `commit_ids` and
1109
+ # `recurring_commit_ids` If provided, the override will apply to any specified
1110
+ # commit, credit, recurring commit or recurring credit IDs.
1111
+ #
1112
+ # @return [Array<String>, nil]
1113
+ optional :any_commit_or_credit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1114
+
1076
1115
  # @!attribute billing_frequency
1077
1116
  #
1078
1117
  # @return [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Override::OverrideSpecifier::BillingFrequency, nil]
@@ -1124,11 +1163,13 @@ module MetronomeSDK
1124
1163
  # @return [Array<String>, nil]
1125
1164
  optional :recurring_commit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1126
1165
 
1127
- # @!method initialize(billing_frequency: nil, commit_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_ids: nil)
1166
+ # @!method initialize(any_commit_or_credit_ids: nil, billing_frequency: nil, commit_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_ids: nil)
1128
1167
  # Some parameter documentations has been truncated, see
1129
1168
  # {MetronomeSDK::Models::V1::ContractAmendParams::Override::OverrideSpecifier} for
1130
1169
  # more details.
1131
1170
  #
1171
+ # @param any_commit_or_credit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1172
+ #
1132
1173
  # @param billing_frequency [Symbol, MetronomeSDK::Models::V1::ContractAmendParams::Override::OverrideSpecifier::BillingFrequency]
1133
1174
  #
1134
1175
  # @param commit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with