orb-billing 1.10.0 → 1.11.1

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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +1 -1
  4. data/lib/orb/models/customer.rb +139 -100
  5. data/lib/orb/models/customer_create_params.rb +139 -100
  6. data/lib/orb/models/customer_tax_id.rb +214 -102
  7. data/lib/orb/models/customer_update_by_external_id_params.rb +139 -100
  8. data/lib/orb/models/customer_update_params.rb +139 -100
  9. data/lib/orb/models/dimensional_price_group_update_params.rb +38 -0
  10. data/lib/orb/models/dimensional_price_groups/external_dimensional_price_group_id_update_params.rb +44 -0
  11. data/lib/orb/models/invoice.rb +141 -102
  12. data/lib/orb/models/invoice_fetch_upcoming_response.rb +141 -102
  13. data/lib/orb/models/invoice_line_item_create_response.rb +2 -2
  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_version.rb +2 -2
  17. data/lib/orb/models/price.rb +245 -1
  18. data/lib/orb/models/price_interval.rb +2 -2
  19. data/lib/orb/models.rb +2 -0
  20. data/lib/orb/resources/dimensional_price_groups/external_dimensional_price_group_id.rb +36 -0
  21. data/lib/orb/resources/dimensional_price_groups.rb +31 -0
  22. data/lib/orb/resources/prices/external_price_id.rb +2 -2
  23. data/lib/orb/resources/prices.rb +4 -4
  24. data/lib/orb/version.rb +1 -1
  25. data/lib/orb.rb +2 -0
  26. data/rbi/orb/models/customer.rbi +278 -200
  27. data/rbi/orb/models/customer_create_params.rbi +278 -200
  28. data/rbi/orb/models/customer_tax_id.rbi +214 -102
  29. data/rbi/orb/models/customer_update_by_external_id_params.rbi +278 -200
  30. data/rbi/orb/models/customer_update_params.rbi +278 -200
  31. data/rbi/orb/models/dimensional_price_group_update_params.rbi +61 -0
  32. data/rbi/orb/models/dimensional_price_groups/external_dimensional_price_group_id_update_params.rbi +66 -0
  33. data/rbi/orb/models/invoice.rbi +280 -201
  34. data/rbi/orb/models/invoice_fetch_upcoming_response.rbi +280 -201
  35. data/rbi/orb/models/invoice_line_item_create_response.rbi +2 -1
  36. data/rbi/orb/models/per_price_cost.rbi +2 -1
  37. data/rbi/orb/models/plan.rbi +2 -1
  38. data/rbi/orb/models/plan_version.rbi +2 -1
  39. data/rbi/orb/models/price.rbi +384 -1
  40. data/rbi/orb/models/price_interval.rbi +2 -1
  41. data/rbi/orb/models.rbi +3 -0
  42. data/rbi/orb/resources/customers.rbi +417 -300
  43. data/rbi/orb/resources/dimensional_price_groups/external_dimensional_price_group_id.rbi +26 -0
  44. data/rbi/orb/resources/dimensional_price_groups.rbi +26 -0
  45. data/sig/orb/models/customer_tax_id.rbs +150 -4
  46. data/sig/orb/models/dimensional_price_group_update_params.rbs +31 -0
  47. data/sig/orb/models/dimensional_price_groups/external_dimensional_price_group_id_update_params.rbs +33 -0
  48. data/sig/orb/models/price.rbs +179 -0
  49. data/sig/orb/models.rbs +2 -0
  50. data/sig/orb/resources/dimensional_price_groups/external_dimensional_price_group_id.rbs +7 -0
  51. data/sig/orb/resources/dimensional_price_groups.rbs +7 -0
  52. metadata +8 -2
@@ -197,7 +197,8 @@ module Orb
197
197
  Orb::Price::MaxGroupTieredPackage::OrHash,
198
198
  Orb::Price::ScalableMatrixWithUnitPricing::OrHash,
199
199
  Orb::Price::ScalableMatrixWithTieredPricing::OrHash,
200
- Orb::Price::CumulativeGroupedBulk::OrHash
200
+ Orb::Price::CumulativeGroupedBulk::OrHash,
201
+ Orb::Price::GroupedWithMinMaxThresholds::OrHash
201
202
  ),
202
203
  quantity: Float,
203
204
  start_date: Time,
@@ -56,7 +56,8 @@ module Orb
56
56
  Orb::Price::MaxGroupTieredPackage::OrHash,
57
57
  Orb::Price::ScalableMatrixWithUnitPricing::OrHash,
58
58
  Orb::Price::ScalableMatrixWithTieredPricing::OrHash,
59
- Orb::Price::CumulativeGroupedBulk::OrHash
59
+ Orb::Price::CumulativeGroupedBulk::OrHash,
60
+ Orb::Price::GroupedWithMinMaxThresholds::OrHash
60
61
  ),
61
62
  price_id: String,
62
63
  subtotal: String,
@@ -188,7 +188,8 @@ module Orb
188
188
  Orb::Price::MaxGroupTieredPackage::OrHash,
189
189
  Orb::Price::ScalableMatrixWithUnitPricing::OrHash,
190
190
  Orb::Price::ScalableMatrixWithTieredPricing::OrHash,
191
- Orb::Price::CumulativeGroupedBulk::OrHash
191
+ Orb::Price::CumulativeGroupedBulk::OrHash,
192
+ Orb::Price::GroupedWithMinMaxThresholds::OrHash
192
193
  )
193
194
  ],
194
195
  product: Orb::Plan::Product::OrHash,
@@ -70,7 +70,8 @@ module Orb
70
70
  Orb::Price::MaxGroupTieredPackage::OrHash,
71
71
  Orb::Price::ScalableMatrixWithUnitPricing::OrHash,
72
72
  Orb::Price::ScalableMatrixWithTieredPricing::OrHash,
73
- Orb::Price::CumulativeGroupedBulk::OrHash
73
+ Orb::Price::CumulativeGroupedBulk::OrHash,
74
+ Orb::Price::GroupedWithMinMaxThresholds::OrHash
74
75
  )
75
76
  ],
76
77
  version: Integer
@@ -45,7 +45,8 @@ module Orb
45
45
  Orb::Price::MaxGroupTieredPackage,
46
46
  Orb::Price::ScalableMatrixWithUnitPricing,
47
47
  Orb::Price::ScalableMatrixWithTieredPricing,
48
- Orb::Price::CumulativeGroupedBulk
48
+ Orb::Price::CumulativeGroupedBulk,
49
+ Orb::Price::GroupedWithMinMaxThresholds
49
50
  )
50
51
  end
51
52
 
@@ -9971,6 +9972,388 @@ module Orb
9971
9972
  end
9972
9973
  end
9973
9974
 
9975
+ class GroupedWithMinMaxThresholds < Orb::Internal::Type::BaseModel
9976
+ OrHash =
9977
+ T.type_alias do
9978
+ T.any(
9979
+ Orb::Price::GroupedWithMinMaxThresholds,
9980
+ Orb::Internal::AnyHash
9981
+ )
9982
+ end
9983
+
9984
+ sig { returns(String) }
9985
+ attr_accessor :id
9986
+
9987
+ sig { returns(T.nilable(Orb::BillableMetricTiny)) }
9988
+ attr_reader :billable_metric
9989
+
9990
+ sig do
9991
+ params(
9992
+ billable_metric: T.nilable(Orb::BillableMetricTiny::OrHash)
9993
+ ).void
9994
+ end
9995
+ attr_writer :billable_metric
9996
+
9997
+ sig { returns(Orb::BillingCycleConfiguration) }
9998
+ attr_reader :billing_cycle_configuration
9999
+
10000
+ sig do
10001
+ params(
10002
+ billing_cycle_configuration: Orb::BillingCycleConfiguration::OrHash
10003
+ ).void
10004
+ end
10005
+ attr_writer :billing_cycle_configuration
10006
+
10007
+ sig do
10008
+ returns(
10009
+ Orb::Price::GroupedWithMinMaxThresholds::Cadence::TaggedSymbol
10010
+ )
10011
+ end
10012
+ attr_accessor :cadence
10013
+
10014
+ sig { returns(T.nilable(Float)) }
10015
+ attr_accessor :conversion_rate
10016
+
10017
+ sig do
10018
+ returns(
10019
+ T.nilable(
10020
+ Orb::Price::GroupedWithMinMaxThresholds::ConversionRateConfig::Variants
10021
+ )
10022
+ )
10023
+ end
10024
+ attr_accessor :conversion_rate_config
10025
+
10026
+ sig { returns(Time) }
10027
+ attr_accessor :created_at
10028
+
10029
+ sig { returns(T.nilable(Orb::Allocation)) }
10030
+ attr_reader :credit_allocation
10031
+
10032
+ sig do
10033
+ params(credit_allocation: T.nilable(Orb::Allocation::OrHash)).void
10034
+ end
10035
+ attr_writer :credit_allocation
10036
+
10037
+ sig { returns(String) }
10038
+ attr_accessor :currency
10039
+
10040
+ sig { returns(T.nilable(Orb::Discount::Variants)) }
10041
+ attr_accessor :discount
10042
+
10043
+ sig { returns(T.nilable(String)) }
10044
+ attr_accessor :external_price_id
10045
+
10046
+ sig { returns(T.nilable(Float)) }
10047
+ attr_accessor :fixed_price_quantity
10048
+
10049
+ sig { returns(T::Hash[Symbol, T.anything]) }
10050
+ attr_accessor :grouped_with_min_max_thresholds_config
10051
+
10052
+ sig { returns(T.nilable(Orb::BillingCycleConfiguration)) }
10053
+ attr_reader :invoicing_cycle_configuration
10054
+
10055
+ sig do
10056
+ params(
10057
+ invoicing_cycle_configuration:
10058
+ T.nilable(Orb::BillingCycleConfiguration::OrHash)
10059
+ ).void
10060
+ end
10061
+ attr_writer :invoicing_cycle_configuration
10062
+
10063
+ sig { returns(Orb::ItemSlim) }
10064
+ attr_reader :item
10065
+
10066
+ sig { params(item: Orb::ItemSlim::OrHash).void }
10067
+ attr_writer :item
10068
+
10069
+ sig { returns(T.nilable(Orb::Maximum)) }
10070
+ attr_reader :maximum
10071
+
10072
+ sig { params(maximum: T.nilable(Orb::Maximum::OrHash)).void }
10073
+ attr_writer :maximum
10074
+
10075
+ sig { returns(T.nilable(String)) }
10076
+ attr_accessor :maximum_amount
10077
+
10078
+ # User specified key-value pairs for the resource. If not present, this defaults
10079
+ # to an empty dictionary. Individual keys can be removed by setting the value to
10080
+ # `null`, and the entire metadata mapping can be cleared by setting `metadata` to
10081
+ # `null`.
10082
+ sig { returns(T::Hash[Symbol, String]) }
10083
+ attr_accessor :metadata
10084
+
10085
+ sig { returns(T.nilable(Orb::Minimum)) }
10086
+ attr_reader :minimum
10087
+
10088
+ sig { params(minimum: T.nilable(Orb::Minimum::OrHash)).void }
10089
+ attr_writer :minimum
10090
+
10091
+ sig { returns(T.nilable(String)) }
10092
+ attr_accessor :minimum_amount
10093
+
10094
+ sig { returns(Symbol) }
10095
+ attr_accessor :model_type
10096
+
10097
+ sig { returns(String) }
10098
+ attr_accessor :name
10099
+
10100
+ sig { returns(T.nilable(Integer)) }
10101
+ attr_accessor :plan_phase_order
10102
+
10103
+ sig do
10104
+ returns(
10105
+ Orb::Price::GroupedWithMinMaxThresholds::PriceType::TaggedSymbol
10106
+ )
10107
+ end
10108
+ attr_accessor :price_type
10109
+
10110
+ # The price id this price replaces. This price will take the place of the replaced
10111
+ # price in plan version migrations.
10112
+ sig { returns(T.nilable(String)) }
10113
+ attr_accessor :replaces_price_id
10114
+
10115
+ sig { returns(T.nilable(Orb::DimensionalPriceConfiguration)) }
10116
+ attr_reader :dimensional_price_configuration
10117
+
10118
+ sig do
10119
+ params(
10120
+ dimensional_price_configuration:
10121
+ T.nilable(Orb::DimensionalPriceConfiguration::OrHash)
10122
+ ).void
10123
+ end
10124
+ attr_writer :dimensional_price_configuration
10125
+
10126
+ sig do
10127
+ params(
10128
+ id: String,
10129
+ billable_metric: T.nilable(Orb::BillableMetricTiny::OrHash),
10130
+ billing_cycle_configuration: Orb::BillingCycleConfiguration::OrHash,
10131
+ cadence: Orb::Price::GroupedWithMinMaxThresholds::Cadence::OrSymbol,
10132
+ conversion_rate: T.nilable(Float),
10133
+ conversion_rate_config:
10134
+ T.nilable(
10135
+ T.any(
10136
+ Orb::UnitConversionRateConfig::OrHash,
10137
+ Orb::TieredConversionRateConfig::OrHash
10138
+ )
10139
+ ),
10140
+ created_at: Time,
10141
+ credit_allocation: T.nilable(Orb::Allocation::OrHash),
10142
+ currency: String,
10143
+ discount:
10144
+ T.nilable(
10145
+ T.any(
10146
+ Orb::PercentageDiscount::OrHash,
10147
+ Orb::TrialDiscount::OrHash,
10148
+ Orb::UsageDiscount::OrHash,
10149
+ Orb::AmountDiscount::OrHash
10150
+ )
10151
+ ),
10152
+ external_price_id: T.nilable(String),
10153
+ fixed_price_quantity: T.nilable(Float),
10154
+ grouped_with_min_max_thresholds_config: T::Hash[Symbol, T.anything],
10155
+ invoicing_cycle_configuration:
10156
+ T.nilable(Orb::BillingCycleConfiguration::OrHash),
10157
+ item: Orb::ItemSlim::OrHash,
10158
+ maximum: T.nilable(Orb::Maximum::OrHash),
10159
+ maximum_amount: T.nilable(String),
10160
+ metadata: T::Hash[Symbol, String],
10161
+ minimum: T.nilable(Orb::Minimum::OrHash),
10162
+ minimum_amount: T.nilable(String),
10163
+ name: String,
10164
+ plan_phase_order: T.nilable(Integer),
10165
+ price_type:
10166
+ Orb::Price::GroupedWithMinMaxThresholds::PriceType::OrSymbol,
10167
+ replaces_price_id: T.nilable(String),
10168
+ dimensional_price_configuration:
10169
+ T.nilable(Orb::DimensionalPriceConfiguration::OrHash),
10170
+ model_type: Symbol
10171
+ ).returns(T.attached_class)
10172
+ end
10173
+ def self.new(
10174
+ id:,
10175
+ billable_metric:,
10176
+ billing_cycle_configuration:,
10177
+ cadence:,
10178
+ conversion_rate:,
10179
+ conversion_rate_config:,
10180
+ created_at:,
10181
+ credit_allocation:,
10182
+ currency:,
10183
+ discount:,
10184
+ external_price_id:,
10185
+ fixed_price_quantity:,
10186
+ grouped_with_min_max_thresholds_config:,
10187
+ invoicing_cycle_configuration:,
10188
+ item:,
10189
+ maximum:,
10190
+ maximum_amount:,
10191
+ # User specified key-value pairs for the resource. If not present, this defaults
10192
+ # to an empty dictionary. Individual keys can be removed by setting the value to
10193
+ # `null`, and the entire metadata mapping can be cleared by setting `metadata` to
10194
+ # `null`.
10195
+ metadata:,
10196
+ minimum:,
10197
+ minimum_amount:,
10198
+ name:,
10199
+ plan_phase_order:,
10200
+ price_type:,
10201
+ # The price id this price replaces. This price will take the place of the replaced
10202
+ # price in plan version migrations.
10203
+ replaces_price_id:,
10204
+ dimensional_price_configuration: nil,
10205
+ model_type: :grouped_with_min_max_thresholds
10206
+ )
10207
+ end
10208
+
10209
+ sig do
10210
+ override.returns(
10211
+ {
10212
+ id: String,
10213
+ billable_metric: T.nilable(Orb::BillableMetricTiny),
10214
+ billing_cycle_configuration: Orb::BillingCycleConfiguration,
10215
+ cadence:
10216
+ Orb::Price::GroupedWithMinMaxThresholds::Cadence::TaggedSymbol,
10217
+ conversion_rate: T.nilable(Float),
10218
+ conversion_rate_config:
10219
+ T.nilable(
10220
+ Orb::Price::GroupedWithMinMaxThresholds::ConversionRateConfig::Variants
10221
+ ),
10222
+ created_at: Time,
10223
+ credit_allocation: T.nilable(Orb::Allocation),
10224
+ currency: String,
10225
+ discount: T.nilable(Orb::Discount::Variants),
10226
+ external_price_id: T.nilable(String),
10227
+ fixed_price_quantity: T.nilable(Float),
10228
+ grouped_with_min_max_thresholds_config:
10229
+ T::Hash[Symbol, T.anything],
10230
+ invoicing_cycle_configuration:
10231
+ T.nilable(Orb::BillingCycleConfiguration),
10232
+ item: Orb::ItemSlim,
10233
+ maximum: T.nilable(Orb::Maximum),
10234
+ maximum_amount: T.nilable(String),
10235
+ metadata: T::Hash[Symbol, String],
10236
+ minimum: T.nilable(Orb::Minimum),
10237
+ minimum_amount: T.nilable(String),
10238
+ model_type: Symbol,
10239
+ name: String,
10240
+ plan_phase_order: T.nilable(Integer),
10241
+ price_type:
10242
+ Orb::Price::GroupedWithMinMaxThresholds::PriceType::TaggedSymbol,
10243
+ replaces_price_id: T.nilable(String),
10244
+ dimensional_price_configuration:
10245
+ T.nilable(Orb::DimensionalPriceConfiguration)
10246
+ }
10247
+ )
10248
+ end
10249
+ def to_hash
10250
+ end
10251
+
10252
+ module Cadence
10253
+ extend Orb::Internal::Type::Enum
10254
+
10255
+ TaggedSymbol =
10256
+ T.type_alias do
10257
+ T.all(Symbol, Orb::Price::GroupedWithMinMaxThresholds::Cadence)
10258
+ end
10259
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
10260
+
10261
+ ONE_TIME =
10262
+ T.let(
10263
+ :one_time,
10264
+ Orb::Price::GroupedWithMinMaxThresholds::Cadence::TaggedSymbol
10265
+ )
10266
+ MONTHLY =
10267
+ T.let(
10268
+ :monthly,
10269
+ Orb::Price::GroupedWithMinMaxThresholds::Cadence::TaggedSymbol
10270
+ )
10271
+ QUARTERLY =
10272
+ T.let(
10273
+ :quarterly,
10274
+ Orb::Price::GroupedWithMinMaxThresholds::Cadence::TaggedSymbol
10275
+ )
10276
+ SEMI_ANNUAL =
10277
+ T.let(
10278
+ :semi_annual,
10279
+ Orb::Price::GroupedWithMinMaxThresholds::Cadence::TaggedSymbol
10280
+ )
10281
+ ANNUAL =
10282
+ T.let(
10283
+ :annual,
10284
+ Orb::Price::GroupedWithMinMaxThresholds::Cadence::TaggedSymbol
10285
+ )
10286
+ CUSTOM =
10287
+ T.let(
10288
+ :custom,
10289
+ Orb::Price::GroupedWithMinMaxThresholds::Cadence::TaggedSymbol
10290
+ )
10291
+
10292
+ sig do
10293
+ override.returns(
10294
+ T::Array[
10295
+ Orb::Price::GroupedWithMinMaxThresholds::Cadence::TaggedSymbol
10296
+ ]
10297
+ )
10298
+ end
10299
+ def self.values
10300
+ end
10301
+ end
10302
+
10303
+ module ConversionRateConfig
10304
+ extend Orb::Internal::Type::Union
10305
+
10306
+ Variants =
10307
+ T.type_alias do
10308
+ T.any(
10309
+ Orb::UnitConversionRateConfig,
10310
+ Orb::TieredConversionRateConfig
10311
+ )
10312
+ end
10313
+
10314
+ sig do
10315
+ override.returns(
10316
+ T::Array[
10317
+ Orb::Price::GroupedWithMinMaxThresholds::ConversionRateConfig::Variants
10318
+ ]
10319
+ )
10320
+ end
10321
+ def self.variants
10322
+ end
10323
+ end
10324
+
10325
+ module PriceType
10326
+ extend Orb::Internal::Type::Enum
10327
+
10328
+ TaggedSymbol =
10329
+ T.type_alias do
10330
+ T.all(Symbol, Orb::Price::GroupedWithMinMaxThresholds::PriceType)
10331
+ end
10332
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
10333
+
10334
+ USAGE_PRICE =
10335
+ T.let(
10336
+ :usage_price,
10337
+ Orb::Price::GroupedWithMinMaxThresholds::PriceType::TaggedSymbol
10338
+ )
10339
+ FIXED_PRICE =
10340
+ T.let(
10341
+ :fixed_price,
10342
+ Orb::Price::GroupedWithMinMaxThresholds::PriceType::TaggedSymbol
10343
+ )
10344
+
10345
+ sig do
10346
+ override.returns(
10347
+ T::Array[
10348
+ Orb::Price::GroupedWithMinMaxThresholds::PriceType::TaggedSymbol
10349
+ ]
10350
+ )
10351
+ end
10352
+ def self.values
10353
+ end
10354
+ end
10355
+ end
10356
+
9974
10357
  sig { override.returns(T::Array[Orb::Price::Variants]) }
9975
10358
  def self.variants
9976
10359
  end
@@ -104,7 +104,8 @@ module Orb
104
104
  Orb::Price::MaxGroupTieredPackage::OrHash,
105
105
  Orb::Price::ScalableMatrixWithUnitPricing::OrHash,
106
106
  Orb::Price::ScalableMatrixWithTieredPricing::OrHash,
107
- Orb::Price::CumulativeGroupedBulk::OrHash
107
+ Orb::Price::CumulativeGroupedBulk::OrHash,
108
+ Orb::Price::GroupedWithMinMaxThresholds::OrHash
108
109
  ),
109
110
  start_date: Time,
110
111
  usage_customer_ids: T.nilable(T::Array[String])
data/rbi/orb/models.rbi CHANGED
@@ -148,6 +148,9 @@ module Orb
148
148
 
149
149
  DimensionalPriceGroupsAPI = Orb::Models::DimensionalPriceGroupsAPI
150
150
 
151
+ DimensionalPriceGroupUpdateParams =
152
+ Orb::Models::DimensionalPriceGroupUpdateParams
153
+
151
154
  Discount = Orb::Models::Discount
152
155
 
153
156
  DiscountOverride = Orb::Models::DiscountOverride