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

from ...core.unchecked_base_model import UncheckedBaseModel
import typing_extensions
import typing
from .info_webhooks_response_annotations_created import InfoWebhooksResponseAnnotationsCreated
from ...core.serialization import FieldMetadata
from .info_webhooks_response_annotations_deleted import InfoWebhooksResponseAnnotationsDeleted
from .info_webhooks_response_annotation_created import InfoWebhooksResponseAnnotationCreated
from .info_webhooks_response_annotation_updated import InfoWebhooksResponseAnnotationUpdated
from .info_webhooks_response_label_link_created import InfoWebhooksResponseLabelLinkCreated
from .info_webhooks_response_label_link_deleted import InfoWebhooksResponseLabelLinkDeleted
from .info_webhooks_response_label_link_updated import InfoWebhooksResponseLabelLinkUpdated
from .info_webhooks_response_project_created import InfoWebhooksResponseProjectCreated
from .info_webhooks_response_project_deleted import InfoWebhooksResponseProjectDeleted
from .info_webhooks_response_project_updated import InfoWebhooksResponseProjectUpdated
from .info_webhooks_response_reviews_deleted import InfoWebhooksResponseReviewsDeleted
from .info_webhooks_response_review_created import InfoWebhooksResponseReviewCreated
from .info_webhooks_response_review_updated import InfoWebhooksResponseReviewUpdated
from .info_webhooks_response_tasks_created import InfoWebhooksResponseTasksCreated
from .info_webhooks_response_tasks_deleted import InfoWebhooksResponseTasksDeleted
from ...core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic


class InfoWebhooksResponse(UncheckedBaseModel):
    annotations_created: typing_extensions.Annotated[
        typing.Optional[InfoWebhooksResponseAnnotationsCreated], FieldMetadata(alias="ANNOTATIONS_CREATED")
    ] = None
    annotations_deleted: typing_extensions.Annotated[
        typing.Optional[InfoWebhooksResponseAnnotationsDeleted], FieldMetadata(alias="ANNOTATIONS_DELETED")
    ] = None
    annotation_created: typing_extensions.Annotated[
        typing.Optional[InfoWebhooksResponseAnnotationCreated], FieldMetadata(alias="ANNOTATION_CREATED")
    ] = None
    annotation_updated: typing_extensions.Annotated[
        typing.Optional[InfoWebhooksResponseAnnotationUpdated], FieldMetadata(alias="ANNOTATION_UPDATED")
    ] = None
    label_link_created: typing_extensions.Annotated[
        typing.Optional[InfoWebhooksResponseLabelLinkCreated], FieldMetadata(alias="LABEL_LINK_CREATED")
    ] = None
    label_link_deleted: typing_extensions.Annotated[
        typing.Optional[InfoWebhooksResponseLabelLinkDeleted], FieldMetadata(alias="LABEL_LINK_DELETED")
    ] = None
    label_link_updated: typing_extensions.Annotated[
        typing.Optional[InfoWebhooksResponseLabelLinkUpdated], FieldMetadata(alias="LABEL_LINK_UPDATED")
    ] = None
    project_created: typing_extensions.Annotated[
        typing.Optional[InfoWebhooksResponseProjectCreated], FieldMetadata(alias="PROJECT_CREATED")
    ] = None
    project_deleted: typing_extensions.Annotated[
        typing.Optional[InfoWebhooksResponseProjectDeleted], FieldMetadata(alias="PROJECT_DELETED")
    ] = None
    project_updated: typing_extensions.Annotated[
        typing.Optional[InfoWebhooksResponseProjectUpdated], FieldMetadata(alias="PROJECT_UPDATED")
    ] = None
    reviews_deleted: typing_extensions.Annotated[
        typing.Optional[InfoWebhooksResponseReviewsDeleted], FieldMetadata(alias="REVIEWS_DELETED")
    ] = None
    review_created: typing_extensions.Annotated[
        typing.Optional[InfoWebhooksResponseReviewCreated], FieldMetadata(alias="REVIEW_CREATED")
    ] = None
    review_updated: typing_extensions.Annotated[
        typing.Optional[InfoWebhooksResponseReviewUpdated], FieldMetadata(alias="REVIEW_UPDATED")
    ] = None
    tasks_created: typing_extensions.Annotated[
        typing.Optional[InfoWebhooksResponseTasksCreated], FieldMetadata(alias="TASKS_CREATED")
    ] = None
    tasks_deleted: typing_extensions.Annotated[
        typing.Optional[InfoWebhooksResponseTasksDeleted], FieldMetadata(alias="TASKS_DELETED")
    ] = None

    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
