orb-billing 0.5.0 → 0.5.2

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 (99) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/README.md +1 -1
  4. data/lib/orb/internal/type/array_of.rb +8 -0
  5. data/lib/orb/internal/type/base_model.rb +7 -0
  6. data/lib/orb/internal/type/boolean.rb +8 -0
  7. data/lib/orb/internal/type/enum.rb +12 -0
  8. data/lib/orb/internal/type/file_input.rb +7 -0
  9. data/lib/orb/internal/type/hash_of.rb +8 -0
  10. data/lib/orb/internal/type/union.rb +12 -0
  11. data/lib/orb/internal/type/unknown.rb +8 -0
  12. data/lib/orb/internal/util.rb +45 -0
  13. data/lib/orb/models/coupon.rb +0 -4
  14. data/lib/orb/models/coupon_create_params.rb +0 -6
  15. data/lib/orb/models/customer_create_params.rb +0 -9
  16. data/lib/orb/models/customer_update_by_external_id_params.rb +0 -9
  17. data/lib/orb/models/customer_update_params.rb +0 -9
  18. data/lib/orb/models/customers/credits/ledger_create_entry_by_external_id_response.rb +0 -14
  19. data/lib/orb/models/customers/credits/ledger_create_entry_response.rb +0 -14
  20. data/lib/orb/models/customers/credits/ledger_list_by_external_id_response.rb +0 -14
  21. data/lib/orb/models/customers/credits/ledger_list_response.rb +0 -14
  22. data/lib/orb/models/discount.rb +0 -6
  23. data/lib/orb/models/evaluate_price_group.rb +0 -4
  24. data/lib/orb/models/invoice.rb +0 -22
  25. data/lib/orb/models/invoice_fetch_upcoming_response.rb +0 -22
  26. data/lib/orb/models/invoice_level_discount.rb +0 -4
  27. data/lib/orb/models/invoice_line_item_create_response.rb +0 -22
  28. data/lib/orb/models/plan.rb +0 -12
  29. data/lib/orb/models/plan_create_params.rb +0 -32
  30. data/lib/orb/models/price.rb +0 -35
  31. data/lib/orb/models/subscription.rb +0 -22
  32. data/lib/orb/models/subscription_cancel_response.rb +0 -22
  33. data/lib/orb/models/subscription_change_apply_response.rb +0 -22
  34. data/lib/orb/models/subscription_change_cancel_response.rb +0 -22
  35. data/lib/orb/models/subscription_change_retrieve_response.rb +0 -22
  36. data/lib/orb/models/subscription_create_params.rb +0 -88
  37. data/lib/orb/models/subscription_create_response.rb +0 -22
  38. data/lib/orb/models/subscription_price_intervals_params.rb +0 -89
  39. data/lib/orb/models/subscription_price_intervals_response.rb +0 -22
  40. data/lib/orb/models/subscription_schedule_plan_change_params.rb +0 -88
  41. data/lib/orb/models/subscription_schedule_plan_change_response.rb +0 -22
  42. data/lib/orb/models/subscription_trigger_phase_response.rb +0 -22
  43. data/lib/orb/models/subscription_unschedule_cancellation_response.rb +0 -22
  44. data/lib/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rb +0 -22
  45. data/lib/orb/models/subscription_unschedule_pending_plan_changes_response.rb +0 -22
  46. data/lib/orb/models/subscription_update_fixed_fee_quantity_response.rb +0 -22
  47. data/lib/orb/models/subscription_update_trial_response.rb +0 -22
  48. data/lib/orb/models/subscription_usage.rb +0 -9
  49. data/lib/orb/models.rb +30 -16
  50. data/lib/orb/version.rb +1 -1
  51. data/rbi/orb/internal/type/array_of.rbi +6 -0
  52. data/rbi/orb/internal/type/base_model.rbi +5 -0
  53. data/rbi/orb/internal/type/boolean.rbi +6 -0
  54. data/rbi/orb/internal/type/enum.rbi +5 -0
  55. data/rbi/orb/internal/type/file_input.rbi +5 -0
  56. data/rbi/orb/internal/type/hash_of.rbi +6 -0
  57. data/rbi/orb/internal/type/union.rbi +5 -0
  58. data/rbi/orb/internal/type/unknown.rbi +6 -0
  59. data/rbi/orb/internal/util.rbi +30 -0
  60. data/rbi/orb/models/coupon.rbi +2 -2
  61. data/rbi/orb/models/customers/cost_list_by_external_id_response.rbi +2 -65
  62. data/rbi/orb/models/customers/cost_list_response.rbi +2 -65
  63. data/rbi/orb/models/evaluate_price_group.rbi +7 -3
  64. data/rbi/orb/models/invoice.rbi +10 -149
  65. data/rbi/orb/models/invoice_fetch_upcoming_response.rbi +10 -133
  66. data/rbi/orb/models/invoice_line_item_create_response.rbi +8 -114
  67. data/rbi/orb/models/plan.rbi +8 -134
  68. data/rbi/orb/models/price.rbi +56 -588
  69. data/rbi/orb/models/subscription.rbi +6 -99
  70. data/rbi/orb/models/subscription_cancel_response.rbi +6 -89
  71. data/rbi/orb/models/subscription_change_apply_response.rbi +6 -89
  72. data/rbi/orb/models/subscription_change_cancel_response.rbi +6 -89
  73. data/rbi/orb/models/subscription_change_retrieve_response.rbi +6 -89
  74. data/rbi/orb/models/subscription_create_response.rbi +6 -89
  75. data/rbi/orb/models/subscription_fetch_costs_response.rbi +2 -65
  76. data/rbi/orb/models/subscription_price_intervals_params.rbi +72 -26
  77. data/rbi/orb/models/subscription_price_intervals_response.rbi +6 -89
  78. data/rbi/orb/models/subscription_schedule_plan_change_response.rbi +6 -89
  79. data/rbi/orb/models/subscription_trigger_phase_response.rbi +6 -89
  80. data/rbi/orb/models/subscription_unschedule_cancellation_response.rbi +6 -89
  81. data/rbi/orb/models/subscription_unschedule_fixed_fee_quantity_updates_response.rbi +6 -89
  82. data/rbi/orb/models/subscription_unschedule_pending_plan_changes_response.rbi +6 -89
  83. data/rbi/orb/models/subscription_update_fixed_fee_quantity_response.rbi +6 -89
  84. data/rbi/orb/models/subscription_update_trial_params.rbi +3 -14
  85. data/rbi/orb/models/subscription_update_trial_response.rbi +6 -89
  86. data/rbi/orb/resources/customers/credits/ledger.rbi +4 -36
  87. data/rbi/orb/resources/prices/external_price_id.rbi +2 -64
  88. data/rbi/orb/resources/prices.rbi +4 -130
  89. data/rbi/orb/resources/subscriptions.rbi +2 -10
  90. data/sig/orb/internal/type/array_of.rbs +3 -0
  91. data/sig/orb/internal/type/base_model.rbs +2 -0
  92. data/sig/orb/internal/type/boolean.rbs +3 -0
  93. data/sig/orb/internal/type/enum.rbs +2 -0
  94. data/sig/orb/internal/type/file_input.rbs +2 -0
  95. data/sig/orb/internal/type/hash_of.rbs +3 -0
  96. data/sig/orb/internal/type/union.rbs +2 -0
  97. data/sig/orb/internal/type/unknown.rbs +3 -0
  98. data/sig/orb/internal/util.rbs +12 -0
  99. metadata +2 -2
@@ -26,13 +26,7 @@ module Orb
26
26
  sig do
27
27
  returns(
28
28
  T::Array[
29
- T.any(
30
- Orb::Models::InvoiceLineItemCreateResponse::Adjustment::UsageDiscount,
31
- Orb::Models::InvoiceLineItemCreateResponse::Adjustment::AmountDiscount,
32
- Orb::Models::InvoiceLineItemCreateResponse::Adjustment::PercentageDiscount,
33
- Orb::Models::InvoiceLineItemCreateResponse::Adjustment::Minimum,
34
- Orb::Models::InvoiceLineItemCreateResponse::Adjustment::Maximum
35
- )
29
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::Variants
36
30
  ]
37
31
  )
38
32
  end
@@ -47,18 +41,7 @@ module Orb
47
41
  sig { returns(String) }
48
42
  attr_accessor :credits_applied
49
43
 
50
- sig do
51
- returns(
52
- T.nilable(
53
- T.any(
54
- Orb::PercentageDiscount,
55
- Orb::TrialDiscount,
56
- Orb::UsageDiscount,
57
- Orb::AmountDiscount
58
- )
59
- )
60
- )
61
- end
44
+ sig { returns(T.nilable(Orb::Discount::Variants)) }
62
45
  attr_accessor :discount
63
46
 
64
47
  # The end date of the range of time applied for this line item's price.
@@ -133,42 +116,7 @@ module Orb
133
116
  #
134
117
  # For more on the types of prices, see
135
118
  # [the core concepts documentation](/core-concepts#plan-and-price)
136
- sig do
137
- returns(
138
- T.nilable(
139
- T.any(
140
- Orb::Price::Unit,
141
- Orb::Price::Package,
142
- Orb::Price::Matrix,
143
- Orb::Price::Tiered,
144
- Orb::Price::TieredBps,
145
- Orb::Price::Bps,
146
- Orb::Price::BulkBps,
147
- Orb::Price::Bulk,
148
- Orb::Price::ThresholdTotalAmount,
149
- Orb::Price::TieredPackage,
150
- Orb::Price::GroupedTiered,
151
- Orb::Price::TieredWithMinimum,
152
- Orb::Price::TieredPackageWithMinimum,
153
- Orb::Price::PackageWithAllocation,
154
- Orb::Price::UnitWithPercent,
155
- Orb::Price::MatrixWithAllocation,
156
- Orb::Price::TieredWithProration,
157
- Orb::Price::UnitWithProration,
158
- Orb::Price::GroupedAllocation,
159
- Orb::Price::GroupedWithProratedMinimum,
160
- Orb::Price::GroupedWithMeteredMinimum,
161
- Orb::Price::MatrixWithDisplayName,
162
- Orb::Price::BulkWithProration,
163
- Orb::Price::GroupedTieredPackage,
164
- Orb::Price::MaxGroupTieredPackage,
165
- Orb::Price::ScalableMatrixWithUnitPricing,
166
- Orb::Price::ScalableMatrixWithTieredPricing,
167
- Orb::Price::CumulativeGroupedBulk
168
- )
169
- )
170
- )
171
- end
119
+ sig { returns(T.nilable(Orb::Price::Variants)) }
172
120
  attr_accessor :price
173
121
 
174
122
  # Either the fixed fee quantity or the usage during the service period.
@@ -184,11 +132,7 @@ module Orb
184
132
  sig do
185
133
  returns(
186
134
  T::Array[
187
- T.any(
188
- Orb::Models::InvoiceLineItemCreateResponse::SubLineItem::Matrix,
189
- Orb::Models::InvoiceLineItemCreateResponse::SubLineItem::Tier,
190
- Orb::Models::InvoiceLineItemCreateResponse::SubLineItem::Null
191
- )
135
+ Orb::Models::InvoiceLineItemCreateResponse::SubLineItem::Variants
192
136
  ]
193
137
  )
194
138
  end
@@ -371,25 +315,11 @@ module Orb
371
315
  adjusted_subtotal: String,
372
316
  adjustments:
373
317
  T::Array[
374
- T.any(
375
- Orb::Models::InvoiceLineItemCreateResponse::Adjustment::UsageDiscount,
376
- Orb::Models::InvoiceLineItemCreateResponse::Adjustment::AmountDiscount,
377
- Orb::Models::InvoiceLineItemCreateResponse::Adjustment::PercentageDiscount,
378
- Orb::Models::InvoiceLineItemCreateResponse::Adjustment::Minimum,
379
- Orb::Models::InvoiceLineItemCreateResponse::Adjustment::Maximum
380
- )
318
+ Orb::Models::InvoiceLineItemCreateResponse::Adjustment::Variants
381
319
  ],
382
320
  amount: String,
383
321
  credits_applied: String,
384
- discount:
385
- T.nilable(
386
- T.any(
387
- Orb::PercentageDiscount,
388
- Orb::TrialDiscount,
389
- Orb::UsageDiscount,
390
- Orb::AmountDiscount
391
- )
392
- ),
322
+ discount: T.nilable(Orb::Discount::Variants),
393
323
  end_date: Time,
394
324
  filter: T.nilable(String),
395
325
  grouping: T.nilable(String),
@@ -401,48 +331,12 @@ module Orb
401
331
  minimum_amount: T.nilable(String),
402
332
  name: String,
403
333
  partially_invoiced_amount: String,
404
- price:
405
- T.nilable(
406
- T.any(
407
- Orb::Price::Unit,
408
- Orb::Price::Package,
409
- Orb::Price::Matrix,
410
- Orb::Price::Tiered,
411
- Orb::Price::TieredBps,
412
- Orb::Price::Bps,
413
- Orb::Price::BulkBps,
414
- Orb::Price::Bulk,
415
- Orb::Price::ThresholdTotalAmount,
416
- Orb::Price::TieredPackage,
417
- Orb::Price::GroupedTiered,
418
- Orb::Price::TieredWithMinimum,
419
- Orb::Price::TieredPackageWithMinimum,
420
- Orb::Price::PackageWithAllocation,
421
- Orb::Price::UnitWithPercent,
422
- Orb::Price::MatrixWithAllocation,
423
- Orb::Price::TieredWithProration,
424
- Orb::Price::UnitWithProration,
425
- Orb::Price::GroupedAllocation,
426
- Orb::Price::GroupedWithProratedMinimum,
427
- Orb::Price::GroupedWithMeteredMinimum,
428
- Orb::Price::MatrixWithDisplayName,
429
- Orb::Price::BulkWithProration,
430
- Orb::Price::GroupedTieredPackage,
431
- Orb::Price::MaxGroupTieredPackage,
432
- Orb::Price::ScalableMatrixWithUnitPricing,
433
- Orb::Price::ScalableMatrixWithTieredPricing,
434
- Orb::Price::CumulativeGroupedBulk
435
- )
436
- ),
334
+ price: T.nilable(Orb::Price::Variants),
437
335
  quantity: Float,
438
336
  start_date: Time,
439
337
  sub_line_items:
440
338
  T::Array[
441
- T.any(
442
- Orb::Models::InvoiceLineItemCreateResponse::SubLineItem::Matrix,
443
- Orb::Models::InvoiceLineItemCreateResponse::SubLineItem::Tier,
444
- Orb::Models::InvoiceLineItemCreateResponse::SubLineItem::Null
445
- )
339
+ Orb::Models::InvoiceLineItemCreateResponse::SubLineItem::Variants
446
340
  ],
447
341
  subtotal: String,
448
342
  tax_amounts:
@@ -10,19 +10,7 @@ module Orb
10
10
 
11
11
  # Adjustments for this plan. If the plan has phases, this includes adjustments
12
12
  # across all phases of the plan.
13
- sig do
14
- returns(
15
- T::Array[
16
- T.any(
17
- Orb::Plan::Adjustment::UsageDiscount,
18
- Orb::Plan::Adjustment::AmountDiscount,
19
- Orb::Plan::Adjustment::PercentageDiscount,
20
- Orb::Plan::Adjustment::Minimum,
21
- Orb::Plan::Adjustment::Maximum
22
- )
23
- ]
24
- )
25
- end
13
+ sig { returns(T::Array[Orb::Plan::Adjustment::Variants]) }
26
14
  attr_accessor :adjustments
27
15
 
28
16
  sig { returns(T.nilable(Orb::Plan::BasePlan)) }
@@ -52,18 +40,7 @@ module Orb
52
40
  sig { returns(String) }
53
41
  attr_accessor :description
54
42
 
55
- sig do
56
- returns(
57
- T.nilable(
58
- T.any(
59
- Orb::PercentageDiscount,
60
- Orb::TrialDiscount,
61
- Orb::UsageDiscount,
62
- Orb::AmountDiscount
63
- )
64
- )
65
- )
66
- end
43
+ sig { returns(T.nilable(Orb::Discount::Variants)) }
67
44
  attr_accessor :discount
68
45
 
69
46
  # An optional user-defined ID for this plan resource, used throughout the system
@@ -118,42 +95,7 @@ module Orb
118
95
 
119
96
  # Prices for this plan. If the plan has phases, this includes prices across all
120
97
  # phases of the plan.
121
- sig do
122
- returns(
123
- T::Array[
124
- T.any(
125
- Orb::Price::Unit,
126
- Orb::Price::Package,
127
- Orb::Price::Matrix,
128
- Orb::Price::Tiered,
129
- Orb::Price::TieredBps,
130
- Orb::Price::Bps,
131
- Orb::Price::BulkBps,
132
- Orb::Price::Bulk,
133
- Orb::Price::ThresholdTotalAmount,
134
- Orb::Price::TieredPackage,
135
- Orb::Price::GroupedTiered,
136
- Orb::Price::TieredWithMinimum,
137
- Orb::Price::TieredPackageWithMinimum,
138
- Orb::Price::PackageWithAllocation,
139
- Orb::Price::UnitWithPercent,
140
- Orb::Price::MatrixWithAllocation,
141
- Orb::Price::TieredWithProration,
142
- Orb::Price::UnitWithProration,
143
- Orb::Price::GroupedAllocation,
144
- Orb::Price::GroupedWithProratedMinimum,
145
- Orb::Price::GroupedWithMeteredMinimum,
146
- Orb::Price::MatrixWithDisplayName,
147
- Orb::Price::BulkWithProration,
148
- Orb::Price::GroupedTieredPackage,
149
- Orb::Price::MaxGroupTieredPackage,
150
- Orb::Price::ScalableMatrixWithUnitPricing,
151
- Orb::Price::ScalableMatrixWithTieredPricing,
152
- Orb::Price::CumulativeGroupedBulk
153
- )
154
- ]
155
- )
156
- end
98
+ sig { returns(T::Array[Orb::Price::Variants]) }
157
99
  attr_accessor :prices
158
100
 
159
101
  sig { returns(Orb::Plan::Product) }
@@ -311,31 +253,14 @@ module Orb
311
253
  override.returns(
312
254
  {
313
255
  id: String,
314
- adjustments:
315
- T::Array[
316
- T.any(
317
- Orb::Plan::Adjustment::UsageDiscount,
318
- Orb::Plan::Adjustment::AmountDiscount,
319
- Orb::Plan::Adjustment::PercentageDiscount,
320
- Orb::Plan::Adjustment::Minimum,
321
- Orb::Plan::Adjustment::Maximum
322
- )
323
- ],
256
+ adjustments: T::Array[Orb::Plan::Adjustment::Variants],
324
257
  base_plan: T.nilable(Orb::Plan::BasePlan),
325
258
  base_plan_id: T.nilable(String),
326
259
  created_at: Time,
327
260
  currency: String,
328
261
  default_invoice_memo: T.nilable(String),
329
262
  description: String,
330
- discount:
331
- T.nilable(
332
- T.any(
333
- Orb::PercentageDiscount,
334
- Orb::TrialDiscount,
335
- Orb::UsageDiscount,
336
- Orb::AmountDiscount
337
- )
338
- ),
263
+ discount: T.nilable(Orb::Discount::Variants),
339
264
  external_plan_id: T.nilable(String),
340
265
  invoicing_currency: String,
341
266
  maximum: T.nilable(Orb::Plan::Maximum),
@@ -346,39 +271,7 @@ module Orb
346
271
  name: String,
347
272
  net_terms: T.nilable(Integer),
348
273
  plan_phases: T.nilable(T::Array[Orb::Plan::PlanPhase]),
349
- prices:
350
- T::Array[
351
- T.any(
352
- Orb::Price::Unit,
353
- Orb::Price::Package,
354
- Orb::Price::Matrix,
355
- Orb::Price::Tiered,
356
- Orb::Price::TieredBps,
357
- Orb::Price::Bps,
358
- Orb::Price::BulkBps,
359
- Orb::Price::Bulk,
360
- Orb::Price::ThresholdTotalAmount,
361
- Orb::Price::TieredPackage,
362
- Orb::Price::GroupedTiered,
363
- Orb::Price::TieredWithMinimum,
364
- Orb::Price::TieredPackageWithMinimum,
365
- Orb::Price::PackageWithAllocation,
366
- Orb::Price::UnitWithPercent,
367
- Orb::Price::MatrixWithAllocation,
368
- Orb::Price::TieredWithProration,
369
- Orb::Price::UnitWithProration,
370
- Orb::Price::GroupedAllocation,
371
- Orb::Price::GroupedWithProratedMinimum,
372
- Orb::Price::GroupedWithMeteredMinimum,
373
- Orb::Price::MatrixWithDisplayName,
374
- Orb::Price::BulkWithProration,
375
- Orb::Price::GroupedTieredPackage,
376
- Orb::Price::MaxGroupTieredPackage,
377
- Orb::Price::ScalableMatrixWithUnitPricing,
378
- Orb::Price::ScalableMatrixWithTieredPricing,
379
- Orb::Price::CumulativeGroupedBulk
380
- )
381
- ],
274
+ prices: T::Array[Orb::Price::Variants],
382
275
  product: Orb::Plan::Product,
383
276
  status: Orb::Plan::Status::TaggedSymbol,
384
277
  trial_config: Orb::Plan::TrialConfig,
@@ -955,18 +848,7 @@ module Orb
955
848
  sig { returns(T.nilable(String)) }
956
849
  attr_accessor :description
957
850
 
958
- sig do
959
- returns(
960
- T.nilable(
961
- T.any(
962
- Orb::PercentageDiscount,
963
- Orb::TrialDiscount,
964
- Orb::UsageDiscount,
965
- Orb::AmountDiscount
966
- )
967
- )
968
- )
969
- end
851
+ sig { returns(T.nilable(Orb::Discount::Variants)) }
970
852
  attr_accessor :discount
971
853
 
972
854
  # How many terms of length `duration_unit` this phase is active for. If null, this
@@ -1055,15 +937,7 @@ module Orb
1055
937
  {
1056
938
  id: String,
1057
939
  description: T.nilable(String),
1058
- discount:
1059
- T.nilable(
1060
- T.any(
1061
- Orb::PercentageDiscount,
1062
- Orb::TrialDiscount,
1063
- Orb::UsageDiscount,
1064
- Orb::AmountDiscount
1065
- )
1066
- ),
940
+ discount: T.nilable(Orb::Discount::Variants),
1067
941
  duration: T.nilable(Integer),
1068
942
  duration_unit:
1069
943
  T.nilable(Orb::Plan::PlanPhase::DurationUnit::TaggedSymbol),