"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from .graphqljobcallbackinput import (
    GraphQlJobCallbackInput,
    GraphQlJobCallbackInputTypedDict,
)
import pydantic
from ttd_workflows.types import BaseModel
from typing import Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class GraphQlQueryJobInputTypedDict(TypedDict):
    r"""Required fields for executing a GraphQL query job"""

    query: str
    r"""The GraphQL query to execute"""
    callback_input: NotRequired[GraphQlJobCallbackInputTypedDict]
    r"""Input class for providing a callback's url and any headers needed for the callback."""


class GraphQlQueryJobInput(BaseModel):
    r"""Required fields for executing a GraphQL query job"""

    query: str
    r"""The GraphQL query to execute"""

    callback_input: Annotated[
        Optional[GraphQlJobCallbackInput], pydantic.Field(alias="callbackInput")
    ] = None
    r"""Input class for providing a callback's url and any headers needed for the callback."""
