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
@@ -11,6 +11,7 @@ module Orb
11
11
  | Orb::Price::TieredPackage
12
12
  | Orb::Price::TieredWithMinimum
13
13
  | Orb::Price::GroupedTiered
14
+ | Orb::Price::GroupedTieredMatrix
14
15
  | Orb::Price::TieredPackageWithMinimum
15
16
  | Orb::Price::PackageWithAllocation
16
17
  | Orb::Price::UnitWithPercent
@@ -2974,6 +2975,332 @@ module Orb
2974
2975
  end
2975
2976
  end
2976
2977
 
2978
+ type grouped_tiered_matrix =
2979
+ {
2980
+ id: String,
2981
+ billable_metric: Orb::BillableMetricTiny?,
2982
+ billing_cycle_configuration: Orb::BillingCycleConfiguration,
2983
+ billing_mode: Orb::Models::Price::GroupedTieredMatrix::billing_mode,
2984
+ cadence: Orb::Models::Price::GroupedTieredMatrix::cadence,
2985
+ composite_price_filters: ::Array[Orb::Price::GroupedTieredMatrix::CompositePriceFilter]?,
2986
+ conversion_rate: Float?,
2987
+ conversion_rate_config: Orb::Models::conversion_rate_config?,
2988
+ created_at: Time,
2989
+ credit_allocation: Orb::Allocation?,
2990
+ currency: String,
2991
+ discount: Orb::Models::discount?,
2992
+ external_price_id: String?,
2993
+ fixed_price_quantity: Float?,
2994
+ grouped_tiered_matrix_config: Orb::Price::GroupedTieredMatrix::GroupedTieredMatrixConfig,
2995
+ invoice_grouping_key: String?,
2996
+ invoicing_cycle_configuration: Orb::BillingCycleConfiguration?,
2997
+ item: Orb::ItemSlim,
2998
+ maximum: Orb::Maximum?,
2999
+ maximum_amount: String?,
3000
+ metadata: ::Hash[Symbol, String],
3001
+ minimum: Orb::Minimum?,
3002
+ minimum_amount: String?,
3003
+ model_type: :grouped_tiered_matrix,
3004
+ name: String,
3005
+ plan_phase_order: Integer?,
3006
+ price_type: Orb::Models::Price::GroupedTieredMatrix::price_type,
3007
+ replaces_price_id: String?,
3008
+ dimensional_price_configuration: Orb::DimensionalPriceConfiguration?,
3009
+ license_type: Orb::Price::GroupedTieredMatrix::LicenseType?
3010
+ }
3011
+
3012
+ class GroupedTieredMatrix < Orb::Internal::Type::BaseModel
3013
+ attr_accessor id: String
3014
+
3015
+ attr_accessor billable_metric: Orb::BillableMetricTiny?
3016
+
3017
+ attr_accessor billing_cycle_configuration: Orb::BillingCycleConfiguration
3018
+
3019
+ attr_accessor billing_mode: Orb::Models::Price::GroupedTieredMatrix::billing_mode
3020
+
3021
+ attr_accessor cadence: Orb::Models::Price::GroupedTieredMatrix::cadence
3022
+
3023
+ attr_accessor composite_price_filters: ::Array[Orb::Price::GroupedTieredMatrix::CompositePriceFilter]?
3024
+
3025
+ attr_accessor conversion_rate: Float?
3026
+
3027
+ attr_accessor conversion_rate_config: Orb::Models::conversion_rate_config?
3028
+
3029
+ attr_accessor created_at: Time
3030
+
3031
+ attr_accessor credit_allocation: Orb::Allocation?
3032
+
3033
+ attr_accessor currency: String
3034
+
3035
+ attr_accessor discount: Orb::Models::discount?
3036
+
3037
+ attr_accessor external_price_id: String?
3038
+
3039
+ attr_accessor fixed_price_quantity: Float?
3040
+
3041
+ attr_accessor grouped_tiered_matrix_config: Orb::Price::GroupedTieredMatrix::GroupedTieredMatrixConfig
3042
+
3043
+ attr_accessor invoice_grouping_key: String?
3044
+
3045
+ attr_accessor invoicing_cycle_configuration: Orb::BillingCycleConfiguration?
3046
+
3047
+ attr_accessor item: Orb::ItemSlim
3048
+
3049
+ attr_accessor maximum: Orb::Maximum?
3050
+
3051
+ attr_accessor maximum_amount: String?
3052
+
3053
+ attr_accessor metadata: ::Hash[Symbol, String]
3054
+
3055
+ attr_accessor minimum: Orb::Minimum?
3056
+
3057
+ attr_accessor minimum_amount: String?
3058
+
3059
+ attr_accessor model_type: :grouped_tiered_matrix
3060
+
3061
+ attr_accessor name: String
3062
+
3063
+ attr_accessor plan_phase_order: Integer?
3064
+
3065
+ attr_accessor price_type: Orb::Models::Price::GroupedTieredMatrix::price_type
3066
+
3067
+ attr_accessor replaces_price_id: String?
3068
+
3069
+ attr_accessor dimensional_price_configuration: Orb::DimensionalPriceConfiguration?
3070
+
3071
+ attr_accessor license_type: Orb::Price::GroupedTieredMatrix::LicenseType?
3072
+
3073
+ def initialize: (
3074
+ id: String,
3075
+ billable_metric: Orb::BillableMetricTiny?,
3076
+ billing_cycle_configuration: Orb::BillingCycleConfiguration,
3077
+ billing_mode: Orb::Models::Price::GroupedTieredMatrix::billing_mode,
3078
+ cadence: Orb::Models::Price::GroupedTieredMatrix::cadence,
3079
+ composite_price_filters: ::Array[Orb::Price::GroupedTieredMatrix::CompositePriceFilter]?,
3080
+ conversion_rate: Float?,
3081
+ conversion_rate_config: Orb::Models::conversion_rate_config?,
3082
+ created_at: Time,
3083
+ credit_allocation: Orb::Allocation?,
3084
+ currency: String,
3085
+ discount: Orb::Models::discount?,
3086
+ external_price_id: String?,
3087
+ fixed_price_quantity: Float?,
3088
+ grouped_tiered_matrix_config: Orb::Price::GroupedTieredMatrix::GroupedTieredMatrixConfig,
3089
+ invoice_grouping_key: String?,
3090
+ invoicing_cycle_configuration: Orb::BillingCycleConfiguration?,
3091
+ item: Orb::ItemSlim,
3092
+ maximum: Orb::Maximum?,
3093
+ maximum_amount: String?,
3094
+ metadata: ::Hash[Symbol, String],
3095
+ minimum: Orb::Minimum?,
3096
+ minimum_amount: String?,
3097
+ name: String,
3098
+ plan_phase_order: Integer?,
3099
+ price_type: Orb::Models::Price::GroupedTieredMatrix::price_type,
3100
+ replaces_price_id: String?,
3101
+ ?dimensional_price_configuration: Orb::DimensionalPriceConfiguration?,
3102
+ ?license_type: Orb::Price::GroupedTieredMatrix::LicenseType?,
3103
+ ?model_type: :grouped_tiered_matrix
3104
+ ) -> void
3105
+
3106
+ def to_hash: -> {
3107
+ id: String,
3108
+ billable_metric: Orb::BillableMetricTiny?,
3109
+ billing_cycle_configuration: Orb::BillingCycleConfiguration,
3110
+ billing_mode: Orb::Models::Price::GroupedTieredMatrix::billing_mode,
3111
+ cadence: Orb::Models::Price::GroupedTieredMatrix::cadence,
3112
+ composite_price_filters: ::Array[Orb::Price::GroupedTieredMatrix::CompositePriceFilter]?,
3113
+ conversion_rate: Float?,
3114
+ conversion_rate_config: Orb::Models::conversion_rate_config?,
3115
+ created_at: Time,
3116
+ credit_allocation: Orb::Allocation?,
3117
+ currency: String,
3118
+ discount: Orb::Models::discount?,
3119
+ external_price_id: String?,
3120
+ fixed_price_quantity: Float?,
3121
+ grouped_tiered_matrix_config: Orb::Price::GroupedTieredMatrix::GroupedTieredMatrixConfig,
3122
+ invoice_grouping_key: String?,
3123
+ invoicing_cycle_configuration: Orb::BillingCycleConfiguration?,
3124
+ item: Orb::ItemSlim,
3125
+ maximum: Orb::Maximum?,
3126
+ maximum_amount: String?,
3127
+ metadata: ::Hash[Symbol, String],
3128
+ minimum: Orb::Minimum?,
3129
+ minimum_amount: String?,
3130
+ model_type: :grouped_tiered_matrix,
3131
+ name: String,
3132
+ plan_phase_order: Integer?,
3133
+ price_type: Orb::Models::Price::GroupedTieredMatrix::price_type,
3134
+ replaces_price_id: String?,
3135
+ dimensional_price_configuration: Orb::DimensionalPriceConfiguration?,
3136
+ license_type: Orb::Price::GroupedTieredMatrix::LicenseType?
3137
+ }
3138
+
3139
+ type billing_mode = :in_advance | :in_arrear
3140
+
3141
+ module BillingMode
3142
+ extend Orb::Internal::Type::Enum
3143
+
3144
+ IN_ADVANCE: :in_advance
3145
+ IN_ARREAR: :in_arrear
3146
+
3147
+ def self?.values: -> ::Array[Orb::Models::Price::GroupedTieredMatrix::billing_mode]
3148
+ end
3149
+
3150
+ type cadence =
3151
+ :one_time | :monthly | :quarterly | :semi_annual | :annual | :custom
3152
+
3153
+ module Cadence
3154
+ extend Orb::Internal::Type::Enum
3155
+
3156
+ ONE_TIME: :one_time
3157
+ MONTHLY: :monthly
3158
+ QUARTERLY: :quarterly
3159
+ SEMI_ANNUAL: :semi_annual
3160
+ ANNUAL: :annual
3161
+ CUSTOM: :custom
3162
+
3163
+ def self?.values: -> ::Array[Orb::Models::Price::GroupedTieredMatrix::cadence]
3164
+ end
3165
+
3166
+ type composite_price_filter =
3167
+ {
3168
+ field: Orb::Models::Price::GroupedTieredMatrix::CompositePriceFilter::field,
3169
+ operator: Orb::Models::Price::GroupedTieredMatrix::CompositePriceFilter::operator,
3170
+ values: ::Array[String]
3171
+ }
3172
+
3173
+ class CompositePriceFilter < Orb::Internal::Type::BaseModel
3174
+ attr_accessor field: Orb::Models::Price::GroupedTieredMatrix::CompositePriceFilter::field
3175
+
3176
+ attr_accessor operator: Orb::Models::Price::GroupedTieredMatrix::CompositePriceFilter::operator
3177
+
3178
+ attr_accessor values: ::Array[String]
3179
+
3180
+ def initialize: (
3181
+ field: Orb::Models::Price::GroupedTieredMatrix::CompositePriceFilter::field,
3182
+ operator: Orb::Models::Price::GroupedTieredMatrix::CompositePriceFilter::operator,
3183
+ values: ::Array[String]
3184
+ ) -> void
3185
+
3186
+ def to_hash: -> {
3187
+ field: Orb::Models::Price::GroupedTieredMatrix::CompositePriceFilter::field,
3188
+ operator: Orb::Models::Price::GroupedTieredMatrix::CompositePriceFilter::operator,
3189
+ values: ::Array[String]
3190
+ }
3191
+
3192
+ type field =
3193
+ :price_id | :item_id | :price_type | :currency | :pricing_unit_id
3194
+
3195
+ module Field
3196
+ extend Orb::Internal::Type::Enum
3197
+
3198
+ PRICE_ID: :price_id
3199
+ ITEM_ID: :item_id
3200
+ PRICE_TYPE: :price_type
3201
+ CURRENCY: :currency
3202
+ PRICING_UNIT_ID: :pricing_unit_id
3203
+
3204
+ def self?.values: -> ::Array[Orb::Models::Price::GroupedTieredMatrix::CompositePriceFilter::field]
3205
+ end
3206
+
3207
+ type operator = :includes | :excludes
3208
+
3209
+ module Operator
3210
+ extend Orb::Internal::Type::Enum
3211
+
3212
+ INCLUDES: :includes
3213
+ EXCLUDES: :excludes
3214
+
3215
+ def self?.values: -> ::Array[Orb::Models::Price::GroupedTieredMatrix::CompositePriceFilter::operator]
3216
+ end
3217
+ end
3218
+
3219
+ type grouped_tiered_matrix_config =
3220
+ {
3221
+ default_unit_amount: String,
3222
+ dimension: String,
3223
+ tiers: ::Array[Orb::Price::GroupedTieredMatrix::GroupedTieredMatrixConfig::Tier]
3224
+ }
3225
+
3226
+ class GroupedTieredMatrixConfig < Orb::Internal::Type::BaseModel
3227
+ attr_accessor default_unit_amount: String
3228
+
3229
+ attr_accessor dimension: String
3230
+
3231
+ attr_accessor tiers: ::Array[Orb::Price::GroupedTieredMatrix::GroupedTieredMatrixConfig::Tier]
3232
+
3233
+ def initialize: (
3234
+ default_unit_amount: String,
3235
+ dimension: String,
3236
+ tiers: ::Array[Orb::Price::GroupedTieredMatrix::GroupedTieredMatrixConfig::Tier]
3237
+ ) -> void
3238
+
3239
+ def to_hash: -> {
3240
+ default_unit_amount: String,
3241
+ dimension: String,
3242
+ tiers: ::Array[Orb::Price::GroupedTieredMatrix::GroupedTieredMatrixConfig::Tier]
3243
+ }
3244
+
3245
+ type tier =
3246
+ {
3247
+ dimension_value: String,
3248
+ tier_lower_bound: String,
3249
+ unit_amount: String
3250
+ }
3251
+
3252
+ class Tier < Orb::Internal::Type::BaseModel
3253
+ attr_accessor dimension_value: String
3254
+
3255
+ attr_accessor tier_lower_bound: String
3256
+
3257
+ attr_accessor unit_amount: String
3258
+
3259
+ def initialize: (
3260
+ dimension_value: String,
3261
+ tier_lower_bound: String,
3262
+ unit_amount: String
3263
+ ) -> void
3264
+
3265
+ def to_hash: -> {
3266
+ dimension_value: String,
3267
+ tier_lower_bound: String,
3268
+ unit_amount: String
3269
+ }
3270
+ end
3271
+ end
3272
+
3273
+ type price_type = :usage_price | :fixed_price | :composite_price
3274
+
3275
+ module PriceType
3276
+ extend Orb::Internal::Type::Enum
3277
+
3278
+ USAGE_PRICE: :usage_price
3279
+ FIXED_PRICE: :fixed_price
3280
+ COMPOSITE_PRICE: :composite_price
3281
+
3282
+ def self?.values: -> ::Array[Orb::Models::Price::GroupedTieredMatrix::price_type]
3283
+ end
3284
+
3285
+ type license_type = { id: String, grouping_key: String, name: String }
3286
+
3287
+ class LicenseType < Orb::Internal::Type::BaseModel
3288
+ attr_accessor id: String
3289
+
3290
+ attr_accessor grouping_key: String
3291
+
3292
+ attr_accessor name: String
3293
+
3294
+ def initialize: (
3295
+ id: String,
3296
+ grouping_key: String,
3297
+ name: String
3298
+ ) -> void
3299
+
3300
+ def to_hash: -> { id: String, grouping_key: String, name: String }
3301
+ end
3302
+ end
3303
+
2977
3304
  type tiered_package_with_minimum =
2978
3305
  {
2979
3306
  id: String,
@@ -31,6 +31,7 @@ module Orb
31
31
  | Orb::NewFloatingTieredPackagePrice
32
32
  | Orb::NewFloatingTieredWithMinimumPrice
33
33
  | Orb::NewFloatingGroupedTieredPrice
34
+ | Orb::PriceCreateParams::Body::GroupedTieredMatrix
34
35
  | Orb::NewFloatingTieredPackageWithMinimumPrice
35
36
  | Orb::NewFloatingPackageWithAllocationPrice
36
37
  | Orb::NewFloatingUnitWithPercentPrice
@@ -229,6 +230,178 @@ module Orb
229
230
  end
230
231
  end
231
232
 
233
+ type grouped_tiered_matrix =
234
+ {
235
+ cadence: Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix::cadence,
236
+ currency: String,
237
+ grouped_tiered_matrix_config: Orb::PriceCreateParams::Body::GroupedTieredMatrix::GroupedTieredMatrixConfig,
238
+ item_id: String,
239
+ model_type: :grouped_tiered_matrix,
240
+ name: String,
241
+ billable_metric_id: String?,
242
+ billed_in_advance: bool?,
243
+ billing_cycle_configuration: Orb::NewBillingCycleConfiguration?,
244
+ conversion_rate: Float?,
245
+ conversion_rate_config: Orb::Models::conversion_rate_config?,
246
+ dimensional_price_configuration: Orb::NewDimensionalPriceConfiguration?,
247
+ external_price_id: String?,
248
+ fixed_price_quantity: Float?,
249
+ invoice_grouping_key: String?,
250
+ invoicing_cycle_configuration: Orb::NewBillingCycleConfiguration?,
251
+ license_type_id: String?,
252
+ metadata: ::Hash[Symbol, String?]?
253
+ }
254
+
255
+ class GroupedTieredMatrix < Orb::Internal::Type::BaseModel
256
+ attr_accessor cadence: Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix::cadence
257
+
258
+ attr_accessor currency: String
259
+
260
+ attr_accessor grouped_tiered_matrix_config: Orb::PriceCreateParams::Body::GroupedTieredMatrix::GroupedTieredMatrixConfig
261
+
262
+ attr_accessor item_id: String
263
+
264
+ attr_accessor model_type: :grouped_tiered_matrix
265
+
266
+ attr_accessor name: String
267
+
268
+ attr_accessor billable_metric_id: String?
269
+
270
+ attr_accessor billed_in_advance: bool?
271
+
272
+ attr_accessor billing_cycle_configuration: Orb::NewBillingCycleConfiguration?
273
+
274
+ attr_accessor conversion_rate: Float?
275
+
276
+ attr_accessor conversion_rate_config: Orb::Models::conversion_rate_config?
277
+
278
+ attr_accessor dimensional_price_configuration: Orb::NewDimensionalPriceConfiguration?
279
+
280
+ attr_accessor external_price_id: String?
281
+
282
+ attr_accessor fixed_price_quantity: Float?
283
+
284
+ attr_accessor invoice_grouping_key: String?
285
+
286
+ attr_accessor invoicing_cycle_configuration: Orb::NewBillingCycleConfiguration?
287
+
288
+ attr_accessor license_type_id: String?
289
+
290
+ attr_accessor metadata: ::Hash[Symbol, String?]?
291
+
292
+ def initialize: (
293
+ cadence: Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix::cadence,
294
+ currency: String,
295
+ grouped_tiered_matrix_config: Orb::PriceCreateParams::Body::GroupedTieredMatrix::GroupedTieredMatrixConfig,
296
+ item_id: String,
297
+ name: String,
298
+ ?billable_metric_id: String?,
299
+ ?billed_in_advance: bool?,
300
+ ?billing_cycle_configuration: Orb::NewBillingCycleConfiguration?,
301
+ ?conversion_rate: Float?,
302
+ ?conversion_rate_config: Orb::Models::conversion_rate_config?,
303
+ ?dimensional_price_configuration: Orb::NewDimensionalPriceConfiguration?,
304
+ ?external_price_id: String?,
305
+ ?fixed_price_quantity: Float?,
306
+ ?invoice_grouping_key: String?,
307
+ ?invoicing_cycle_configuration: Orb::NewBillingCycleConfiguration?,
308
+ ?license_type_id: String?,
309
+ ?metadata: ::Hash[Symbol, String?]?,
310
+ ?model_type: :grouped_tiered_matrix
311
+ ) -> void
312
+
313
+ def to_hash: -> {
314
+ cadence: Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix::cadence,
315
+ currency: String,
316
+ grouped_tiered_matrix_config: Orb::PriceCreateParams::Body::GroupedTieredMatrix::GroupedTieredMatrixConfig,
317
+ item_id: String,
318
+ model_type: :grouped_tiered_matrix,
319
+ name: String,
320
+ billable_metric_id: String?,
321
+ billed_in_advance: bool?,
322
+ billing_cycle_configuration: Orb::NewBillingCycleConfiguration?,
323
+ conversion_rate: Float?,
324
+ conversion_rate_config: Orb::Models::conversion_rate_config?,
325
+ dimensional_price_configuration: Orb::NewDimensionalPriceConfiguration?,
326
+ external_price_id: String?,
327
+ fixed_price_quantity: Float?,
328
+ invoice_grouping_key: String?,
329
+ invoicing_cycle_configuration: Orb::NewBillingCycleConfiguration?,
330
+ license_type_id: String?,
331
+ metadata: ::Hash[Symbol, String?]?
332
+ }
333
+
334
+ type cadence =
335
+ :annual | :semi_annual | :monthly | :quarterly | :one_time | :custom
336
+
337
+ module Cadence
338
+ extend Orb::Internal::Type::Enum
339
+
340
+ ANNUAL: :annual
341
+ SEMI_ANNUAL: :semi_annual
342
+ MONTHLY: :monthly
343
+ QUARTERLY: :quarterly
344
+ ONE_TIME: :one_time
345
+ CUSTOM: :custom
346
+
347
+ def self?.values: -> ::Array[Orb::Models::PriceCreateParams::Body::GroupedTieredMatrix::cadence]
348
+ end
349
+
350
+ type grouped_tiered_matrix_config =
351
+ {
352
+ default_unit_amount: String,
353
+ dimension: String,
354
+ tiers: ::Array[Orb::PriceCreateParams::Body::GroupedTieredMatrix::GroupedTieredMatrixConfig::Tier]
355
+ }
356
+
357
+ class GroupedTieredMatrixConfig < Orb::Internal::Type::BaseModel
358
+ attr_accessor default_unit_amount: String
359
+
360
+ attr_accessor dimension: String
361
+
362
+ attr_accessor tiers: ::Array[Orb::PriceCreateParams::Body::GroupedTieredMatrix::GroupedTieredMatrixConfig::Tier]
363
+
364
+ def initialize: (
365
+ default_unit_amount: String,
366
+ dimension: String,
367
+ tiers: ::Array[Orb::PriceCreateParams::Body::GroupedTieredMatrix::GroupedTieredMatrixConfig::Tier]
368
+ ) -> void
369
+
370
+ def to_hash: -> {
371
+ default_unit_amount: String,
372
+ dimension: String,
373
+ tiers: ::Array[Orb::PriceCreateParams::Body::GroupedTieredMatrix::GroupedTieredMatrixConfig::Tier]
374
+ }
375
+
376
+ type tier =
377
+ {
378
+ dimension_value: String,
379
+ tier_lower_bound: String,
380
+ unit_amount: String
381
+ }
382
+
383
+ class Tier < Orb::Internal::Type::BaseModel
384
+ attr_accessor dimension_value: String
385
+
386
+ attr_accessor tier_lower_bound: String
387
+
388
+ attr_accessor unit_amount: String
389
+
390
+ def initialize: (
391
+ dimension_value: String,
392
+ tier_lower_bound: String,
393
+ unit_amount: String
394
+ ) -> void
395
+
396
+ def to_hash: -> {
397
+ dimension_value: String,
398
+ tier_lower_bound: String,
399
+ unit_amount: String
400
+ }
401
+ end
402
+ end
403
+ end
404
+
232
405
  type matrix_with_threshold_discounts =
233
406
  {
234
407
  cadence: Orb::Models::PriceCreateParams::Body::MatrixWithThresholdDiscounts::cadence,