orb-billing 1.30.0 → 1.32.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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/README.md +1 -1
  4. data/lib/orb/models/beta/external_plan_id_create_plan_version_params.rb +566 -6
  5. data/lib/orb/models/beta_create_plan_version_params.rb +566 -6
  6. data/lib/orb/models/changed_subscription_resources.rb +3 -2
  7. data/lib/orb/models/customers/balance_transaction_create_response.rb +1 -0
  8. data/lib/orb/models/customers/balance_transaction_list_response.rb +1 -0
  9. data/lib/orb/models/invoice.rb +3 -2
  10. data/lib/orb/models/invoice_fetch_upcoming_response.rb +3 -2
  11. data/lib/orb/models/invoice_issue_summary_response.rb +1 -0
  12. data/lib/orb/models/invoice_line_item_create_response.rb +2 -2
  13. data/lib/orb/models/invoice_list_summary_response.rb +1 -0
  14. data/lib/orb/models/per_price_cost.rb +2 -2
  15. data/lib/orb/models/plan.rb +2 -2
  16. data/lib/orb/models/plan_create_params.rb +278 -3
  17. data/lib/orb/models/plan_version.rb +2 -2
  18. data/lib/orb/models/price.rb +450 -1
  19. data/lib/orb/models/price_create_params.rb +263 -3
  20. data/lib/orb/models/price_evaluate_multiple_params.rb +273 -3
  21. data/lib/orb/models/price_evaluate_preview_events_params.rb +273 -3
  22. data/lib/orb/models/price_interval.rb +2 -2
  23. data/lib/orb/models/subscription_create_params.rb +566 -6
  24. data/lib/orb/models/subscription_price_intervals_params.rb +273 -3
  25. data/lib/orb/models/subscription_schedule_plan_change_params.rb +566 -6
  26. data/lib/orb/resources/prices/external_price_id.rb +2 -2
  27. data/lib/orb/resources/prices.rb +5 -5
  28. data/lib/orb/version.rb +1 -1
  29. data/rbi/orb/models/beta/external_plan_id_create_plan_version_params.rbi +2737 -1811
  30. data/rbi/orb/models/beta_create_plan_version_params.rbi +2745 -1819
  31. data/rbi/orb/models/changed_subscription_resources.rbi +6 -0
  32. data/rbi/orb/models/customers/balance_transaction_create_response.rbi +5 -0
  33. data/rbi/orb/models/customers/balance_transaction_list_response.rbi +5 -0
  34. data/rbi/orb/models/invoice.rbi +6 -0
  35. data/rbi/orb/models/invoice_fetch_upcoming_response.rbi +6 -0
  36. data/rbi/orb/models/invoice_issue_summary_response.rbi +5 -0
  37. data/rbi/orb/models/invoice_line_item_create_response.rbi +1 -0
  38. data/rbi/orb/models/invoice_list_summary_response.rbi +5 -0
  39. data/rbi/orb/models/per_price_cost.rbi +1 -0
  40. data/rbi/orb/models/plan.rbi +1 -0
  41. data/rbi/orb/models/plan_create_params.rbi +463 -0
  42. data/rbi/orb/models/plan_version.rbi +1 -0
  43. data/rbi/orb/models/price.rbi +805 -0
  44. data/rbi/orb/models/price_create_params.rbi +451 -0
  45. data/rbi/orb/models/price_evaluate_multiple_params.rbi +451 -0
  46. data/rbi/orb/models/price_evaluate_preview_events_params.rbi +451 -0
  47. data/rbi/orb/models/price_interval.rbi +1 -0
  48. data/rbi/orb/models/subscription_create_params.rbi +2660 -1734
  49. data/rbi/orb/models/subscription_price_intervals_params.rbi +451 -0
  50. data/rbi/orb/models/subscription_schedule_plan_change_params.rbi +2660 -1734
  51. data/rbi/orb/resources/prices.rbi +1 -0
  52. data/sig/orb/models/beta/external_plan_id_create_plan_version_params.rbs +376 -0
  53. data/sig/orb/models/beta_create_plan_version_params.rbs +376 -0
  54. data/sig/orb/models/changed_subscription_resources.rbs +2 -0
  55. data/sig/orb/models/customers/balance_transaction_create_response.rbs +2 -0
  56. data/sig/orb/models/customers/balance_transaction_list_response.rbs +2 -0
  57. data/sig/orb/models/invoice.rbs +2 -0
  58. data/sig/orb/models/invoice_fetch_upcoming_response.rbs +2 -0
  59. data/sig/orb/models/invoice_issue_summary_response.rbs +2 -0
  60. data/sig/orb/models/invoice_list_summary_response.rbs +2 -0
  61. data/sig/orb/models/plan_create_params.rbs +188 -0
  62. data/sig/orb/models/price.rbs +332 -0
  63. data/sig/orb/models/price_create_params.rbs +178 -0
  64. data/sig/orb/models/price_evaluate_multiple_params.rbs +183 -0
  65. data/sig/orb/models/price_evaluate_preview_events_params.rbs +183 -0
  66. data/sig/orb/models/subscription_create_params.rbs +376 -0
  67. data/sig/orb/models/subscription_price_intervals_params.rbs +183 -0
  68. data/sig/orb/models/subscription_schedule_plan_change_params.rbs +376 -0
  69. metadata +1 -1
@@ -365,7 +365,7 @@ module Orb
365
365
  # @!attribute price
366
366
  # New plan price request body params.
367
367
  #
368
- # @return [Orb::Models::NewPlanUnitPrice, Orb::Models::NewPlanTieredPrice, Orb::Models::NewPlanBulkPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::BulkWithFilters, Orb::Models::NewPlanPackagePrice, Orb::Models::NewPlanMatrixPrice, Orb::Models::NewPlanThresholdTotalAmountPrice, Orb::Models::NewPlanTieredPackagePrice, Orb::Models::NewPlanTieredWithMinimumPrice, Orb::Models::NewPlanGroupedTieredPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::GroupedTieredMatrix, Orb::Models::NewPlanTieredPackageWithMinimumPrice, Orb::Models::NewPlanPackageWithAllocationPrice, Orb::Models::NewPlanUnitWithPercentPrice, Orb::Models::NewPlanMatrixWithAllocationPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::MatrixWithThresholdDiscounts, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredWithProration, Orb::Models::NewPlanUnitWithProrationPrice, Orb::Models::NewPlanGroupedAllocationPrice, Orb::Models::NewPlanBulkWithProrationPrice, Orb::Models::NewPlanGroupedWithProratedMinimumPrice, Orb::Models::NewPlanGroupedWithMeteredMinimumPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewPlanMatrixWithDisplayNamePrice, Orb::Models::NewPlanGroupedTieredPackagePrice, Orb::Models::NewPlanMaxGroupTieredPackagePrice, Orb::Models::NewPlanScalableMatrixWithUnitPricingPrice, Orb::Models::NewPlanScalableMatrixWithTieredPricingPrice, Orb::Models::NewPlanCumulativeGroupedBulkPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::CumulativeGroupedAllocation, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::DailyCreditAllowance, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::MeteredAllowance, Orb::Models::NewPlanMinimumCompositePrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::Percent, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::EventOutput, nil]
368
+ # @return [Orb::Models::NewPlanUnitPrice, Orb::Models::NewPlanTieredPrice, Orb::Models::NewPlanBulkPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::BulkWithFilters, Orb::Models::NewPlanPackagePrice, Orb::Models::NewPlanMatrixPrice, Orb::Models::NewPlanThresholdTotalAmountPrice, Orb::Models::NewPlanTieredPackagePrice, Orb::Models::NewPlanTieredWithMinimumPrice, Orb::Models::NewPlanGroupedTieredPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::GroupedTieredMatrix, Orb::Models::NewPlanTieredPackageWithMinimumPrice, Orb::Models::NewPlanPackageWithAllocationPrice, Orb::Models::NewPlanUnitWithPercentPrice, Orb::Models::NewPlanMatrixWithAllocationPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::MatrixWithThresholdDiscounts, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredWithProration, Orb::Models::NewPlanUnitWithProrationPrice, Orb::Models::NewPlanGroupedAllocationPrice, Orb::Models::NewPlanBulkWithProrationPrice, Orb::Models::NewPlanGroupedWithProratedMinimumPrice, Orb::Models::NewPlanGroupedWithMeteredMinimumPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewPlanMatrixWithDisplayNamePrice, Orb::Models::NewPlanGroupedTieredPackagePrice, Orb::Models::NewPlanMaxGroupTieredPackagePrice, Orb::Models::NewPlanScalableMatrixWithUnitPricingPrice, Orb::Models::NewPlanScalableMatrixWithTieredPricingPrice, Orb::Models::NewPlanCumulativeGroupedBulkPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::CumulativeGroupedAllocation, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::DailyCreditAllowance, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::MeteredAllowance, Orb::Models::NewPlanMinimumCompositePrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::Percent, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::EventOutput, nil]
369
369
  optional :price, union: -> { Orb::BetaCreatePlanVersionParams::AddPrice::Price }, nil?: true
370
370
 
371
371
  # @!method initialize(allocation_price: nil, license_allocation_price: nil, plan_phase_order: nil, price: nil)
@@ -375,7 +375,7 @@ module Orb
375
375
  #
376
376
  # @param plan_phase_order [Integer, nil] The phase to add this price to.
377
377
  #
378
- # @param price [Orb::Models::NewPlanUnitPrice, Orb::Models::NewPlanTieredPrice, Orb::Models::NewPlanBulkPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::BulkWithFilters, Orb::Models::NewPlanPackagePrice, Orb::Models::NewPlanMatrixPrice, Orb::Models::NewPlanThresholdTotalAmountPrice, Orb::Models::NewPlanTieredPackagePrice, Orb::Models::NewPlanTieredWithMinimumPrice, Orb::Models::NewPlanGroupedTieredPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::GroupedTieredMatrix, Orb::Models::NewPlanTieredPackageWithMinimumPrice, Orb::Models::NewPlanPackageWithAllocationPrice, Orb::Models::NewPlanUnitWithPercentPrice, Orb::Models::NewPlanMatrixWithAllocationPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::MatrixWithThresholdDiscounts, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredWithProration, Orb::Models::NewPlanUnitWithProrationPrice, Orb::Models::NewPlanGroupedAllocationPrice, Orb::Models::NewPlanBulkWithProrationPrice, Orb::Models::NewPlanGroupedWithProratedMinimumPrice, Orb::Models::NewPlanGroupedWithMeteredMinimumPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewPlanMatrixWithDisplayNamePrice, Orb::Models::NewPlanGroupedTieredPackagePrice, Orb::Models::NewPlanMaxGroupTieredPackagePrice, Orb::Models::NewPlanScalableMatrixWithUnitPricingPrice, Orb::Models::NewPlanScalableMatrixWithTieredPricingPrice, Orb::Models::NewPlanCumulativeGroupedBulkPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::CumulativeGroupedAllocation, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::DailyCreditAllowance, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::MeteredAllowance, Orb::Models::NewPlanMinimumCompositePrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::Percent, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::EventOutput, nil] New plan price request body params.
378
+ # @param price [Orb::Models::NewPlanUnitPrice, Orb::Models::NewPlanTieredPrice, Orb::Models::NewPlanBulkPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::BulkWithFilters, Orb::Models::NewPlanPackagePrice, Orb::Models::NewPlanMatrixPrice, Orb::Models::NewPlanThresholdTotalAmountPrice, Orb::Models::NewPlanTieredPackagePrice, Orb::Models::NewPlanTieredWithMinimumPrice, Orb::Models::NewPlanGroupedTieredPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::GroupedTieredMatrix, Orb::Models::NewPlanTieredPackageWithMinimumPrice, Orb::Models::NewPlanPackageWithAllocationPrice, Orb::Models::NewPlanUnitWithPercentPrice, Orb::Models::NewPlanMatrixWithAllocationPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::MatrixWithThresholdDiscounts, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredWithProration, Orb::Models::NewPlanUnitWithProrationPrice, Orb::Models::NewPlanGroupedAllocationPrice, Orb::Models::NewPlanBulkWithProrationPrice, Orb::Models::NewPlanGroupedWithProratedMinimumPrice, Orb::Models::NewPlanGroupedWithMeteredMinimumPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewPlanMatrixWithDisplayNamePrice, Orb::Models::NewPlanGroupedTieredPackagePrice, Orb::Models::NewPlanMaxGroupTieredPackagePrice, Orb::Models::NewPlanScalableMatrixWithUnitPricingPrice, Orb::Models::NewPlanScalableMatrixWithTieredPricingPrice, Orb::Models::NewPlanCumulativeGroupedBulkPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::CumulativeGroupedAllocation, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::DailyCreditAllowance, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::MeteredAllowance, Orb::Models::NewPlanMinimumCompositePrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::Percent, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::EventOutput, nil] New plan price request body params.
379
379
 
380
380
  # @see Orb::Models::BetaCreatePlanVersionParams::AddPrice#license_allocation_price
381
381
  class LicenseAllocationPrice < Orb::Internal::Type::BaseModel
@@ -661,6 +661,9 @@ module Orb
661
661
 
662
662
  variant :matrix_with_allocation, -> { Orb::NewPlanMatrixWithAllocationPrice }
663
663
 
664
+ variant :tiered_matrix_with_allocation,
665
+ -> { Orb::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation }
666
+
664
667
  variant :matrix_with_threshold_discounts,
665
668
  -> { Orb::BetaCreatePlanVersionParams::AddPrice::Price::MatrixWithThresholdDiscounts }
666
669
 
@@ -1226,6 +1229,283 @@ module Orb
1226
1229
  end
1227
1230
  end
1228
1231
 
1232
+ class TieredMatrixWithAllocation < Orb::Internal::Type::BaseModel
1233
+ # @!attribute cadence
1234
+ # The cadence to bill for this price on.
1235
+ #
1236
+ # @return [Symbol, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation::Cadence]
1237
+ required :cadence,
1238
+ enum: -> { Orb::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation::Cadence }
1239
+
1240
+ # @!attribute item_id
1241
+ # The id of the item the price will be associated with.
1242
+ #
1243
+ # @return [String]
1244
+ required :item_id, String
1245
+
1246
+ # @!attribute model_type
1247
+ # The pricing model type
1248
+ #
1249
+ # @return [Symbol, :tiered_matrix_with_allocation]
1250
+ required :model_type, const: :tiered_matrix_with_allocation
1251
+
1252
+ # @!attribute name
1253
+ # The name of the price.
1254
+ #
1255
+ # @return [String]
1256
+ required :name, String
1257
+
1258
+ # @!attribute tiered_matrix_with_allocation_config
1259
+ # Configuration for tiered_matrix_with_allocation pricing
1260
+ #
1261
+ # @return [Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig]
1262
+ required :tiered_matrix_with_allocation_config,
1263
+ -> { Orb::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig }
1264
+
1265
+ # @!attribute billable_metric_id
1266
+ # The id of the billable metric for the price. Only needed if the price is
1267
+ # usage-based.
1268
+ #
1269
+ # @return [String, nil]
1270
+ optional :billable_metric_id, String, nil?: true
1271
+
1272
+ # @!attribute billed_in_advance
1273
+ # If the Price represents a fixed cost, the price will be billed in-advance if
1274
+ # this is true, and in-arrears if this is false.
1275
+ #
1276
+ # @return [Boolean, nil]
1277
+ optional :billed_in_advance, Orb::Internal::Type::Boolean, nil?: true
1278
+
1279
+ # @!attribute billing_cycle_configuration
1280
+ # For custom cadence: specifies the duration of the billing period in days or
1281
+ # months.
1282
+ #
1283
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
1284
+ optional :billing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
1285
+
1286
+ # @!attribute conversion_rate
1287
+ # The per unit conversion rate of the price currency to the invoicing currency.
1288
+ #
1289
+ # @return [Float, nil]
1290
+ optional :conversion_rate, Float, nil?: true
1291
+
1292
+ # @!attribute conversion_rate_config
1293
+ # The configuration for the rate of the price currency to the invoicing currency.
1294
+ #
1295
+ # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
1296
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
1297
+
1298
+ # @!attribute currency
1299
+ # An ISO 4217 currency string, or custom pricing unit identifier, in which this
1300
+ # price is billed.
1301
+ #
1302
+ # @return [String, nil]
1303
+ optional :currency, String, nil?: true
1304
+
1305
+ # @!attribute dimensional_price_configuration
1306
+ # For dimensional price: specifies a price group and dimension values
1307
+ #
1308
+ # @return [Orb::Models::NewDimensionalPriceConfiguration, nil]
1309
+ optional :dimensional_price_configuration,
1310
+ -> {
1311
+ Orb::NewDimensionalPriceConfiguration
1312
+ },
1313
+ nil?: true
1314
+
1315
+ # @!attribute external_price_id
1316
+ # An alias for the price.
1317
+ #
1318
+ # @return [String, nil]
1319
+ optional :external_price_id, String, nil?: true
1320
+
1321
+ # @!attribute fixed_price_quantity
1322
+ # If the Price represents a fixed cost, this represents the quantity of units
1323
+ # applied.
1324
+ #
1325
+ # @return [Float, nil]
1326
+ optional :fixed_price_quantity, Float, nil?: true
1327
+
1328
+ # @!attribute invoice_grouping_key
1329
+ # The property used to group this price on an invoice
1330
+ #
1331
+ # @return [String, nil]
1332
+ optional :invoice_grouping_key, String, nil?: true
1333
+
1334
+ # @!attribute invoicing_cycle_configuration
1335
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
1336
+ # If unspecified, a single invoice is produced per billing cycle.
1337
+ #
1338
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
1339
+ optional :invoicing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
1340
+
1341
+ # @!attribute license_type_id
1342
+ # The ID of the license type to associate with this price. On a usage price this
1343
+ # also marks the price as eligible to draw down from that license type's
1344
+ # allocation; a usage price created without it is billed normally. Usage prices
1345
+ # with a license type must use the `unit` model, and only draw down when their
1346
+ # currency matches the allocation's.
1347
+ #
1348
+ # @return [String, nil]
1349
+ optional :license_type_id, String, nil?: true
1350
+
1351
+ # @!attribute metadata
1352
+ # User-specified key/value pairs for the resource. Individual keys can be removed
1353
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
1354
+ # by setting `metadata` to `null`.
1355
+ #
1356
+ # @return [Hash{Symbol=>String, nil}, nil]
1357
+ optional :metadata, Orb::Internal::Type::HashOf[String, nil?: true], nil?: true
1358
+
1359
+ # @!attribute reference_id
1360
+ # A transient ID that can be used to reference this price when adding adjustments
1361
+ # in the same API call.
1362
+ #
1363
+ # @return [String, nil]
1364
+ optional :reference_id, String, nil?: true
1365
+
1366
+ # @!method initialize(cadence:, item_id:, name:, tiered_matrix_with_allocation_config:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :tiered_matrix_with_allocation)
1367
+ # Some parameter documentations has been truncated, see
1368
+ # {Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation}
1369
+ # for more details.
1370
+ #
1371
+ # @param cadence [Symbol, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation::Cadence] The cadence to bill for this price on.
1372
+ #
1373
+ # @param item_id [String] The id of the item the price will be associated with.
1374
+ #
1375
+ # @param name [String] The name of the price.
1376
+ #
1377
+ # @param tiered_matrix_with_allocation_config [Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig] Configuration for tiered_matrix_with_allocation pricing
1378
+ #
1379
+ # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
1380
+ #
1381
+ # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
1382
+ #
1383
+ # @param billing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] For custom cadence: specifies the duration of the billing period in days or mont
1384
+ #
1385
+ # @param conversion_rate [Float, nil] The per unit conversion rate of the price currency to the invoicing currency.
1386
+ #
1387
+ # @param conversion_rate_config [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil] The configuration for the rate of the price currency to the invoicing currency.
1388
+ #
1389
+ # @param currency [String, nil] An ISO 4217 currency string, or custom pricing unit identifier, in which this pr
1390
+ #
1391
+ # @param dimensional_price_configuration [Orb::Models::NewDimensionalPriceConfiguration, nil] For dimensional price: specifies a price group and dimension values
1392
+ #
1393
+ # @param external_price_id [String, nil] An alias for the price.
1394
+ #
1395
+ # @param fixed_price_quantity [Float, nil] If the Price represents a fixed cost, this represents the quantity of units appl
1396
+ #
1397
+ # @param invoice_grouping_key [String, nil] The property used to group this price on an invoice
1398
+ #
1399
+ # @param invoicing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] Within each billing cycle, specifies the cadence at which invoices are produced.
1400
+ #
1401
+ # @param license_type_id [String, nil] The ID of the license type to associate with this price. On a usage price this a
1402
+ #
1403
+ # @param metadata [Hash{Symbol=>String, nil}, nil] User-specified key/value pairs for the resource. Individual keys can be removed
1404
+ #
1405
+ # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
1406
+ #
1407
+ # @param model_type [Symbol, :tiered_matrix_with_allocation] The pricing model type
1408
+
1409
+ # The cadence to bill for this price on.
1410
+ #
1411
+ # @see Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation#cadence
1412
+ module Cadence
1413
+ extend Orb::Internal::Type::Enum
1414
+
1415
+ ANNUAL = :annual
1416
+ SEMI_ANNUAL = :semi_annual
1417
+ MONTHLY = :monthly
1418
+ QUARTERLY = :quarterly
1419
+ ONE_TIME = :one_time
1420
+ CUSTOM = :custom
1421
+
1422
+ # @!method self.values
1423
+ # @return [Array<Symbol>]
1424
+ end
1425
+
1426
+ # @see Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation#tiered_matrix_with_allocation_config
1427
+ class TieredMatrixWithAllocationConfig < Orb::Internal::Type::BaseModel
1428
+ # @!attribute allocation
1429
+ # Usage allocation, pooled across all matrix cells
1430
+ #
1431
+ # @return [String]
1432
+ required :allocation, String
1433
+
1434
+ # @!attribute default_unit_amount
1435
+ # Per unit rate for usage whose matrix cell has no configured tiers
1436
+ #
1437
+ # @return [String]
1438
+ required :default_unit_amount, String
1439
+
1440
+ # @!attribute dimensions
1441
+ # One or two event property values to evaluate matrix cells by
1442
+ #
1443
+ # @return [Array<String>]
1444
+ required :dimensions, Orb::Internal::Type::ArrayOf[String]
1445
+
1446
+ # @!attribute tiers
1447
+ # Graduated tiers keyed by matrix cell; usage in a cell is tiered only against its
1448
+ # own rows
1449
+ #
1450
+ # @return [Array<Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig::Tier>]
1451
+ required :tiers,
1452
+ -> do
1453
+ Orb::Internal::Type::ArrayOf[
1454
+ Orb::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig::Tier
1455
+ ]
1456
+ end
1457
+
1458
+ # @!method initialize(allocation:, default_unit_amount:, dimensions:, tiers:)
1459
+ # Some parameter documentations has been truncated, see
1460
+ # {Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig}
1461
+ # for more details.
1462
+ #
1463
+ # Configuration for tiered_matrix_with_allocation pricing
1464
+ #
1465
+ # @param allocation [String] Usage allocation, pooled across all matrix cells
1466
+ #
1467
+ # @param default_unit_amount [String] Per unit rate for usage whose matrix cell has no configured tiers
1468
+ #
1469
+ # @param dimensions [Array<String>] One or two event property values to evaluate matrix cells by
1470
+ #
1471
+ # @param tiers [Array<Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig::Tier>] Graduated tiers keyed by matrix cell; usage in a cell is tiered only against its
1472
+
1473
+ class Tier < Orb::Internal::Type::BaseModel
1474
+ # @!attribute dimension_values
1475
+ # The matrix cell this tier applies to, as one or two dimension values
1476
+ #
1477
+ # @return [Array<String>]
1478
+ required :dimension_values, Orb::Internal::Type::ArrayOf[String]
1479
+
1480
+ # @!attribute tier_lower_bound
1481
+ # Exclusive tier starting value. The tier runs up to and including the next bound
1482
+ # configured for the same matrix cell.
1483
+ #
1484
+ # @return [String]
1485
+ required :tier_lower_bound, String
1486
+
1487
+ # @!attribute unit_amount
1488
+ # Per unit amount
1489
+ #
1490
+ # @return [String]
1491
+ required :unit_amount, String
1492
+
1493
+ # @!method initialize(dimension_values:, tier_lower_bound:, unit_amount:)
1494
+ # Some parameter documentations has been truncated, see
1495
+ # {Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig::Tier}
1496
+ # for more details.
1497
+ #
1498
+ # Configuration for a single tier scoped to one matrix cell
1499
+ #
1500
+ # @param dimension_values [Array<String>] The matrix cell this tier applies to, as one or two dimension values
1501
+ #
1502
+ # @param tier_lower_bound [String] Exclusive tier starting value. The tier runs up to and including the next bound
1503
+ #
1504
+ # @param unit_amount [String] Per unit amount
1505
+ end
1506
+ end
1507
+ end
1508
+
1229
1509
  class MatrixWithThresholdDiscounts < Orb::Internal::Type::BaseModel
1230
1510
  # @!attribute cadence
1231
1511
  # The cadence to bill for this price on.
@@ -3255,7 +3535,7 @@ module Orb
3255
3535
  end
3256
3536
 
3257
3537
  # @!method self.variants
3258
- # @return [Array(Orb::Models::NewPlanUnitPrice, Orb::Models::NewPlanTieredPrice, Orb::Models::NewPlanBulkPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::BulkWithFilters, Orb::Models::NewPlanPackagePrice, Orb::Models::NewPlanMatrixPrice, Orb::Models::NewPlanThresholdTotalAmountPrice, Orb::Models::NewPlanTieredPackagePrice, Orb::Models::NewPlanTieredWithMinimumPrice, Orb::Models::NewPlanGroupedTieredPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::GroupedTieredMatrix, Orb::Models::NewPlanTieredPackageWithMinimumPrice, Orb::Models::NewPlanPackageWithAllocationPrice, Orb::Models::NewPlanUnitWithPercentPrice, Orb::Models::NewPlanMatrixWithAllocationPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::MatrixWithThresholdDiscounts, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredWithProration, Orb::Models::NewPlanUnitWithProrationPrice, Orb::Models::NewPlanGroupedAllocationPrice, Orb::Models::NewPlanBulkWithProrationPrice, Orb::Models::NewPlanGroupedWithProratedMinimumPrice, Orb::Models::NewPlanGroupedWithMeteredMinimumPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewPlanMatrixWithDisplayNamePrice, Orb::Models::NewPlanGroupedTieredPackagePrice, Orb::Models::NewPlanMaxGroupTieredPackagePrice, Orb::Models::NewPlanScalableMatrixWithUnitPricingPrice, Orb::Models::NewPlanScalableMatrixWithTieredPricingPrice, Orb::Models::NewPlanCumulativeGroupedBulkPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::CumulativeGroupedAllocation, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::DailyCreditAllowance, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::MeteredAllowance, Orb::Models::NewPlanMinimumCompositePrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::Percent, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::EventOutput)]
3538
+ # @return [Array(Orb::Models::NewPlanUnitPrice, Orb::Models::NewPlanTieredPrice, Orb::Models::NewPlanBulkPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::BulkWithFilters, Orb::Models::NewPlanPackagePrice, Orb::Models::NewPlanMatrixPrice, Orb::Models::NewPlanThresholdTotalAmountPrice, Orb::Models::NewPlanTieredPackagePrice, Orb::Models::NewPlanTieredWithMinimumPrice, Orb::Models::NewPlanGroupedTieredPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::GroupedTieredMatrix, Orb::Models::NewPlanTieredPackageWithMinimumPrice, Orb::Models::NewPlanPackageWithAllocationPrice, Orb::Models::NewPlanUnitWithPercentPrice, Orb::Models::NewPlanMatrixWithAllocationPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredMatrixWithAllocation, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::MatrixWithThresholdDiscounts, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::TieredWithProration, Orb::Models::NewPlanUnitWithProrationPrice, Orb::Models::NewPlanGroupedAllocationPrice, Orb::Models::NewPlanBulkWithProrationPrice, Orb::Models::NewPlanGroupedWithProratedMinimumPrice, Orb::Models::NewPlanGroupedWithMeteredMinimumPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewPlanMatrixWithDisplayNamePrice, Orb::Models::NewPlanGroupedTieredPackagePrice, Orb::Models::NewPlanMaxGroupTieredPackagePrice, Orb::Models::NewPlanScalableMatrixWithUnitPricingPrice, Orb::Models::NewPlanScalableMatrixWithTieredPricingPrice, Orb::Models::NewPlanCumulativeGroupedBulkPrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::CumulativeGroupedAllocation, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::DailyCreditAllowance, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::MeteredAllowance, Orb::Models::NewPlanMinimumCompositePrice, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::Percent, Orb::Models::BetaCreatePlanVersionParams::AddPrice::Price::EventOutput)]
3259
3539
  end
3260
3540
  end
3261
3541
 
@@ -3583,7 +3863,7 @@ module Orb
3583
3863
  # @!attribute price
3584
3864
  # New plan price request body params.
3585
3865
  #
3586
- # @return [Orb::Models::NewPlanUnitPrice, Orb::Models::NewPlanTieredPrice, Orb::Models::NewPlanBulkPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::BulkWithFilters, Orb::Models::NewPlanPackagePrice, Orb::Models::NewPlanMatrixPrice, Orb::Models::NewPlanThresholdTotalAmountPrice, Orb::Models::NewPlanTieredPackagePrice, Orb::Models::NewPlanTieredWithMinimumPrice, Orb::Models::NewPlanGroupedTieredPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::GroupedTieredMatrix, Orb::Models::NewPlanTieredPackageWithMinimumPrice, Orb::Models::NewPlanPackageWithAllocationPrice, Orb::Models::NewPlanUnitWithPercentPrice, Orb::Models::NewPlanMatrixWithAllocationPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::MatrixWithThresholdDiscounts, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredWithProration, Orb::Models::NewPlanUnitWithProrationPrice, Orb::Models::NewPlanGroupedAllocationPrice, Orb::Models::NewPlanBulkWithProrationPrice, Orb::Models::NewPlanGroupedWithProratedMinimumPrice, Orb::Models::NewPlanGroupedWithMeteredMinimumPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewPlanMatrixWithDisplayNamePrice, Orb::Models::NewPlanGroupedTieredPackagePrice, Orb::Models::NewPlanMaxGroupTieredPackagePrice, Orb::Models::NewPlanScalableMatrixWithUnitPricingPrice, Orb::Models::NewPlanScalableMatrixWithTieredPricingPrice, Orb::Models::NewPlanCumulativeGroupedBulkPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::CumulativeGroupedAllocation, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::DailyCreditAllowance, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::MeteredAllowance, Orb::Models::NewPlanMinimumCompositePrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::Percent, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::EventOutput, nil]
3866
+ # @return [Orb::Models::NewPlanUnitPrice, Orb::Models::NewPlanTieredPrice, Orb::Models::NewPlanBulkPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::BulkWithFilters, Orb::Models::NewPlanPackagePrice, Orb::Models::NewPlanMatrixPrice, Orb::Models::NewPlanThresholdTotalAmountPrice, Orb::Models::NewPlanTieredPackagePrice, Orb::Models::NewPlanTieredWithMinimumPrice, Orb::Models::NewPlanGroupedTieredPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::GroupedTieredMatrix, Orb::Models::NewPlanTieredPackageWithMinimumPrice, Orb::Models::NewPlanPackageWithAllocationPrice, Orb::Models::NewPlanUnitWithPercentPrice, Orb::Models::NewPlanMatrixWithAllocationPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::MatrixWithThresholdDiscounts, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredWithProration, Orb::Models::NewPlanUnitWithProrationPrice, Orb::Models::NewPlanGroupedAllocationPrice, Orb::Models::NewPlanBulkWithProrationPrice, Orb::Models::NewPlanGroupedWithProratedMinimumPrice, Orb::Models::NewPlanGroupedWithMeteredMinimumPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewPlanMatrixWithDisplayNamePrice, Orb::Models::NewPlanGroupedTieredPackagePrice, Orb::Models::NewPlanMaxGroupTieredPackagePrice, Orb::Models::NewPlanScalableMatrixWithUnitPricingPrice, Orb::Models::NewPlanScalableMatrixWithTieredPricingPrice, Orb::Models::NewPlanCumulativeGroupedBulkPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::CumulativeGroupedAllocation, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::DailyCreditAllowance, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::MeteredAllowance, Orb::Models::NewPlanMinimumCompositePrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::Percent, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::EventOutput, nil]
3587
3867
  optional :price, union: -> { Orb::BetaCreatePlanVersionParams::ReplacePrice::Price }, nil?: true
3588
3868
 
3589
3869
  # @!method initialize(replaces_price_id:, allocation_price: nil, license_allocation_price: nil, plan_phase_order: nil, price: nil)
@@ -3595,7 +3875,7 @@ module Orb
3595
3875
  #
3596
3876
  # @param plan_phase_order [Integer, nil] The phase to replace this price from.
3597
3877
  #
3598
- # @param price [Orb::Models::NewPlanUnitPrice, Orb::Models::NewPlanTieredPrice, Orb::Models::NewPlanBulkPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::BulkWithFilters, Orb::Models::NewPlanPackagePrice, Orb::Models::NewPlanMatrixPrice, Orb::Models::NewPlanThresholdTotalAmountPrice, Orb::Models::NewPlanTieredPackagePrice, Orb::Models::NewPlanTieredWithMinimumPrice, Orb::Models::NewPlanGroupedTieredPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::GroupedTieredMatrix, Orb::Models::NewPlanTieredPackageWithMinimumPrice, Orb::Models::NewPlanPackageWithAllocationPrice, Orb::Models::NewPlanUnitWithPercentPrice, Orb::Models::NewPlanMatrixWithAllocationPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::MatrixWithThresholdDiscounts, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredWithProration, Orb::Models::NewPlanUnitWithProrationPrice, Orb::Models::NewPlanGroupedAllocationPrice, Orb::Models::NewPlanBulkWithProrationPrice, Orb::Models::NewPlanGroupedWithProratedMinimumPrice, Orb::Models::NewPlanGroupedWithMeteredMinimumPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewPlanMatrixWithDisplayNamePrice, Orb::Models::NewPlanGroupedTieredPackagePrice, Orb::Models::NewPlanMaxGroupTieredPackagePrice, Orb::Models::NewPlanScalableMatrixWithUnitPricingPrice, Orb::Models::NewPlanScalableMatrixWithTieredPricingPrice, Orb::Models::NewPlanCumulativeGroupedBulkPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::CumulativeGroupedAllocation, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::DailyCreditAllowance, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::MeteredAllowance, Orb::Models::NewPlanMinimumCompositePrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::Percent, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::EventOutput, nil] New plan price request body params.
3878
+ # @param price [Orb::Models::NewPlanUnitPrice, Orb::Models::NewPlanTieredPrice, Orb::Models::NewPlanBulkPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::BulkWithFilters, Orb::Models::NewPlanPackagePrice, Orb::Models::NewPlanMatrixPrice, Orb::Models::NewPlanThresholdTotalAmountPrice, Orb::Models::NewPlanTieredPackagePrice, Orb::Models::NewPlanTieredWithMinimumPrice, Orb::Models::NewPlanGroupedTieredPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::GroupedTieredMatrix, Orb::Models::NewPlanTieredPackageWithMinimumPrice, Orb::Models::NewPlanPackageWithAllocationPrice, Orb::Models::NewPlanUnitWithPercentPrice, Orb::Models::NewPlanMatrixWithAllocationPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::MatrixWithThresholdDiscounts, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredWithProration, Orb::Models::NewPlanUnitWithProrationPrice, Orb::Models::NewPlanGroupedAllocationPrice, Orb::Models::NewPlanBulkWithProrationPrice, Orb::Models::NewPlanGroupedWithProratedMinimumPrice, Orb::Models::NewPlanGroupedWithMeteredMinimumPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewPlanMatrixWithDisplayNamePrice, Orb::Models::NewPlanGroupedTieredPackagePrice, Orb::Models::NewPlanMaxGroupTieredPackagePrice, Orb::Models::NewPlanScalableMatrixWithUnitPricingPrice, Orb::Models::NewPlanScalableMatrixWithTieredPricingPrice, Orb::Models::NewPlanCumulativeGroupedBulkPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::CumulativeGroupedAllocation, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::DailyCreditAllowance, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::MeteredAllowance, Orb::Models::NewPlanMinimumCompositePrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::Percent, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::EventOutput, nil] New plan price request body params.
3599
3879
 
3600
3880
  # @see Orb::Models::BetaCreatePlanVersionParams::ReplacePrice#license_allocation_price
3601
3881
  class LicenseAllocationPrice < Orb::Internal::Type::BaseModel
@@ -3881,6 +4161,9 @@ module Orb
3881
4161
 
3882
4162
  variant :matrix_with_allocation, -> { Orb::NewPlanMatrixWithAllocationPrice }
3883
4163
 
4164
+ variant :tiered_matrix_with_allocation,
4165
+ -> { Orb::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation }
4166
+
3884
4167
  variant :matrix_with_threshold_discounts,
3885
4168
  -> { Orb::BetaCreatePlanVersionParams::ReplacePrice::Price::MatrixWithThresholdDiscounts }
3886
4169
 
@@ -4450,6 +4733,283 @@ module Orb
4450
4733
  end
4451
4734
  end
4452
4735
 
4736
+ class TieredMatrixWithAllocation < Orb::Internal::Type::BaseModel
4737
+ # @!attribute cadence
4738
+ # The cadence to bill for this price on.
4739
+ #
4740
+ # @return [Symbol, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation::Cadence]
4741
+ required :cadence,
4742
+ enum: -> { Orb::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation::Cadence }
4743
+
4744
+ # @!attribute item_id
4745
+ # The id of the item the price will be associated with.
4746
+ #
4747
+ # @return [String]
4748
+ required :item_id, String
4749
+
4750
+ # @!attribute model_type
4751
+ # The pricing model type
4752
+ #
4753
+ # @return [Symbol, :tiered_matrix_with_allocation]
4754
+ required :model_type, const: :tiered_matrix_with_allocation
4755
+
4756
+ # @!attribute name
4757
+ # The name of the price.
4758
+ #
4759
+ # @return [String]
4760
+ required :name, String
4761
+
4762
+ # @!attribute tiered_matrix_with_allocation_config
4763
+ # Configuration for tiered_matrix_with_allocation pricing
4764
+ #
4765
+ # @return [Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig]
4766
+ required :tiered_matrix_with_allocation_config,
4767
+ -> { Orb::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig }
4768
+
4769
+ # @!attribute billable_metric_id
4770
+ # The id of the billable metric for the price. Only needed if the price is
4771
+ # usage-based.
4772
+ #
4773
+ # @return [String, nil]
4774
+ optional :billable_metric_id, String, nil?: true
4775
+
4776
+ # @!attribute billed_in_advance
4777
+ # If the Price represents a fixed cost, the price will be billed in-advance if
4778
+ # this is true, and in-arrears if this is false.
4779
+ #
4780
+ # @return [Boolean, nil]
4781
+ optional :billed_in_advance, Orb::Internal::Type::Boolean, nil?: true
4782
+
4783
+ # @!attribute billing_cycle_configuration
4784
+ # For custom cadence: specifies the duration of the billing period in days or
4785
+ # months.
4786
+ #
4787
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
4788
+ optional :billing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
4789
+
4790
+ # @!attribute conversion_rate
4791
+ # The per unit conversion rate of the price currency to the invoicing currency.
4792
+ #
4793
+ # @return [Float, nil]
4794
+ optional :conversion_rate, Float, nil?: true
4795
+
4796
+ # @!attribute conversion_rate_config
4797
+ # The configuration for the rate of the price currency to the invoicing currency.
4798
+ #
4799
+ # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
4800
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
4801
+
4802
+ # @!attribute currency
4803
+ # An ISO 4217 currency string, or custom pricing unit identifier, in which this
4804
+ # price is billed.
4805
+ #
4806
+ # @return [String, nil]
4807
+ optional :currency, String, nil?: true
4808
+
4809
+ # @!attribute dimensional_price_configuration
4810
+ # For dimensional price: specifies a price group and dimension values
4811
+ #
4812
+ # @return [Orb::Models::NewDimensionalPriceConfiguration, nil]
4813
+ optional :dimensional_price_configuration,
4814
+ -> {
4815
+ Orb::NewDimensionalPriceConfiguration
4816
+ },
4817
+ nil?: true
4818
+
4819
+ # @!attribute external_price_id
4820
+ # An alias for the price.
4821
+ #
4822
+ # @return [String, nil]
4823
+ optional :external_price_id, String, nil?: true
4824
+
4825
+ # @!attribute fixed_price_quantity
4826
+ # If the Price represents a fixed cost, this represents the quantity of units
4827
+ # applied.
4828
+ #
4829
+ # @return [Float, nil]
4830
+ optional :fixed_price_quantity, Float, nil?: true
4831
+
4832
+ # @!attribute invoice_grouping_key
4833
+ # The property used to group this price on an invoice
4834
+ #
4835
+ # @return [String, nil]
4836
+ optional :invoice_grouping_key, String, nil?: true
4837
+
4838
+ # @!attribute invoicing_cycle_configuration
4839
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
4840
+ # If unspecified, a single invoice is produced per billing cycle.
4841
+ #
4842
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
4843
+ optional :invoicing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
4844
+
4845
+ # @!attribute license_type_id
4846
+ # The ID of the license type to associate with this price. On a usage price this
4847
+ # also marks the price as eligible to draw down from that license type's
4848
+ # allocation; a usage price created without it is billed normally. Usage prices
4849
+ # with a license type must use the `unit` model, and only draw down when their
4850
+ # currency matches the allocation's.
4851
+ #
4852
+ # @return [String, nil]
4853
+ optional :license_type_id, String, nil?: true
4854
+
4855
+ # @!attribute metadata
4856
+ # User-specified key/value pairs for the resource. Individual keys can be removed
4857
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
4858
+ # by setting `metadata` to `null`.
4859
+ #
4860
+ # @return [Hash{Symbol=>String, nil}, nil]
4861
+ optional :metadata, Orb::Internal::Type::HashOf[String, nil?: true], nil?: true
4862
+
4863
+ # @!attribute reference_id
4864
+ # A transient ID that can be used to reference this price when adding adjustments
4865
+ # in the same API call.
4866
+ #
4867
+ # @return [String, nil]
4868
+ optional :reference_id, String, nil?: true
4869
+
4870
+ # @!method initialize(cadence:, item_id:, name:, tiered_matrix_with_allocation_config:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: nil, currency: nil, dimensional_price_configuration: nil, external_price_id: nil, fixed_price_quantity: nil, invoice_grouping_key: nil, invoicing_cycle_configuration: nil, license_type_id: nil, metadata: nil, reference_id: nil, model_type: :tiered_matrix_with_allocation)
4871
+ # Some parameter documentations has been truncated, see
4872
+ # {Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation}
4873
+ # for more details.
4874
+ #
4875
+ # @param cadence [Symbol, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation::Cadence] The cadence to bill for this price on.
4876
+ #
4877
+ # @param item_id [String] The id of the item the price will be associated with.
4878
+ #
4879
+ # @param name [String] The name of the price.
4880
+ #
4881
+ # @param tiered_matrix_with_allocation_config [Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig] Configuration for tiered_matrix_with_allocation pricing
4882
+ #
4883
+ # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
4884
+ #
4885
+ # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
4886
+ #
4887
+ # @param billing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] For custom cadence: specifies the duration of the billing period in days or mont
4888
+ #
4889
+ # @param conversion_rate [Float, nil] The per unit conversion rate of the price currency to the invoicing currency.
4890
+ #
4891
+ # @param conversion_rate_config [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil] The configuration for the rate of the price currency to the invoicing currency.
4892
+ #
4893
+ # @param currency [String, nil] An ISO 4217 currency string, or custom pricing unit identifier, in which this pr
4894
+ #
4895
+ # @param dimensional_price_configuration [Orb::Models::NewDimensionalPriceConfiguration, nil] For dimensional price: specifies a price group and dimension values
4896
+ #
4897
+ # @param external_price_id [String, nil] An alias for the price.
4898
+ #
4899
+ # @param fixed_price_quantity [Float, nil] If the Price represents a fixed cost, this represents the quantity of units appl
4900
+ #
4901
+ # @param invoice_grouping_key [String, nil] The property used to group this price on an invoice
4902
+ #
4903
+ # @param invoicing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] Within each billing cycle, specifies the cadence at which invoices are produced.
4904
+ #
4905
+ # @param license_type_id [String, nil] The ID of the license type to associate with this price. On a usage price this a
4906
+ #
4907
+ # @param metadata [Hash{Symbol=>String, nil}, nil] User-specified key/value pairs for the resource. Individual keys can be removed
4908
+ #
4909
+ # @param reference_id [String, nil] A transient ID that can be used to reference this price when adding adjustments
4910
+ #
4911
+ # @param model_type [Symbol, :tiered_matrix_with_allocation] The pricing model type
4912
+
4913
+ # The cadence to bill for this price on.
4914
+ #
4915
+ # @see Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation#cadence
4916
+ module Cadence
4917
+ extend Orb::Internal::Type::Enum
4918
+
4919
+ ANNUAL = :annual
4920
+ SEMI_ANNUAL = :semi_annual
4921
+ MONTHLY = :monthly
4922
+ QUARTERLY = :quarterly
4923
+ ONE_TIME = :one_time
4924
+ CUSTOM = :custom
4925
+
4926
+ # @!method self.values
4927
+ # @return [Array<Symbol>]
4928
+ end
4929
+
4930
+ # @see Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation#tiered_matrix_with_allocation_config
4931
+ class TieredMatrixWithAllocationConfig < Orb::Internal::Type::BaseModel
4932
+ # @!attribute allocation
4933
+ # Usage allocation, pooled across all matrix cells
4934
+ #
4935
+ # @return [String]
4936
+ required :allocation, String
4937
+
4938
+ # @!attribute default_unit_amount
4939
+ # Per unit rate for usage whose matrix cell has no configured tiers
4940
+ #
4941
+ # @return [String]
4942
+ required :default_unit_amount, String
4943
+
4944
+ # @!attribute dimensions
4945
+ # One or two event property values to evaluate matrix cells by
4946
+ #
4947
+ # @return [Array<String>]
4948
+ required :dimensions, Orb::Internal::Type::ArrayOf[String]
4949
+
4950
+ # @!attribute tiers
4951
+ # Graduated tiers keyed by matrix cell; usage in a cell is tiered only against its
4952
+ # own rows
4953
+ #
4954
+ # @return [Array<Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig::Tier>]
4955
+ required :tiers,
4956
+ -> do
4957
+ Orb::Internal::Type::ArrayOf[
4958
+ Orb::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig::Tier
4959
+ ]
4960
+ end
4961
+
4962
+ # @!method initialize(allocation:, default_unit_amount:, dimensions:, tiers:)
4963
+ # Some parameter documentations has been truncated, see
4964
+ # {Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig}
4965
+ # for more details.
4966
+ #
4967
+ # Configuration for tiered_matrix_with_allocation pricing
4968
+ #
4969
+ # @param allocation [String] Usage allocation, pooled across all matrix cells
4970
+ #
4971
+ # @param default_unit_amount [String] Per unit rate for usage whose matrix cell has no configured tiers
4972
+ #
4973
+ # @param dimensions [Array<String>] One or two event property values to evaluate matrix cells by
4974
+ #
4975
+ # @param tiers [Array<Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig::Tier>] Graduated tiers keyed by matrix cell; usage in a cell is tiered only against its
4976
+
4977
+ class Tier < Orb::Internal::Type::BaseModel
4978
+ # @!attribute dimension_values
4979
+ # The matrix cell this tier applies to, as one or two dimension values
4980
+ #
4981
+ # @return [Array<String>]
4982
+ required :dimension_values, Orb::Internal::Type::ArrayOf[String]
4983
+
4984
+ # @!attribute tier_lower_bound
4985
+ # Exclusive tier starting value. The tier runs up to and including the next bound
4986
+ # configured for the same matrix cell.
4987
+ #
4988
+ # @return [String]
4989
+ required :tier_lower_bound, String
4990
+
4991
+ # @!attribute unit_amount
4992
+ # Per unit amount
4993
+ #
4994
+ # @return [String]
4995
+ required :unit_amount, String
4996
+
4997
+ # @!method initialize(dimension_values:, tier_lower_bound:, unit_amount:)
4998
+ # Some parameter documentations has been truncated, see
4999
+ # {Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig::Tier}
5000
+ # for more details.
5001
+ #
5002
+ # Configuration for a single tier scoped to one matrix cell
5003
+ #
5004
+ # @param dimension_values [Array<String>] The matrix cell this tier applies to, as one or two dimension values
5005
+ #
5006
+ # @param tier_lower_bound [String] Exclusive tier starting value. The tier runs up to and including the next bound
5007
+ #
5008
+ # @param unit_amount [String] Per unit amount
5009
+ end
5010
+ end
5011
+ end
5012
+
4453
5013
  class MatrixWithThresholdDiscounts < Orb::Internal::Type::BaseModel
4454
5014
  # @!attribute cadence
4455
5015
  # The cadence to bill for this price on.
@@ -6485,7 +7045,7 @@ module Orb
6485
7045
  end
6486
7046
 
6487
7047
  # @!method self.variants
6488
- # @return [Array(Orb::Models::NewPlanUnitPrice, Orb::Models::NewPlanTieredPrice, Orb::Models::NewPlanBulkPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::BulkWithFilters, Orb::Models::NewPlanPackagePrice, Orb::Models::NewPlanMatrixPrice, Orb::Models::NewPlanThresholdTotalAmountPrice, Orb::Models::NewPlanTieredPackagePrice, Orb::Models::NewPlanTieredWithMinimumPrice, Orb::Models::NewPlanGroupedTieredPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::GroupedTieredMatrix, Orb::Models::NewPlanTieredPackageWithMinimumPrice, Orb::Models::NewPlanPackageWithAllocationPrice, Orb::Models::NewPlanUnitWithPercentPrice, Orb::Models::NewPlanMatrixWithAllocationPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::MatrixWithThresholdDiscounts, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredWithProration, Orb::Models::NewPlanUnitWithProrationPrice, Orb::Models::NewPlanGroupedAllocationPrice, Orb::Models::NewPlanBulkWithProrationPrice, Orb::Models::NewPlanGroupedWithProratedMinimumPrice, Orb::Models::NewPlanGroupedWithMeteredMinimumPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewPlanMatrixWithDisplayNamePrice, Orb::Models::NewPlanGroupedTieredPackagePrice, Orb::Models::NewPlanMaxGroupTieredPackagePrice, Orb::Models::NewPlanScalableMatrixWithUnitPricingPrice, Orb::Models::NewPlanScalableMatrixWithTieredPricingPrice, Orb::Models::NewPlanCumulativeGroupedBulkPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::CumulativeGroupedAllocation, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::DailyCreditAllowance, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::MeteredAllowance, Orb::Models::NewPlanMinimumCompositePrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::Percent, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::EventOutput)]
7048
+ # @return [Array(Orb::Models::NewPlanUnitPrice, Orb::Models::NewPlanTieredPrice, Orb::Models::NewPlanBulkPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::BulkWithFilters, Orb::Models::NewPlanPackagePrice, Orb::Models::NewPlanMatrixPrice, Orb::Models::NewPlanThresholdTotalAmountPrice, Orb::Models::NewPlanTieredPackagePrice, Orb::Models::NewPlanTieredWithMinimumPrice, Orb::Models::NewPlanGroupedTieredPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::GroupedTieredMatrix, Orb::Models::NewPlanTieredPackageWithMinimumPrice, Orb::Models::NewPlanPackageWithAllocationPrice, Orb::Models::NewPlanUnitWithPercentPrice, Orb::Models::NewPlanMatrixWithAllocationPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredMatrixWithAllocation, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::MatrixWithThresholdDiscounts, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::TieredWithProration, Orb::Models::NewPlanUnitWithProrationPrice, Orb::Models::NewPlanGroupedAllocationPrice, Orb::Models::NewPlanBulkWithProrationPrice, Orb::Models::NewPlanGroupedWithProratedMinimumPrice, Orb::Models::NewPlanGroupedWithMeteredMinimumPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::GroupedWithMinMaxThresholds, Orb::Models::NewPlanMatrixWithDisplayNamePrice, Orb::Models::NewPlanGroupedTieredPackagePrice, Orb::Models::NewPlanMaxGroupTieredPackagePrice, Orb::Models::NewPlanScalableMatrixWithUnitPricingPrice, Orb::Models::NewPlanScalableMatrixWithTieredPricingPrice, Orb::Models::NewPlanCumulativeGroupedBulkPrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::CumulativeGroupedAllocation, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::DailyCreditAllowance, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::MeteredAllowance, Orb::Models::NewPlanMinimumCompositePrice, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::Percent, Orb::Models::BetaCreatePlanVersionParams::ReplacePrice::Price::EventOutput)]
6489
7049
  end
6490
7050
  end
6491
7051
  end