orb-billing 0.6.0 → 0.7.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 (87) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -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} +1880 -1734
  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 +17758 -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_evaluate_multiple_params.rb +8620 -0
  14. data/lib/orb/models/price_evaluate_multiple_response.rb +51 -0
  15. data/lib/orb/models/price_evaluate_params.rb +21 -8529
  16. data/lib/orb/models/price_evaluate_response.rb +3 -38
  17. data/lib/orb/models.rb +14 -2
  18. data/lib/orb/resources/beta/external_plan_id.rb +113 -0
  19. data/lib/orb/resources/beta.rb +115 -0
  20. data/lib/orb/resources/plans/external_plan_id.rb +0 -31
  21. data/lib/orb/resources/plans.rb +0 -31
  22. data/lib/orb/resources/prices.rb +69 -8
  23. data/lib/orb/version.rb +1 -1
  24. data/lib/orb.rb +12 -12
  25. data/rbi/orb/client.rbi +3 -0
  26. data/rbi/orb/models/{plans/version_create_params.rbi → beta/external_plan_id_create_plan_version_params.rbi} +2816 -2771
  27. data/rbi/orb/models/{plans/version_retrieve_params.rbi → beta/external_plan_id_fetch_plan_version_params.rbi} +10 -7
  28. 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
  29. data/rbi/orb/models/beta_create_plan_version_params.rbi +32595 -0
  30. data/rbi/orb/models/beta_fetch_plan_version_params.rbi +35 -0
  31. data/rbi/orb/models/{plan_set_default_version_params.rbi → beta_set_default_plan_version_params.rbi} +2 -2
  32. data/rbi/orb/models/plan_version.rbi +1367 -0
  33. data/rbi/orb/models/plan_version_phase.rbi +99 -0
  34. data/rbi/orb/models/price_evaluate_multiple_params.rbi +15764 -0
  35. data/rbi/orb/models/price_evaluate_multiple_response.rbi +96 -0
  36. data/rbi/orb/models/price_evaluate_params.rbi +25 -15684
  37. data/rbi/orb/models/price_evaluate_response.rbi +5 -68
  38. data/rbi/orb/models.rbi +14 -2
  39. data/rbi/orb/resources/{plans/versions.rbi → beta/external_plan_id.rbi} +42 -15
  40. data/rbi/orb/resources/beta.rbi +111 -0
  41. data/rbi/orb/resources/plans/external_plan_id.rbi +0 -22
  42. data/rbi/orb/resources/plans.rbi +0 -22
  43. data/rbi/orb/resources/prices.rbi +66 -4
  44. data/sig/orb/client.rbs +2 -0
  45. data/sig/orb/models/{plans/version_create_params.rbs → beta/external_plan_id_create_plan_version_params.rbs} +1763 -1763
  46. data/sig/orb/models/{plans/version_retrieve_params.rbs → beta/external_plan_id_fetch_plan_version_params.rbs} +7 -7
  47. 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
  48. data/sig/orb/models/beta_create_plan_version_params.rbs +12877 -0
  49. data/sig/orb/models/beta_fetch_plan_version_params.rbs +20 -0
  50. data/sig/orb/models/{plan_set_default_version_params.rbs → beta_set_default_plan_version_params.rbs} +2 -2
  51. data/sig/orb/models/plan_version.rbs +583 -0
  52. data/sig/orb/models/plan_version_phase.rbs +60 -0
  53. data/sig/orb/models/price_evaluate_multiple_params.rbs +6230 -0
  54. data/sig/orb/models/price_evaluate_multiple_response.rbs +50 -0
  55. data/sig/orb/models/price_evaluate_params.rbs +10 -6187
  56. data/sig/orb/models/price_evaluate_response.rbs +4 -41
  57. data/sig/orb/models.rbs +14 -2
  58. data/sig/orb/resources/beta/external_plan_id.rbs +34 -0
  59. data/sig/orb/resources/beta.rbs +34 -0
  60. data/sig/orb/resources/plans/external_plan_id.rbs +0 -8
  61. data/sig/orb/resources/plans.rbs +0 -8
  62. data/sig/orb/resources/prices.rbs +13 -2
  63. metadata +37 -37
  64. data/lib/orb/models/plans/external_plan_id/version_create_params.rb +0 -17948
  65. data/lib/orb/models/plans/external_plan_id/version_create_response.rb +0 -819
  66. data/lib/orb/models/plans/external_plan_id/version_retrieve_params.rb +0 -24
  67. data/lib/orb/models/plans/external_plan_id/version_retrieve_response.rb +0 -819
  68. data/lib/orb/models/plans/version_create_response.rb +0 -814
  69. data/lib/orb/models/plans/version_retrieve_params.rb +0 -22
  70. data/lib/orb/models/plans/version_retrieve_response.rb +0 -814
  71. data/lib/orb/resources/plans/external_plan_id/versions.rb +0 -88
  72. data/lib/orb/resources/plans/versions.rb +0 -86
  73. data/rbi/orb/models/plans/external_plan_id/version_create_params.rbi +0 -32668
  74. data/rbi/orb/models/plans/external_plan_id/version_create_response.rbi +0 -1562
  75. data/rbi/orb/models/plans/external_plan_id/version_retrieve_params.rbi +0 -42
  76. data/rbi/orb/models/plans/external_plan_id/version_retrieve_response.rbi +0 -1562
  77. data/rbi/orb/models/plans/version_create_response.rbi +0 -1556
  78. data/rbi/orb/models/plans/version_retrieve_response.rbi +0 -1558
  79. data/rbi/orb/resources/plans/external_plan_id/versions.rbi +0 -103
  80. data/sig/orb/models/plans/external_plan_id/version_create_params.rbs +0 -12923
  81. data/sig/orb/models/plans/external_plan_id/version_create_response.rbs +0 -664
  82. data/sig/orb/models/plans/external_plan_id/version_retrieve_params.rbs +0 -27
  83. data/sig/orb/models/plans/external_plan_id/version_retrieve_response.rbs +0 -664
  84. data/sig/orb/models/plans/version_create_response.rbs +0 -662
  85. data/sig/orb/models/plans/version_retrieve_response.rbs +0 -662
  86. data/sig/orb/resources/plans/external_plan_id/versions.rbs +0 -30
  87. data/sig/orb/resources/plans/versions.rbs +0 -28
@@ -6,46 +6,11 @@ module Orb
6
6
  class PriceEvaluateResponse < Orb::Internal::Type::BaseModel
7
7
  # @!attribute data
8
8
  #
9
- # @return [Array<Orb::Models::PriceEvaluateResponse::Data>]
10
- required :data, -> { Orb::Internal::Type::ArrayOf[Orb::Models::PriceEvaluateResponse::Data] }
9
+ # @return [Array<Orb::Models::EvaluatePriceGroup>]
10
+ required :data, -> { Orb::Internal::Type::ArrayOf[Orb::EvaluatePriceGroup] }
11
11
 
12
12
  # @!method initialize(data:)
13
- # @param data [Array<Orb::Models::PriceEvaluateResponse::Data>]
14
-
15
- class Data < Orb::Internal::Type::BaseModel
16
- # @!attribute currency
17
- # The currency of the price
18
- #
19
- # @return [String]
20
- required :currency, String
21
-
22
- # @!attribute price_groups
23
- # The computed price groups associated with input price.
24
- #
25
- # @return [Array<Orb::Models::EvaluatePriceGroup>]
26
- required :price_groups, -> { Orb::Internal::Type::ArrayOf[Orb::EvaluatePriceGroup] }
27
-
28
- # @!attribute inline_price_index
29
- # The index of the inline price
30
- #
31
- # @return [Integer, nil]
32
- optional :inline_price_index, Integer, nil?: true
33
-
34
- # @!attribute price_id
35
- # The ID of the price
36
- #
37
- # @return [String, nil]
38
- optional :price_id, String, nil?: true
39
-
40
- # @!method initialize(currency:, price_groups:, inline_price_index: nil, price_id: nil)
41
- # @param currency [String] The currency of the price
42
- #
43
- # @param price_groups [Array<Orb::Models::EvaluatePriceGroup>] The computed price groups associated with input price.
44
- #
45
- # @param inline_price_index [Integer, nil] The index of the inline price
46
- #
47
- # @param price_id [String, nil] The ID of the price
48
- end
13
+ # @param data [Array<Orb::Models::EvaluatePriceGroup>]
49
14
  end
50
15
  end
51
16
  end
data/lib/orb/models.rb CHANGED
@@ -59,6 +59,14 @@ module Orb
59
59
 
60
60
  AmountDiscount = Orb::Models::AmountDiscount
61
61
 
62
+ Beta = Orb::Models::Beta
63
+
64
+ BetaCreatePlanVersionParams = Orb::Models::BetaCreatePlanVersionParams
65
+
66
+ BetaFetchPlanVersionParams = Orb::Models::BetaFetchPlanVersionParams
67
+
68
+ BetaSetDefaultPlanVersionParams = Orb::Models::BetaSetDefaultPlanVersionParams
69
+
62
70
  BillableMetric = Orb::Models::BillableMetric
63
71
 
64
72
  BillingCycleRelativeDate = Orb::Models::BillingCycleRelativeDate
@@ -190,14 +198,18 @@ module Orb
190
198
 
191
199
  Plans = Orb::Models::Plans
192
200
 
193
- PlanSetDefaultVersionParams = Orb::Models::PlanSetDefaultVersionParams
194
-
195
201
  PlanUpdateParams = Orb::Models::PlanUpdateParams
196
202
 
203
+ PlanVersion = Orb::Models::PlanVersion
204
+
205
+ PlanVersionPhase = Orb::Models::PlanVersionPhase
206
+
197
207
  Price = Orb::Models::Price
198
208
 
199
209
  PriceCreateParams = Orb::Models::PriceCreateParams
200
210
 
211
+ PriceEvaluateMultipleParams = Orb::Models::PriceEvaluateMultipleParams
212
+
201
213
  PriceEvaluateParams = Orb::Models::PriceEvaluateParams
202
214
 
203
215
  PriceFetchParams = Orb::Models::PriceFetchParams
@@ -0,0 +1,113 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Orb
4
+ module Resources
5
+ class Beta
6
+ class ExternalPlanID
7
+ # This API endpoint is in beta and its interface may change. It is recommended for
8
+ # use only in test mode.
9
+ #
10
+ # This endpoint allows the creation of a new plan version for an existing plan.
11
+ #
12
+ # @overload create_plan_version(external_plan_id, version:, add_adjustments: nil, add_prices: nil, remove_adjustments: nil, remove_prices: nil, replace_adjustments: nil, replace_prices: nil, set_as_default: nil, request_options: {})
13
+ #
14
+ # @param external_plan_id [String]
15
+ #
16
+ # @param version [Integer] New version number.
17
+ #
18
+ # @param add_adjustments [Array<Orb::Models::Beta::ExternalPlanIDCreatePlanVersionParams::AddAdjustment>, nil] Additional adjustments to be added to the plan.
19
+ #
20
+ # @param add_prices [Array<Orb::Models::Beta::ExternalPlanIDCreatePlanVersionParams::AddPrice>, nil] Additional prices to be added to the plan.
21
+ #
22
+ # @param remove_adjustments [Array<Orb::Models::Beta::ExternalPlanIDCreatePlanVersionParams::RemoveAdjustment>, nil] Adjustments to be removed from the plan.
23
+ #
24
+ # @param remove_prices [Array<Orb::Models::Beta::ExternalPlanIDCreatePlanVersionParams::RemovePrice>, nil] Prices to be removed from the plan.
25
+ #
26
+ # @param replace_adjustments [Array<Orb::Models::Beta::ExternalPlanIDCreatePlanVersionParams::ReplaceAdjustment>, nil] Adjustments to be replaced with additional adjustments on the plan.
27
+ #
28
+ # @param replace_prices [Array<Orb::Models::Beta::ExternalPlanIDCreatePlanVersionParams::ReplacePrice>, nil] Prices to be replaced with additional prices on the plan.
29
+ #
30
+ # @param set_as_default [Boolean, nil] Set this new plan version as the default
31
+ #
32
+ # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
33
+ #
34
+ # @return [Orb::Models::PlanVersion]
35
+ #
36
+ # @see Orb::Models::Beta::ExternalPlanIDCreatePlanVersionParams
37
+ def create_plan_version(external_plan_id, params)
38
+ parsed, options = Orb::Beta::ExternalPlanIDCreatePlanVersionParams.dump_request(params)
39
+ @client.request(
40
+ method: :post,
41
+ path: ["plans/external_plan_id/%1$s/versions", external_plan_id],
42
+ body: parsed,
43
+ model: Orb::PlanVersion,
44
+ options: options
45
+ )
46
+ end
47
+
48
+ # This API endpoint is in beta and its interface may change. It is recommended for
49
+ # use only in test mode.
50
+ #
51
+ # This endpoint is used to fetch a plan version. It returns the phases, prices,
52
+ # and adjustments present on this version of the plan.
53
+ #
54
+ # @overload fetch_plan_version(version, external_plan_id:, request_options: {})
55
+ #
56
+ # @param version [String]
57
+ # @param external_plan_id [String]
58
+ # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
59
+ #
60
+ # @return [Orb::Models::PlanVersion]
61
+ #
62
+ # @see Orb::Models::Beta::ExternalPlanIDFetchPlanVersionParams
63
+ def fetch_plan_version(version, params)
64
+ parsed, options = Orb::Beta::ExternalPlanIDFetchPlanVersionParams.dump_request(params)
65
+ external_plan_id =
66
+ parsed.delete(:external_plan_id) do
67
+ raise ArgumentError.new("missing required path argument #{_1}")
68
+ end
69
+ @client.request(
70
+ method: :get,
71
+ path: ["plans/external_plan_id/%1$s/versions/%2$s", external_plan_id, version],
72
+ model: Orb::PlanVersion,
73
+ options: options
74
+ )
75
+ end
76
+
77
+ # This API endpoint is in beta and its interface may change. It is recommended for
78
+ # use only in test mode.
79
+ #
80
+ # This endpoint allows setting the default version of a plan.
81
+ #
82
+ # @overload set_default_plan_version(external_plan_id, version:, request_options: {})
83
+ #
84
+ # @param external_plan_id [String]
85
+ #
86
+ # @param version [Integer] Plan version to set as the default.
87
+ #
88
+ # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
89
+ #
90
+ # @return [Orb::Models::Plan]
91
+ #
92
+ # @see Orb::Models::Beta::ExternalPlanIDSetDefaultPlanVersionParams
93
+ def set_default_plan_version(external_plan_id, params)
94
+ parsed, options = Orb::Beta::ExternalPlanIDSetDefaultPlanVersionParams.dump_request(params)
95
+ @client.request(
96
+ method: :post,
97
+ path: ["plans/external_plan_id/%1$s/set_default_version", external_plan_id],
98
+ body: parsed,
99
+ model: Orb::Plan,
100
+ options: options
101
+ )
102
+ end
103
+
104
+ # @api private
105
+ #
106
+ # @param client [Orb::Client]
107
+ def initialize(client:)
108
+ @client = client
109
+ end
110
+ end
111
+ end
112
+ end
113
+ end
@@ -0,0 +1,115 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Orb
4
+ module Resources
5
+ class Beta
6
+ # @return [Orb::Resources::Beta::ExternalPlanID]
7
+ attr_reader :external_plan_id
8
+
9
+ # This API endpoint is in beta and its interface may change. It is recommended for
10
+ # use only in test mode.
11
+ #
12
+ # This endpoint allows the creation of a new plan version for an existing plan.
13
+ #
14
+ # @overload create_plan_version(plan_id, version:, add_adjustments: nil, add_prices: nil, remove_adjustments: nil, remove_prices: nil, replace_adjustments: nil, replace_prices: nil, set_as_default: nil, request_options: {})
15
+ #
16
+ # @param plan_id [String]
17
+ #
18
+ # @param version [Integer] New version number.
19
+ #
20
+ # @param add_adjustments [Array<Orb::Models::BetaCreatePlanVersionParams::AddAdjustment>, nil] Additional adjustments to be added to the plan.
21
+ #
22
+ # @param add_prices [Array<Orb::Models::BetaCreatePlanVersionParams::AddPrice>, nil] Additional prices to be added to the plan.
23
+ #
24
+ # @param remove_adjustments [Array<Orb::Models::BetaCreatePlanVersionParams::RemoveAdjustment>, nil] Adjustments to be removed from the plan.
25
+ #
26
+ # @param remove_prices [Array<Orb::Models::BetaCreatePlanVersionParams::RemovePrice>, nil] Prices to be removed from the plan.
27
+ #
28
+ # @param replace_adjustments [Array<Orb::Models::BetaCreatePlanVersionParams::ReplaceAdjustment>, nil] Adjustments to be replaced with additional adjustments on the plan.
29
+ #
30
+ # @param replace_prices [Array<Orb::Models::BetaCreatePlanVersionParams::ReplacePrice>, nil] Prices to be replaced with additional prices on the plan.
31
+ #
32
+ # @param set_as_default [Boolean, nil] Set this new plan version as the default
33
+ #
34
+ # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
35
+ #
36
+ # @return [Orb::Models::PlanVersion]
37
+ #
38
+ # @see Orb::Models::BetaCreatePlanVersionParams
39
+ def create_plan_version(plan_id, params)
40
+ parsed, options = Orb::BetaCreatePlanVersionParams.dump_request(params)
41
+ @client.request(
42
+ method: :post,
43
+ path: ["plans/%1$s/versions", plan_id],
44
+ body: parsed,
45
+ model: Orb::PlanVersion,
46
+ options: options
47
+ )
48
+ end
49
+
50
+ # This API endpoint is in beta and its interface may change. It is recommended for
51
+ # use only in test mode.
52
+ #
53
+ # This endpoint is used to fetch a plan version. It returns the phases, prices,
54
+ # and adjustments present on this version of the plan.
55
+ #
56
+ # @overload fetch_plan_version(version, plan_id:, request_options: {})
57
+ #
58
+ # @param version [String]
59
+ # @param plan_id [String]
60
+ # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
61
+ #
62
+ # @return [Orb::Models::PlanVersion]
63
+ #
64
+ # @see Orb::Models::BetaFetchPlanVersionParams
65
+ def fetch_plan_version(version, params)
66
+ parsed, options = Orb::BetaFetchPlanVersionParams.dump_request(params)
67
+ plan_id =
68
+ parsed.delete(:plan_id) do
69
+ raise ArgumentError.new("missing required path argument #{_1}")
70
+ end
71
+ @client.request(
72
+ method: :get,
73
+ path: ["plans/%1$s/versions/%2$s", plan_id, version],
74
+ model: Orb::PlanVersion,
75
+ options: options
76
+ )
77
+ end
78
+
79
+ # This API endpoint is in beta and its interface may change. It is recommended for
80
+ # use only in test mode.
81
+ #
82
+ # This endpoint allows setting the default version of a plan.
83
+ #
84
+ # @overload set_default_plan_version(plan_id, version:, request_options: {})
85
+ #
86
+ # @param plan_id [String]
87
+ #
88
+ # @param version [Integer] Plan version to set as the default.
89
+ #
90
+ # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
91
+ #
92
+ # @return [Orb::Models::Plan]
93
+ #
94
+ # @see Orb::Models::BetaSetDefaultPlanVersionParams
95
+ def set_default_plan_version(plan_id, params)
96
+ parsed, options = Orb::BetaSetDefaultPlanVersionParams.dump_request(params)
97
+ @client.request(
98
+ method: :post,
99
+ path: ["plans/%1$s/set_default_version", plan_id],
100
+ body: parsed,
101
+ model: Orb::Plan,
102
+ options: options
103
+ )
104
+ end
105
+
106
+ # @api private
107
+ #
108
+ # @param client [Orb::Client]
109
+ def initialize(client:)
110
+ @client = client
111
+ @external_plan_id = Orb::Resources::Beta::ExternalPlanID.new(client: client)
112
+ end
113
+ end
114
+ end
115
+ end
@@ -4,9 +4,6 @@ module Orb
4
4
  module Resources
5
5
  class Plans
6
6
  class ExternalPlanID
7
- # @return [Orb::Resources::Plans::ExternalPlanID::Versions]
8
- attr_reader :versions
9
-
10
7
  # Some parameter documentations has been truncated, see
11
8
  # {Orb::Models::Plans::ExternalPlanIDUpdateParams} for more details.
12
9
  #
@@ -73,39 +70,11 @@ module Orb
73
70
  )
74
71
  end
75
72
 
76
- # This API endpoint is in beta and its interface may change. It is recommended for
77
- # use only in test mode.
78
- #
79
- # This endpoint allows setting the default version of a plan.
80
- #
81
- # @overload set_default_version(external_plan_id, version:, request_options: {})
82
- #
83
- # @param external_plan_id [String]
84
- #
85
- # @param version [Integer] Plan version to set as the default.
86
- #
87
- # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
88
- #
89
- # @return [Orb::Models::Plan]
90
- #
91
- # @see Orb::Models::Plans::ExternalPlanIDSetDefaultVersionParams
92
- def set_default_version(external_plan_id, params)
93
- parsed, options = Orb::Plans::ExternalPlanIDSetDefaultVersionParams.dump_request(params)
94
- @client.request(
95
- method: :post,
96
- path: ["plans/external_plan_id/%1$s/set_default_version", external_plan_id],
97
- body: parsed,
98
- model: Orb::Plan,
99
- options: options
100
- )
101
- end
102
-
103
73
  # @api private
104
74
  #
105
75
  # @param client [Orb::Client]
106
76
  def initialize(client:)
107
77
  @client = client
108
- @versions = Orb::Resources::Plans::ExternalPlanID::Versions.new(client: client)
109
78
  end
110
79
  end
111
80
  end
@@ -6,9 +6,6 @@ module Orb
6
6
  # @return [Orb::Resources::Plans::ExternalPlanID]
7
7
  attr_reader :external_plan_id
8
8
 
9
- # @return [Orb::Resources::Plans::Versions]
10
- attr_reader :versions
11
-
12
9
  # Some parameter documentations has been truncated, see
13
10
  # {Orb::Models::PlanCreateParams} for more details.
14
11
  #
@@ -156,40 +153,12 @@ module Orb
156
153
  )
157
154
  end
158
155
 
159
- # This API endpoint is in beta and its interface may change. It is recommended for
160
- # use only in test mode.
161
- #
162
- # This endpoint allows setting the default version of a plan.
163
- #
164
- # @overload set_default_version(plan_id, version:, request_options: {})
165
- #
166
- # @param plan_id [String]
167
- #
168
- # @param version [Integer] Plan version to set as the default.
169
- #
170
- # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
171
- #
172
- # @return [Orb::Models::Plan]
173
- #
174
- # @see Orb::Models::PlanSetDefaultVersionParams
175
- def set_default_version(plan_id, params)
176
- parsed, options = Orb::PlanSetDefaultVersionParams.dump_request(params)
177
- @client.request(
178
- method: :post,
179
- path: ["plans/%1$s/set_default_version", plan_id],
180
- body: parsed,
181
- model: Orb::Plan,
182
- options: options
183
- )
184
- end
185
-
186
156
  # @api private
187
157
  #
188
158
  # @param client [Orb::Client]
189
159
  def initialize(client:)
190
160
  @client = client
191
161
  @external_plan_id = Orb::Resources::Plans::ExternalPlanID.new(client: client)
192
- @versions = Orb::Resources::Plans::Versions.new(client: client)
193
162
  end
194
163
  end
195
164
  end
@@ -176,6 +176,67 @@ module Orb
176
176
  )
177
177
  end
178
178
 
179
+ # Some parameter documentations has been truncated, see
180
+ # {Orb::Models::PriceEvaluateParams} for more details.
181
+ #
182
+ # [NOTE] It is recommended to use the `/v1/prices/evaluate` which offers further
183
+ # functionality, such as multiple prices, inline price definitions, and querying
184
+ # over preview events.
185
+ #
186
+ # This endpoint is used to evaluate the output of a price for a given customer and
187
+ # time range. It enables filtering and grouping the output using
188
+ # [computed properties](/extensibility/advanced-metrics#computed-properties),
189
+ # supporting the following workflows:
190
+ #
191
+ # 1. Showing detailed usage and costs to the end customer.
192
+ # 2. Auditing subtotals on invoice line items.
193
+ #
194
+ # For these workflows, the expressiveness of computed properties in both the
195
+ # filters and grouping is critical. For example, if you'd like to show your
196
+ # customer their usage grouped by hour and another property, you can do so with
197
+ # the following `grouping_keys`:
198
+ # `["hour_floor_timestamp_millis(timestamp_millis)", "my_property"]`. If you'd
199
+ # like to examine a customer's usage for a specific property value, you can do so
200
+ # with the following `filter`:
201
+ # `my_property = 'foo' AND my_other_property = 'bar'`.
202
+ #
203
+ # By default, the start of the time range must be no more than 100 days ago and
204
+ # the length of the results must be no greater than 1000. Note that this is a POST
205
+ # endpoint rather than a GET endpoint because it employs a JSON body rather than
206
+ # query parameters.
207
+ #
208
+ # @overload evaluate(price_id, timeframe_end:, timeframe_start:, customer_id: nil, external_customer_id: nil, filter: nil, grouping_keys: nil, request_options: {})
209
+ #
210
+ # @param price_id [String]
211
+ #
212
+ # @param timeframe_end [Time] The exclusive upper bound for event timestamps
213
+ #
214
+ # @param timeframe_start [Time] The inclusive lower bound for event timestamps
215
+ #
216
+ # @param customer_id [String, nil] The ID of the customer to which this evaluation is scoped.
217
+ #
218
+ # @param external_customer_id [String, nil] The external customer ID of the customer to which this evaluation is scoped.
219
+ #
220
+ # @param filter [String, nil] A boolean [computed property](/extensibility/advanced-metrics#computed-propertie
221
+ #
222
+ # @param grouping_keys [Array<String>] Properties (or [computed properties](/extensibility/advanced-metrics#computed-pr
223
+ #
224
+ # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
225
+ #
226
+ # @return [Orb::Models::PriceEvaluateResponse]
227
+ #
228
+ # @see Orb::Models::PriceEvaluateParams
229
+ def evaluate(price_id, params)
230
+ parsed, options = Orb::PriceEvaluateParams.dump_request(params)
231
+ @client.request(
232
+ method: :post,
233
+ path: ["prices/%1$s/evaluate", price_id],
234
+ body: parsed,
235
+ model: Orb::Models::PriceEvaluateResponse,
236
+ options: options
237
+ )
238
+ end
239
+
179
240
  # This endpoint is used to evaluate the output of price(s) for a given customer
180
241
  # and time range over either ingested events or preview events. It enables
181
242
  # filtering and grouping the output using
@@ -207,7 +268,7 @@ module Orb
207
268
  # endpoint rather than a GET endpoint because it employs a JSON body rather than
208
269
  # query parameters.
209
270
  #
210
- # @overload evaluate(timeframe_end:, timeframe_start:, customer_id: nil, events: nil, external_customer_id: nil, price_evaluations: nil, request_options: {})
271
+ # @overload evaluate_multiple(timeframe_end:, timeframe_start:, customer_id: nil, events: nil, external_customer_id: nil, price_evaluations: nil, request_options: {})
211
272
  #
212
273
  # @param timeframe_end [Time] The exclusive upper bound for event timestamps
213
274
  #
@@ -215,24 +276,24 @@ module Orb
215
276
  #
216
277
  # @param customer_id [String, nil] The ID of the customer to which this evaluation is scoped.
217
278
  #
218
- # @param events [Array<Orb::Models::PriceEvaluateParams::Event>, nil] Optional list of preview events to use instead of actual usage data (max 500)
279
+ # @param events [Array<Orb::Models::PriceEvaluateMultipleParams::Event>, nil] Optional list of preview events to use instead of actual usage data (max 500)
219
280
  #
220
281
  # @param external_customer_id [String, nil] The external customer ID of the customer to which this evaluation is scoped.
221
282
  #
222
- # @param price_evaluations [Array<Orb::Models::PriceEvaluateParams::PriceEvaluation>] List of prices to evaluate (max 100)
283
+ # @param price_evaluations [Array<Orb::Models::PriceEvaluateMultipleParams::PriceEvaluation>] List of prices to evaluate (max 100)
223
284
  #
224
285
  # @param request_options [Orb::RequestOptions, Hash{Symbol=>Object}, nil]
225
286
  #
226
- # @return [Orb::Models::PriceEvaluateResponse]
287
+ # @return [Orb::Models::PriceEvaluateMultipleResponse]
227
288
  #
228
- # @see Orb::Models::PriceEvaluateParams
229
- def evaluate(params)
230
- parsed, options = Orb::PriceEvaluateParams.dump_request(params)
289
+ # @see Orb::Models::PriceEvaluateMultipleParams
290
+ def evaluate_multiple(params)
291
+ parsed, options = Orb::PriceEvaluateMultipleParams.dump_request(params)
231
292
  @client.request(
232
293
  method: :post,
233
294
  path: "prices/evaluate",
234
295
  body: parsed,
235
- model: Orb::Models::PriceEvaluateResponse,
296
+ model: Orb::Models::PriceEvaluateMultipleResponse,
236
297
  options: options
237
298
  )
238
299
  end
data/lib/orb/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Orb
4
- VERSION = "0.6.0"
4
+ VERSION = "0.7.0"
5
5
  end
data/lib/orb.rb CHANGED
@@ -61,6 +61,12 @@ require_relative "orb/models/alert_list_params"
61
61
  require_relative "orb/models/alert_retrieve_params"
62
62
  require_relative "orb/models/alert_update_params"
63
63
  require_relative "orb/models/amount_discount"
64
+ require_relative "orb/models/beta/external_plan_id_create_plan_version_params"
65
+ require_relative "orb/models/beta/external_plan_id_fetch_plan_version_params"
66
+ require_relative "orb/models/beta/external_plan_id_set_default_plan_version_params"
67
+ require_relative "orb/models/beta_create_plan_version_params"
68
+ require_relative "orb/models/beta_fetch_plan_version_params"
69
+ require_relative "orb/models/beta_set_default_plan_version_params"
64
70
  require_relative "orb/models/billable_metric"
65
71
  require_relative "orb/models/billing_cycle_relative_date"
66
72
  require_relative "orb/models/coupon"
@@ -171,21 +177,15 @@ require_relative "orb/models/plan"
171
177
  require_relative "orb/models/plan_create_params"
172
178
  require_relative "orb/models/plan_fetch_params"
173
179
  require_relative "orb/models/plan_list_params"
174
- require_relative "orb/models/plans/external_plan_id/version_create_params"
175
- require_relative "orb/models/plans/external_plan_id/version_create_response"
176
- require_relative "orb/models/plans/external_plan_id/version_retrieve_params"
177
- require_relative "orb/models/plans/external_plan_id/version_retrieve_response"
178
180
  require_relative "orb/models/plans/external_plan_id_fetch_params"
179
- require_relative "orb/models/plans/external_plan_id_set_default_version_params"
180
181
  require_relative "orb/models/plans/external_plan_id_update_params"
181
- require_relative "orb/models/plans/version_create_params"
182
- require_relative "orb/models/plans/version_create_response"
183
- require_relative "orb/models/plans/version_retrieve_params"
184
- require_relative "orb/models/plans/version_retrieve_response"
185
- require_relative "orb/models/plan_set_default_version_params"
186
182
  require_relative "orb/models/plan_update_params"
183
+ require_relative "orb/models/plan_version"
184
+ require_relative "orb/models/plan_version_phase"
187
185
  require_relative "orb/models/price"
188
186
  require_relative "orb/models/price_create_params"
187
+ require_relative "orb/models/price_evaluate_multiple_params"
188
+ require_relative "orb/models/price_evaluate_multiple_response"
189
189
  require_relative "orb/models/price_evaluate_params"
190
190
  require_relative "orb/models/price_evaluate_response"
191
191
  require_relative "orb/models/price_fetch_params"
@@ -236,6 +236,8 @@ require_relative "orb/models/trial_discount"
236
236
  require_relative "orb/models/usage_discount"
237
237
  require_relative "orb/models"
238
238
  require_relative "orb/resources/alerts"
239
+ require_relative "orb/resources/beta"
240
+ require_relative "orb/resources/beta/external_plan_id"
239
241
  require_relative "orb/resources/coupons"
240
242
  require_relative "orb/resources/coupons/subscriptions"
241
243
  require_relative "orb/resources/credit_notes"
@@ -256,8 +258,6 @@ require_relative "orb/resources/items"
256
258
  require_relative "orb/resources/metrics"
257
259
  require_relative "orb/resources/plans"
258
260
  require_relative "orb/resources/plans/external_plan_id"
259
- require_relative "orb/resources/plans/external_plan_id/versions"
260
- require_relative "orb/resources/plans/versions"
261
261
  require_relative "orb/resources/prices"
262
262
  require_relative "orb/resources/prices/external_price_id"
263
263
  require_relative "orb/resources/subscription_changes"
data/rbi/orb/client.rbi CHANGED
@@ -16,6 +16,9 @@ module Orb
16
16
  sig { returns(Orb::Resources::TopLevel) }
17
17
  attr_reader :top_level
18
18
 
19
+ sig { returns(Orb::Resources::Beta) }
20
+ attr_reader :beta
21
+
19
22
  sig { returns(Orb::Resources::Coupons) }
20
23
  attr_reader :coupons
21
24