orb-billing 1.24.0 → 1.26.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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/README.md +1 -1
  4. data/lib/orb/models/alert.rb +4 -2
  5. data/lib/orb/models/alert_update_params.rb +5 -3
  6. data/lib/orb/models/beta/external_plan_id_create_plan_version_params.rb +530 -6
  7. data/lib/orb/models/beta_create_plan_version_params.rb +526 -6
  8. data/lib/orb/models/changed_subscription_resources.rb +5 -5
  9. data/lib/orb/models/invoice.rb +5 -5
  10. data/lib/orb/models/invoice_fetch_upcoming_response.rb +5 -5
  11. data/lib/orb/models/invoice_issue_summary_response.rb +3 -3
  12. data/lib/orb/models/invoice_line_item_create_response.rb +2 -2
  13. data/lib/orb/models/invoice_list_summary_response.rb +3 -3
  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 +259 -3
  17. data/lib/orb/models/plan_version.rb +2 -2
  18. data/lib/orb/models/price.rb +433 -1
  19. data/lib/orb/models/price_create_params.rb +244 -3
  20. data/lib/orb/models/price_evaluate_multiple_params.rb +255 -3
  21. data/lib/orb/models/price_evaluate_preview_events_params.rb +255 -3
  22. data/lib/orb/models/price_interval.rb +2 -2
  23. data/lib/orb/models/subscription_create_params.rb +521 -6
  24. data/lib/orb/models/subscription_price_intervals_params.rb +251 -3
  25. data/lib/orb/models/subscription_schedule_plan_change_params.rb +530 -6
  26. data/lib/orb/resources/alerts.rb +5 -2
  27. data/lib/orb/resources/customers/costs.rb +20 -0
  28. data/lib/orb/resources/licenses/external_licenses.rb +7 -0
  29. data/lib/orb/resources/licenses/usage.rb +3 -0
  30. data/lib/orb/resources/prices/external_price_id.rb +2 -2
  31. data/lib/orb/resources/prices.rb +5 -5
  32. data/lib/orb/resources/subscriptions.rb +39 -6
  33. data/lib/orb/version.rb +1 -1
  34. data/rbi/orb/models/alert.rbi +6 -2
  35. data/rbi/orb/models/alert_update_params.rbi +8 -4
  36. data/rbi/orb/models/beta/external_plan_id_create_plan_version_params.rbi +2789 -1903
  37. data/rbi/orb/models/beta_create_plan_version_params.rbi +2788 -1902
  38. data/rbi/orb/models/changed_subscription_resources.rbi +7 -6
  39. data/rbi/orb/models/invoice.rbi +7 -6
  40. data/rbi/orb/models/invoice_fetch_upcoming_response.rbi +7 -6
  41. data/rbi/orb/models/invoice_issue_summary_response.rbi +6 -6
  42. data/rbi/orb/models/invoice_line_item_create_response.rbi +1 -0
  43. data/rbi/orb/models/invoice_list_summary_response.rbi +6 -6
  44. data/rbi/orb/models/per_price_cost.rbi +1 -0
  45. data/rbi/orb/models/plan.rbi +1 -0
  46. data/rbi/orb/models/plan_create_params.rbi +443 -0
  47. data/rbi/orb/models/plan_version.rbi +1 -0
  48. data/rbi/orb/models/price.rbi +766 -0
  49. data/rbi/orb/models/price_create_params.rbi +431 -0
  50. data/rbi/orb/models/price_evaluate_multiple_params.rbi +431 -0
  51. data/rbi/orb/models/price_evaluate_preview_events_params.rbi +431 -0
  52. data/rbi/orb/models/price_interval.rbi +1 -0
  53. data/rbi/orb/models/subscription_create_params.rbi +2489 -1603
  54. data/rbi/orb/models/subscription_price_intervals_params.rbi +431 -0
  55. data/rbi/orb/models/subscription_schedule_plan_change_params.rbi +2483 -1597
  56. data/rbi/orb/resources/alerts.rbi +8 -3
  57. data/rbi/orb/resources/customers/costs.rbi +20 -0
  58. data/rbi/orb/resources/licenses/external_licenses.rbi +7 -0
  59. data/rbi/orb/resources/licenses/usage.rbi +3 -0
  60. data/rbi/orb/resources/prices.rbi +1 -0
  61. data/rbi/orb/resources/subscriptions.rbi +39 -6
  62. data/sig/orb/models/beta/external_plan_id_create_plan_version_params.rbs +366 -0
  63. data/sig/orb/models/beta_create_plan_version_params.rbs +366 -0
  64. data/sig/orb/models/plan_create_params.rbs +183 -0
  65. data/sig/orb/models/price.rbs +327 -0
  66. data/sig/orb/models/price_create_params.rbs +173 -0
  67. data/sig/orb/models/price_evaluate_multiple_params.rbs +178 -0
  68. data/sig/orb/models/price_evaluate_preview_events_params.rbs +178 -0
  69. data/sig/orb/models/subscription_create_params.rbs +366 -0
  70. data/sig/orb/models/subscription_price_intervals_params.rbs +178 -0
  71. data/sig/orb/models/subscription_schedule_plan_change_params.rbs +366 -0
  72. metadata +2 -2
@@ -10,11 +10,11 @@ module Orb
10
10
  # @!attribute body
11
11
  # New floating price request body params.
12
12
  #
13
- # @return [Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::PriceCreateParams::Body::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::PriceCreateParams::Body::MatrixWithThresholdDiscounts, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::PriceCreateParams::Body::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::PriceCreateParams::Body::CumulativeGroupedAllocation, Orb::Models::PriceCreateParams::Body::DailyCreditAllowance, Orb::Models::PriceCreateParams::Body::MeteredAllowance, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::PriceCreateParams::Body::Percent, Orb::Models::PriceCreateParams::Body::EventOutput]
13
+ # @return [Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::PriceCreateParams::Body::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::PriceCreateParams::Body::MatrixWithThresholdDiscounts, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::PriceCreateParams::Body::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::PriceCreateParams::Body::CumulativeGroupedAllocation, Orb::Models::PriceCreateParams::Body::DailyCreditAllowance, Orb::Models::PriceCreateParams::Body::MeteredAllowance, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::PriceCreateParams::Body::Percent, Orb::Models::PriceCreateParams::Body::EventOutput]
14
14
  required :body, union: -> { Orb::PriceCreateParams::Body }
15
15
 
16
16
  # @!method initialize(body:, request_options: {})
17
- # @param body [Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::PriceCreateParams::Body::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::PriceCreateParams::Body::MatrixWithThresholdDiscounts, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::PriceCreateParams::Body::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::PriceCreateParams::Body::CumulativeGroupedAllocation, Orb::Models::PriceCreateParams::Body::DailyCreditAllowance, Orb::Models::PriceCreateParams::Body::MeteredAllowance, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::PriceCreateParams::Body::Percent, Orb::Models::PriceCreateParams::Body::EventOutput] New floating price request body params.
17
+ # @param body [Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::PriceCreateParams::Body::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::PriceCreateParams::Body::MatrixWithThresholdDiscounts, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::PriceCreateParams::Body::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::PriceCreateParams::Body::CumulativeGroupedAllocation, Orb::Models::PriceCreateParams::Body::DailyCreditAllowance, Orb::Models::PriceCreateParams::Body::MeteredAllowance, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::PriceCreateParams::Body::Percent, Orb::Models::PriceCreateParams::Body::EventOutput] New floating price request body params.
18
18
  #
19
19
  # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}]
20
20
 
@@ -44,6 +44,8 @@ module Orb
44
44
 
45
45
  variant :grouped_tiered, -> { Orb::NewFloatingGroupedTieredPrice }
46
46
 
47
+ variant :grouped_tiered_matrix, -> { Orb::PriceCreateParams::Body::GroupedTieredMatrix }
48
+
47
49
  variant :tiered_package_with_minimum, -> { Orb::NewFloatingTieredPackageWithMinimumPrice }
48
50
 
49
51
  variant :package_with_allocation, -> { Orb::NewFloatingPackageWithAllocationPrice }
@@ -334,6 +336,245 @@ module Orb
334
336
  end
335
337
  end
336
338
 
339
+ class GroupedTieredMatrix < Orb::Internal::Type::BaseModel
340
+ # @!attribute cadence
341
+ # The cadence to bill for this price on.
342
+ #
343
+ # @return [Symbol, Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix::Cadence]
344
+ required :cadence, enum: -> { Orb::PriceCreateParams::Body::GroupedTieredMatrix::Cadence }
345
+
346
+ # @!attribute currency
347
+ # An ISO 4217 currency string for which this price is billed in.
348
+ #
349
+ # @return [String]
350
+ required :currency, String
351
+
352
+ # @!attribute grouped_tiered_matrix_config
353
+ # Configuration for grouped_tiered_matrix pricing
354
+ #
355
+ # @return [Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix::GroupedTieredMatrixConfig]
356
+ required :grouped_tiered_matrix_config,
357
+ -> { Orb::PriceCreateParams::Body::GroupedTieredMatrix::GroupedTieredMatrixConfig }
358
+
359
+ # @!attribute item_id
360
+ # The id of the item the price will be associated with.
361
+ #
362
+ # @return [String]
363
+ required :item_id, String
364
+
365
+ # @!attribute model_type
366
+ # The pricing model type
367
+ #
368
+ # @return [Symbol, :grouped_tiered_matrix]
369
+ required :model_type, const: :grouped_tiered_matrix
370
+
371
+ # @!attribute name
372
+ # The name of the price.
373
+ #
374
+ # @return [String]
375
+ required :name, String
376
+
377
+ # @!attribute billable_metric_id
378
+ # The id of the billable metric for the price. Only needed if the price is
379
+ # usage-based.
380
+ #
381
+ # @return [String, nil]
382
+ optional :billable_metric_id, String, nil?: true
383
+
384
+ # @!attribute billed_in_advance
385
+ # If the Price represents a fixed cost, the price will be billed in-advance if
386
+ # this is true, and in-arrears if this is false.
387
+ #
388
+ # @return [Boolean, nil]
389
+ optional :billed_in_advance, Orb::Internal::Type::Boolean, nil?: true
390
+
391
+ # @!attribute billing_cycle_configuration
392
+ # For custom cadence: specifies the duration of the billing period in days or
393
+ # months.
394
+ #
395
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
396
+ optional :billing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
397
+
398
+ # @!attribute conversion_rate
399
+ # The per unit conversion rate of the price currency to the invoicing currency.
400
+ #
401
+ # @return [Float, nil]
402
+ optional :conversion_rate, Float, nil?: true
403
+
404
+ # @!attribute conversion_rate_config
405
+ # The configuration for the rate of the price currency to the invoicing currency.
406
+ #
407
+ # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
408
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
409
+
410
+ # @!attribute dimensional_price_configuration
411
+ # For dimensional price: specifies a price group and dimension values
412
+ #
413
+ # @return [Orb::Models::NewDimensionalPriceConfiguration, nil]
414
+ optional :dimensional_price_configuration, -> { Orb::NewDimensionalPriceConfiguration }, nil?: true
415
+
416
+ # @!attribute external_price_id
417
+ # An alias for the price.
418
+ #
419
+ # @return [String, nil]
420
+ optional :external_price_id, String, nil?: true
421
+
422
+ # @!attribute fixed_price_quantity
423
+ # If the Price represents a fixed cost, this represents the quantity of units
424
+ # applied.
425
+ #
426
+ # @return [Float, nil]
427
+ optional :fixed_price_quantity, Float, nil?: true
428
+
429
+ # @!attribute invoice_grouping_key
430
+ # The property used to group this price on an invoice
431
+ #
432
+ # @return [String, nil]
433
+ optional :invoice_grouping_key, String, nil?: true
434
+
435
+ # @!attribute invoicing_cycle_configuration
436
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
437
+ # If unspecified, a single invoice is produced per billing cycle.
438
+ #
439
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
440
+ optional :invoicing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
441
+
442
+ # @!attribute license_type_id
443
+ # The ID of the license type to associate with this price.
444
+ #
445
+ # @return [String, nil]
446
+ optional :license_type_id, String, nil?: true
447
+
448
+ # @!attribute metadata
449
+ # User-specified key/value pairs for the resource. Individual keys can be removed
450
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
451
+ # by setting `metadata` to `null`.
452
+ #
453
+ # @return [Hash{Symbol=>String, nil}, nil]
454
+ optional :metadata, Orb::Internal::Type::HashOf[String, nil?: true], nil?: true
455
+
456
+ # @!method initialize(cadence:, currency:, grouped_tiered_matrix_config:, item_id:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: 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, model_type: :grouped_tiered_matrix)
457
+ # Some parameter documentations has been truncated, see
458
+ # {Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix} for more details.
459
+ #
460
+ # @param cadence [Symbol, Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix::Cadence] The cadence to bill for this price on.
461
+ #
462
+ # @param currency [String] An ISO 4217 currency string for which this price is billed in.
463
+ #
464
+ # @param grouped_tiered_matrix_config [Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix::GroupedTieredMatrixConfig] Configuration for grouped_tiered_matrix pricing
465
+ #
466
+ # @param item_id [String] The id of the item the price will be associated with.
467
+ #
468
+ # @param name [String] The name of the price.
469
+ #
470
+ # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
471
+ #
472
+ # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
473
+ #
474
+ # @param billing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] For custom cadence: specifies the duration of the billing period in days or mont
475
+ #
476
+ # @param conversion_rate [Float, nil] The per unit conversion rate of the price currency to the invoicing currency.
477
+ #
478
+ # @param conversion_rate_config [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil] The configuration for the rate of the price currency to the invoicing currency.
479
+ #
480
+ # @param dimensional_price_configuration [Orb::Models::NewDimensionalPriceConfiguration, nil] For dimensional price: specifies a price group and dimension values
481
+ #
482
+ # @param external_price_id [String, nil] An alias for the price.
483
+ #
484
+ # @param fixed_price_quantity [Float, nil] If the Price represents a fixed cost, this represents the quantity of units appl
485
+ #
486
+ # @param invoice_grouping_key [String, nil] The property used to group this price on an invoice
487
+ #
488
+ # @param invoicing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] Within each billing cycle, specifies the cadence at which invoices are produced.
489
+ #
490
+ # @param license_type_id [String, nil] The ID of the license type to associate with this price.
491
+ #
492
+ # @param metadata [Hash{Symbol=>String, nil}, nil] User-specified key/value pairs for the resource. Individual keys can be removed
493
+ #
494
+ # @param model_type [Symbol, :grouped_tiered_matrix] The pricing model type
495
+
496
+ # The cadence to bill for this price on.
497
+ #
498
+ # @see Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix#cadence
499
+ module Cadence
500
+ extend Orb::Internal::Type::Enum
501
+
502
+ ANNUAL = :annual
503
+ SEMI_ANNUAL = :semi_annual
504
+ MONTHLY = :monthly
505
+ QUARTERLY = :quarterly
506
+ ONE_TIME = :one_time
507
+ CUSTOM = :custom
508
+
509
+ # @!method self.values
510
+ # @return [Array<Symbol>]
511
+ end
512
+
513
+ # @see Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix#grouped_tiered_matrix_config
514
+ class GroupedTieredMatrixConfig < Orb::Internal::Type::BaseModel
515
+ # @!attribute default_unit_amount
516
+ # Per unit rate for usage whose dimension value has no configured tiers
517
+ #
518
+ # @return [String]
519
+ required :default_unit_amount, String
520
+
521
+ # @!attribute dimension
522
+ # The billable metric property used to group usage before tiering
523
+ #
524
+ # @return [String]
525
+ required :dimension, String
526
+
527
+ # @!attribute tiers
528
+ # Graduated tiers keyed by dimension value; usage for a value is tiered only
529
+ # against its own rows
530
+ #
531
+ # @return [Array<Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix::GroupedTieredMatrixConfig::Tier>]
532
+ required :tiers,
533
+ -> { Orb::Internal::Type::ArrayOf[Orb::PriceCreateParams::Body::GroupedTieredMatrix::GroupedTieredMatrixConfig::Tier] }
534
+
535
+ # @!method initialize(default_unit_amount:, dimension:, tiers:)
536
+ # Some parameter documentations has been truncated, see
537
+ # {Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix::GroupedTieredMatrixConfig}
538
+ # for more details.
539
+ #
540
+ # Configuration for grouped_tiered_matrix pricing
541
+ #
542
+ # @param default_unit_amount [String] Per unit rate for usage whose dimension value has no configured tiers
543
+ #
544
+ # @param dimension [String] The billable metric property used to group usage before tiering
545
+ #
546
+ # @param tiers [Array<Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix::GroupedTieredMatrixConfig::Tier>] Graduated tiers keyed by dimension value; usage for a value is tiered only again
547
+
548
+ class Tier < Orb::Internal::Type::BaseModel
549
+ # @!attribute dimension_value
550
+ # The dimension value this tier applies to
551
+ #
552
+ # @return [String]
553
+ required :dimension_value, String
554
+
555
+ # @!attribute tier_lower_bound
556
+ #
557
+ # @return [String]
558
+ required :tier_lower_bound, String
559
+
560
+ # @!attribute unit_amount
561
+ # Per unit amount
562
+ #
563
+ # @return [String]
564
+ required :unit_amount, String
565
+
566
+ # @!method initialize(dimension_value:, tier_lower_bound:, unit_amount:)
567
+ # Configuration for a single tier scoped to a dimension value
568
+ #
569
+ # @param dimension_value [String] The dimension value this tier applies to
570
+ #
571
+ # @param tier_lower_bound [String]
572
+ #
573
+ # @param unit_amount [String] Per unit amount
574
+ end
575
+ end
576
+ end
577
+
337
578
  class MatrixWithThresholdDiscounts < Orb::Internal::Type::BaseModel
338
579
  # @!attribute cadence
339
580
  # The cadence to bill for this price on.
@@ -1986,7 +2227,7 @@ module Orb
1986
2227
  end
1987
2228
 
1988
2229
  # @!method self.variants
1989
- # @return [Array(Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::PriceCreateParams::Body::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::PriceCreateParams::Body::MatrixWithThresholdDiscounts, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::PriceCreateParams::Body::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::PriceCreateParams::Body::CumulativeGroupedAllocation, Orb::Models::PriceCreateParams::Body::DailyCreditAllowance, Orb::Models::PriceCreateParams::Body::MeteredAllowance, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::PriceCreateParams::Body::Percent, Orb::Models::PriceCreateParams::Body::EventOutput)]
2230
+ # @return [Array(Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::PriceCreateParams::Body::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::PriceCreateParams::Body::MatrixWithThresholdDiscounts, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::PriceCreateParams::Body::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::PriceCreateParams::Body::CumulativeGroupedAllocation, Orb::Models::PriceCreateParams::Body::DailyCreditAllowance, Orb::Models::PriceCreateParams::Body::MeteredAllowance, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::PriceCreateParams::Body::Percent, Orb::Models::PriceCreateParams::Body::EventOutput)]
1990
2231
  end
1991
2232
  end
1992
2233
  end
@@ -86,7 +86,7 @@ module Orb
86
86
  # @!attribute price
87
87
  # New floating price request body params.
88
88
  #
89
- # @return [Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::MatrixWithThresholdDiscounts, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::CumulativeGroupedAllocation, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::DailyCreditAllowance, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::MeteredAllowance, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::Percent, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::EventOutput, nil]
89
+ # @return [Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::MatrixWithThresholdDiscounts, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::CumulativeGroupedAllocation, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::DailyCreditAllowance, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::MeteredAllowance, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::Percent, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::EventOutput, nil]
90
90
  optional :price, union: -> { Orb::PriceEvaluateMultipleParams::PriceEvaluation::Price }, nil?: true
91
91
 
92
92
  # @!attribute price_id
@@ -107,7 +107,7 @@ module Orb
107
107
  #
108
108
  # @param metric_parameter_overrides [Hash{Symbol=>Object}, nil] Optional overrides for parameterized billable metric parameters. If the metric h
109
109
  #
110
- # @param price [Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::MatrixWithThresholdDiscounts, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::CumulativeGroupedAllocation, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::DailyCreditAllowance, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::MeteredAllowance, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::Percent, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::EventOutput, nil] New floating price request body params.
110
+ # @param price [Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::MatrixWithThresholdDiscounts, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::CumulativeGroupedAllocation, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::DailyCreditAllowance, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::MeteredAllowance, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::Percent, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::EventOutput, nil] New floating price request body params.
111
111
  #
112
112
  # @param price_id [String, nil] The ID of a price to evaluate that exists in your Orb account.
113
113
 
@@ -140,6 +140,9 @@ module Orb
140
140
 
141
141
  variant :grouped_tiered, -> { Orb::NewFloatingGroupedTieredPrice }
142
142
 
143
+ variant :grouped_tiered_matrix,
144
+ -> { Orb::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix }
145
+
143
146
  variant :tiered_package_with_minimum, -> { Orb::NewFloatingTieredPackageWithMinimumPrice }
144
147
 
145
148
  variant :package_with_allocation, -> { Orb::NewFloatingPackageWithAllocationPrice }
@@ -440,6 +443,255 @@ module Orb
440
443
  end
441
444
  end
442
445
 
446
+ class GroupedTieredMatrix < Orb::Internal::Type::BaseModel
447
+ # @!attribute cadence
448
+ # The cadence to bill for this price on.
449
+ #
450
+ # @return [Symbol, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix::Cadence]
451
+ required :cadence,
452
+ enum: -> { Orb::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix::Cadence }
453
+
454
+ # @!attribute currency
455
+ # An ISO 4217 currency string for which this price is billed in.
456
+ #
457
+ # @return [String]
458
+ required :currency, String
459
+
460
+ # @!attribute grouped_tiered_matrix_config
461
+ # Configuration for grouped_tiered_matrix pricing
462
+ #
463
+ # @return [Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix::GroupedTieredMatrixConfig]
464
+ required :grouped_tiered_matrix_config,
465
+ -> { Orb::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix::GroupedTieredMatrixConfig }
466
+
467
+ # @!attribute item_id
468
+ # The id of the item the price will be associated with.
469
+ #
470
+ # @return [String]
471
+ required :item_id, String
472
+
473
+ # @!attribute model_type
474
+ # The pricing model type
475
+ #
476
+ # @return [Symbol, :grouped_tiered_matrix]
477
+ required :model_type, const: :grouped_tiered_matrix
478
+
479
+ # @!attribute name
480
+ # The name of the price.
481
+ #
482
+ # @return [String]
483
+ required :name, String
484
+
485
+ # @!attribute billable_metric_id
486
+ # The id of the billable metric for the price. Only needed if the price is
487
+ # usage-based.
488
+ #
489
+ # @return [String, nil]
490
+ optional :billable_metric_id, String, nil?: true
491
+
492
+ # @!attribute billed_in_advance
493
+ # If the Price represents a fixed cost, the price will be billed in-advance if
494
+ # this is true, and in-arrears if this is false.
495
+ #
496
+ # @return [Boolean, nil]
497
+ optional :billed_in_advance, Orb::Internal::Type::Boolean, nil?: true
498
+
499
+ # @!attribute billing_cycle_configuration
500
+ # For custom cadence: specifies the duration of the billing period in days or
501
+ # months.
502
+ #
503
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
504
+ optional :billing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
505
+
506
+ # @!attribute conversion_rate
507
+ # The per unit conversion rate of the price currency to the invoicing currency.
508
+ #
509
+ # @return [Float, nil]
510
+ optional :conversion_rate, Float, nil?: true
511
+
512
+ # @!attribute conversion_rate_config
513
+ # The configuration for the rate of the price currency to the invoicing currency.
514
+ #
515
+ # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
516
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
517
+
518
+ # @!attribute dimensional_price_configuration
519
+ # For dimensional price: specifies a price group and dimension values
520
+ #
521
+ # @return [Orb::Models::NewDimensionalPriceConfiguration, nil]
522
+ optional :dimensional_price_configuration,
523
+ -> {
524
+ Orb::NewDimensionalPriceConfiguration
525
+ },
526
+ nil?: true
527
+
528
+ # @!attribute external_price_id
529
+ # An alias for the price.
530
+ #
531
+ # @return [String, nil]
532
+ optional :external_price_id, String, nil?: true
533
+
534
+ # @!attribute fixed_price_quantity
535
+ # If the Price represents a fixed cost, this represents the quantity of units
536
+ # applied.
537
+ #
538
+ # @return [Float, nil]
539
+ optional :fixed_price_quantity, Float, nil?: true
540
+
541
+ # @!attribute invoice_grouping_key
542
+ # The property used to group this price on an invoice
543
+ #
544
+ # @return [String, nil]
545
+ optional :invoice_grouping_key, String, nil?: true
546
+
547
+ # @!attribute invoicing_cycle_configuration
548
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
549
+ # If unspecified, a single invoice is produced per billing cycle.
550
+ #
551
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
552
+ optional :invoicing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
553
+
554
+ # @!attribute license_type_id
555
+ # The ID of the license type to associate with this price.
556
+ #
557
+ # @return [String, nil]
558
+ optional :license_type_id, String, nil?: true
559
+
560
+ # @!attribute metadata
561
+ # User-specified key/value pairs for the resource. Individual keys can be removed
562
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
563
+ # by setting `metadata` to `null`.
564
+ #
565
+ # @return [Hash{Symbol=>String, nil}, nil]
566
+ optional :metadata, Orb::Internal::Type::HashOf[String, nil?: true], nil?: true
567
+
568
+ # @!method initialize(cadence:, currency:, grouped_tiered_matrix_config:, item_id:, name:, billable_metric_id: nil, billed_in_advance: nil, billing_cycle_configuration: nil, conversion_rate: nil, conversion_rate_config: 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, model_type: :grouped_tiered_matrix)
569
+ # Some parameter documentations has been truncated, see
570
+ # {Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix}
571
+ # for more details.
572
+ #
573
+ # @param cadence [Symbol, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix::Cadence] The cadence to bill for this price on.
574
+ #
575
+ # @param currency [String] An ISO 4217 currency string for which this price is billed in.
576
+ #
577
+ # @param grouped_tiered_matrix_config [Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix::GroupedTieredMatrixConfig] Configuration for grouped_tiered_matrix pricing
578
+ #
579
+ # @param item_id [String] The id of the item the price will be associated with.
580
+ #
581
+ # @param name [String] The name of the price.
582
+ #
583
+ # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
584
+ #
585
+ # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
586
+ #
587
+ # @param billing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] For custom cadence: specifies the duration of the billing period in days or mont
588
+ #
589
+ # @param conversion_rate [Float, nil] The per unit conversion rate of the price currency to the invoicing currency.
590
+ #
591
+ # @param conversion_rate_config [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil] The configuration for the rate of the price currency to the invoicing currency.
592
+ #
593
+ # @param dimensional_price_configuration [Orb::Models::NewDimensionalPriceConfiguration, nil] For dimensional price: specifies a price group and dimension values
594
+ #
595
+ # @param external_price_id [String, nil] An alias for the price.
596
+ #
597
+ # @param fixed_price_quantity [Float, nil] If the Price represents a fixed cost, this represents the quantity of units appl
598
+ #
599
+ # @param invoice_grouping_key [String, nil] The property used to group this price on an invoice
600
+ #
601
+ # @param invoicing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] Within each billing cycle, specifies the cadence at which invoices are produced.
602
+ #
603
+ # @param license_type_id [String, nil] The ID of the license type to associate with this price.
604
+ #
605
+ # @param metadata [Hash{Symbol=>String, nil}, nil] User-specified key/value pairs for the resource. Individual keys can be removed
606
+ #
607
+ # @param model_type [Symbol, :grouped_tiered_matrix] The pricing model type
608
+
609
+ # The cadence to bill for this price on.
610
+ #
611
+ # @see Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix#cadence
612
+ module Cadence
613
+ extend Orb::Internal::Type::Enum
614
+
615
+ ANNUAL = :annual
616
+ SEMI_ANNUAL = :semi_annual
617
+ MONTHLY = :monthly
618
+ QUARTERLY = :quarterly
619
+ ONE_TIME = :one_time
620
+ CUSTOM = :custom
621
+
622
+ # @!method self.values
623
+ # @return [Array<Symbol>]
624
+ end
625
+
626
+ # @see Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix#grouped_tiered_matrix_config
627
+ class GroupedTieredMatrixConfig < Orb::Internal::Type::BaseModel
628
+ # @!attribute default_unit_amount
629
+ # Per unit rate for usage whose dimension value has no configured tiers
630
+ #
631
+ # @return [String]
632
+ required :default_unit_amount, String
633
+
634
+ # @!attribute dimension
635
+ # The billable metric property used to group usage before tiering
636
+ #
637
+ # @return [String]
638
+ required :dimension, String
639
+
640
+ # @!attribute tiers
641
+ # Graduated tiers keyed by dimension value; usage for a value is tiered only
642
+ # against its own rows
643
+ #
644
+ # @return [Array<Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix::GroupedTieredMatrixConfig::Tier>]
645
+ required :tiers,
646
+ -> do
647
+ Orb::Internal::Type::ArrayOf[
648
+ Orb::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix::GroupedTieredMatrixConfig::Tier
649
+ ]
650
+ end
651
+
652
+ # @!method initialize(default_unit_amount:, dimension:, tiers:)
653
+ # Some parameter documentations has been truncated, see
654
+ # {Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix::GroupedTieredMatrixConfig}
655
+ # for more details.
656
+ #
657
+ # Configuration for grouped_tiered_matrix pricing
658
+ #
659
+ # @param default_unit_amount [String] Per unit rate for usage whose dimension value has no configured tiers
660
+ #
661
+ # @param dimension [String] The billable metric property used to group usage before tiering
662
+ #
663
+ # @param tiers [Array<Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix::GroupedTieredMatrixConfig::Tier>] Graduated tiers keyed by dimension value; usage for a value is tiered only again
664
+
665
+ class Tier < Orb::Internal::Type::BaseModel
666
+ # @!attribute dimension_value
667
+ # The dimension value this tier applies to
668
+ #
669
+ # @return [String]
670
+ required :dimension_value, String
671
+
672
+ # @!attribute tier_lower_bound
673
+ #
674
+ # @return [String]
675
+ required :tier_lower_bound, String
676
+
677
+ # @!attribute unit_amount
678
+ # Per unit amount
679
+ #
680
+ # @return [String]
681
+ required :unit_amount, String
682
+
683
+ # @!method initialize(dimension_value:, tier_lower_bound:, unit_amount:)
684
+ # Configuration for a single tier scoped to a dimension value
685
+ #
686
+ # @param dimension_value [String] The dimension value this tier applies to
687
+ #
688
+ # @param tier_lower_bound [String]
689
+ #
690
+ # @param unit_amount [String] Per unit amount
691
+ end
692
+ end
693
+ end
694
+
443
695
  class MatrixWithThresholdDiscounts < Orb::Internal::Type::BaseModel
444
696
  # @!attribute cadence
445
697
  # The cadence to bill for this price on.
@@ -2137,7 +2389,7 @@ module Orb
2137
2389
  end
2138
2390
 
2139
2391
  # @!method self.variants
2140
- # @return [Array(Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::MatrixWithThresholdDiscounts, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::CumulativeGroupedAllocation, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::DailyCreditAllowance, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::MeteredAllowance, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::Percent, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::EventOutput)]
2392
+ # @return [Array(Orb::Models::NewFloatingUnitPrice, Orb::Models::NewFloatingTieredPrice, Orb::Models::NewFloatingBulkPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::BulkWithFilters, Orb::Models::NewFloatingPackagePrice, Orb::Models::NewFloatingMatrixPrice, Orb::Models::NewFloatingThresholdTotalAmountPrice, Orb::Models::NewFloatingTieredPackagePrice, Orb::Models::NewFloatingTieredWithMinimumPrice, Orb::Models::NewFloatingGroupedTieredPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedTieredMatrix, Orb::Models::NewFloatingTieredPackageWithMinimumPrice, Orb::Models::NewFloatingPackageWithAllocationPrice, Orb::Models::NewFloatingUnitWithPercentPrice, Orb::Models::NewFloatingMatrixWithAllocationPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::MatrixWithThresholdDiscounts, Orb::Models::NewFloatingTieredWithProrationPrice, Orb::Models::NewFloatingUnitWithProrationPrice, Orb::Models::NewFloatingGroupedAllocationPrice, Orb::Models::NewFloatingBulkWithProrationPrice, Orb::Models::NewFloatingGroupedWithProratedMinimumPrice, Orb::Models::NewFloatingGroupedWithMeteredMinimumPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::GroupedWithMinMaxThresholds, Orb::Models::NewFloatingMatrixWithDisplayNamePrice, Orb::Models::NewFloatingGroupedTieredPackagePrice, Orb::Models::NewFloatingMaxGroupTieredPackagePrice, Orb::Models::NewFloatingScalableMatrixWithUnitPricingPrice, Orb::Models::NewFloatingScalableMatrixWithTieredPricingPrice, Orb::Models::NewFloatingCumulativeGroupedBulkPrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::CumulativeGroupedAllocation, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::DailyCreditAllowance, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::MeteredAllowance, Orb::Models::NewFloatingMinimumCompositePrice, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::Percent, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::EventOutput)]
2141
2393
  end
2142
2394
  end
2143
2395
  end