"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
import dataclasses
from dataclasses_json import Undefined, dataclass_json
from shippo import utils
from typing import Optional


@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
class CarrierAccountServiceLevel:
    r"""Contains details regarding the service level for the carrier account."""
    name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('name'), 'exclude': lambda f: f is None }})
    r"""Service level name, e.g. `Priority Mail` or `FedEx Ground®`.
    A service level commonly defines the transit time of a Shipment (e.g., Express vs. Standard), along with other properties. 
    These names vary depending on the provider.<br>
    See <a href=\"#tag/Service-Levels\">Service Levels</a>.
    """
    token: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('token'), 'exclude': lambda f: f is None }})
    r"""Service level token, e.g. `usps_priority` or `fedex_ground`.<br>
    See <a href=\"#tag/Service-Levels\">Service Levels</a>.
    """
    supports_return_labels: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('supports_return_labels'), 'exclude': lambda f: f is None }})
    r"""Whether or not the service level supports return labels."""
    

