metronome-sdk 3.4.0 → 3.6.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 (95) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +84 -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/util.rb +22 -7
  7. data/lib/metronome_sdk/models/base_threshold_commit.rb +10 -1
  8. data/lib/metronome_sdk/models/contract_v2.rb +443 -15
  9. data/lib/metronome_sdk/models/credit.rb +74 -4
  10. data/lib/metronome_sdk/models/override.rb +9 -8
  11. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +27 -1
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +28 -2
  13. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +26 -1
  14. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +30 -4
  15. data/lib/metronome_sdk/models/update_base_threshold_commit.rb +11 -1
  16. data/lib/metronome_sdk/models/v1/alert_create_params.rb +1 -0
  17. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +2 -189
  18. data/lib/metronome_sdk/models/v1/contract_create_params.rb +3 -191
  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 +2 -30
  27. data/lib/metronome_sdk/models/v1/package_list_response.rb +28 -9
  28. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +29 -9
  29. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +67 -20
  30. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +496 -15
  31. data/lib/metronome_sdk/resources/v1/contracts/products.rb +6 -2
  32. data/lib/metronome_sdk/resources/v1/contracts.rb +76 -2
  33. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +5 -1
  34. data/lib/metronome_sdk/resources/v1/packages.rb +1 -3
  35. data/lib/metronome_sdk/version.rb +1 -1
  36. data/lib/metronome_sdk.rb +3 -1
  37. data/rbi/metronome_sdk/internal/util.rbi +8 -0
  38. data/rbi/metronome_sdk/models/base_threshold_commit.rbi +24 -5
  39. data/rbi/metronome_sdk/models/contract_v2.rbi +916 -19
  40. data/rbi/metronome_sdk/models/credit.rbi +139 -3
  41. data/rbi/metronome_sdk/models/override.rbi +9 -12
  42. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +54 -3
  43. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +55 -4
  44. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +54 -3
  45. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +58 -9
  46. data/rbi/metronome_sdk/models/update_base_threshold_commit.rbi +22 -4
  47. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +5 -0
  48. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +3 -416
  49. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +5 -418
  50. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +179 -0
  51. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_response.rbi +714 -0
  52. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +74 -0
  53. data/rbi/metronome_sdk/models/v1/contracts/product_update_params.rbi +74 -0
  54. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +5 -0
  55. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +9 -0
  56. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +75 -0
  57. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +3 -76
  58. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +72 -15
  59. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +72 -17
  60. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +133 -28
  61. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1174 -145
  62. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +18 -0
  63. data/rbi/metronome_sdk/resources/v1/contracts.rbi +88 -3
  64. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +7 -0
  65. data/rbi/metronome_sdk/resources/v1/packages.rbi +0 -3
  66. data/sig/metronome_sdk/internal/util.rbs +4 -0
  67. data/sig/metronome_sdk/models/base_threshold_commit.rbs +13 -3
  68. data/sig/metronome_sdk/models/contract_v2.rbs +401 -16
  69. data/sig/metronome_sdk/models/credit.rbs +69 -0
  70. data/sig/metronome_sdk/models/override.rbs +8 -10
  71. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +22 -3
  72. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +23 -4
  73. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +22 -3
  74. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +26 -7
  75. data/sig/metronome_sdk/models/update_base_threshold_commit.rbs +15 -2
  76. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +3 -1
  77. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +3 -147
  78. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +3 -147
  79. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +96 -0
  80. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_response.rbs +299 -0
  81. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +20 -0
  82. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +20 -0
  83. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +3 -1
  84. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +7 -0
  85. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +29 -1
  86. data/sig/metronome_sdk/models/v1/package_create_params.rbs +3 -30
  87. data/sig/metronome_sdk/models/v1/package_list_response.rbs +33 -15
  88. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +33 -15
  89. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +33 -10
  90. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +409 -19
  91. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +2 -0
  92. data/sig/metronome_sdk/resources/v1/contracts.rbs +15 -0
  93. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +2 -0
  94. data/sig/metronome_sdk/resources/v1/packages.rbs +0 -1
  95. metadata +8 -2
@@ -108,12 +108,24 @@ module MetronomeSDK
108
108
  # @return [MetronomeSDK::Models::V1::Contracts::QuantityRounding, nil]
109
109
  optional :quantity_rounding, -> { MetronomeSDK::V1::Contracts::QuantityRounding }, nil?: true
110
110
 
111
+ # @!attribute sql_breakdown_granularity
112
+ # Defines the breakdown behavior when calculating usage from SQL Billable Metrics.
113
+ # If set to 'service_period' (default), the usage will be evaluated once for all
114
+ # events the invoice service period and the usage will be applied at the last
115
+ # instant of the invoice. If set to 'hour', it will be broken down and evaluated
116
+ # for each hour. For most use cases, 'hour' is recommended. The setting has no
117
+ # effect for Streaming Billable Metrics.
118
+ #
119
+ # @return [Symbol, MetronomeSDK::Models::V1::Contracts::ProductCreateParams::SqlBreakdownGranularity, nil]
120
+ optional :sql_breakdown_granularity,
121
+ enum: -> { MetronomeSDK::V1::Contracts::ProductCreateParams::SqlBreakdownGranularity }
122
+
111
123
  # @!attribute tags
112
124
  #
113
125
  # @return [Array<String>, nil]
114
126
  optional :tags, MetronomeSDK::Internal::Type::ArrayOf[String]
115
127
 
116
- # @!method initialize(name:, type:, billable_metric_id: nil, composite_product_ids: nil, composite_tags: nil, custom_fields: nil, exclude_free_usage: nil, is_refundable: nil, netsuite_internal_item_id: nil, netsuite_overage_item_id: nil, presentation_group_key: nil, pricing_group_key: nil, quantity_conversion: nil, quantity_rounding: nil, tags: nil, request_options: {})
128
+ # @!method initialize(name:, type:, billable_metric_id: nil, composite_product_ids: nil, composite_tags: nil, custom_fields: nil, exclude_free_usage: nil, is_refundable: nil, netsuite_internal_item_id: nil, netsuite_overage_item_id: nil, presentation_group_key: nil, pricing_group_key: nil, quantity_conversion: nil, quantity_rounding: nil, sql_breakdown_granularity: nil, tags: nil, request_options: {})
117
129
  # Some parameter documentations has been truncated, see
118
130
  # {MetronomeSDK::Models::V1::Contracts::ProductCreateParams} for more details.
119
131
  #
@@ -145,6 +157,8 @@ module MetronomeSDK
145
157
  #
146
158
  # @param quantity_rounding [MetronomeSDK::Models::V1::Contracts::QuantityRounding, nil] Optional. Only valid for USAGE products. If provided, the quantity will be round
147
159
  #
160
+ # @param sql_breakdown_granularity [Symbol, MetronomeSDK::Models::V1::Contracts::ProductCreateParams::SqlBreakdownGranularity] Defines the breakdown behavior when calculating usage from SQL Billable Metrics.
161
+ #
148
162
  # @param tags [Array<String>]
149
163
  #
150
164
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
@@ -162,6 +176,22 @@ module MetronomeSDK
162
176
  # @!method self.values
163
177
  # @return [Array<Symbol>]
164
178
  end
179
+
180
+ # Defines the breakdown behavior when calculating usage from SQL Billable Metrics.
181
+ # If set to 'service_period' (default), the usage will be evaluated once for all
182
+ # events the invoice service period and the usage will be applied at the last
183
+ # instant of the invoice. If set to 'hour', it will be broken down and evaluated
184
+ # for each hour. For most use cases, 'hour' is recommended. The setting has no
185
+ # effect for Streaming Billable Metrics.
186
+ module SqlBreakdownGranularity
187
+ extend MetronomeSDK::Internal::Type::Enum
188
+
189
+ HOUR = :HOUR
190
+ SERVICE_PERIOD = :SERVICE_PERIOD
191
+
192
+ # @!method self.values
193
+ # @return [Array<Symbol>]
194
+ end
165
195
  end
166
196
  end
167
197
  end
@@ -116,13 +116,25 @@ module MetronomeSDK
116
116
  # @return [MetronomeSDK::Models::V1::Contracts::QuantityRounding, nil]
117
117
  optional :quantity_rounding, -> { MetronomeSDK::V1::Contracts::QuantityRounding }, nil?: true
118
118
 
119
+ # @!attribute sql_breakdown_granularity
120
+ # Defines the breakdown behavior when calculating usage from SQL Billable Metrics.
121
+ # If set to 'service_period' (default), the usage will be evaluated once for all
122
+ # events the invoice service period and the usage will be applied at the last
123
+ # instant of the invoice. If set to 'hour', it will be broken down and evaluated
124
+ # for each hour. For most use cases, 'hour' is recommended. The setting has no
125
+ # effect for Streaming Billable Metrics.
126
+ #
127
+ # @return [Symbol, MetronomeSDK::Models::V1::Contracts::ProductUpdateParams::SqlBreakdownGranularity, nil]
128
+ optional :sql_breakdown_granularity,
129
+ enum: -> { MetronomeSDK::V1::Contracts::ProductUpdateParams::SqlBreakdownGranularity }
130
+
119
131
  # @!attribute tags
120
132
  # If not provided, defaults to product's current tags
121
133
  #
122
134
  # @return [Array<String>, nil]
123
135
  optional :tags, MetronomeSDK::Internal::Type::ArrayOf[String]
124
136
 
125
- # @!method initialize(product_id:, starting_at:, billable_metric_id: nil, composite_product_ids: nil, composite_tags: nil, exclude_free_usage: nil, is_refundable: nil, name: nil, netsuite_internal_item_id: nil, netsuite_overage_item_id: nil, presentation_group_key: nil, pricing_group_key: nil, quantity_conversion: nil, quantity_rounding: nil, tags: nil, request_options: {})
137
+ # @!method initialize(product_id:, starting_at:, billable_metric_id: nil, composite_product_ids: nil, composite_tags: nil, exclude_free_usage: nil, is_refundable: nil, name: nil, netsuite_internal_item_id: nil, netsuite_overage_item_id: nil, presentation_group_key: nil, pricing_group_key: nil, quantity_conversion: nil, quantity_rounding: nil, sql_breakdown_granularity: nil, tags: nil, request_options: {})
126
138
  # Some parameter documentations has been truncated, see
127
139
  # {MetronomeSDK::Models::V1::Contracts::ProductUpdateParams} for more details.
128
140
  #
@@ -154,9 +166,27 @@ module MetronomeSDK
154
166
  #
155
167
  # @param quantity_rounding [MetronomeSDK::Models::V1::Contracts::QuantityRounding, nil] Optional. Only valid for USAGE products. If provided, the quantity will be round
156
168
  #
169
+ # @param sql_breakdown_granularity [Symbol, MetronomeSDK::Models::V1::Contracts::ProductUpdateParams::SqlBreakdownGranularity] Defines the breakdown behavior when calculating usage from SQL Billable Metrics.
170
+ #
157
171
  # @param tags [Array<String>] If not provided, defaults to product's current tags
158
172
  #
159
173
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
174
+
175
+ # Defines the breakdown behavior when calculating usage from SQL Billable Metrics.
176
+ # If set to 'service_period' (default), the usage will be evaluated once for all
177
+ # events the invoice service period and the usage will be applied at the last
178
+ # instant of the invoice. If set to 'hour', it will be broken down and evaluated
179
+ # for each hour. For most use cases, 'hour' is recommended. The setting has no
180
+ # effect for Streaming Billable Metrics.
181
+ module SqlBreakdownGranularity
182
+ extend MetronomeSDK::Internal::Type::Enum
183
+
184
+ HOUR = :HOUR
185
+ SERVICE_PERIOD = :SERVICE_PERIOD
186
+
187
+ # @!method self.values
188
+ # @return [Array<Symbol>]
189
+ end
160
190
  end
161
191
  end
162
192
  end
@@ -236,6 +236,7 @@ module MetronomeSDK
236
236
  CONTRACT = :Contract
237
237
  COMMIT = :Commit
238
238
  CONTRACT_CREDIT = :ContractCredit
239
+ CONTRACT_CREDIT_OR_COMMIT = :ContractCreditOrCommit
239
240
 
240
241
  # @!method self.values
241
242
  # @return [Array<Symbol>]
@@ -152,6 +152,11 @@ module MetronomeSDK
152
152
  # @return [String, nil]
153
153
  optional :plan_name, String
154
154
 
155
+ # @!attribute regenerated_from_invoice_id
156
+ #
157
+ # @return [String, nil]
158
+ optional :regenerated_from_invoice_id, String
159
+
155
160
  # @!attribute reseller_royalty
156
161
  # Only present for contract invoices with reseller royalties.
157
162
  #
@@ -184,7 +189,7 @@ module MetronomeSDK
184
189
  # @return [Float, nil]
185
190
  optional :subtotal, Float
186
191
 
187
- # @!method initialize(id:, credit_type:, customer_id:, line_items:, status:, total:, type:, amendment_id: nil, billable_status: nil, constituent_invoices: nil, contract_custom_fields: nil, contract_id: nil, correction_record: nil, created_at: nil, custom_fields: nil, customer_custom_fields: nil, end_timestamp: nil, external_invoice: nil, invoice_adjustments: nil, issued_at: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, payer: nil, plan_custom_fields: nil, plan_id: nil, plan_name: nil, reseller_royalty: nil, revenue_system_invoices: nil, salesforce_opportunity_id: nil, start_timestamp: nil, subtotal: nil)
192
+ # @!method initialize(id:, credit_type:, customer_id:, line_items:, status:, total:, type:, amendment_id: nil, billable_status: nil, constituent_invoices: nil, contract_custom_fields: nil, contract_id: nil, correction_record: nil, created_at: nil, custom_fields: nil, customer_custom_fields: nil, end_timestamp: nil, external_invoice: nil, invoice_adjustments: nil, issued_at: nil, net_payment_terms_days: nil, netsuite_sales_order_id: nil, payer: nil, plan_custom_fields: nil, plan_id: nil, plan_name: nil, regenerated_from_invoice_id: nil, reseller_royalty: nil, revenue_system_invoices: nil, salesforce_opportunity_id: nil, start_timestamp: nil, subtotal: nil)
188
193
  # Some parameter documentations has been truncated, see
189
194
  # {MetronomeSDK::Models::V1::Customers::Invoice} for more details.
190
195
  #
@@ -240,6 +245,8 @@ module MetronomeSDK
240
245
  #
241
246
  # @param plan_name [String]
242
247
  #
248
+ # @param regenerated_from_invoice_id [String]
249
+ #
243
250
  # @param reseller_royalty [MetronomeSDK::Models::V1::Customers::Invoice::ResellerRoyalty] Only present for contract invoices with reseller royalties.
244
251
  #
245
252
  # @param revenue_system_invoices [Array<MetronomeSDK::Models::V1::Customers::Invoice::RevenueSystemInvoice>, nil]
@@ -14,6 +14,12 @@ module MetronomeSDK
14
14
  # @return [String]
15
15
  required :customer_id, String
16
16
 
17
+ # @!attribute contract_id
18
+ # Only return invoices for the specified contract
19
+ #
20
+ # @return [String, nil]
21
+ optional :contract_id, String
22
+
17
23
  # @!attribute credit_type_id
18
24
  # Only return invoices for the specified credit type
19
25
  #
@@ -65,12 +71,20 @@ module MetronomeSDK
65
71
  # @return [String, nil]
66
72
  optional :status, String
67
73
 
68
- # @!method initialize(customer_id:, credit_type_id: nil, ending_before: nil, limit: nil, next_page: nil, skip_zero_qty_line_items: nil, sort: nil, starting_on: nil, status: nil, request_options: {})
74
+ # @!attribute type
75
+ # Filter invoices by type. Defaults to returning all invoice types.
76
+ #
77
+ # @return [Symbol, MetronomeSDK::Models::V1::Customers::InvoiceListParams::Type, nil]
78
+ optional :type, enum: -> { MetronomeSDK::V1::Customers::InvoiceListParams::Type }
79
+
80
+ # @!method initialize(customer_id:, contract_id: nil, credit_type_id: nil, ending_before: nil, limit: nil, next_page: nil, skip_zero_qty_line_items: nil, sort: nil, starting_on: nil, status: nil, type: nil, request_options: {})
69
81
  # Some parameter documentations has been truncated, see
70
82
  # {MetronomeSDK::Models::V1::Customers::InvoiceListParams} for more details.
71
83
  #
72
84
  # @param customer_id [String]
73
85
  #
86
+ # @param contract_id [String] Only return invoices for the specified contract
87
+ #
74
88
  # @param credit_type_id [String] Only return invoices for the specified credit type
75
89
  #
76
90
  # @param ending_before [Time] RFC 3339 timestamp (exclusive). Invoices will only be returned for billing perio
@@ -87,6 +101,8 @@ module MetronomeSDK
87
101
  #
88
102
  # @param status [String] Invoice status, e.g. DRAFT, FINALIZED, or VOID
89
103
  #
104
+ # @param type [Symbol, MetronomeSDK::Models::V1::Customers::InvoiceListParams::Type] Filter invoices by type. Defaults to returning all invoice types.
105
+ #
90
106
  # @param request_options [MetronomeSDK::RequestOptions, Hash{Symbol=>Object}]
91
107
 
92
108
  # Invoice sort order by issued_at, e.g. date_asc or date_desc. Defaults to
@@ -100,6 +116,18 @@ module MetronomeSDK
100
116
  # @!method self.values
101
117
  # @return [Array<Symbol>]
102
118
  end
119
+
120
+ # Filter invoices by type. Defaults to returning all invoice types.
121
+ module Type
122
+ extend MetronomeSDK::Internal::Type::Enum
123
+
124
+ USAGE = :USAGE
125
+ USAGE_CONSOLIDATED = :USAGE_CONSOLIDATED
126
+ SCHEDULED = :SCHEDULED
127
+
128
+ # @!method self.values
129
+ # @return [Array<Symbol>]
130
+ end
103
131
  end
104
132
  end
105
133
  end
@@ -22,11 +22,6 @@ module MetronomeSDK
22
22
  optional :aliases,
23
23
  -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::V1::PackageCreateParams::Alias] }
24
24
 
25
- # @!attribute billing_anchor_date
26
- #
27
- # @return [Symbol, MetronomeSDK::Models::V1::PackageCreateParams::BillingAnchorDate, nil]
28
- optional :billing_anchor_date, enum: -> { MetronomeSDK::V1::PackageCreateParams::BillingAnchorDate }
29
-
30
25
  # @!attribute billing_provider
31
26
  #
32
27
  # @return [Symbol, MetronomeSDK::Models::V1::PackageCreateParams::BillingProvider, nil]
@@ -151,7 +146,7 @@ module MetronomeSDK
151
146
  # @return [MetronomeSDK::Models::V1::PackageCreateParams::UsageStatementSchedule, nil]
152
147
  optional :usage_statement_schedule, -> { MetronomeSDK::V1::PackageCreateParams::UsageStatementSchedule }
153
148
 
154
- # @!method initialize(name:, aliases: nil, billing_anchor_date: nil, billing_provider: nil, commits: nil, contract_name: nil, credits: nil, delivery_method: nil, duration: nil, multiplier_override_prioritization: nil, net_payment_terms_days: nil, overrides: nil, prepaid_balance_threshold_configuration: nil, rate_card_alias: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, scheduled_charges: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, uniqueness_key: nil, usage_statement_schedule: nil, request_options: {})
149
+ # @!method initialize(name:, aliases: nil, billing_provider: nil, commits: nil, contract_name: nil, credits: nil, delivery_method: nil, duration: nil, multiplier_override_prioritization: nil, net_payment_terms_days: nil, overrides: nil, prepaid_balance_threshold_configuration: nil, rate_card_alias: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, scheduled_charges: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, uniqueness_key: nil, usage_statement_schedule: nil, request_options: {})
155
150
  # Some parameter documentations has been truncated, see
156
151
  # {MetronomeSDK::Models::V1::PackageCreateParams} for more details.
157
152
  #
@@ -159,8 +154,6 @@ module MetronomeSDK
159
154
  #
160
155
  # @param aliases [Array<MetronomeSDK::Models::V1::PackageCreateParams::Alias>] Reference this alias when creating a contract. If the same alias is assigned to
161
156
  #
162
- # @param billing_anchor_date [Symbol, MetronomeSDK::Models::V1::PackageCreateParams::BillingAnchorDate]
163
- #
164
157
  # @param billing_provider [Symbol, MetronomeSDK::Models::V1::PackageCreateParams::BillingProvider]
165
158
  #
166
159
  # @param commits [Array<MetronomeSDK::Models::V1::PackageCreateParams::Commit>]
@@ -225,16 +218,6 @@ module MetronomeSDK
225
218
  # @param starting_at [Time]
226
219
  end
227
220
 
228
- module BillingAnchorDate
229
- extend MetronomeSDK::Internal::Type::Enum
230
-
231
- CONTRACT_START_DATE = :contract_start_date
232
- FIRST_BILLING_PERIOD = :first_billing_period
233
-
234
- # @!method self.values
235
- # @return [Array<Symbol>]
236
- end
237
-
238
221
  module BillingProvider
239
222
  extend MetronomeSDK::Internal::Type::Enum
240
223
 
@@ -1058,16 +1041,7 @@ module MetronomeSDK
1058
1041
  # @return [Array<String>, nil]
1059
1042
  optional :recurring_commit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1060
1043
 
1061
- # @!attribute recurring_credit_ids
1062
- # Can only be used for commit specific overrides. Must be used in conjunction with
1063
- # one of `product_id`, `product_tags`, `pricing_group_values`, or
1064
- # `presentation_group_values`. If provided, the override will only apply to
1065
- # credits created by the specified recurring credit ids.
1066
- #
1067
- # @return [Array<String>, nil]
1068
- optional :recurring_credit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1069
-
1070
- # @!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, recurring_credit_ids: nil)
1044
+ # @!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)
1071
1045
  # Some parameter documentations has been truncated, see
1072
1046
  # {MetronomeSDK::Models::V1::PackageCreateParams::Override::OverrideSpecifier} for
1073
1047
  # more details.
@@ -1085,8 +1059,6 @@ module MetronomeSDK
1085
1059
  # @param product_tags [Array<String>] If provided, the override will only apply to products with all the specified tag
1086
1060
  #
1087
1061
  # @param recurring_commit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1088
- #
1089
- # @param recurring_credit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1090
1062
 
1091
1063
  # @see MetronomeSDK::Models::V1::PackageCreateParams::Override::OverrideSpecifier#billing_frequency
1092
1064
  module BillingFrequency
@@ -60,6 +60,12 @@ module MetronomeSDK
60
60
  # @return [Symbol, MetronomeSDK::Models::V1::PackageListResponse::BillingProvider, nil]
61
61
  optional :billing_provider, enum: -> { MetronomeSDK::Models::V1::PackageListResponse::BillingProvider }
62
62
 
63
+ # @!attribute contract_name
64
+ # The name to use for contracts created from this package.
65
+ #
66
+ # @return [String, nil]
67
+ optional :contract_name, String
68
+
63
69
  # @!attribute credits
64
70
  #
65
71
  # @return [Array<MetronomeSDK::Models::V1::PackageListResponse::Credit>, nil]
@@ -149,7 +155,7 @@ module MetronomeSDK
149
155
  # @return [String, nil]
150
156
  optional :uniqueness_key, String
151
157
 
152
- # @!method initialize(id:, commits:, created_at:, created_by:, overrides:, scheduled_charges:, usage_statement_schedule:, aliases: nil, archived_at: nil, billing_provider: nil, credits: nil, delivery_method: nil, duration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, prepaid_balance_threshold_configuration: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, uniqueness_key: nil)
158
+ # @!method initialize(id:, commits:, created_at:, created_by:, overrides:, scheduled_charges:, usage_statement_schedule:, aliases: nil, archived_at: nil, billing_provider: nil, contract_name: nil, credits: nil, delivery_method: nil, duration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, prepaid_balance_threshold_configuration: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, uniqueness_key: nil)
153
159
  # Some parameter documentations has been truncated, see
154
160
  # {MetronomeSDK::Models::V1::PackageListResponse} for more details.
155
161
  #
@@ -173,6 +179,8 @@ module MetronomeSDK
173
179
  #
174
180
  # @param billing_provider [Symbol, MetronomeSDK::Models::V1::PackageListResponse::BillingProvider]
175
181
  #
182
+ # @param contract_name [String] The name to use for contracts created from this package.
183
+ #
176
184
  # @param credits [Array<MetronomeSDK::Models::V1::PackageListResponse::Credit>]
177
185
  #
178
186
  # @param delivery_method [Symbol, MetronomeSDK::Models::V1::PackageListResponse::DeliveryMethod]
@@ -681,12 +689,7 @@ module MetronomeSDK
681
689
  # @return [Array<String>, nil]
682
690
  optional :recurring_commit_template_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
683
691
 
684
- # @!attribute recurring_credit_template_ids
685
- #
686
- # @return [Array<String>, nil]
687
- optional :recurring_credit_template_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
688
-
689
- # @!method initialize(billing_frequency: nil, commit_template_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_template_ids: nil, recurring_credit_template_ids: nil)
692
+ # @!method initialize(billing_frequency: nil, commit_template_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_template_ids: nil)
690
693
  # @param billing_frequency [Symbol, MetronomeSDK::Models::V1::PackageListResponse::Override::OverrideSpecifier::BillingFrequency]
691
694
  # @param commit_template_ids [Array<String>]
692
695
  # @param presentation_group_values [Hash{Symbol=>String, nil}]
@@ -694,7 +697,6 @@ module MetronomeSDK
694
697
  # @param product_id [String]
695
698
  # @param product_tags [Array<String>]
696
699
  # @param recurring_commit_template_ids [Array<String>]
697
- # @param recurring_credit_template_ids [Array<String>]
698
700
 
699
701
  # @see MetronomeSDK::Models::V1::PackageListResponse::Override::OverrideSpecifier#billing_frequency
700
702
  module BillingFrequency
@@ -961,8 +963,14 @@ module MetronomeSDK
961
963
  required :frequency,
962
964
  enum: -> { MetronomeSDK::Models::V1::PackageListResponse::UsageStatementSchedule::Frequency }
963
965
 
964
- # @!method initialize(frequency:)
966
+ # @!attribute day
967
+ #
968
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageListResponse::UsageStatementSchedule::Day, nil]
969
+ optional :day, enum: -> { MetronomeSDK::Models::V1::PackageListResponse::UsageStatementSchedule::Day }
970
+
971
+ # @!method initialize(frequency:, day: nil)
965
972
  # @param frequency [Symbol, MetronomeSDK::Models::V1::PackageListResponse::UsageStatementSchedule::Frequency]
973
+ # @param day [Symbol, MetronomeSDK::Models::V1::PackageListResponse::UsageStatementSchedule::Day]
966
974
 
967
975
  # @see MetronomeSDK::Models::V1::PackageListResponse::UsageStatementSchedule#frequency
968
976
  module Frequency
@@ -976,6 +984,17 @@ module MetronomeSDK
976
984
  # @!method self.values
977
985
  # @return [Array<Symbol>]
978
986
  end
987
+
988
+ # @see MetronomeSDK::Models::V1::PackageListResponse::UsageStatementSchedule#day
989
+ module Day
990
+ extend MetronomeSDK::Internal::Type::Enum
991
+
992
+ FIRST_OF_MONTH = :FIRST_OF_MONTH
993
+ CONTRACT_START = :CONTRACT_START
994
+
995
+ # @!method self.values
996
+ # @return [Array<Symbol>]
997
+ end
979
998
  end
980
999
 
981
1000
  class Alias < MetronomeSDK::Internal::Type::BaseModel
@@ -71,6 +71,12 @@ module MetronomeSDK
71
71
  optional :billing_provider,
72
72
  enum: -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::BillingProvider }
73
73
 
74
+ # @!attribute contract_name
75
+ # The name to use for contracts created from this package.
76
+ #
77
+ # @return [String, nil]
78
+ optional :contract_name, String
79
+
74
80
  # @!attribute credits
75
81
  #
76
82
  # @return [Array<MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Credit>, nil]
@@ -161,7 +167,7 @@ module MetronomeSDK
161
167
  # @return [String, nil]
162
168
  optional :uniqueness_key, String
163
169
 
164
- # @!method initialize(id:, commits:, created_at:, created_by:, overrides:, scheduled_charges:, usage_statement_schedule:, aliases: nil, archived_at: nil, billing_provider: nil, credits: nil, delivery_method: nil, duration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, prepaid_balance_threshold_configuration: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, uniqueness_key: nil)
170
+ # @!method initialize(id:, commits:, created_at:, created_by:, overrides:, scheduled_charges:, usage_statement_schedule:, aliases: nil, archived_at: nil, billing_provider: nil, contract_name: nil, credits: nil, delivery_method: nil, duration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, prepaid_balance_threshold_configuration: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, uniqueness_key: nil)
165
171
  # Some parameter documentations has been truncated, see
166
172
  # {MetronomeSDK::Models::V1::PackageRetrieveResponse::Data} for more details.
167
173
  #
@@ -185,6 +191,8 @@ module MetronomeSDK
185
191
  #
186
192
  # @param billing_provider [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::BillingProvider]
187
193
  #
194
+ # @param contract_name [String] The name to use for contracts created from this package.
195
+ #
188
196
  # @param credits [Array<MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Credit>]
189
197
  #
190
198
  # @param delivery_method [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::DeliveryMethod]
@@ -697,12 +705,7 @@ module MetronomeSDK
697
705
  # @return [Array<String>, nil]
698
706
  optional :recurring_commit_template_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
699
707
 
700
- # @!attribute recurring_credit_template_ids
701
- #
702
- # @return [Array<String>, nil]
703
- optional :recurring_credit_template_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
704
-
705
- # @!method initialize(billing_frequency: nil, commit_template_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_template_ids: nil, recurring_credit_template_ids: nil)
708
+ # @!method initialize(billing_frequency: nil, commit_template_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_template_ids: nil)
706
709
  # @param billing_frequency [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Override::OverrideSpecifier::BillingFrequency]
707
710
  # @param commit_template_ids [Array<String>]
708
711
  # @param presentation_group_values [Hash{Symbol=>String, nil}]
@@ -710,7 +713,6 @@ module MetronomeSDK
710
713
  # @param product_id [String]
711
714
  # @param product_tags [Array<String>]
712
715
  # @param recurring_commit_template_ids [Array<String>]
713
- # @param recurring_credit_template_ids [Array<String>]
714
716
 
715
717
  # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Override::OverrideSpecifier#billing_frequency
716
718
  module BillingFrequency
@@ -980,8 +982,15 @@ module MetronomeSDK
980
982
  required :frequency,
981
983
  enum: -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::UsageStatementSchedule::Frequency }
982
984
 
983
- # @!method initialize(frequency:)
985
+ # @!attribute day
986
+ #
987
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::UsageStatementSchedule::Day, nil]
988
+ optional :day,
989
+ enum: -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::UsageStatementSchedule::Day }
990
+
991
+ # @!method initialize(frequency:, day: nil)
984
992
  # @param frequency [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::UsageStatementSchedule::Frequency]
993
+ # @param day [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::UsageStatementSchedule::Day]
985
994
 
986
995
  # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::UsageStatementSchedule#frequency
987
996
  module Frequency
@@ -995,6 +1004,17 @@ module MetronomeSDK
995
1004
  # @!method self.values
996
1005
  # @return [Array<Symbol>]
997
1006
  end
1007
+
1008
+ # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::UsageStatementSchedule#day
1009
+ module Day
1010
+ extend MetronomeSDK::Internal::Type::Enum
1011
+
1012
+ FIRST_OF_MONTH = :FIRST_OF_MONTH
1013
+ CONTRACT_START = :CONTRACT_START
1014
+
1015
+ # @!method self.values
1016
+ # @return [Array<Symbol>]
1017
+ end
998
1018
  end
999
1019
 
1000
1020
  class Alias < MetronomeSDK::Internal::Type::BaseModel
@@ -1590,16 +1590,7 @@ module MetronomeSDK
1590
1590
  # @return [Array<String>, nil]
1591
1591
  optional :recurring_commit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1592
1592
 
1593
- # @!attribute recurring_credit_ids
1594
- # Can only be used for commit specific overrides. Must be used in conjunction with
1595
- # one of product_id, product_tags, pricing_group_values, or
1596
- # presentation_group_values. If provided, the override will only apply to commits
1597
- # created by the specified recurring credit ids.
1598
- #
1599
- # @return [Array<String>, nil]
1600
- optional :recurring_credit_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
1601
-
1602
- # @!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, recurring_credit_ids: nil)
1593
+ # @!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)
1603
1594
  # Some parameter documentations has been truncated, see
1604
1595
  # {MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier}
1605
1596
  # for more details.
@@ -1617,8 +1608,6 @@ module MetronomeSDK
1617
1608
  # @param product_tags [Array<String>] If provided, the override will only apply to products with all the specified tag
1618
1609
  #
1619
1610
  # @param recurring_commit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1620
- #
1621
- # @param recurring_credit_ids [Array<String>] Can only be used for commit specific overrides. Must be used in conjunction with
1622
1611
 
1623
1612
  # @see MetronomeSDK::Models::V2::ContractEditParams::AddOverride::OverrideSpecifier#billing_frequency
1624
1613
  module BillingFrequency
@@ -3650,16 +3639,16 @@ module MetronomeSDK
3650
3639
  optional :access_schedule, -> { MetronomeSDK::V2::ContractEditParams::UpdateCredit::AccessSchedule }
3651
3640
 
3652
3641
  # @!attribute applicable_product_ids
3653
- # Which products the commit applies to. If applicable_product_ids,
3654
- # applicable_product_tags or specifiers are not provided, the commit applies to
3642
+ # Which products the credit applies to. If applicable_product_ids,
3643
+ # applicable_product_tags or specifiers are not provided, the credit applies to
3655
3644
  # all products.
3656
3645
  #
3657
3646
  # @return [Array<String>, nil]
3658
3647
  optional :applicable_product_ids, MetronomeSDK::Internal::Type::ArrayOf[String], nil?: true
3659
3648
 
3660
3649
  # @!attribute applicable_product_tags
3661
- # Which tags the commit applies to. If applicable_product_ids,
3662
- # applicable_product_tags or specifiers are not provided, the commit applies to
3650
+ # Which tags the credit applies to. If applicable_product_ids,
3651
+ # applicable_product_tags or specifiers are not provided, the credit applies to
3663
3652
  # all products.
3664
3653
  #
3665
3654
  # @return [Array<String>, nil]
@@ -3717,9 +3706,9 @@ module MetronomeSDK
3717
3706
  #
3718
3707
  # @param access_schedule [MetronomeSDK::Models::V2::ContractEditParams::UpdateCredit::AccessSchedule]
3719
3708
  #
3720
- # @param applicable_product_ids [Array<String>, nil] Which products the commit applies to. If applicable_product_ids, applicable_prod
3709
+ # @param applicable_product_ids [Array<String>, nil] Which products the credit applies to. If applicable_product_ids, applicable_prod
3721
3710
  #
3722
- # @param applicable_product_tags [Array<String>, nil] Which tags the commit applies to. If applicable*product_ids, applicable_product*
3711
+ # @param applicable_product_tags [Array<String>, nil] Which tags the credit applies to. If applicable*product_ids, applicable_product*
3723
3712
  #
3724
3713
  # @param description [String]
3725
3714
  #
@@ -3853,6 +3842,15 @@ module MetronomeSDK
3853
3842
  # @return [String, nil]
3854
3843
  optional :custom_credit_type_id, String, nil?: true
3855
3844
 
3845
+ # @!attribute discount_configuration
3846
+ #
3847
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::DiscountConfiguration, nil]
3848
+ optional :discount_configuration,
3849
+ -> {
3850
+ MetronomeSDK::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::DiscountConfiguration
3851
+ },
3852
+ nil?: true
3853
+
3856
3854
  # @!attribute is_enabled
3857
3855
  # When set to false, the contract will not be evaluated against the
3858
3856
  # threshold_amount. Toggling to true will result an immediate evaluation,
@@ -3879,7 +3877,7 @@ module MetronomeSDK
3879
3877
  # @return [Float, nil]
3880
3878
  optional :threshold_amount, Float
3881
3879
 
3882
- # @!method initialize(commit: nil, custom_credit_type_id: nil, is_enabled: nil, payment_gate_config: nil, recharge_to_amount: nil, threshold_amount: nil)
3880
+ # @!method initialize(commit: nil, custom_credit_type_id: nil, discount_configuration: nil, is_enabled: nil, payment_gate_config: nil, recharge_to_amount: nil, threshold_amount: nil)
3883
3881
  # Some parameter documentations has been truncated, see
3884
3882
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration}
3885
3883
  # for more details.
@@ -3888,6 +3886,8 @@ module MetronomeSDK
3888
3886
  #
3889
3887
  # @param custom_credit_type_id [String, nil] If provided, the threshold, recharge-to amount, and the resulting threshold comm
3890
3888
  #
3889
+ # @param discount_configuration [MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::DiscountConfiguration, nil]
3890
+ #
3891
3891
  # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
3892
3892
  #
3893
3893
  # @param payment_gate_config [MetronomeSDK::Models::PaymentGateConfigV2]
@@ -3937,6 +3937,24 @@ module MetronomeSDK
3937
3937
  #
3938
3938
  # @param specifiers [Array<MetronomeSDK::Models::CommitSpecifierInput>, nil] List of filters that determine what kind of customer usage draws down a commit o
3939
3939
  end
3940
+
3941
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration#discount_configuration
3942
+ class DiscountConfiguration < MetronomeSDK::Internal::Type::BaseModel
3943
+ # @!attribute payment_fraction
3944
+ # The fraction of the original amount that the customer pays after applying the
3945
+ # discount. Set to null to remove the discount fraction. For example, 0.85 means
3946
+ # the customer pays 85% of the original amount (a 15% discount).
3947
+ #
3948
+ # @return [Float, nil]
3949
+ optional :payment_fraction, Float, nil?: true
3950
+
3951
+ # @!method initialize(payment_fraction: nil)
3952
+ # Some parameter documentations has been truncated, see
3953
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdatePrepaidBalanceThresholdConfiguration::DiscountConfiguration}
3954
+ # for more details.
3955
+ #
3956
+ # @param payment_fraction [Float, nil] The fraction of the original amount that the customer pays after applying the di
3957
+ end
3940
3958
  end
3941
3959
 
3942
3960
  class UpdateRecurringCommit < MetronomeSDK::Internal::Type::BaseModel
@@ -4227,6 +4245,15 @@ module MetronomeSDK
4227
4245
  # @return [MetronomeSDK::Models::UpdateBaseThresholdCommit, nil]
4228
4246
  optional :commit, -> { MetronomeSDK::UpdateBaseThresholdCommit }
4229
4247
 
4248
+ # @!attribute discount_configuration
4249
+ #
4250
+ # @return [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::DiscountConfiguration, nil]
4251
+ optional :discount_configuration,
4252
+ -> {
4253
+ MetronomeSDK::V2::ContractEditParams::UpdateSpendThresholdConfiguration::DiscountConfiguration
4254
+ },
4255
+ nil?: true
4256
+
4230
4257
  # @!attribute is_enabled
4231
4258
  # When set to false, the contract will not be evaluated against the
4232
4259
  # threshold_amount. Toggling to true will result an immediate evaluation,
@@ -4247,18 +4274,38 @@ module MetronomeSDK
4247
4274
  # @return [Float, nil]
4248
4275
  optional :threshold_amount, Float
4249
4276
 
4250
- # @!method initialize(commit: nil, is_enabled: nil, payment_gate_config: nil, threshold_amount: nil)
4277
+ # @!method initialize(commit: nil, discount_configuration: nil, is_enabled: nil, payment_gate_config: nil, threshold_amount: nil)
4251
4278
  # Some parameter documentations has been truncated, see
4252
4279
  # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration}
4253
4280
  # for more details.
4254
4281
  #
4255
4282
  # @param commit [MetronomeSDK::Models::UpdateBaseThresholdCommit]
4256
4283
  #
4284
+ # @param discount_configuration [MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::DiscountConfiguration, nil]
4285
+ #
4257
4286
  # @param is_enabled [Boolean] When set to false, the contract will not be evaluated against the threshold_amou
4258
4287
  #
4259
4288
  # @param payment_gate_config [MetronomeSDK::Models::PaymentGateConfigV2]
4260
4289
  #
4261
4290
  # @param threshold_amount [Float] Specify the threshold amount for the contract. Each time the contract's usage hi
4291
+
4292
+ # @see MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration#discount_configuration
4293
+ class DiscountConfiguration < MetronomeSDK::Internal::Type::BaseModel
4294
+ # @!attribute payment_fraction
4295
+ # The fraction of the original amount that the customer pays after applying the
4296
+ # discount. Set to null to remove the discount fraction. For example, 0.85 means
4297
+ # the customer pays 85% of the original amount (a 15% discount).
4298
+ #
4299
+ # @return [Float, nil]
4300
+ optional :payment_fraction, Float, nil?: true
4301
+
4302
+ # @!method initialize(payment_fraction: nil)
4303
+ # Some parameter documentations has been truncated, see
4304
+ # {MetronomeSDK::Models::V2::ContractEditParams::UpdateSpendThresholdConfiguration::DiscountConfiguration}
4305
+ # for more details.
4306
+ #
4307
+ # @param payment_fraction [Float, nil] The fraction of the original amount that the customer pays after applying the di
4308
+ end
4262
4309
  end
4263
4310
 
4264
4311
  class UpdateSubscription < MetronomeSDK::Internal::Type::BaseModel