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
@@ -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::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]
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::TieredMatrixWithAllocation, 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::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.
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::TieredMatrixWithAllocation, 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
 
@@ -54,6 +54,8 @@ module Orb
54
54
 
55
55
  variant :matrix_with_allocation, -> { Orb::NewFloatingMatrixWithAllocationPrice }
56
56
 
57
+ variant :tiered_matrix_with_allocation, -> { Orb::PriceCreateParams::Body::TieredMatrixWithAllocation }
58
+
57
59
  variant :matrix_with_threshold_discounts,
58
60
  -> { Orb::PriceCreateParams::Body::MatrixWithThresholdDiscounts }
59
61
 
@@ -583,6 +585,264 @@ module Orb
583
585
  end
584
586
  end
585
587
 
588
+ class TieredMatrixWithAllocation < Orb::Internal::Type::BaseModel
589
+ # @!attribute cadence
590
+ # The cadence to bill for this price on.
591
+ #
592
+ # @return [Symbol, Orb::Models::PriceCreateParams::Body::TieredMatrixWithAllocation::Cadence]
593
+ required :cadence, enum: -> { Orb::PriceCreateParams::Body::TieredMatrixWithAllocation::Cadence }
594
+
595
+ # @!attribute currency
596
+ # An ISO 4217 currency string for which this price is billed in.
597
+ #
598
+ # @return [String]
599
+ required :currency, String
600
+
601
+ # @!attribute item_id
602
+ # The id of the item the price will be associated with.
603
+ #
604
+ # @return [String]
605
+ required :item_id, String
606
+
607
+ # @!attribute model_type
608
+ # The pricing model type
609
+ #
610
+ # @return [Symbol, :tiered_matrix_with_allocation]
611
+ required :model_type, const: :tiered_matrix_with_allocation
612
+
613
+ # @!attribute name
614
+ # The name of the price.
615
+ #
616
+ # @return [String]
617
+ required :name, String
618
+
619
+ # @!attribute tiered_matrix_with_allocation_config
620
+ # Configuration for tiered_matrix_with_allocation pricing
621
+ #
622
+ # @return [Orb::Models::PriceCreateParams::Body::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig]
623
+ required :tiered_matrix_with_allocation_config,
624
+ -> { Orb::PriceCreateParams::Body::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig }
625
+
626
+ # @!attribute billable_metric_id
627
+ # The id of the billable metric for the price. Only needed if the price is
628
+ # usage-based.
629
+ #
630
+ # @return [String, nil]
631
+ optional :billable_metric_id, String, nil?: true
632
+
633
+ # @!attribute billed_in_advance
634
+ # If the Price represents a fixed cost, the price will be billed in-advance if
635
+ # this is true, and in-arrears if this is false.
636
+ #
637
+ # @return [Boolean, nil]
638
+ optional :billed_in_advance, Orb::Internal::Type::Boolean, nil?: true
639
+
640
+ # @!attribute billing_cycle_configuration
641
+ # For custom cadence: specifies the duration of the billing period in days or
642
+ # months.
643
+ #
644
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
645
+ optional :billing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
646
+
647
+ # @!attribute conversion_rate
648
+ # The per unit conversion rate of the price currency to the invoicing currency.
649
+ #
650
+ # @return [Float, nil]
651
+ optional :conversion_rate, Float, nil?: true
652
+
653
+ # @!attribute conversion_rate_config
654
+ # The configuration for the rate of the price currency to the invoicing currency.
655
+ #
656
+ # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
657
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
658
+
659
+ # @!attribute dimensional_price_configuration
660
+ # For dimensional price: specifies a price group and dimension values
661
+ #
662
+ # @return [Orb::Models::NewDimensionalPriceConfiguration, nil]
663
+ optional :dimensional_price_configuration, -> { Orb::NewDimensionalPriceConfiguration }, nil?: true
664
+
665
+ # @!attribute external_price_id
666
+ # An alias for the price.
667
+ #
668
+ # @return [String, nil]
669
+ optional :external_price_id, String, nil?: true
670
+
671
+ # @!attribute fixed_price_quantity
672
+ # If the Price represents a fixed cost, this represents the quantity of units
673
+ # applied.
674
+ #
675
+ # @return [Float, nil]
676
+ optional :fixed_price_quantity, Float, nil?: true
677
+
678
+ # @!attribute invoice_grouping_key
679
+ # The property used to group this price on an invoice
680
+ #
681
+ # @return [String, nil]
682
+ optional :invoice_grouping_key, String, nil?: true
683
+
684
+ # @!attribute invoicing_cycle_configuration
685
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
686
+ # If unspecified, a single invoice is produced per billing cycle.
687
+ #
688
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
689
+ optional :invoicing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
690
+
691
+ # @!attribute license_type_id
692
+ # The ID of the license type to associate with this price. On a usage price this
693
+ # also marks the price as eligible to draw down from that license type's
694
+ # allocation; a usage price created without it is billed normally. Usage prices
695
+ # with a license type must use the `unit` model, and only draw down when their
696
+ # currency matches the allocation's.
697
+ #
698
+ # @return [String, nil]
699
+ optional :license_type_id, String, nil?: true
700
+
701
+ # @!attribute metadata
702
+ # User-specified key/value pairs for the resource. Individual keys can be removed
703
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
704
+ # by setting `metadata` to `null`.
705
+ #
706
+ # @return [Hash{Symbol=>String, nil}, nil]
707
+ optional :metadata, Orb::Internal::Type::HashOf[String, nil?: true], nil?: true
708
+
709
+ # @!method initialize(cadence:, currency:, 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, 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: :tiered_matrix_with_allocation)
710
+ # Some parameter documentations has been truncated, see
711
+ # {Orb::Models::PriceCreateParams::Body::TieredMatrixWithAllocation} for more
712
+ # details.
713
+ #
714
+ # @param cadence [Symbol, Orb::Models::PriceCreateParams::Body::TieredMatrixWithAllocation::Cadence] The cadence to bill for this price on.
715
+ #
716
+ # @param currency [String] An ISO 4217 currency string for which this price is billed in.
717
+ #
718
+ # @param item_id [String] The id of the item the price will be associated with.
719
+ #
720
+ # @param name [String] The name of the price.
721
+ #
722
+ # @param tiered_matrix_with_allocation_config [Orb::Models::PriceCreateParams::Body::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig] Configuration for tiered_matrix_with_allocation pricing
723
+ #
724
+ # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
725
+ #
726
+ # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
727
+ #
728
+ # @param billing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] For custom cadence: specifies the duration of the billing period in days or mont
729
+ #
730
+ # @param conversion_rate [Float, nil] The per unit conversion rate of the price currency to the invoicing currency.
731
+ #
732
+ # @param conversion_rate_config [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil] The configuration for the rate of the price currency to the invoicing currency.
733
+ #
734
+ # @param dimensional_price_configuration [Orb::Models::NewDimensionalPriceConfiguration, nil] For dimensional price: specifies a price group and dimension values
735
+ #
736
+ # @param external_price_id [String, nil] An alias for the price.
737
+ #
738
+ # @param fixed_price_quantity [Float, nil] If the Price represents a fixed cost, this represents the quantity of units appl
739
+ #
740
+ # @param invoice_grouping_key [String, nil] The property used to group this price on an invoice
741
+ #
742
+ # @param invoicing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] Within each billing cycle, specifies the cadence at which invoices are produced.
743
+ #
744
+ # @param license_type_id [String, nil] The ID of the license type to associate with this price. On a usage price this a
745
+ #
746
+ # @param metadata [Hash{Symbol=>String, nil}, nil] User-specified key/value pairs for the resource. Individual keys can be removed
747
+ #
748
+ # @param model_type [Symbol, :tiered_matrix_with_allocation] The pricing model type
749
+
750
+ # The cadence to bill for this price on.
751
+ #
752
+ # @see Orb::Models::PriceCreateParams::Body::TieredMatrixWithAllocation#cadence
753
+ module Cadence
754
+ extend Orb::Internal::Type::Enum
755
+
756
+ ANNUAL = :annual
757
+ SEMI_ANNUAL = :semi_annual
758
+ MONTHLY = :monthly
759
+ QUARTERLY = :quarterly
760
+ ONE_TIME = :one_time
761
+ CUSTOM = :custom
762
+
763
+ # @!method self.values
764
+ # @return [Array<Symbol>]
765
+ end
766
+
767
+ # @see Orb::Models::PriceCreateParams::Body::TieredMatrixWithAllocation#tiered_matrix_with_allocation_config
768
+ class TieredMatrixWithAllocationConfig < Orb::Internal::Type::BaseModel
769
+ # @!attribute allocation
770
+ # Usage allocation, pooled across all matrix cells
771
+ #
772
+ # @return [String]
773
+ required :allocation, String
774
+
775
+ # @!attribute default_unit_amount
776
+ # Per unit rate for usage whose matrix cell has no configured tiers
777
+ #
778
+ # @return [String]
779
+ required :default_unit_amount, String
780
+
781
+ # @!attribute dimensions
782
+ # One or two event property values to evaluate matrix cells by
783
+ #
784
+ # @return [Array<String>]
785
+ required :dimensions, Orb::Internal::Type::ArrayOf[String]
786
+
787
+ # @!attribute tiers
788
+ # Graduated tiers keyed by matrix cell; usage in a cell is tiered only against its
789
+ # own rows
790
+ #
791
+ # @return [Array<Orb::Models::PriceCreateParams::Body::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig::Tier>]
792
+ required :tiers,
793
+ -> { Orb::Internal::Type::ArrayOf[Orb::PriceCreateParams::Body::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig::Tier] }
794
+
795
+ # @!method initialize(allocation:, default_unit_amount:, dimensions:, tiers:)
796
+ # Some parameter documentations has been truncated, see
797
+ # {Orb::Models::PriceCreateParams::Body::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig}
798
+ # for more details.
799
+ #
800
+ # Configuration for tiered_matrix_with_allocation pricing
801
+ #
802
+ # @param allocation [String] Usage allocation, pooled across all matrix cells
803
+ #
804
+ # @param default_unit_amount [String] Per unit rate for usage whose matrix cell has no configured tiers
805
+ #
806
+ # @param dimensions [Array<String>] One or two event property values to evaluate matrix cells by
807
+ #
808
+ # @param tiers [Array<Orb::Models::PriceCreateParams::Body::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig::Tier>] Graduated tiers keyed by matrix cell; usage in a cell is tiered only against its
809
+
810
+ class Tier < Orb::Internal::Type::BaseModel
811
+ # @!attribute dimension_values
812
+ # The matrix cell this tier applies to, as one or two dimension values
813
+ #
814
+ # @return [Array<String>]
815
+ required :dimension_values, Orb::Internal::Type::ArrayOf[String]
816
+
817
+ # @!attribute tier_lower_bound
818
+ # Exclusive tier starting value. The tier runs up to and including the next bound
819
+ # configured for the same matrix cell.
820
+ #
821
+ # @return [String]
822
+ required :tier_lower_bound, String
823
+
824
+ # @!attribute unit_amount
825
+ # Per unit amount
826
+ #
827
+ # @return [String]
828
+ required :unit_amount, String
829
+
830
+ # @!method initialize(dimension_values:, tier_lower_bound:, unit_amount:)
831
+ # Some parameter documentations has been truncated, see
832
+ # {Orb::Models::PriceCreateParams::Body::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig::Tier}
833
+ # for more details.
834
+ #
835
+ # Configuration for a single tier scoped to one matrix cell
836
+ #
837
+ # @param dimension_values [Array<String>] The matrix cell this tier applies to, as one or two dimension values
838
+ #
839
+ # @param tier_lower_bound [String] Exclusive tier starting value. The tier runs up to and including the next bound
840
+ #
841
+ # @param unit_amount [String] Per unit amount
842
+ end
843
+ end
844
+ end
845
+
586
846
  class MatrixWithThresholdDiscounts < Orb::Internal::Type::BaseModel
587
847
  # @!attribute cadence
588
848
  # The cadence to bill for this price on.
@@ -2263,7 +2523,7 @@ module Orb
2263
2523
  end
2264
2524
 
2265
2525
  # @!method self.variants
2266
- # @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)]
2526
+ # @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::TieredMatrixWithAllocation, 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)]
2267
2527
  end
2268
2528
  end
2269
2529
  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::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]
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::TieredMatrixWithAllocation, 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::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.
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::TieredMatrixWithAllocation, 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
 
@@ -151,6 +151,9 @@ module Orb
151
151
 
152
152
  variant :matrix_with_allocation, -> { Orb::NewFloatingMatrixWithAllocationPrice }
153
153
 
154
+ variant :tiered_matrix_with_allocation,
155
+ -> { Orb::PriceEvaluateMultipleParams::PriceEvaluation::Price::TieredMatrixWithAllocation }
156
+
154
157
  variant :matrix_with_threshold_discounts,
155
158
  -> { Orb::PriceEvaluateMultipleParams::PriceEvaluation::Price::MatrixWithThresholdDiscounts }
156
159
 
@@ -700,6 +703,273 @@ module Orb
700
703
  end
701
704
  end
702
705
 
706
+ class TieredMatrixWithAllocation < Orb::Internal::Type::BaseModel
707
+ # @!attribute cadence
708
+ # The cadence to bill for this price on.
709
+ #
710
+ # @return [Symbol, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::TieredMatrixWithAllocation::Cadence]
711
+ required :cadence,
712
+ enum: -> { Orb::PriceEvaluateMultipleParams::PriceEvaluation::Price::TieredMatrixWithAllocation::Cadence }
713
+
714
+ # @!attribute currency
715
+ # An ISO 4217 currency string for which this price is billed in.
716
+ #
717
+ # @return [String]
718
+ required :currency, String
719
+
720
+ # @!attribute item_id
721
+ # The id of the item the price will be associated with.
722
+ #
723
+ # @return [String]
724
+ required :item_id, String
725
+
726
+ # @!attribute model_type
727
+ # The pricing model type
728
+ #
729
+ # @return [Symbol, :tiered_matrix_with_allocation]
730
+ required :model_type, const: :tiered_matrix_with_allocation
731
+
732
+ # @!attribute name
733
+ # The name of the price.
734
+ #
735
+ # @return [String]
736
+ required :name, String
737
+
738
+ # @!attribute tiered_matrix_with_allocation_config
739
+ # Configuration for tiered_matrix_with_allocation pricing
740
+ #
741
+ # @return [Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig]
742
+ required :tiered_matrix_with_allocation_config,
743
+ -> { Orb::PriceEvaluateMultipleParams::PriceEvaluation::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig }
744
+
745
+ # @!attribute billable_metric_id
746
+ # The id of the billable metric for the price. Only needed if the price is
747
+ # usage-based.
748
+ #
749
+ # @return [String, nil]
750
+ optional :billable_metric_id, String, nil?: true
751
+
752
+ # @!attribute billed_in_advance
753
+ # If the Price represents a fixed cost, the price will be billed in-advance if
754
+ # this is true, and in-arrears if this is false.
755
+ #
756
+ # @return [Boolean, nil]
757
+ optional :billed_in_advance, Orb::Internal::Type::Boolean, nil?: true
758
+
759
+ # @!attribute billing_cycle_configuration
760
+ # For custom cadence: specifies the duration of the billing period in days or
761
+ # months.
762
+ #
763
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
764
+ optional :billing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
765
+
766
+ # @!attribute conversion_rate
767
+ # The per unit conversion rate of the price currency to the invoicing currency.
768
+ #
769
+ # @return [Float, nil]
770
+ optional :conversion_rate, Float, nil?: true
771
+
772
+ # @!attribute conversion_rate_config
773
+ # The configuration for the rate of the price currency to the invoicing currency.
774
+ #
775
+ # @return [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil]
776
+ optional :conversion_rate_config, union: -> { Orb::ConversionRateConfig }, nil?: true
777
+
778
+ # @!attribute dimensional_price_configuration
779
+ # For dimensional price: specifies a price group and dimension values
780
+ #
781
+ # @return [Orb::Models::NewDimensionalPriceConfiguration, nil]
782
+ optional :dimensional_price_configuration,
783
+ -> {
784
+ Orb::NewDimensionalPriceConfiguration
785
+ },
786
+ nil?: true
787
+
788
+ # @!attribute external_price_id
789
+ # An alias for the price.
790
+ #
791
+ # @return [String, nil]
792
+ optional :external_price_id, String, nil?: true
793
+
794
+ # @!attribute fixed_price_quantity
795
+ # If the Price represents a fixed cost, this represents the quantity of units
796
+ # applied.
797
+ #
798
+ # @return [Float, nil]
799
+ optional :fixed_price_quantity, Float, nil?: true
800
+
801
+ # @!attribute invoice_grouping_key
802
+ # The property used to group this price on an invoice
803
+ #
804
+ # @return [String, nil]
805
+ optional :invoice_grouping_key, String, nil?: true
806
+
807
+ # @!attribute invoicing_cycle_configuration
808
+ # Within each billing cycle, specifies the cadence at which invoices are produced.
809
+ # If unspecified, a single invoice is produced per billing cycle.
810
+ #
811
+ # @return [Orb::Models::NewBillingCycleConfiguration, nil]
812
+ optional :invoicing_cycle_configuration, -> { Orb::NewBillingCycleConfiguration }, nil?: true
813
+
814
+ # @!attribute license_type_id
815
+ # The ID of the license type to associate with this price. On a usage price this
816
+ # also marks the price as eligible to draw down from that license type's
817
+ # allocation; a usage price created without it is billed normally. Usage prices
818
+ # with a license type must use the `unit` model, and only draw down when their
819
+ # currency matches the allocation's.
820
+ #
821
+ # @return [String, nil]
822
+ optional :license_type_id, String, nil?: true
823
+
824
+ # @!attribute metadata
825
+ # User-specified key/value pairs for the resource. Individual keys can be removed
826
+ # by setting the value to `null`, and the entire metadata mapping can be cleared
827
+ # by setting `metadata` to `null`.
828
+ #
829
+ # @return [Hash{Symbol=>String, nil}, nil]
830
+ optional :metadata, Orb::Internal::Type::HashOf[String, nil?: true], nil?: true
831
+
832
+ # @!method initialize(cadence:, currency:, 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, 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: :tiered_matrix_with_allocation)
833
+ # Some parameter documentations has been truncated, see
834
+ # {Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::TieredMatrixWithAllocation}
835
+ # for more details.
836
+ #
837
+ # @param cadence [Symbol, Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::TieredMatrixWithAllocation::Cadence] The cadence to bill for this price on.
838
+ #
839
+ # @param currency [String] An ISO 4217 currency string for which this price is billed in.
840
+ #
841
+ # @param item_id [String] The id of the item the price will be associated with.
842
+ #
843
+ # @param name [String] The name of the price.
844
+ #
845
+ # @param tiered_matrix_with_allocation_config [Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig] Configuration for tiered_matrix_with_allocation pricing
846
+ #
847
+ # @param billable_metric_id [String, nil] The id of the billable metric for the price. Only needed if the price is usage-b
848
+ #
849
+ # @param billed_in_advance [Boolean, nil] If the Price represents a fixed cost, the price will be billed in-advance if thi
850
+ #
851
+ # @param billing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] For custom cadence: specifies the duration of the billing period in days or mont
852
+ #
853
+ # @param conversion_rate [Float, nil] The per unit conversion rate of the price currency to the invoicing currency.
854
+ #
855
+ # @param conversion_rate_config [Orb::Models::UnitConversionRateConfig, Orb::Models::TieredConversionRateConfig, nil] The configuration for the rate of the price currency to the invoicing currency.
856
+ #
857
+ # @param dimensional_price_configuration [Orb::Models::NewDimensionalPriceConfiguration, nil] For dimensional price: specifies a price group and dimension values
858
+ #
859
+ # @param external_price_id [String, nil] An alias for the price.
860
+ #
861
+ # @param fixed_price_quantity [Float, nil] If the Price represents a fixed cost, this represents the quantity of units appl
862
+ #
863
+ # @param invoice_grouping_key [String, nil] The property used to group this price on an invoice
864
+ #
865
+ # @param invoicing_cycle_configuration [Orb::Models::NewBillingCycleConfiguration, nil] Within each billing cycle, specifies the cadence at which invoices are produced.
866
+ #
867
+ # @param license_type_id [String, nil] The ID of the license type to associate with this price. On a usage price this a
868
+ #
869
+ # @param metadata [Hash{Symbol=>String, nil}, nil] User-specified key/value pairs for the resource. Individual keys can be removed
870
+ #
871
+ # @param model_type [Symbol, :tiered_matrix_with_allocation] The pricing model type
872
+
873
+ # The cadence to bill for this price on.
874
+ #
875
+ # @see Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::TieredMatrixWithAllocation#cadence
876
+ module Cadence
877
+ extend Orb::Internal::Type::Enum
878
+
879
+ ANNUAL = :annual
880
+ SEMI_ANNUAL = :semi_annual
881
+ MONTHLY = :monthly
882
+ QUARTERLY = :quarterly
883
+ ONE_TIME = :one_time
884
+ CUSTOM = :custom
885
+
886
+ # @!method self.values
887
+ # @return [Array<Symbol>]
888
+ end
889
+
890
+ # @see Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::TieredMatrixWithAllocation#tiered_matrix_with_allocation_config
891
+ class TieredMatrixWithAllocationConfig < Orb::Internal::Type::BaseModel
892
+ # @!attribute allocation
893
+ # Usage allocation, pooled across all matrix cells
894
+ #
895
+ # @return [String]
896
+ required :allocation, String
897
+
898
+ # @!attribute default_unit_amount
899
+ # Per unit rate for usage whose matrix cell has no configured tiers
900
+ #
901
+ # @return [String]
902
+ required :default_unit_amount, String
903
+
904
+ # @!attribute dimensions
905
+ # One or two event property values to evaluate matrix cells by
906
+ #
907
+ # @return [Array<String>]
908
+ required :dimensions, Orb::Internal::Type::ArrayOf[String]
909
+
910
+ # @!attribute tiers
911
+ # Graduated tiers keyed by matrix cell; usage in a cell is tiered only against its
912
+ # own rows
913
+ #
914
+ # @return [Array<Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig::Tier>]
915
+ required :tiers,
916
+ -> do
917
+ Orb::Internal::Type::ArrayOf[
918
+ Orb::PriceEvaluateMultipleParams::PriceEvaluation::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig::Tier
919
+ ]
920
+ end
921
+
922
+ # @!method initialize(allocation:, default_unit_amount:, dimensions:, tiers:)
923
+ # Some parameter documentations has been truncated, see
924
+ # {Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig}
925
+ # for more details.
926
+ #
927
+ # Configuration for tiered_matrix_with_allocation pricing
928
+ #
929
+ # @param allocation [String] Usage allocation, pooled across all matrix cells
930
+ #
931
+ # @param default_unit_amount [String] Per unit rate for usage whose matrix cell has no configured tiers
932
+ #
933
+ # @param dimensions [Array<String>] One or two event property values to evaluate matrix cells by
934
+ #
935
+ # @param tiers [Array<Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig::Tier>] Graduated tiers keyed by matrix cell; usage in a cell is tiered only against its
936
+
937
+ class Tier < Orb::Internal::Type::BaseModel
938
+ # @!attribute dimension_values
939
+ # The matrix cell this tier applies to, as one or two dimension values
940
+ #
941
+ # @return [Array<String>]
942
+ required :dimension_values, Orb::Internal::Type::ArrayOf[String]
943
+
944
+ # @!attribute tier_lower_bound
945
+ # Exclusive tier starting value. The tier runs up to and including the next bound
946
+ # configured for the same matrix cell.
947
+ #
948
+ # @return [String]
949
+ required :tier_lower_bound, String
950
+
951
+ # @!attribute unit_amount
952
+ # Per unit amount
953
+ #
954
+ # @return [String]
955
+ required :unit_amount, String
956
+
957
+ # @!method initialize(dimension_values:, tier_lower_bound:, unit_amount:)
958
+ # Some parameter documentations has been truncated, see
959
+ # {Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation::Price::TieredMatrixWithAllocation::TieredMatrixWithAllocationConfig::Tier}
960
+ # for more details.
961
+ #
962
+ # Configuration for a single tier scoped to one matrix cell
963
+ #
964
+ # @param dimension_values [Array<String>] The matrix cell this tier applies to, as one or two dimension values
965
+ #
966
+ # @param tier_lower_bound [String] Exclusive tier starting value. The tier runs up to and including the next bound
967
+ #
968
+ # @param unit_amount [String] Per unit amount
969
+ end
970
+ end
971
+ end
972
+
703
973
  class MatrixWithThresholdDiscounts < Orb::Internal::Type::BaseModel
704
974
  # @!attribute cadence
705
975
  # The cadence to bill for this price on.
@@ -2425,7 +2695,7 @@ module Orb
2425
2695
  end
2426
2696
 
2427
2697
  # @!method self.variants
2428
- # @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)]
2698
+ # @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::TieredMatrixWithAllocation, 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)]
2429
2699
  end
2430
2700
  end
2431
2701
  end