Skip to content

Commit d1d1f17

Browse files
feat(api): add tiered package with minimum price (#220)
1 parent 5d76fe2 commit d1d1f17

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

src/orb/types/price.py

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,11 @@
8484
"TieredWithMinimumPriceItem",
8585
"TieredWithMinimumPriceMaximum",
8686
"TieredWithMinimumPriceMinimum",
87+
"TieredPackageWithMinimumPrice",
88+
"TieredPackageWithMinimumPriceBillableMetric",
89+
"TieredPackageWithMinimumPriceItem",
90+
"TieredPackageWithMinimumPriceMaximum",
91+
"TieredPackageWithMinimumPriceMinimum",
8792
"PackageWithAllocationPrice",
8893
"PackageWithAllocationPriceBillableMetric",
8994
"PackageWithAllocationPriceItem",
@@ -1062,6 +1067,76 @@ class TieredWithMinimumPrice(BaseModel):
10621067
tiered_with_minimum_config: Dict[str, object]
10631068

10641069

1070+
class TieredPackageWithMinimumPriceBillableMetric(BaseModel):
1071+
id: str
1072+
1073+
1074+
class TieredPackageWithMinimumPriceItem(BaseModel):
1075+
id: str
1076+
1077+
name: str
1078+
1079+
1080+
class TieredPackageWithMinimumPriceMaximum(BaseModel):
1081+
applies_to_price_ids: List[str]
1082+
"""List of price_ids that this maximum amount applies to.
1083+
1084+
For plan/plan phase maximums, this can be a subset of prices.
1085+
"""
1086+
1087+
maximum_amount: str
1088+
"""Maximum amount applied"""
1089+
1090+
1091+
class TieredPackageWithMinimumPriceMinimum(BaseModel):
1092+
applies_to_price_ids: List[str]
1093+
"""List of price_ids that this minimum amount applies to.
1094+
1095+
For plan/plan phase minimums, this can be a subset of prices.
1096+
"""
1097+
1098+
minimum_amount: str
1099+
"""Minimum amount applied"""
1100+
1101+
1102+
class TieredPackageWithMinimumPrice(BaseModel):
1103+
id: str
1104+
1105+
billable_metric: Optional[TieredPackageWithMinimumPriceBillableMetric] = None
1106+
1107+
cadence: Literal["one_time", "monthly", "quarterly", "annual"]
1108+
1109+
created_at: datetime
1110+
1111+
currency: str
1112+
1113+
discount: Optional[Discount] = None
1114+
1115+
external_price_id: Optional[str] = None
1116+
1117+
fixed_price_quantity: Optional[float] = None
1118+
1119+
item: TieredPackageWithMinimumPriceItem
1120+
1121+
maximum: Optional[TieredPackageWithMinimumPriceMaximum] = None
1122+
1123+
maximum_amount: Optional[str] = None
1124+
1125+
minimum: Optional[TieredPackageWithMinimumPriceMinimum] = None
1126+
1127+
minimum_amount: Optional[str] = None
1128+
1129+
price_model_type: Literal["tiered_package_with_minimum"] = FieldInfo(alias="model_type")
1130+
1131+
name: str
1132+
1133+
plan_phase_order: Optional[int] = None
1134+
1135+
price_type: Literal["usage_price", "fixed_price"]
1136+
1137+
tiered_package_with_minimum_config: Dict[str, object]
1138+
1139+
10651140
class PackageWithAllocationPriceBillableMetric(BaseModel):
10661141
id: str
10671142

@@ -1311,6 +1386,7 @@ class MatrixWithAllocationPrice(BaseModel):
13111386
TieredPackagePrice,
13121387
GroupedTieredPrice,
13131388
TieredWithMinimumPrice,
1389+
TieredPackageWithMinimumPrice,
13141390
PackageWithAllocationPrice,
13151391
UnitWithPercentPrice,
13161392
MatrixWithAllocationPrice,

0 commit comments

Comments
 (0)