# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from __future__ import annotations

from typing import List
from typing_extensions import Literal, Required, TypedDict

from ...._types import SequenceNotStr

__all__ = ["DomainEditParams"]


class DomainEditParams(TypedDict, total=False):
    account_id: Required[str]
    """Account Identifier"""

    ip_restrictions: Required[SequenceNotStr[str]]

    allowed_delivery_modes: List[Literal["DIRECT", "BCC", "JOURNAL", "API", "RETRO_SCAN"]]

    domain: str

    drop_dispositions: List[
        Literal[
            "MALICIOUS",
            "MALICIOUS-BEC",
            "SUSPICIOUS",
            "SPOOF",
            "SPAM",
            "BULK",
            "ENCRYPTED",
            "EXTERNAL",
            "UNKNOWN",
            "NONE",
        ]
    ]

    folder: Literal["AllItems", "Inbox"]

    integration_id: str

    lookback_hops: int

    regions: List[Literal["GLOBAL", "AU", "DE", "IN", "US"]]

    require_tls_inbound: bool

    require_tls_outbound: bool

    transport: str
