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

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

class CustomsTaxIdentificationType(str, Enum):
    r"""Type of tax identification.
    * `EIN` - Employer Identification Number, also known as a Federal Tax Identification Number.
    * `VAT` - Value Added Tax identification number.
    * `IOSS` - Import One-Stop Shop
    * `ARN` - Australian Taxation Office Reference Number
    """
    EIN = 'EIN'
    VAT = 'VAT'
    IOSS = 'IOSS'
    ARN = 'ARN'


@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
class CustomsTaxIdentification:
    r"""Tax identification that may be required to ship in certain countries. Typically used to assess duties on
    goods that are crossing a border.
    """
    number: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('number'), 'exclude': lambda f: f is None }})
    r"""Tax identification number."""
    type: Optional[CustomsTaxIdentificationType] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type'), 'exclude': lambda f: f is None }})
    r"""Type of tax identification.
    * `EIN` - Employer Identification Number, also known as a Federal Tax Identification Number.
    * `VAT` - Value Added Tax identification number.
    * `IOSS` - Import One-Stop Shop
    * `ARN` - Australian Taxation Office Reference Number
    """
    

