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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -0
- data/README.md +1 -1
- data/lib/orb/client.rb +4 -0
- data/lib/orb/models/{plans/version_create_params.rb → beta/external_plan_id_create_plan_version_params.rb} +1880 -1734
- data/lib/orb/models/beta/external_plan_id_fetch_plan_version_params.rb +22 -0
- 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
- data/lib/orb/models/beta_create_plan_version_params.rb +17758 -0
- data/lib/orb/models/beta_fetch_plan_version_params.rb +20 -0
- data/lib/orb/models/{plan_set_default_version_params.rb → beta_set_default_plan_version_params.rb} +2 -2
- data/lib/orb/models/plan_version.rb +735 -0
- data/lib/orb/models/plan_version_phase.rb +70 -0
- data/lib/orb/models/price_evaluate_multiple_params.rb +8620 -0
- data/lib/orb/models/price_evaluate_multiple_response.rb +51 -0
- data/lib/orb/models/price_evaluate_params.rb +21 -8529
- data/lib/orb/models/price_evaluate_response.rb +3 -38
- data/lib/orb/models.rb +14 -2
- data/lib/orb/resources/beta/external_plan_id.rb +113 -0
- data/lib/orb/resources/beta.rb +115 -0
- data/lib/orb/resources/plans/external_plan_id.rb +0 -31
- data/lib/orb/resources/plans.rb +0 -31
- data/lib/orb/resources/prices.rb +69 -8
- data/lib/orb/version.rb +1 -1
- data/lib/orb.rb +12 -12
- data/rbi/orb/client.rbi +3 -0
- data/rbi/orb/models/{plans/version_create_params.rbi → beta/external_plan_id_create_plan_version_params.rbi} +2816 -2771
- data/rbi/orb/models/{plans/version_retrieve_params.rbi → beta/external_plan_id_fetch_plan_version_params.rbi} +10 -7
- 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
- data/rbi/orb/models/beta_create_plan_version_params.rbi +32595 -0
- data/rbi/orb/models/beta_fetch_plan_version_params.rbi +35 -0
- data/rbi/orb/models/{plan_set_default_version_params.rbi → beta_set_default_plan_version_params.rbi} +2 -2
- data/rbi/orb/models/plan_version.rbi +1367 -0
- data/rbi/orb/models/plan_version_phase.rbi +99 -0
- data/rbi/orb/models/price_evaluate_multiple_params.rbi +15764 -0
- data/rbi/orb/models/price_evaluate_multiple_response.rbi +96 -0
- data/rbi/orb/models/price_evaluate_params.rbi +25 -15684
- data/rbi/orb/models/price_evaluate_response.rbi +5 -68
- data/rbi/orb/models.rbi +14 -2
- data/rbi/orb/resources/{plans/versions.rbi → beta/external_plan_id.rbi} +42 -15
- data/rbi/orb/resources/beta.rbi +111 -0
- data/rbi/orb/resources/plans/external_plan_id.rbi +0 -22
- data/rbi/orb/resources/plans.rbi +0 -22
- data/rbi/orb/resources/prices.rbi +66 -4
- data/sig/orb/client.rbs +2 -0
- data/sig/orb/models/{plans/version_create_params.rbs → beta/external_plan_id_create_plan_version_params.rbs} +1763 -1763
- data/sig/orb/models/{plans/version_retrieve_params.rbs → beta/external_plan_id_fetch_plan_version_params.rbs} +7 -7
- 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
- data/sig/orb/models/beta_create_plan_version_params.rbs +12877 -0
- data/sig/orb/models/beta_fetch_plan_version_params.rbs +20 -0
- data/sig/orb/models/{plan_set_default_version_params.rbs → beta_set_default_plan_version_params.rbs} +2 -2
- data/sig/orb/models/plan_version.rbs +583 -0
- data/sig/orb/models/plan_version_phase.rbs +60 -0
- data/sig/orb/models/price_evaluate_multiple_params.rbs +6230 -0
- data/sig/orb/models/price_evaluate_multiple_response.rbs +50 -0
- data/sig/orb/models/price_evaluate_params.rbs +10 -6187
- data/sig/orb/models/price_evaluate_response.rbs +4 -41
- data/sig/orb/models.rbs +14 -2
- data/sig/orb/resources/beta/external_plan_id.rbs +34 -0
- data/sig/orb/resources/beta.rbs +34 -0
- data/sig/orb/resources/plans/external_plan_id.rbs +0 -8
- data/sig/orb/resources/plans.rbs +0 -8
- data/sig/orb/resources/prices.rbs +13 -2
- metadata +37 -37
- data/lib/orb/models/plans/external_plan_id/version_create_params.rb +0 -17948
- data/lib/orb/models/plans/external_plan_id/version_create_response.rb +0 -819
- data/lib/orb/models/plans/external_plan_id/version_retrieve_params.rb +0 -24
- data/lib/orb/models/plans/external_plan_id/version_retrieve_response.rb +0 -819
- data/lib/orb/models/plans/version_create_response.rb +0 -814
- data/lib/orb/models/plans/version_retrieve_params.rb +0 -22
- data/lib/orb/models/plans/version_retrieve_response.rb +0 -814
- data/lib/orb/resources/plans/external_plan_id/versions.rb +0 -88
- data/lib/orb/resources/plans/versions.rb +0 -86
- data/rbi/orb/models/plans/external_plan_id/version_create_params.rbi +0 -32668
- data/rbi/orb/models/plans/external_plan_id/version_create_response.rbi +0 -1562
- data/rbi/orb/models/plans/external_plan_id/version_retrieve_params.rbi +0 -42
- data/rbi/orb/models/plans/external_plan_id/version_retrieve_response.rbi +0 -1562
- data/rbi/orb/models/plans/version_create_response.rbi +0 -1556
- data/rbi/orb/models/plans/version_retrieve_response.rbi +0 -1558
- data/rbi/orb/resources/plans/external_plan_id/versions.rbi +0 -103
- data/sig/orb/models/plans/external_plan_id/version_create_params.rbs +0 -12923
- data/sig/orb/models/plans/external_plan_id/version_create_response.rbs +0 -664
- data/sig/orb/models/plans/external_plan_id/version_retrieve_params.rbs +0 -27
- data/sig/orb/models/plans/external_plan_id/version_retrieve_response.rbs +0 -664
- data/sig/orb/models/plans/version_create_response.rbs +0 -662
- data/sig/orb/models/plans/version_retrieve_response.rbs +0 -662
- data/sig/orb/resources/plans/external_plan_id/versions.rbs +0 -30
- data/sig/orb/resources/plans/versions.rbs +0 -28
@@ -8,83 +8,20 @@ module Orb
|
|
8
8
|
T.any(Orb::Models::PriceEvaluateResponse, Orb::Internal::AnyHash)
|
9
9
|
end
|
10
10
|
|
11
|
-
sig { returns(T::Array[Orb::
|
11
|
+
sig { returns(T::Array[Orb::EvaluatePriceGroup]) }
|
12
12
|
attr_accessor :data
|
13
13
|
|
14
14
|
sig do
|
15
|
-
params(
|
16
|
-
|
17
|
-
)
|
15
|
+
params(data: T::Array[Orb::EvaluatePriceGroup::OrHash]).returns(
|
16
|
+
T.attached_class
|
17
|
+
)
|
18
18
|
end
|
19
19
|
def self.new(data:)
|
20
20
|
end
|
21
21
|
|
22
|
-
sig
|
23
|
-
override.returns(
|
24
|
-
{ data: T::Array[Orb::Models::PriceEvaluateResponse::Data] }
|
25
|
-
)
|
26
|
-
end
|
22
|
+
sig { override.returns({ data: T::Array[Orb::EvaluatePriceGroup] }) }
|
27
23
|
def to_hash
|
28
24
|
end
|
29
|
-
|
30
|
-
class Data < Orb::Internal::Type::BaseModel
|
31
|
-
OrHash =
|
32
|
-
T.type_alias do
|
33
|
-
T.any(
|
34
|
-
Orb::Models::PriceEvaluateResponse::Data,
|
35
|
-
Orb::Internal::AnyHash
|
36
|
-
)
|
37
|
-
end
|
38
|
-
|
39
|
-
# The currency of the price
|
40
|
-
sig { returns(String) }
|
41
|
-
attr_accessor :currency
|
42
|
-
|
43
|
-
# The computed price groups associated with input price.
|
44
|
-
sig { returns(T::Array[Orb::EvaluatePriceGroup]) }
|
45
|
-
attr_accessor :price_groups
|
46
|
-
|
47
|
-
# The index of the inline price
|
48
|
-
sig { returns(T.nilable(Integer)) }
|
49
|
-
attr_accessor :inline_price_index
|
50
|
-
|
51
|
-
# The ID of the price
|
52
|
-
sig { returns(T.nilable(String)) }
|
53
|
-
attr_accessor :price_id
|
54
|
-
|
55
|
-
sig do
|
56
|
-
params(
|
57
|
-
currency: String,
|
58
|
-
price_groups: T::Array[Orb::EvaluatePriceGroup::OrHash],
|
59
|
-
inline_price_index: T.nilable(Integer),
|
60
|
-
price_id: T.nilable(String)
|
61
|
-
).returns(T.attached_class)
|
62
|
-
end
|
63
|
-
def self.new(
|
64
|
-
# The currency of the price
|
65
|
-
currency:,
|
66
|
-
# The computed price groups associated with input price.
|
67
|
-
price_groups:,
|
68
|
-
# The index of the inline price
|
69
|
-
inline_price_index: nil,
|
70
|
-
# The ID of the price
|
71
|
-
price_id: nil
|
72
|
-
)
|
73
|
-
end
|
74
|
-
|
75
|
-
sig do
|
76
|
-
override.returns(
|
77
|
-
{
|
78
|
-
currency: String,
|
79
|
-
price_groups: T::Array[Orb::EvaluatePriceGroup],
|
80
|
-
inline_price_index: T.nilable(Integer),
|
81
|
-
price_id: T.nilable(String)
|
82
|
-
}
|
83
|
-
)
|
84
|
-
end
|
85
|
-
def to_hash
|
86
|
-
end
|
87
|
-
end
|
88
25
|
end
|
89
26
|
end
|
90
27
|
end
|
data/rbi/orb/models.rbi
CHANGED
@@ -23,6 +23,14 @@ module Orb
|
|
23
23
|
|
24
24
|
AmountDiscount = Orb::Models::AmountDiscount
|
25
25
|
|
26
|
+
Beta = Orb::Models::Beta
|
27
|
+
|
28
|
+
BetaCreatePlanVersionParams = Orb::Models::BetaCreatePlanVersionParams
|
29
|
+
|
30
|
+
BetaFetchPlanVersionParams = Orb::Models::BetaFetchPlanVersionParams
|
31
|
+
|
32
|
+
BetaSetDefaultPlanVersionParams = Orb::Models::BetaSetDefaultPlanVersionParams
|
33
|
+
|
26
34
|
BillableMetric = Orb::Models::BillableMetric
|
27
35
|
|
28
36
|
BillingCycleRelativeDate = Orb::Models::BillingCycleRelativeDate
|
@@ -158,14 +166,18 @@ module Orb
|
|
158
166
|
|
159
167
|
Plans = Orb::Models::Plans
|
160
168
|
|
161
|
-
PlanSetDefaultVersionParams = Orb::Models::PlanSetDefaultVersionParams
|
162
|
-
|
163
169
|
PlanUpdateParams = Orb::Models::PlanUpdateParams
|
164
170
|
|
171
|
+
PlanVersion = Orb::Models::PlanVersion
|
172
|
+
|
173
|
+
PlanVersionPhase = Orb::Models::PlanVersionPhase
|
174
|
+
|
165
175
|
Price = Orb::Models::Price
|
166
176
|
|
167
177
|
PriceCreateParams = Orb::Models::PriceCreateParams
|
168
178
|
|
179
|
+
PriceEvaluateMultipleParams = Orb::Models::PriceEvaluateMultipleParams
|
180
|
+
|
169
181
|
PriceEvaluateParams = Orb::Models::PriceEvaluateParams
|
170
182
|
|
171
183
|
PriceFetchParams = Orb::Models::PriceFetchParams
|
@@ -2,50 +2,58 @@
|
|
2
2
|
|
3
3
|
module Orb
|
4
4
|
module Resources
|
5
|
-
class
|
6
|
-
class
|
5
|
+
class Beta
|
6
|
+
class ExternalPlanID
|
7
7
|
# This API endpoint is in beta and its interface may change. It is recommended for
|
8
8
|
# use only in test mode.
|
9
9
|
#
|
10
10
|
# This endpoint allows the creation of a new plan version for an existing plan.
|
11
11
|
sig do
|
12
12
|
params(
|
13
|
-
|
13
|
+
external_plan_id: String,
|
14
14
|
version: Integer,
|
15
15
|
add_adjustments:
|
16
16
|
T.nilable(
|
17
|
-
T::Array[
|
17
|
+
T::Array[
|
18
|
+
Orb::Beta::ExternalPlanIDCreatePlanVersionParams::AddAdjustment::OrHash
|
19
|
+
]
|
18
20
|
),
|
19
21
|
add_prices:
|
20
22
|
T.nilable(
|
21
|
-
T::Array[
|
23
|
+
T::Array[
|
24
|
+
Orb::Beta::ExternalPlanIDCreatePlanVersionParams::AddPrice::OrHash
|
25
|
+
]
|
22
26
|
),
|
23
27
|
remove_adjustments:
|
24
28
|
T.nilable(
|
25
29
|
T::Array[
|
26
|
-
Orb::
|
30
|
+
Orb::Beta::ExternalPlanIDCreatePlanVersionParams::RemoveAdjustment::OrHash
|
27
31
|
]
|
28
32
|
),
|
29
33
|
remove_prices:
|
30
34
|
T.nilable(
|
31
|
-
T::Array[
|
35
|
+
T::Array[
|
36
|
+
Orb::Beta::ExternalPlanIDCreatePlanVersionParams::RemovePrice::OrHash
|
37
|
+
]
|
32
38
|
),
|
33
39
|
replace_adjustments:
|
34
40
|
T.nilable(
|
35
41
|
T::Array[
|
36
|
-
Orb::
|
42
|
+
Orb::Beta::ExternalPlanIDCreatePlanVersionParams::ReplaceAdjustment::OrHash
|
37
43
|
]
|
38
44
|
),
|
39
45
|
replace_prices:
|
40
46
|
T.nilable(
|
41
|
-
T::Array[
|
47
|
+
T::Array[
|
48
|
+
Orb::Beta::ExternalPlanIDCreatePlanVersionParams::ReplacePrice::OrHash
|
49
|
+
]
|
42
50
|
),
|
43
51
|
set_as_default: T.nilable(T::Boolean),
|
44
52
|
request_options: Orb::RequestOptions::OrHash
|
45
|
-
).returns(Orb::
|
53
|
+
).returns(Orb::PlanVersion)
|
46
54
|
end
|
47
|
-
def
|
48
|
-
|
55
|
+
def create_plan_version(
|
56
|
+
external_plan_id,
|
49
57
|
# New version number.
|
50
58
|
version:,
|
51
59
|
# Additional adjustments to be added to the plan.
|
@@ -74,11 +82,30 @@ module Orb
|
|
74
82
|
sig do
|
75
83
|
params(
|
76
84
|
version: String,
|
77
|
-
|
85
|
+
external_plan_id: String,
|
78
86
|
request_options: Orb::RequestOptions::OrHash
|
79
|
-
).returns(Orb::
|
87
|
+
).returns(Orb::PlanVersion)
|
88
|
+
end
|
89
|
+
def fetch_plan_version(version, external_plan_id:, request_options: {})
|
80
90
|
end
|
81
|
-
|
91
|
+
|
92
|
+
# This API endpoint is in beta and its interface may change. It is recommended for
|
93
|
+
# use only in test mode.
|
94
|
+
#
|
95
|
+
# This endpoint allows setting the default version of a plan.
|
96
|
+
sig do
|
97
|
+
params(
|
98
|
+
external_plan_id: String,
|
99
|
+
version: Integer,
|
100
|
+
request_options: Orb::RequestOptions::OrHash
|
101
|
+
).returns(Orb::Plan)
|
102
|
+
end
|
103
|
+
def set_default_plan_version(
|
104
|
+
external_plan_id,
|
105
|
+
# Plan version to set as the default.
|
106
|
+
version:,
|
107
|
+
request_options: {}
|
108
|
+
)
|
82
109
|
end
|
83
110
|
|
84
111
|
# @api private
|
@@ -0,0 +1,111 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Orb
|
4
|
+
module Resources
|
5
|
+
class Beta
|
6
|
+
sig { returns(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
|
+
sig do
|
14
|
+
params(
|
15
|
+
plan_id: String,
|
16
|
+
version: Integer,
|
17
|
+
add_adjustments:
|
18
|
+
T.nilable(
|
19
|
+
T::Array[Orb::BetaCreatePlanVersionParams::AddAdjustment::OrHash]
|
20
|
+
),
|
21
|
+
add_prices:
|
22
|
+
T.nilable(
|
23
|
+
T::Array[Orb::BetaCreatePlanVersionParams::AddPrice::OrHash]
|
24
|
+
),
|
25
|
+
remove_adjustments:
|
26
|
+
T.nilable(
|
27
|
+
T::Array[
|
28
|
+
Orb::BetaCreatePlanVersionParams::RemoveAdjustment::OrHash
|
29
|
+
]
|
30
|
+
),
|
31
|
+
remove_prices:
|
32
|
+
T.nilable(
|
33
|
+
T::Array[Orb::BetaCreatePlanVersionParams::RemovePrice::OrHash]
|
34
|
+
),
|
35
|
+
replace_adjustments:
|
36
|
+
T.nilable(
|
37
|
+
T::Array[
|
38
|
+
Orb::BetaCreatePlanVersionParams::ReplaceAdjustment::OrHash
|
39
|
+
]
|
40
|
+
),
|
41
|
+
replace_prices:
|
42
|
+
T.nilable(
|
43
|
+
T::Array[Orb::BetaCreatePlanVersionParams::ReplacePrice::OrHash]
|
44
|
+
),
|
45
|
+
set_as_default: T.nilable(T::Boolean),
|
46
|
+
request_options: Orb::RequestOptions::OrHash
|
47
|
+
).returns(Orb::PlanVersion)
|
48
|
+
end
|
49
|
+
def create_plan_version(
|
50
|
+
plan_id,
|
51
|
+
# New version number.
|
52
|
+
version:,
|
53
|
+
# Additional adjustments to be added to the plan.
|
54
|
+
add_adjustments: nil,
|
55
|
+
# Additional prices to be added to the plan.
|
56
|
+
add_prices: nil,
|
57
|
+
# Adjustments to be removed from the plan.
|
58
|
+
remove_adjustments: nil,
|
59
|
+
# Prices to be removed from the plan.
|
60
|
+
remove_prices: nil,
|
61
|
+
# Adjustments to be replaced with additional adjustments on the plan.
|
62
|
+
replace_adjustments: nil,
|
63
|
+
# Prices to be replaced with additional prices on the plan.
|
64
|
+
replace_prices: nil,
|
65
|
+
# Set this new plan version as the default
|
66
|
+
set_as_default: nil,
|
67
|
+
request_options: {}
|
68
|
+
)
|
69
|
+
end
|
70
|
+
|
71
|
+
# This API endpoint is in beta and its interface may change. It is recommended for
|
72
|
+
# use only in test mode.
|
73
|
+
#
|
74
|
+
# This endpoint is used to fetch a plan version. It returns the phases, prices,
|
75
|
+
# and adjustments present on this version of the plan.
|
76
|
+
sig do
|
77
|
+
params(
|
78
|
+
version: String,
|
79
|
+
plan_id: String,
|
80
|
+
request_options: Orb::RequestOptions::OrHash
|
81
|
+
).returns(Orb::PlanVersion)
|
82
|
+
end
|
83
|
+
def fetch_plan_version(version, plan_id:, request_options: {})
|
84
|
+
end
|
85
|
+
|
86
|
+
# This API endpoint is in beta and its interface may change. It is recommended for
|
87
|
+
# use only in test mode.
|
88
|
+
#
|
89
|
+
# This endpoint allows setting the default version of a plan.
|
90
|
+
sig do
|
91
|
+
params(
|
92
|
+
plan_id: String,
|
93
|
+
version: Integer,
|
94
|
+
request_options: Orb::RequestOptions::OrHash
|
95
|
+
).returns(Orb::Plan)
|
96
|
+
end
|
97
|
+
def set_default_plan_version(
|
98
|
+
plan_id,
|
99
|
+
# Plan version to set as the default.
|
100
|
+
version:,
|
101
|
+
request_options: {}
|
102
|
+
)
|
103
|
+
end
|
104
|
+
|
105
|
+
# @api private
|
106
|
+
sig { params(client: Orb::Client).returns(T.attached_class) }
|
107
|
+
def self.new(client:)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
@@ -4,9 +4,6 @@ module Orb
|
|
4
4
|
module Resources
|
5
5
|
class Plans
|
6
6
|
class ExternalPlanID
|
7
|
-
sig { returns(Orb::Resources::Plans::ExternalPlanID::Versions) }
|
8
|
-
attr_reader :versions
|
9
|
-
|
10
7
|
# This endpoint can be used to update the `external_plan_id`, and `metadata` of an
|
11
8
|
# existing plan.
|
12
9
|
#
|
@@ -58,25 +55,6 @@ module Orb
|
|
58
55
|
def fetch(external_plan_id, request_options: {})
|
59
56
|
end
|
60
57
|
|
61
|
-
# This API endpoint is in beta and its interface may change. It is recommended for
|
62
|
-
# use only in test mode.
|
63
|
-
#
|
64
|
-
# This endpoint allows setting the default version of a plan.
|
65
|
-
sig do
|
66
|
-
params(
|
67
|
-
external_plan_id: String,
|
68
|
-
version: Integer,
|
69
|
-
request_options: Orb::RequestOptions::OrHash
|
70
|
-
).returns(Orb::Plan)
|
71
|
-
end
|
72
|
-
def set_default_version(
|
73
|
-
external_plan_id,
|
74
|
-
# Plan version to set as the default.
|
75
|
-
version:,
|
76
|
-
request_options: {}
|
77
|
-
)
|
78
|
-
end
|
79
|
-
|
80
58
|
# @api private
|
81
59
|
sig { params(client: Orb::Client).returns(T.attached_class) }
|
82
60
|
def self.new(client:)
|
data/rbi/orb/resources/plans.rbi
CHANGED
@@ -6,9 +6,6 @@ module Orb
|
|
6
6
|
sig { returns(Orb::Resources::Plans::ExternalPlanID) }
|
7
7
|
attr_reader :external_plan_id
|
8
8
|
|
9
|
-
sig { returns(Orb::Resources::Plans::Versions) }
|
10
|
-
attr_reader :versions
|
11
|
-
|
12
9
|
# This endpoint allows creation of plans including their prices.
|
13
10
|
sig do
|
14
11
|
params(
|
@@ -166,25 +163,6 @@ module Orb
|
|
166
163
|
def fetch(plan_id, request_options: {})
|
167
164
|
end
|
168
165
|
|
169
|
-
# This API endpoint is in beta and its interface may change. It is recommended for
|
170
|
-
# use only in test mode.
|
171
|
-
#
|
172
|
-
# This endpoint allows setting the default version of a plan.
|
173
|
-
sig do
|
174
|
-
params(
|
175
|
-
plan_id: String,
|
176
|
-
version: Integer,
|
177
|
-
request_options: Orb::RequestOptions::OrHash
|
178
|
-
).returns(Orb::Plan)
|
179
|
-
end
|
180
|
-
def set_default_version(
|
181
|
-
plan_id,
|
182
|
-
# Plan version to set as the default.
|
183
|
-
version:,
|
184
|
-
request_options: {}
|
185
|
-
)
|
186
|
-
end
|
187
|
-
|
188
166
|
# @api private
|
189
167
|
sig { params(client: Orb::Client).returns(T.attached_class) }
|
190
168
|
def self.new(client:)
|
@@ -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:
|
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::
|
286
|
+
T::Array[Orb::PriceEvaluateMultipleParams::PriceEvaluation::OrHash],
|
225
287
|
request_options: Orb::RequestOptions::OrHash
|
226
|
-
).returns(Orb::Models::
|
288
|
+
).returns(Orb::Models::PriceEvaluateMultipleResponse)
|
227
289
|
end
|
228
|
-
def
|
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
|