metronome-sdk 3.5.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 (126) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +53 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/client.rb +15 -1
  5. data/lib/metronome_sdk/internal/transport/base_client.rb +2 -0
  6. data/lib/metronome_sdk/internal/type/enum.rb +0 -25
  7. data/lib/metronome_sdk/models/commit.rb +27 -1
  8. data/lib/metronome_sdk/models/contract.rb +140 -1
  9. data/lib/metronome_sdk/models/contract_v2.rb +530 -6
  10. data/lib/metronome_sdk/models/contract_without_amendments.rb +142 -1
  11. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +105 -2
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +103 -2
  13. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +33 -1
  14. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +33 -1
  15. data/lib/metronome_sdk/models/v1/alert_create_params.rb +1 -0
  16. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +29 -177
  17. data/lib/metronome_sdk/models/v1/contract_create_params.rb +147 -180
  18. data/lib/metronome_sdk/models/v1/contract_create_response.rb +1134 -3
  19. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +119 -0
  20. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_response.rb +315 -0
  21. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +31 -1
  22. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +31 -1
  23. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +1 -0
  24. data/lib/metronome_sdk/models/v1/customers/invoice.rb +8 -1
  25. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +29 -1
  26. data/lib/metronome_sdk/models/v1/package_create_params.rb +115 -18
  27. data/lib/metronome_sdk/models/v1/package_list_response.rb +110 -1
  28. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +114 -1
  29. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +303 -5
  30. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +3862 -3
  31. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +507 -6
  32. data/lib/metronome_sdk/resources/v1/contracts/products.rb +6 -2
  33. data/lib/metronome_sdk/resources/v1/contracts.rb +72 -3
  34. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +5 -1
  35. data/lib/metronome_sdk/resources/v1/packages.rb +6 -7
  36. data/lib/metronome_sdk/resources/v1.rb +0 -4
  37. data/lib/metronome_sdk/resources/v2/contracts.rb +5 -1
  38. data/lib/metronome_sdk/version.rb +1 -1
  39. data/lib/metronome_sdk.rb +2 -8
  40. data/rbi/metronome_sdk/models/commit.rbi +48 -0
  41. data/rbi/metronome_sdk/models/contract.rbi +354 -0
  42. data/rbi/metronome_sdk/models/contract_v2.rbi +1172 -4
  43. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +368 -0
  44. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +289 -6
  45. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +283 -6
  46. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +78 -3
  47. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -3
  48. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +5 -0
  49. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +54 -396
  50. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +370 -398
  51. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +2448 -4
  52. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +179 -0
  53. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_response.rbi +714 -0
  54. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +74 -0
  55. data/rbi/metronome_sdk/models/v1/contracts/product_update_params.rbi +74 -0
  56. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +5 -0
  57. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +9 -0
  58. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +75 -0
  59. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +310 -56
  60. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +307 -0
  61. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +307 -0
  62. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +734 -11
  63. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +8612 -4
  64. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1355 -219
  65. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +18 -0
  66. data/rbi/metronome_sdk/resources/v1/contracts.rbi +88 -3
  67. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +7 -0
  68. data/rbi/metronome_sdk/resources/v1/packages.rbi +8 -7
  69. data/rbi/metronome_sdk/resources/v1.rbi +0 -3
  70. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  71. data/sig/metronome_sdk/models/commit.rbs +19 -0
  72. data/sig/metronome_sdk/models/contract.rbs +151 -0
  73. data/sig/metronome_sdk/models/contract_v2.rbs +494 -6
  74. data/sig/metronome_sdk/models/contract_without_amendments.rbs +151 -0
  75. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +116 -6
  76. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +116 -6
  77. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +31 -3
  78. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +31 -3
  79. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +3 -1
  80. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +19 -137
  81. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +134 -137
  82. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +1045 -4
  83. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +96 -0
  84. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_response.rbs +299 -0
  85. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +20 -0
  86. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +20 -0
  87. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +3 -1
  88. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +7 -0
  89. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +29 -1
  90. data/sig/metronome_sdk/models/v1/package_create_params.rbs +115 -20
  91. data/sig/metronome_sdk/models/v1/package_list_response.rbs +115 -0
  92. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +115 -0
  93. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +283 -9
  94. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +3792 -4
  95. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +461 -15
  96. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +2 -0
  97. data/sig/metronome_sdk/resources/v1/contracts.rbs +16 -0
  98. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +2 -0
  99. data/sig/metronome_sdk/resources/v1/packages.rbs +1 -1
  100. data/sig/metronome_sdk/resources/v1.rbs +0 -2
  101. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  102. metadata +8 -26
  103. data/lib/metronome_sdk/models/v1/payment.rb +0 -196
  104. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +0 -28
  105. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +0 -18
  106. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +0 -28
  107. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +0 -18
  108. data/lib/metronome_sdk/models/v1/payment_list_params.rb +0 -53
  109. data/lib/metronome_sdk/models/v1/payment_status.rb +0 -19
  110. data/lib/metronome_sdk/resources/v1/payments.rb +0 -102
  111. data/rbi/metronome_sdk/models/v1/payment.rbi +0 -403
  112. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +0 -48
  113. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +0 -35
  114. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +0 -48
  115. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +0 -35
  116. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +0 -91
  117. data/rbi/metronome_sdk/models/v1/payment_status.rbi +0 -33
  118. data/rbi/metronome_sdk/resources/v1/payments.rbi +0 -72
  119. data/sig/metronome_sdk/models/v1/payment.rbs +0 -243
  120. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +0 -30
  121. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +0 -15
  122. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +0 -30
  123. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +0 -15
  124. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +0 -56
  125. data/sig/metronome_sdk/models/v1/payment_status.rbs +0 -19
  126. data/sig/metronome_sdk/resources/v1/payments.rbs +0 -30
@@ -109,18 +109,93 @@ module MetronomeSDK
109
109
  sig { returns(Float) }
110
110
  attr_accessor :payment_fraction
111
111
 
112
- sig { params(payment_fraction: Float).returns(T.attached_class) }
112
+ # If provided, the discount stops applying once the spend tracker has accumulated
113
+ # this much spend in the billing period.
114
+ sig do
115
+ returns(
116
+ T.nilable(
117
+ MetronomeSDK::SpendThresholdConfiguration::DiscountConfiguration::Cap
118
+ )
119
+ )
120
+ end
121
+ attr_reader :cap
122
+
123
+ sig do
124
+ params(
125
+ cap:
126
+ MetronomeSDK::SpendThresholdConfiguration::DiscountConfiguration::Cap::OrHash
127
+ ).void
128
+ end
129
+ attr_writer :cap
130
+
131
+ sig do
132
+ params(
133
+ payment_fraction: Float,
134
+ cap:
135
+ MetronomeSDK::SpendThresholdConfiguration::DiscountConfiguration::Cap::OrHash
136
+ ).returns(T.attached_class)
137
+ end
113
138
  def self.new(
114
139
  # The fraction of the original amount that the customer pays after applying the
115
140
  # discount. For example, 0.85 means the customer pays 85% of the original amount
116
141
  # (a 15% discount).
117
- payment_fraction:
142
+ payment_fraction:,
143
+ # If provided, the discount stops applying once the spend tracker has accumulated
144
+ # this much spend in the billing period.
145
+ cap: nil
118
146
  )
119
147
  end
120
148
 
121
- sig { override.returns({ payment_fraction: Float }) }
149
+ sig do
150
+ override.returns(
151
+ {
152
+ payment_fraction: Float,
153
+ cap:
154
+ MetronomeSDK::SpendThresholdConfiguration::DiscountConfiguration::Cap
155
+ }
156
+ )
157
+ end
122
158
  def to_hash
123
159
  end
160
+
161
+ class Cap < MetronomeSDK::Internal::Type::BaseModel
162
+ OrHash =
163
+ T.type_alias do
164
+ T.any(
165
+ MetronomeSDK::SpendThresholdConfiguration::DiscountConfiguration::Cap,
166
+ MetronomeSDK::Internal::AnyHash
167
+ )
168
+ end
169
+
170
+ # Accumulated spend ceiling above which the discount stops applying.
171
+ sig { returns(Float) }
172
+ attr_accessor :amount
173
+
174
+ # Alias of the spend tracker this cap is measured against.
175
+ sig { returns(String) }
176
+ attr_accessor :spend_tracker_alias
177
+
178
+ # If provided, the discount stops applying once the spend tracker has accumulated
179
+ # this much spend in the billing period.
180
+ sig do
181
+ params(amount: Float, spend_tracker_alias: String).returns(
182
+ T.attached_class
183
+ )
184
+ end
185
+ def self.new(
186
+ # Accumulated spend ceiling above which the discount stops applying.
187
+ amount:,
188
+ # Alias of the spend tracker this cap is measured against.
189
+ spend_tracker_alias:
190
+ )
191
+ end
192
+
193
+ sig do
194
+ override.returns({ amount: Float, spend_tracker_alias: String })
195
+ end
196
+ def to_hash
197
+ end
198
+ end
124
199
  end
125
200
  end
126
201
  end
@@ -109,18 +109,93 @@ module MetronomeSDK
109
109
  sig { returns(Float) }
110
110
  attr_accessor :payment_fraction
111
111
 
112
- sig { params(payment_fraction: Float).returns(T.attached_class) }
112
+ # If provided, the discount stops applying once the spend tracker has accumulated
113
+ # this much spend in the billing period.
114
+ sig do
115
+ returns(
116
+ T.nilable(
117
+ MetronomeSDK::SpendThresholdConfigurationV2::DiscountConfiguration::Cap
118
+ )
119
+ )
120
+ end
121
+ attr_reader :cap
122
+
123
+ sig do
124
+ params(
125
+ cap:
126
+ MetronomeSDK::SpendThresholdConfigurationV2::DiscountConfiguration::Cap::OrHash
127
+ ).void
128
+ end
129
+ attr_writer :cap
130
+
131
+ sig do
132
+ params(
133
+ payment_fraction: Float,
134
+ cap:
135
+ MetronomeSDK::SpendThresholdConfigurationV2::DiscountConfiguration::Cap::OrHash
136
+ ).returns(T.attached_class)
137
+ end
113
138
  def self.new(
114
139
  # The fraction of the original amount that the customer pays after applying the
115
140
  # discount. For example, 0.85 means the customer pays 85% of the original amount
116
141
  # (a 15% discount).
117
- payment_fraction:
142
+ payment_fraction:,
143
+ # If provided, the discount stops applying once the spend tracker has accumulated
144
+ # this much spend in the billing period.
145
+ cap: nil
118
146
  )
119
147
  end
120
148
 
121
- sig { override.returns({ payment_fraction: Float }) }
149
+ sig do
150
+ override.returns(
151
+ {
152
+ payment_fraction: Float,
153
+ cap:
154
+ MetronomeSDK::SpendThresholdConfigurationV2::DiscountConfiguration::Cap
155
+ }
156
+ )
157
+ end
122
158
  def to_hash
123
159
  end
160
+
161
+ class Cap < MetronomeSDK::Internal::Type::BaseModel
162
+ OrHash =
163
+ T.type_alias do
164
+ T.any(
165
+ MetronomeSDK::SpendThresholdConfigurationV2::DiscountConfiguration::Cap,
166
+ MetronomeSDK::Internal::AnyHash
167
+ )
168
+ end
169
+
170
+ # Accumulated spend ceiling above which the discount stops applying.
171
+ sig { returns(Float) }
172
+ attr_accessor :amount
173
+
174
+ # Alias of the spend tracker this cap is measured against.
175
+ sig { returns(String) }
176
+ attr_accessor :spend_tracker_alias
177
+
178
+ # If provided, the discount stops applying once the spend tracker has accumulated
179
+ # this much spend in the billing period.
180
+ sig do
181
+ params(amount: Float, spend_tracker_alias: String).returns(
182
+ T.attached_class
183
+ )
184
+ end
185
+ def self.new(
186
+ # Accumulated spend ceiling above which the discount stops applying.
187
+ amount:,
188
+ # Alias of the spend tracker this cap is measured against.
189
+ spend_tracker_alias:
190
+ )
191
+ end
192
+
193
+ sig do
194
+ override.returns({ amount: Float, spend_tracker_alias: String })
195
+ end
196
+ def to_hash
197
+ end
198
+ end
124
199
  end
125
200
  end
126
201
  end
@@ -427,6 +427,11 @@ module MetronomeSDK
427
427
  :ContractCredit,
428
428
  MetronomeSDK::V1::AlertCreateParams::CustomFieldFilter::Entity::TaggedSymbol
429
429
  )
430
+ CONTRACT_CREDIT_OR_COMMIT =
431
+ T.let(
432
+ :ContractCreditOrCommit,
433
+ MetronomeSDK::V1::AlertCreateParams::CustomFieldFilter::Entity::TaggedSymbol
434
+ )
430
435
 
431
436
  sig do
432
437
  override.returns(