# ---------------------------------------------------------
# Do not modify this file. It was generated by `scripts/generate_typed_dicts.py`.
# ---------------------------------------------------------


from typing import Iterable, Literal, Mapping, Optional, TypedDict, Union

import openai
import openai.types.responses.apply_patch_tool_param
import openai.types.responses.computer_tool_param
import openai.types.responses.computer_use_preview_tool_param
import openai.types.responses.custom_tool_param
import openai.types.responses.easy_input_message_param
import openai.types.responses.file_search_tool_param
import openai.types.responses.function_shell_tool_param
import openai.types.responses.function_tool_param
import openai.types.responses.namespace_tool_param
import openai.types.responses.response_code_interpreter_tool_call_param
import openai.types.responses.response_compaction_item_param_param
import openai.types.responses.response_computer_tool_call_param
import openai.types.responses.response_conversation_param_param
import openai.types.responses.response_create_params
import openai.types.responses.response_custom_tool_call_output_param
import openai.types.responses.response_custom_tool_call_param
import openai.types.responses.response_file_search_tool_call_param
import openai.types.responses.response_function_tool_call_param
import openai.types.responses.response_function_web_search_param
import openai.types.responses.response_input_param
import openai.types.responses.response_output_message_param
import openai.types.responses.response_prompt_param
import openai.types.responses.response_reasoning_item_param
import openai.types.responses.response_text_config_param
import openai.types.responses.response_tool_search_output_item_param_param
import openai.types.responses.tool_choice_allowed_param
import openai.types.responses.tool_choice_apply_patch_param
import openai.types.responses.tool_choice_custom_param
import openai.types.responses.tool_choice_function_param
import openai.types.responses.tool_choice_mcp_param
import openai.types.responses.tool_choice_shell_param
import openai.types.responses.tool_choice_types_param
import openai.types.responses.tool_param
import openai.types.responses.tool_search_tool_param
import openai.types.responses.web_search_preview_tool_param
import openai.types.responses.web_search_tool_param
import openai.types.shared_params.reasoning


class SubmitInputArgs(TypedDict, total=False):
    background: Union[bool, None, openai.Omit]
    context_management: Union[
        Iterable[openai.types.responses.response_create_params.ContextManagement],
        None,
        openai.Omit,
    ]
    conversation: Union[
        str,
        openai.types.responses.response_conversation_param_param.ResponseConversationParamParam,
        None,
        openai.Omit,
    ]
    include: Union[
        list[
            Literal[
                "file_search_call.results",
                "web_search_call.results",
                "web_search_call.action.sources",
                "message.input_image.image_url",
                "computer_call_output.output.image_url",
                "code_interpreter_call.outputs",
                "reasoning.encrypted_content",
                "message.output_text.logprobs",
            ]
        ],
        None,
        openai.Omit,
    ]
    input: Union[
        str,
        list[
            Union[
                openai.types.responses.easy_input_message_param.EasyInputMessageParam,
                openai.types.responses.response_input_param.Message,
                openai.types.responses.response_output_message_param.ResponseOutputMessageParam,
                openai.types.responses.response_file_search_tool_call_param.ResponseFileSearchToolCallParam,
                openai.types.responses.response_computer_tool_call_param.ResponseComputerToolCallParam,
                openai.types.responses.response_input_param.ComputerCallOutput,
                openai.types.responses.response_function_web_search_param.ResponseFunctionWebSearchParam,
                openai.types.responses.response_function_tool_call_param.ResponseFunctionToolCallParam,
                openai.types.responses.response_input_param.FunctionCallOutput,
                openai.types.responses.response_input_param.ToolSearchCall,
                openai.types.responses.response_tool_search_output_item_param_param.ResponseToolSearchOutputItemParamParam,
                openai.types.responses.response_input_param.AdditionalTools,
                openai.types.responses.response_reasoning_item_param.ResponseReasoningItemParam,
                openai.types.responses.response_compaction_item_param_param.ResponseCompactionItemParamParam,
                openai.types.responses.response_input_param.ImageGenerationCall,
                openai.types.responses.response_code_interpreter_tool_call_param.ResponseCodeInterpreterToolCallParam,
                openai.types.responses.response_input_param.LocalShellCall,
                openai.types.responses.response_input_param.LocalShellCallOutput,
                openai.types.responses.response_input_param.ShellCall,
                openai.types.responses.response_input_param.ShellCallOutput,
                openai.types.responses.response_input_param.ApplyPatchCall,
                openai.types.responses.response_input_param.ApplyPatchCallOutput,
                openai.types.responses.response_input_param.McpListTools,
                openai.types.responses.response_input_param.McpApprovalRequest,
                openai.types.responses.response_input_param.McpApprovalResponse,
                openai.types.responses.response_input_param.McpCall,
                openai.types.responses.response_custom_tool_call_output_param.ResponseCustomToolCallOutputParam,
                openai.types.responses.response_custom_tool_call_param.ResponseCustomToolCallParam,
                openai.types.responses.response_input_param.CompactionTrigger,
                openai.types.responses.response_input_param.ItemReference,
                openai.types.responses.response_input_param.Program,
                openai.types.responses.response_input_param.ProgramOutput,
            ]
        ],
        openai.Omit,
    ]
    instructions: Union[str, None, openai.Omit]
    max_output_tokens: Union[int, None, openai.Omit]
    max_tool_calls: Union[int, None, openai.Omit]
    metadata: Union[dict[str, str], None, openai.Omit]
    model: Union[
        str,
        Literal[
            "gpt-5.6-sol",
            "gpt-5.6-terra",
            "gpt-5.6-luna",
            "gpt-5.5",
            "gpt-5.4",
            "gpt-5.4-mini",
            "gpt-5.4-nano",
            "gpt-5.4-mini-2026-03-17",
            "gpt-5.4-nano-2026-03-17",
            "gpt-5.3-chat-latest",
            "gpt-5.2",
            "gpt-5.2-2025-12-11",
            "gpt-5.2-chat-latest",
            "gpt-5.2-pro",
            "gpt-5.2-pro-2025-12-11",
            "gpt-5.1",
            "gpt-5.1-2025-11-13",
            "gpt-5.1-codex",
            "gpt-5.1-mini",
            "gpt-5.1-chat-latest",
            "gpt-5",
            "gpt-5-mini",
            "gpt-5-nano",
            "gpt-5-2025-08-07",
            "gpt-5-mini-2025-08-07",
            "gpt-5-nano-2025-08-07",
            "gpt-5-chat-latest",
            "gpt-4.1",
            "gpt-4.1-mini",
            "gpt-4.1-nano",
            "gpt-4.1-2025-04-14",
            "gpt-4.1-mini-2025-04-14",
            "gpt-4.1-nano-2025-04-14",
            "o4-mini",
            "o4-mini-2025-04-16",
            "o3",
            "o3-2025-04-16",
            "o3-mini",
            "o3-mini-2025-01-31",
            "o1",
            "o1-2024-12-17",
            "o1-preview",
            "o1-preview-2024-09-12",
            "o1-mini",
            "o1-mini-2024-09-12",
            "gpt-4o",
            "gpt-4o-2024-11-20",
            "gpt-4o-2024-08-06",
            "gpt-4o-2024-05-13",
            "gpt-4o-audio-preview",
            "gpt-4o-audio-preview-2024-10-01",
            "gpt-4o-audio-preview-2024-12-17",
            "gpt-4o-audio-preview-2025-06-03",
            "gpt-4o-mini-audio-preview",
            "gpt-4o-mini-audio-preview-2024-12-17",
            "gpt-4o-search-preview",
            "gpt-4o-mini-search-preview",
            "gpt-4o-search-preview-2025-03-11",
            "gpt-4o-mini-search-preview-2025-03-11",
            "chatgpt-4o-latest",
            "codex-mini-latest",
            "gpt-4o-mini",
            "gpt-4o-mini-2024-07-18",
            "gpt-4-turbo",
            "gpt-4-turbo-2024-04-09",
            "gpt-4-0125-preview",
            "gpt-4-turbo-preview",
            "gpt-4-1106-preview",
            "gpt-4-vision-preview",
            "gpt-4",
            "gpt-4-0314",
            "gpt-4-0613",
            "gpt-4-32k",
            "gpt-4-32k-0314",
            "gpt-4-32k-0613",
            "gpt-3.5-turbo",
            "gpt-3.5-turbo-16k",
            "gpt-3.5-turbo-0301",
            "gpt-3.5-turbo-0613",
            "gpt-3.5-turbo-1106",
            "gpt-3.5-turbo-0125",
            "gpt-3.5-turbo-16k-0613",
        ],
        Literal[
            "o1-pro",
            "o1-pro-2025-03-19",
            "o3-pro",
            "o3-pro-2025-06-10",
            "o3-deep-research",
            "o3-deep-research-2025-06-26",
            "o4-mini-deep-research",
            "o4-mini-deep-research-2025-06-26",
            "computer-use-preview",
            "computer-use-preview-2025-03-11",
            "gpt-5-codex",
            "gpt-5-pro",
            "gpt-5-pro-2025-10-06",
            "gpt-5.1-codex-max",
        ],
        openai.Omit,
    ]
    moderation: Union[
        openai.types.responses.response_create_params.Moderation, None, openai.Omit
    ]
    parallel_tool_calls: Union[bool, None, openai.Omit]
    previous_response_id: Union[str, None, openai.Omit]
    prompt: Union[
        openai.types.responses.response_prompt_param.ResponsePromptParam,
        None,
        openai.Omit,
    ]
    prompt_cache_key: Union[str, None, openai.Omit]
    prompt_cache_options: (
        openai.types.responses.response_create_params.PromptCacheOptions | openai.Omit
    )
    prompt_cache_retention: Union[Literal["in_memory", "24h"], None, openai.Omit]
    reasoning: Union[openai.types.shared_params.reasoning.Reasoning, None, openai.Omit]
    safety_identifier: Union[str, None, openai.Omit]
    service_tier: Union[
        Literal["auto", "default", "flex", "scale", "priority", "fast"],
        None,
        openai.Omit,
    ]
    store: Union[bool, None, openai.Omit]
    stream: Union[Literal[False], None, Literal[True], openai.Omit]
    stream_options: Union[
        openai.types.responses.response_create_params.StreamOptions, None, openai.Omit
    ]
    temperature: Union[float, None, openai.Omit]
    text: (
        openai.types.responses.response_text_config_param.ResponseTextConfigParam
        | openai.Omit
    )
    tool_choice: Union[
        Literal["none", "auto", "required"],
        openai.types.responses.tool_choice_allowed_param.ToolChoiceAllowedParam,
        openai.types.responses.tool_choice_types_param.ToolChoiceTypesParam,
        openai.types.responses.tool_choice_function_param.ToolChoiceFunctionParam,
        openai.types.responses.tool_choice_mcp_param.ToolChoiceMcpParam,
        openai.types.responses.tool_choice_custom_param.ToolChoiceCustomParam,
        openai.types.responses.response_create_params.ToolChoiceSpecificProgrammaticToolCallingParam,
        openai.types.responses.tool_choice_apply_patch_param.ToolChoiceApplyPatchParam,
        openai.types.responses.tool_choice_shell_param.ToolChoiceShellParam,
        openai.Omit,
    ]
    tools: Union[
        Iterable[
            Union[
                openai.types.responses.function_tool_param.FunctionToolParam,
                openai.types.responses.file_search_tool_param.FileSearchToolParam,
                openai.types.responses.computer_tool_param.ComputerToolParam,
                openai.types.responses.computer_use_preview_tool_param.ComputerUsePreviewToolParam,
                openai.types.responses.web_search_tool_param.WebSearchToolParam,
                openai.types.responses.tool_param.Mcp,
                openai.types.responses.tool_param.CodeInterpreter,
                openai.types.responses.tool_param.ProgrammaticToolCalling,
                openai.types.responses.tool_param.ImageGeneration,
                openai.types.responses.tool_param.LocalShell,
                openai.types.responses.function_shell_tool_param.FunctionShellToolParam,
                openai.types.responses.custom_tool_param.CustomToolParam,
                openai.types.responses.namespace_tool_param.NamespaceToolParam,
                openai.types.responses.tool_search_tool_param.ToolSearchToolParam,
                openai.types.responses.web_search_preview_tool_param.WebSearchPreviewToolParam,
                openai.types.responses.apply_patch_tool_param.ApplyPatchToolParam,
            ]
        ],
        openai.Omit,
    ]
    top_logprobs: Union[int, None, openai.Omit]
    top_p: Union[float, None, openai.Omit]
    truncation: Union[Literal["auto", "disabled"], None, openai.Omit]
    user: str | openai.Omit
    extra_headers: Optional[Mapping[str, Union[str, openai.Omit]]]
    extra_query: Optional[Mapping[str, object]]
    extra_body: object | None
    timeout: float | openai.Timeout | None | openai.NotGiven
