Files
kittycad.py/kittycad/models/subscription_tier_price.py
Jess Frazelle 4ee77bb1cf Proper class names (#272)
* towards proper class names

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* mypy

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fixes

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* I have generated the latest API!

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-10 15:24:19 -07:00

51 lines
1.0 KiB
Python

from typing import Literal, Union
from pydantic import BaseModel, ConfigDict, Field, RootModel
from typing_extensions import Annotated
from ..models.plan_interval import PlanInterval
class OptionFlat(BaseModel):
"""A flat price that we publicly list."""
interval: PlanInterval
price: float
type: Literal["flat"] = "flat"
model_config = ConfigDict(protected_namespaces=())
class OptionPerUser(BaseModel):
"""A per user price that we publicly list."""
interval: PlanInterval
price: float
type: Literal["per_user"] = "per_user"
model_config = ConfigDict(protected_namespaces=())
class OptionEnterprise(BaseModel):
"""Enterprise: The price is not listed and the user needs to contact sales."""
type: Literal["enterprise"] = "enterprise"
model_config = ConfigDict(protected_namespaces=())
SubscriptionTierPrice = RootModel[
Annotated[
Union[
OptionFlat,
OptionPerUser,
OptionEnterprise,
],
Field(discriminator="type"),
]
]