metronome-sdk 3.6.0 → 3.7.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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/type/enum.rb +0 -25
  5. data/lib/metronome_sdk/models/commit.rb +27 -1
  6. data/lib/metronome_sdk/models/contract.rb +140 -1
  7. data/lib/metronome_sdk/models/contract_v2.rb +168 -2
  8. data/lib/metronome_sdk/models/contract_without_amendments.rb +142 -1
  9. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +105 -2
  10. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +103 -2
  11. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +33 -1
  12. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +33 -1
  13. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +29 -1
  14. data/lib/metronome_sdk/models/v1/contract_create_params.rb +146 -2
  15. data/lib/metronome_sdk/models/v1/contract_create_response.rb +1134 -3
  16. data/lib/metronome_sdk/models/v1/package_create_params.rb +115 -1
  17. data/lib/metronome_sdk/models/v1/package_list_response.rb +110 -1
  18. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +114 -1
  19. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +303 -5
  20. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +3862 -3
  21. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +145 -3
  22. data/lib/metronome_sdk/resources/v1/contracts.rb +3 -1
  23. data/lib/metronome_sdk/resources/v1/packages.rb +6 -5
  24. data/lib/metronome_sdk/resources/v1.rb +0 -4
  25. data/lib/metronome_sdk/resources/v2/contracts.rb +5 -1
  26. data/lib/metronome_sdk/version.rb +1 -1
  27. data/lib/metronome_sdk.rb +0 -8
  28. data/rbi/metronome_sdk/models/commit.rbi +48 -0
  29. data/rbi/metronome_sdk/models/contract.rbi +354 -0
  30. data/rbi/metronome_sdk/models/contract_v2.rbi +409 -0
  31. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +368 -0
  32. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +289 -6
  33. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +283 -6
  34. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +78 -3
  35. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -3
  36. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +54 -0
  37. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +368 -0
  38. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +2448 -4
  39. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +310 -0
  40. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +307 -0
  41. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +307 -0
  42. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +734 -11
  43. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +8612 -4
  44. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +359 -11
  45. data/rbi/metronome_sdk/resources/v1/contracts.rbi +7 -0
  46. data/rbi/metronome_sdk/resources/v1/packages.rbi +8 -4
  47. data/rbi/metronome_sdk/resources/v1.rbi +0 -3
  48. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  49. data/sig/metronome_sdk/models/commit.rbs +19 -0
  50. data/sig/metronome_sdk/models/contract.rbs +151 -0
  51. data/sig/metronome_sdk/models/contract_v2.rbs +170 -0
  52. data/sig/metronome_sdk/models/contract_without_amendments.rbs +151 -0
  53. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +116 -6
  54. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +116 -6
  55. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +31 -3
  56. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +31 -3
  57. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +19 -0
  58. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +134 -0
  59. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +1045 -4
  60. data/sig/metronome_sdk/models/v1/package_create_params.rbs +115 -0
  61. data/sig/metronome_sdk/models/v1/package_list_response.rbs +115 -0
  62. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +115 -0
  63. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +283 -9
  64. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +3792 -4
  65. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +142 -9
  66. data/sig/metronome_sdk/resources/v1/contracts.rbs +1 -0
  67. data/sig/metronome_sdk/resources/v1/packages.rbs +1 -0
  68. data/sig/metronome_sdk/resources/v1.rbs +0 -2
  69. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  70. metadata +2 -26
  71. data/lib/metronome_sdk/models/v1/payment.rb +0 -196
  72. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +0 -28
  73. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +0 -18
  74. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +0 -28
  75. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +0 -18
  76. data/lib/metronome_sdk/models/v1/payment_list_params.rb +0 -53
  77. data/lib/metronome_sdk/models/v1/payment_status.rb +0 -19
  78. data/lib/metronome_sdk/resources/v1/payments.rb +0 -102
  79. data/rbi/metronome_sdk/models/v1/payment.rbi +0 -403
  80. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +0 -48
  81. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +0 -35
  82. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +0 -48
  83. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +0 -35
  84. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +0 -91
  85. data/rbi/metronome_sdk/models/v1/payment_status.rbi +0 -33
  86. data/rbi/metronome_sdk/resources/v1/payments.rbi +0 -72
  87. data/sig/metronome_sdk/models/v1/payment.rbs +0 -243
  88. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +0 -30
  89. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +0 -15
  90. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +0 -30
  91. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +0 -15
  92. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +0 -56
  93. data/sig/metronome_sdk/models/v1/payment_status.rbs +0 -19
  94. data/sig/metronome_sdk/resources/v1/payments.rbs +0 -30
@@ -141,6 +141,13 @@ module MetronomeSDK
141
141
  # @return [MetronomeSDK::Models::SpendThresholdConfiguration, nil]
142
142
  optional :spend_threshold_configuration, -> { MetronomeSDK::SpendThresholdConfiguration }
143
143
 
144
+ # @!attribute spend_trackers
145
+ # Spend trackers attached to this contract.
146
+ #
147
+ # @return [Array<MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker>, nil]
148
+ optional :spend_trackers,
149
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::ContractWithoutAmendments::SpendTracker] }
150
+
144
151
  # @!attribute total_contract_value
145
152
  # This field's availability is dependent on your client's configuration.
146
153
  #
@@ -152,7 +159,7 @@ module MetronomeSDK
152
159
  # @return [MetronomeSDK::Models::ContractWithoutAmendments::UsageFilter, nil]
153
160
  optional :usage_filter, -> { MetronomeSDK::ContractWithoutAmendments::UsageFilter }
154
161
 
155
- # @!method initialize(commits:, created_at:, created_by:, overrides:, scheduled_charges:, starting_at:, transitions:, usage_statement_schedule:, credits: nil, discounts: nil, ending_before: nil, hierarchy_configuration: nil, name: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, prepaid_balance_threshold_configuration: nil, professional_services: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, salesforce_opportunity_id: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, total_contract_value: nil, usage_filter: nil)
162
+ # @!method initialize(commits:, created_at:, created_by:, overrides:, scheduled_charges:, starting_at:, transitions:, usage_statement_schedule:, credits: nil, discounts: nil, ending_before: nil, hierarchy_configuration: nil, name: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, prepaid_balance_threshold_configuration: nil, professional_services: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, reseller_royalties: nil, salesforce_opportunity_id: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, spend_trackers: nil, total_contract_value: nil, usage_filter: nil)
156
163
  # Some parameter documentations has been truncated, see
157
164
  # {MetronomeSDK::Models::ContractWithoutAmendments} for more details.
158
165
  #
@@ -204,6 +211,8 @@ module MetronomeSDK
204
211
  #
205
212
  # @param spend_threshold_configuration [MetronomeSDK::Models::SpendThresholdConfiguration]
206
213
  #
214
+ # @param spend_trackers [Array<MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker>] Spend trackers attached to this contract.
215
+ #
207
216
  # @param total_contract_value [Float] This field's availability is dependent on your client's configuration.
208
217
  #
209
218
  # @param usage_filter [MetronomeSDK::Models::ContractWithoutAmendments::UsageFilter]
@@ -1029,6 +1038,138 @@ module MetronomeSDK
1029
1038
  # @return [Array<Symbol>]
1030
1039
  end
1031
1040
 
1041
+ class SpendTracker < MetronomeSDK::Internal::Type::BaseModel
1042
+ # @!attribute alias_
1043
+ # Human-readable identifier, unique per contract.
1044
+ #
1045
+ # @return [String]
1046
+ required :alias_, String, api_name: :alias
1047
+
1048
+ # @!attribute applicable_spend_specifiers
1049
+ #
1050
+ # @return [Array<MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker::ApplicableSpendSpecifier>]
1051
+ required :applicable_spend_specifiers,
1052
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::ContractWithoutAmendments::SpendTracker::ApplicableSpendSpecifier] }
1053
+
1054
+ # @!attribute credit_type_id
1055
+ #
1056
+ # @return [String]
1057
+ required :credit_type_id, String
1058
+
1059
+ # @!attribute reset_frequency
1060
+ #
1061
+ # @return [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker::ResetFrequency]
1062
+ required :reset_frequency,
1063
+ enum: -> { MetronomeSDK::ContractWithoutAmendments::SpendTracker::ResetFrequency }
1064
+
1065
+ # @!attribute accumulated_spend
1066
+ #
1067
+ # @return [MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker::AccumulatedSpend, nil]
1068
+ optional :accumulated_spend,
1069
+ -> { MetronomeSDK::ContractWithoutAmendments::SpendTracker::AccumulatedSpend }
1070
+
1071
+ # @!method initialize(alias_:, applicable_spend_specifiers:, credit_type_id:, reset_frequency:, accumulated_spend: nil)
1072
+ # @param alias_ [String] Human-readable identifier, unique per contract.
1073
+ #
1074
+ # @param applicable_spend_specifiers [Array<MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker::ApplicableSpendSpecifier>]
1075
+ #
1076
+ # @param credit_type_id [String]
1077
+ #
1078
+ # @param reset_frequency [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker::ResetFrequency]
1079
+ #
1080
+ # @param accumulated_spend [MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker::AccumulatedSpend]
1081
+
1082
+ class ApplicableSpendSpecifier < MetronomeSDK::Internal::Type::BaseModel
1083
+ # @!attribute sources
1084
+ #
1085
+ # @return [Array<Symbol, MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker::ApplicableSpendSpecifier::Source>]
1086
+ required :sources,
1087
+ -> { MetronomeSDK::Internal::Type::ArrayOf[enum: MetronomeSDK::ContractWithoutAmendments::SpendTracker::ApplicableSpendSpecifier::Source] }
1088
+
1089
+ # @!attribute spend_type
1090
+ #
1091
+ # @return [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker::ApplicableSpendSpecifier::SpendType]
1092
+ required :spend_type,
1093
+ enum: -> { MetronomeSDK::ContractWithoutAmendments::SpendTracker::ApplicableSpendSpecifier::SpendType }
1094
+
1095
+ # @!attribute discounted
1096
+ #
1097
+ # @return [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker::ApplicableSpendSpecifier::Discounted, nil]
1098
+ optional :discounted,
1099
+ enum: -> { MetronomeSDK::ContractWithoutAmendments::SpendTracker::ApplicableSpendSpecifier::Discounted }
1100
+
1101
+ # @!method initialize(sources:, spend_type:, discounted: nil)
1102
+ # @param sources [Array<Symbol, MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker::ApplicableSpendSpecifier::Source>]
1103
+ # @param spend_type [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker::ApplicableSpendSpecifier::SpendType]
1104
+ # @param discounted [Symbol, MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker::ApplicableSpendSpecifier::Discounted]
1105
+
1106
+ module Source
1107
+ extend MetronomeSDK::Internal::Type::Enum
1108
+
1109
+ THRESHOLD_RECHARGE = :THRESHOLD_RECHARGE
1110
+ MANUAL = :MANUAL
1111
+
1112
+ # @!method self.values
1113
+ # @return [Array<Symbol>]
1114
+ end
1115
+
1116
+ # @see MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker::ApplicableSpendSpecifier#spend_type
1117
+ module SpendType
1118
+ extend MetronomeSDK::Internal::Type::Enum
1119
+
1120
+ COMMIT_PURCHASE = :COMMIT_PURCHASE
1121
+
1122
+ # @!method self.values
1123
+ # @return [Array<Symbol>]
1124
+ end
1125
+
1126
+ # @see MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker::ApplicableSpendSpecifier#discounted
1127
+ module Discounted
1128
+ extend MetronomeSDK::Internal::Type::Enum
1129
+
1130
+ ANY = :ANY
1131
+ DISCOUNTED_ONLY = :DISCOUNTED_ONLY
1132
+ UNDISCOUNTED_ONLY = :UNDISCOUNTED_ONLY
1133
+
1134
+ # @!method self.values
1135
+ # @return [Array<Symbol>]
1136
+ end
1137
+ end
1138
+
1139
+ # @see MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker#reset_frequency
1140
+ module ResetFrequency
1141
+ extend MetronomeSDK::Internal::Type::Enum
1142
+
1143
+ BILLING_PERIOD = :BILLING_PERIOD
1144
+
1145
+ # @!method self.values
1146
+ # @return [Array<Symbol>]
1147
+ end
1148
+
1149
+ # @see MetronomeSDK::Models::ContractWithoutAmendments::SpendTracker#accumulated_spend
1150
+ class AccumulatedSpend < MetronomeSDK::Internal::Type::BaseModel
1151
+ # @!attribute amount
1152
+ #
1153
+ # @return [Float]
1154
+ required :amount, Float
1155
+
1156
+ # @!attribute period_ending_before
1157
+ #
1158
+ # @return [Time]
1159
+ required :period_ending_before, Time
1160
+
1161
+ # @!attribute period_starting_at
1162
+ #
1163
+ # @return [Time]
1164
+ required :period_starting_at, Time
1165
+
1166
+ # @!method initialize(amount:, period_ending_before:, period_starting_at:)
1167
+ # @param amount [Float]
1168
+ # @param period_ending_before [Time]
1169
+ # @param period_starting_at [Time]
1170
+ end
1171
+ end
1172
+
1032
1173
  # @see MetronomeSDK::Models::ContractWithoutAmendments#usage_filter
1033
1174
  class UsageFilter < MetronomeSDK::Internal::Type::BaseModel
1034
1175
  # @!attribute current
@@ -47,7 +47,13 @@ module MetronomeSDK
47
47
  optional :discount_configuration,
48
48
  -> { MetronomeSDK::PrepaidBalanceThresholdConfiguration::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
+ #
52
+ # @return [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier>, nil]
53
+ optional :threshold_balance_specifiers,
54
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier] }
55
+
56
+ # @!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
57
  # Some parameter documentations has been truncated, see
52
58
  # {MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration} for more details.
53
59
  #
@@ -64,6 +70,8 @@ module MetronomeSDK
64
70
  # @param custom_credit_type_id [String] If provided, the threshold, recharge-to amount, and the resulting threshold comm
65
71
  #
66
72
  # @param discount_configuration [MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::DiscountConfiguration]
73
+ #
74
+ # @param threshold_balance_specifiers [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier>]
67
75
 
68
76
  # @see MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration#commit
69
77
  class Commit < MetronomeSDK::Models::BaseThresholdCommit
@@ -114,12 +122,107 @@ module MetronomeSDK
114
122
  # @return [Float]
115
123
  required :payment_fraction, Float
116
124
 
117
- # @!method initialize(payment_fraction:)
125
+ # @!attribute cap
126
+ # If provided, the discount stops applying once the spend tracker has accumulated
127
+ # this much spend in the billing period.
128
+ #
129
+ # @return [MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap, nil]
130
+ optional :cap, -> { MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap }
131
+
132
+ # @!method initialize(payment_fraction:, cap: nil)
118
133
  # Some parameter documentations has been truncated, see
119
134
  # {MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::DiscountConfiguration}
120
135
  # for more details.
121
136
  #
122
137
  # @param payment_fraction [Float] The fraction of the original amount that the customer pays after applying the di
138
+ #
139
+ # @param cap [MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap] If provided, the discount stops applying once the spend tracker has accumulated
140
+
141
+ # @see MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::DiscountConfiguration#cap
142
+ class Cap < MetronomeSDK::Internal::Type::BaseModel
143
+ # @!attribute amount
144
+ # Accumulated spend ceiling above which the discount stops applying.
145
+ #
146
+ # @return [Float]
147
+ required :amount, Float
148
+
149
+ # @!attribute spend_tracker_alias
150
+ # Alias of the spend tracker this cap is measured against.
151
+ #
152
+ # @return [String]
153
+ required :spend_tracker_alias, String
154
+
155
+ # @!method initialize(amount:, spend_tracker_alias:)
156
+ # If provided, the discount stops applying once the spend tracker has accumulated
157
+ # this much spend in the billing period.
158
+ #
159
+ # @param amount [Float] Accumulated spend ceiling above which the discount stops applying.
160
+ #
161
+ # @param spend_tracker_alias [String] Alias of the spend tracker this cap is measured against.
162
+ end
163
+ end
164
+
165
+ class ThresholdBalanceSpecifier < MetronomeSDK::Internal::Type::BaseModel
166
+ # @!attribute exclude
167
+ #
168
+ # @return [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude>]
169
+ required :exclude,
170
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude] }
171
+
172
+ # @!method initialize(exclude:)
173
+ # @param exclude [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude>]
174
+
175
+ class Exclude < MetronomeSDK::Internal::Type::BaseModel
176
+ # @!attribute custom_field_filters
177
+ # If provided, balances with all the custom fields will not be considered when
178
+ # evaluating threshold billing
179
+ #
180
+ # @return [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter>]
181
+ required :custom_field_filters,
182
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter] }
183
+
184
+ # @!method initialize(custom_field_filters:)
185
+ # Some parameter documentations has been truncated, see
186
+ # {MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude}
187
+ # for more details.
188
+ #
189
+ # @param custom_field_filters [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter>] If provided, balances with all the custom fields will not be considered when eva
190
+
191
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
192
+ # @!attribute entity
193
+ #
194
+ # @return [Symbol, MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity]
195
+ required :entity,
196
+ enum: -> { MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity }
197
+
198
+ # @!attribute key
199
+ #
200
+ # @return [String]
201
+ required :key, String
202
+
203
+ # @!attribute value
204
+ #
205
+ # @return [String]
206
+ required :value, String
207
+
208
+ # @!method initialize(entity:, key:, value:)
209
+ # @param entity [Symbol, MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity]
210
+ # @param key [String]
211
+ # @param value [String]
212
+
213
+ # @see MetronomeSDK::Models::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter#entity
214
+ module Entity
215
+ extend MetronomeSDK::Internal::Type::Enum
216
+
217
+ COMMIT = :Commit
218
+ CONTRACT_CREDIT = :ContractCredit
219
+ CONTRACT_CREDIT_OR_COMMIT = :ContractCreditOrCommit
220
+
221
+ # @!method self.values
222
+ # @return [Array<Symbol>]
223
+ end
224
+ end
225
+ end
123
226
  end
124
227
  end
125
228
  end
@@ -47,7 +47,13 @@ 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
+ #
52
+ # @return [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier>, nil]
53
+ optional :threshold_balance_specifiers,
54
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier] }
55
+
56
+ # @!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
57
  # Some parameter documentations has been truncated, see
52
58
  # {MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2} for more details.
53
59
  #
@@ -64,6 +70,8 @@ module MetronomeSDK
64
70
  # @param custom_credit_type_id [String] If provided, the threshold, recharge-to amount, and the resulting threshold comm
65
71
  #
66
72
  # @param discount_configuration [MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration]
73
+ #
74
+ # @param threshold_balance_specifiers [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier>]
67
75
 
68
76
  # @see MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2#commit
69
77
  class Commit < MetronomeSDK::Models::BaseThresholdCommit
@@ -116,12 +124,105 @@ module MetronomeSDK
116
124
  # @return [Float]
117
125
  required :payment_fraction, Float
118
126
 
119
- # @!method initialize(payment_fraction:)
127
+ # @!attribute cap
128
+ # If provided, the discount stops applying once the spend tracker has accumulated
129
+ # this much spend in the billing period.
130
+ #
131
+ # @return [MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::Cap, nil]
132
+ optional :cap, -> { MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::Cap }
133
+
134
+ # @!method initialize(payment_fraction:, cap: nil)
120
135
  # Some parameter documentations has been truncated, see
121
136
  # {MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration}
122
137
  # for more details.
123
138
  #
124
139
  # @param payment_fraction [Float] The fraction of the original amount that the customer pays after applying the di
140
+ #
141
+ # @param cap [MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::Cap] If provided, the discount stops applying once the spend tracker has accumulated
142
+
143
+ # @see MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration#cap
144
+ class Cap < MetronomeSDK::Internal::Type::BaseModel
145
+ # @!attribute amount
146
+ # Accumulated spend ceiling above which the discount stops applying.
147
+ #
148
+ # @return [Float]
149
+ required :amount, Float
150
+
151
+ # @!attribute spend_tracker_alias
152
+ # Alias of the spend tracker this cap is measured against.
153
+ #
154
+ # @return [String]
155
+ required :spend_tracker_alias, String
156
+
157
+ # @!method initialize(amount:, spend_tracker_alias:)
158
+ # If provided, the discount stops applying once the spend tracker has accumulated
159
+ # this much spend in the billing period.
160
+ #
161
+ # @param amount [Float] Accumulated spend ceiling above which the discount stops applying.
162
+ #
163
+ # @param spend_tracker_alias [String] Alias of the spend tracker this cap is measured against.
164
+ end
165
+ end
166
+
167
+ class ThresholdBalanceSpecifier < MetronomeSDK::Internal::Type::BaseModel
168
+ # @!attribute exclude
169
+ #
170
+ # @return [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude>]
171
+ required :exclude,
172
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude] }
173
+
174
+ # @!method initialize(exclude:)
175
+ # @param exclude [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude>]
176
+
177
+ class Exclude < MetronomeSDK::Internal::Type::BaseModel
178
+ # @!attribute custom_field_filters
179
+ #
180
+ # @return [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter>]
181
+ required :custom_field_filters,
182
+ -> do
183
+ MetronomeSDK::Internal::Type::ArrayOf[
184
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter
185
+ ]
186
+ end
187
+
188
+ # @!method initialize(custom_field_filters:)
189
+ # @param custom_field_filters [Array<MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter>]
190
+
191
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
192
+ # @!attribute entity
193
+ #
194
+ # @return [Symbol, MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity]
195
+ required :entity,
196
+ enum: -> { MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity }
197
+
198
+ # @!attribute key
199
+ #
200
+ # @return [String]
201
+ required :key, String
202
+
203
+ # @!attribute value
204
+ #
205
+ # @return [String]
206
+ required :value, String
207
+
208
+ # @!method initialize(entity:, key:, value:)
209
+ # @param entity [Symbol, MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity]
210
+ # @param key [String]
211
+ # @param value [String]
212
+
213
+ # @see MetronomeSDK::Models::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter#entity
214
+ module Entity
215
+ extend MetronomeSDK::Internal::Type::Enum
216
+
217
+ COMMIT = :Commit
218
+ CONTRACT_CREDIT = :ContractCredit
219
+ CONTRACT_CREDIT_OR_COMMIT = :ContractCreditOrCommit
220
+
221
+ # @!method self.values
222
+ # @return [Array<Symbol>]
223
+ end
224
+ end
225
+ end
125
226
  end
126
227
  end
127
228
  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
@@ -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