"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""

from __future__ import annotations
import dataclasses
from ..shared import tieredbpsconfig1 as shared_tieredbpsconfig1
from billing import utils
from dataclasses_json import Undefined, dataclass_json
from enum import Enum
from typing import Optional

class TieredBPSPriceOverrideModelType(str, Enum):
    TIERED_BPS = 'tiered_bps'


@dataclass_json(undefined=Undefined.EXCLUDE)

@dataclasses.dataclass
class TieredBPSPriceOverride:
    r"""Tiered BPS price override"""
    id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('id') }})
    model_type: TieredBPSPriceOverrideModelType = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('model_type') }})
    tiered_bps_config: shared_tieredbpsconfig1.TieredBpsConfig1 = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('tiered_bps_config') }})
    maximum_amount: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('maximum_amount'), 'exclude': lambda f: f is None }})
    r"""The subscription's override maximum amount for this price."""
    minimum_amount: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('minimum_amount'), 'exclude': lambda f: f is None }})
    r"""The subscription's override minimum amount for this price."""
    

