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

import typing

import pydantic
import typing_extensions
from ...commons.types.base_paginated_request import BasePaginatedRequest
from ...core.pydantic_utilities import IS_PYDANTIC_V2
from ...core.serialization import FieldMetadata
from .agent_capability_field import AgentCapabilityField
from .agent_capability_type import AgentCapabilityType


class AgentCapabilityListRequest(BasePaginatedRequest):
    capability_type: typing_extensions.Annotated[
        typing.Optional[AgentCapabilityType], FieldMetadata(alias="capabilityType")
    ] = None
    pinned: typing.Optional[bool] = None
    enabled: typing.Optional[bool] = None
    integration_ids: typing_extensions.Annotated[
        typing.Optional[typing.List[str]], FieldMetadata(alias="integrationIds")
    ] = None
    description: typing.Optional[str] = None
    user_interaction_required: typing_extensions.Annotated[
        typing.Optional[bool], FieldMetadata(alias="userInteractionRequired")
    ] = None
    sort_id: typing_extensions.Annotated[typing.Optional[AgentCapabilityField], FieldMetadata(alias="sortId")] = (
        pydantic.Field(default=None)
    )
    """
    The field to sort by, defaults to created timestamp
    """

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)  # type: ignore # Pydantic v2
    else:

        class Config:
            frozen = True
            smart_union = True
            extra = pydantic.Extra.allow
