orb-billing 0.6.0 → 0.8.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 (99) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +1 -1
  4. data/lib/orb/client.rb +4 -0
  5. data/lib/orb/models/{plans/version_create_params.rb → beta/external_plan_id_create_plan_version_params.rb} +1980 -1744
  6. data/lib/orb/models/beta/external_plan_id_fetch_plan_version_params.rb +22 -0
  7. data/lib/orb/models/{plans/external_plan_id_set_default_version_params.rb → beta/external_plan_id_set_default_plan_version_params.rb} +3 -3
  8. data/lib/orb/models/beta_create_plan_version_params.rb +17844 -0
  9. data/lib/orb/models/beta_fetch_plan_version_params.rb +20 -0
  10. data/lib/orb/models/{plan_set_default_version_params.rb → beta_set_default_plan_version_params.rb} +2 -2
  11. data/lib/orb/models/plan_version.rb +735 -0
  12. data/lib/orb/models/plan_version_phase.rb +70 -0
  13. data/lib/orb/models/price.rb +1114 -28
  14. data/lib/orb/models/price_evaluate_multiple_params.rb +8620 -0
  15. data/lib/orb/models/price_evaluate_multiple_response.rb +51 -0
  16. data/lib/orb/models/price_evaluate_params.rb +21 -8529
  17. data/lib/orb/models/price_evaluate_response.rb +3 -38
  18. data/lib/orb/models/subscription_create_params.rb +96 -10
  19. data/lib/orb/models/subscription_price_intervals_params.rb +48 -5
  20. data/lib/orb/models/subscription_schedule_plan_change_params.rb +100 -10
  21. data/lib/orb/models.rb +14 -2
  22. data/lib/orb/resources/beta/external_plan_id.rb +113 -0
  23. data/lib/orb/resources/beta.rb +115 -0
  24. data/lib/orb/resources/plans/external_plan_id.rb +0 -31
  25. data/lib/orb/resources/plans.rb +0 -31
  26. data/lib/orb/resources/prices.rb +69 -8
  27. data/lib/orb/version.rb +1 -1
  28. data/lib/orb.rb +12 -12
  29. data/rbi/orb/client.rbi +3 -0
  30. data/rbi/orb/models/{plans/version_create_params.rbi → beta/external_plan_id_create_plan_version_params.rbi} +3042 -2783
  31. data/rbi/orb/models/{plans/version_retrieve_params.rbi → beta/external_plan_id_fetch_plan_version_params.rbi} +10 -7
  32. data/rbi/orb/models/{plans/external_plan_id_set_default_version_params.rbi → beta/external_plan_id_set_default_plan_version_params.rbi} +3 -3
  33. data/rbi/orb/models/beta_create_plan_version_params.rbi +32809 -0
  34. data/rbi/orb/models/beta_fetch_plan_version_params.rbi +35 -0
  35. data/rbi/orb/models/{plan_set_default_version_params.rbi → beta_set_default_plan_version_params.rbi} +2 -2
  36. data/rbi/orb/models/plan_version.rbi +1367 -0
  37. data/rbi/orb/models/plan_version_phase.rbi +99 -0
  38. data/rbi/orb/models/price.rbi +3220 -184
  39. data/rbi/orb/models/price_evaluate_multiple_params.rbi +15764 -0
  40. data/rbi/orb/models/price_evaluate_multiple_response.rbi +96 -0
  41. data/rbi/orb/models/price_evaluate_params.rbi +25 -15684
  42. data/rbi/orb/models/price_evaluate_response.rbi +5 -68
  43. data/rbi/orb/models/subscription_create_params.rbi +226 -12
  44. data/rbi/orb/models/subscription_price_intervals_params.rbi +113 -6
  45. data/rbi/orb/models/subscription_schedule_plan_change_params.rbi +226 -12
  46. data/rbi/orb/models.rbi +14 -2
  47. data/rbi/orb/resources/{plans/versions.rbi → beta/external_plan_id.rbi} +42 -15
  48. data/rbi/orb/resources/beta.rbi +111 -0
  49. data/rbi/orb/resources/plans/external_plan_id.rbi +0 -22
  50. data/rbi/orb/resources/plans.rbi +0 -22
  51. data/rbi/orb/resources/prices.rbi +66 -4
  52. data/sig/orb/client.rbs +2 -0
  53. data/sig/orb/models/{plans/version_create_params.rbs → beta/external_plan_id_create_plan_version_params.rbs} +1847 -1771
  54. data/sig/orb/models/{plans/version_retrieve_params.rbs → beta/external_plan_id_fetch_plan_version_params.rbs} +7 -7
  55. data/sig/orb/models/{plans/external_plan_id_set_default_version_params.rbs → beta/external_plan_id_set_default_plan_version_params.rbs} +3 -3
  56. data/sig/orb/models/beta_create_plan_version_params.rbs +12953 -0
  57. data/sig/orb/models/beta_fetch_plan_version_params.rbs +20 -0
  58. data/sig/orb/models/{plan_set_default_version_params.rbs → beta_set_default_plan_version_params.rbs} +2 -2
  59. data/sig/orb/models/plan_version.rbs +583 -0
  60. data/sig/orb/models/plan_version_phase.rbs +60 -0
  61. data/sig/orb/models/price.rbs +1430 -86
  62. data/sig/orb/models/price_evaluate_multiple_params.rbs +6230 -0
  63. data/sig/orb/models/price_evaluate_multiple_response.rbs +50 -0
  64. data/sig/orb/models/price_evaluate_params.rbs +10 -6187
  65. data/sig/orb/models/price_evaluate_response.rbs +4 -41
  66. data/sig/orb/models/subscription_create_params.rbs +84 -8
  67. data/sig/orb/models/subscription_price_intervals_params.rbs +42 -4
  68. data/sig/orb/models/subscription_schedule_plan_change_params.rbs +84 -8
  69. data/sig/orb/models.rbs +14 -2
  70. data/sig/orb/resources/beta/external_plan_id.rbs +34 -0
  71. data/sig/orb/resources/beta.rbs +34 -0
  72. data/sig/orb/resources/plans/external_plan_id.rbs +0 -8
  73. data/sig/orb/resources/plans.rbs +0 -8
  74. data/sig/orb/resources/prices.rbs +13 -2
  75. metadata +38 -38
  76. data/lib/orb/models/plans/external_plan_id/version_create_params.rb +0 -17948
  77. data/lib/orb/models/plans/external_plan_id/version_create_response.rb +0 -819
  78. data/lib/orb/models/plans/external_plan_id/version_retrieve_params.rb +0 -24
  79. data/lib/orb/models/plans/external_plan_id/version_retrieve_response.rb +0 -819
  80. data/lib/orb/models/plans/version_create_response.rb +0 -814
  81. data/lib/orb/models/plans/version_retrieve_params.rb +0 -22
  82. data/lib/orb/models/plans/version_retrieve_response.rb +0 -814
  83. data/lib/orb/resources/plans/external_plan_id/versions.rb +0 -88
  84. data/lib/orb/resources/plans/versions.rb +0 -86
  85. data/rbi/orb/models/plans/external_plan_id/version_create_params.rbi +0 -32668
  86. data/rbi/orb/models/plans/external_plan_id/version_create_response.rbi +0 -1562
  87. data/rbi/orb/models/plans/external_plan_id/version_retrieve_params.rbi +0 -42
  88. data/rbi/orb/models/plans/external_plan_id/version_retrieve_response.rbi +0 -1562
  89. data/rbi/orb/models/plans/version_create_response.rbi +0 -1556
  90. data/rbi/orb/models/plans/version_retrieve_response.rbi +0 -1558
  91. data/rbi/orb/resources/plans/external_plan_id/versions.rbi +0 -103
  92. data/sig/orb/models/plans/external_plan_id/version_create_params.rbs +0 -12923
  93. data/sig/orb/models/plans/external_plan_id/version_create_response.rbs +0 -664
  94. data/sig/orb/models/plans/external_plan_id/version_retrieve_params.rbs +0 -27
  95. data/sig/orb/models/plans/external_plan_id/version_retrieve_response.rbs +0 -664
  96. data/sig/orb/models/plans/version_create_response.rbs +0 -662
  97. data/sig/orb/models/plans/version_retrieve_response.rbs +0 -662
  98. data/sig/orb/resources/plans/external_plan_id/versions.rbs +0 -30
  99. data/sig/orb/resources/plans/versions.rbs +0 -28
@@ -183,6 +183,65 @@ module Orb
183
183
  )
184
184
  end
185
185
 
186
+ # [NOTE] It is recommended to use the `/v1/prices/evaluate` which offers further
187
+ # functionality, such as multiple prices, inline price definitions, and querying
188
+ # over preview events.
189
+ #
190
+ # This endpoint is used to evaluate the output of a price for a given customer and
191
+ # time range. It enables filtering and grouping the output using
192
+ # [computed properties](/extensibility/advanced-metrics#computed-properties),
193
+ # supporting the following workflows:
194
+ #
195
+ # 1. Showing detailed usage and costs to the end customer.
196
+ # 2. Auditing subtotals on invoice line items.
197
+ #
198
+ # For these workflows, the expressiveness of computed properties in both the
199
+ # filters and grouping is critical. For example, if you'd like to show your
200
+ # customer their usage grouped by hour and another property, you can do so with
201
+ # the following `grouping_keys`:
202
+ # `["hour_floor_timestamp_millis(timestamp_millis)", "my_property"]`. If you'd
203
+ # like to examine a customer's usage for a specific property value, you can do so
204
+ # with the following `filter`:
205
+ # `my_property = 'foo' AND my_other_property = 'bar'`.
206
+ #
207
+ # By default, the start of the time range must be no more than 100 days ago and
208
+ # the length of the results must be no greater than 1000. Note that this is a POST
209
+ # endpoint rather than a GET endpoint because it employs a JSON body rather than
210
+ # query parameters.
211
+ sig do
212
+ params(
213
+ price_id: String,
214
+ timeframe_end: Time,
215
+ timeframe_start: Time,
216
+ customer_id: T.nilable(String),
217
+ external_customer_id: T.nilable(String),
218
+ filter: T.nilable(String),
219
+ grouping_keys: T::Array[String],
220
+ request_options: Orb::RequestOptions::OrHash
221
+ ).returns(Orb::Models::PriceEvaluateResponse)
222
+ end
223
+ def evaluate(
224
+ price_id,
225
+ # The exclusive upper bound for event timestamps
226
+ timeframe_end:,
227
+ # The inclusive lower bound for event timestamps
228
+ timeframe_start:,
229
+ # The ID of the customer to which this evaluation is scoped.
230
+ customer_id: nil,
231
+ # The external customer ID of the customer to which this evaluation is scoped.
232
+ external_customer_id: nil,
233
+ # A boolean
234
+ # [computed property](/extensibility/advanced-metrics#computed-properties) used to
235
+ # filter the underlying billable metric
236
+ filter: nil,
237
+ # Properties (or
238
+ # [computed properties](/extensibility/advanced-metrics#computed-properties)) used
239
+ # to group the underlying billable metric
240
+ grouping_keys: nil,
241
+ request_options: {}
242
+ )
243
+ end
244
+
186
245
  # This endpoint is used to evaluate the output of price(s) for a given customer
187
246
  # and time range over either ingested events or preview events. It enables
188
247
  # filtering and grouping the output using
@@ -218,14 +277,17 @@ module Orb
218
277
  timeframe_end: Time,
219
278
  timeframe_start: Time,
220
279
  customer_id: T.nilable(String),
221
- events: T.nilable(T::Array[Orb::PriceEvaluateParams::Event::OrHash]),
280
+ events:
281
+ T.nilable(
282
+ T::Array[Orb::PriceEvaluateMultipleParams::Event::OrHash]
283
+ ),
222
284
  external_customer_id: T.nilable(String),
223
285
  price_evaluations:
224
- T::Array[Orb::PriceEvaluateParams::PriceEvaluation::OrHash],
286
+ T::Array[Orb::PriceEvaluateMultipleParams::PriceEvaluation::OrHash],
225
287
  request_options: Orb::RequestOptions::OrHash
226
- ).returns(Orb::Models::PriceEvaluateResponse)
288
+ ).returns(Orb::Models::PriceEvaluateMultipleResponse)
227
289
  end
228
- def evaluate(
290
+ def evaluate_multiple(
229
291
  # The exclusive upper bound for event timestamps
230
292
  timeframe_end:,
231
293
  # The inclusive lower bound for event timestamps
data/sig/orb/client.rbs CHANGED
@@ -12,6 +12,8 @@ module Orb
12
12
 
13
13
  attr_reader top_level: Orb::Resources::TopLevel
14
14
 
15
+ attr_reader beta: Orb::Resources::Beta
16
+
15
17
  attr_reader coupons: Orb::Resources::Coupons
16
18
 
17
19
  attr_reader credit_notes: Orb::Resources::CreditNotes