# This file was auto-generated by Fern from our API Definition.

from __future__ import annotations

import typing

import typing_extensions
from ..core.serialization import FieldMetadata

if typing.TYPE_CHECKING:
    from .edit_conditional_property import EditConditionalPropertyParams


class EditConditionalObjectPropertyParams(typing_extensions.TypedDict):
    """
    Nested object/row schema used inside conditional array and object constraints.
    """

    type: typing_extensions.NotRequired[typing.Literal["object"]]
    """
    Must be `object` for nested object conditional schemas.
    """

    description: typing_extensions.NotRequired[str]
    """
    Description of the nested object constraint.
    """

    properties: typing_extensions.NotRequired[typing.Dict[str, "EditConditionalPropertyParams"]]
    """
    Nested conditional property constraints.
    """

    required: typing_extensions.NotRequired[typing.Sequence[str]]
    """
    Required nested properties.
    """

    additional_properties: typing_extensions.NotRequired[
        typing_extensions.Annotated[bool, FieldMetadata(alias="additionalProperties")]
    ]
    """
    Whether additional nested properties are allowed.
    """
