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

from ...core.unchecked_base_model import UncheckedBaseModel
import typing_extensions
import typing
from .webhooks_info_response_annotations_created import WebhooksInfoResponseAnnotationsCreated
from ...core.serialization import FieldMetadata
from .webhooks_info_response_annotations_deleted import WebhooksInfoResponseAnnotationsDeleted
from .webhooks_info_response_annotation_created import WebhooksInfoResponseAnnotationCreated
from .webhooks_info_response_annotation_updated import WebhooksInfoResponseAnnotationUpdated
from .webhooks_info_response_label_link_created import WebhooksInfoResponseLabelLinkCreated
from .webhooks_info_response_label_link_deleted import WebhooksInfoResponseLabelLinkDeleted
from .webhooks_info_response_label_link_updated import WebhooksInfoResponseLabelLinkUpdated
from .webhooks_info_response_project_created import WebhooksInfoResponseProjectCreated
from .webhooks_info_response_project_deleted import WebhooksInfoResponseProjectDeleted
from .webhooks_info_response_project_updated import WebhooksInfoResponseProjectUpdated
from .webhooks_info_response_reviews_deleted import WebhooksInfoResponseReviewsDeleted
from .webhooks_info_response_review_created import WebhooksInfoResponseReviewCreated
from .webhooks_info_response_review_updated import WebhooksInfoResponseReviewUpdated
from .webhooks_info_response_tasks_created import WebhooksInfoResponseTasksCreated
from .webhooks_info_response_tasks_deleted import WebhooksInfoResponseTasksDeleted
from ...core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic


class WebhooksInfoResponse(UncheckedBaseModel):
    annotations_created: typing_extensions.Annotated[
        typing.Optional[WebhooksInfoResponseAnnotationsCreated], FieldMetadata(alias="ANNOTATIONS_CREATED")
    ] = None
    annotations_deleted: typing_extensions.Annotated[
        typing.Optional[WebhooksInfoResponseAnnotationsDeleted], FieldMetadata(alias="ANNOTATIONS_DELETED")
    ] = None
    annotation_created: typing_extensions.Annotated[
        typing.Optional[WebhooksInfoResponseAnnotationCreated], FieldMetadata(alias="ANNOTATION_CREATED")
    ] = None
    annotation_updated: typing_extensions.Annotated[
        typing.Optional[WebhooksInfoResponseAnnotationUpdated], FieldMetadata(alias="ANNOTATION_UPDATED")
    ] = None
    label_link_created: typing_extensions.Annotated[
        typing.Optional[WebhooksInfoResponseLabelLinkCreated], FieldMetadata(alias="LABEL_LINK_CREATED")
    ] = None
    label_link_deleted: typing_extensions.Annotated[
        typing.Optional[WebhooksInfoResponseLabelLinkDeleted], FieldMetadata(alias="LABEL_LINK_DELETED")
    ] = None
    label_link_updated: typing_extensions.Annotated[
        typing.Optional[WebhooksInfoResponseLabelLinkUpdated], FieldMetadata(alias="LABEL_LINK_UPDATED")
    ] = None
    project_created: typing_extensions.Annotated[
        typing.Optional[WebhooksInfoResponseProjectCreated], FieldMetadata(alias="PROJECT_CREATED")
    ] = None
    project_deleted: typing_extensions.Annotated[
        typing.Optional[WebhooksInfoResponseProjectDeleted], FieldMetadata(alias="PROJECT_DELETED")
    ] = None
    project_updated: typing_extensions.Annotated[
        typing.Optional[WebhooksInfoResponseProjectUpdated], FieldMetadata(alias="PROJECT_UPDATED")
    ] = None
    reviews_deleted: typing_extensions.Annotated[
        typing.Optional[WebhooksInfoResponseReviewsDeleted], FieldMetadata(alias="REVIEWS_DELETED")
    ] = None
    review_created: typing_extensions.Annotated[
        typing.Optional[WebhooksInfoResponseReviewCreated], FieldMetadata(alias="REVIEW_CREATED")
    ] = None
    review_updated: typing_extensions.Annotated[
        typing.Optional[WebhooksInfoResponseReviewUpdated], FieldMetadata(alias="REVIEW_UPDATED")
    ] = None
    tasks_created: typing_extensions.Annotated[
        typing.Optional[WebhooksInfoResponseTasksCreated], FieldMetadata(alias="TASKS_CREATED")
    ] = None
    tasks_deleted: typing_extensions.Annotated[
        typing.Optional[WebhooksInfoResponseTasksDeleted], 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
