"""Request Body Schemas for API Tools

DO NOT EDIT THIS MODULE DIRECTLY.

THIS MODULE WAS AUTO-GENERATED AND CONTAINS OpenAPI REQUEST BODY SCHEMAS
FOR TOOLS WITH COMPLEX REQUEST BODIES. ANY CHANGES TO THIS MODULE WILL
BE OVERWRITTEN BY THE TRANSPILER.
"""

from typing import Any

REQUEST_BODY_SCHEMAS: dict[str, Any] = {
    "PERFORMEXASEARCH": '{"allOf": [{"type": "object", "properties": {"query": {"type": "string", "example": "Latest developments in LLM capabilities", "description": "The query string for the search."}, "type": {"type": "string", "enum": ["keyword", "neural", "fast", "auto"], "description": "The type of search. Neural uses an embeddings-based model, keyword is google-like SERP, and auto (default) intelligently combines the two. Fast uses streamlined versions of the neural and keyword models.", "example": "auto", "default": "auto"}, "category": {"type": "string", "enum": ["company", "research paper", "news", "pdf", "github", "tweet", "personal site", "linkedin profile", "financial report"], "description": "A data category to focus on.", "example": "research paper"}, "userLocation": {"type": "string", "description": "The two-letter ISO country code of the user, e.g. US.", "example": "US"}}, "required": ["query"]}, {"type": "object", "properties": {"numResults": {"type": "integer", "maximum": 100, "default": 10, "minimum": 1, "description": "Number of results to return (up to thousands of results available for custom plans)", "example": 10}, "includeDomains": {"type": "array", "items": {"type": "string"}, "description": "List of domains to include in the search. If specified, results will only come from these domains.", "example": ["arxiv.org", "paperswithcode.com"]}, "excludeDomains": {"type": "array", "items": {"type": "string"}, "description": "List of domains to exclude from search results. If specified, no results will be returned from these domains."}, "startCrawlDate": {"type": "string", "format": "date-time", "description": "Crawl date refers to the date that Exa discovered a link. Results will include links that were crawled after this date. Must be specified in ISO 8601 format.", "example": "2023-01-01"}, "endCrawlDate": {"type": "string", "format": "date-time", "description": "Crawl date refers to the date that Exa discovered a link. Results will include links that were crawled before this date. Must be specified in ISO 8601 format.", "example": "2023-12-31"}, "startPublishedDate": {"type": "string", "format": "date-time", "description": "Only links with a published date after this will be returned. Must be specified in ISO 8601 format.", "example": "2023-01-01"}, "endPublishedDate": {"type": "string", "format": "date-time", "description": "Only links with a published date before this will be returned. Must be specified in ISO 8601 format.", "example": "2023-12-31"}, "includeText": {"type": "array", "items": {"type": "string"}, "description": "List of strings that must be present in webpage text of results. Currently, only 1 string is supported, of up to 5 words.", "example": ["large language model"]}, "excludeText": {"type": "array", "items": {"type": "string"}, "description": "List of strings that must not be present in webpage text of results. Currently, only 1 string is supported, of up to 5 words. Checks from the first 1000 words of the webpage text.", "example": ["course"]}, "context": {"oneOf": [{"type": "boolean", "description": "Return page contents as a context string for LLM. When true, combines all result contents into one string. Context strings often perform better than highlights for LLMs.", "example": true}, {"type": "object", "description": "Return page contents as a context string for LLM. When true, combines all result contents into one string. Context strings often perform better than highlights for LLMs.", "properties": {"maxCharacters": {"type": "integer", "description": "Maximum character limit.", "example": 10000}}}]}, "contents": {"type": "object", "properties": {"text": {"oneOf": [{"type": "boolean", "title": "Simple text retrieval", "description": "If true, returns full page text with default settings. If false, disables text return."}, {"type": "object", "title": "Advanced text options", "description": "Advanced options for controlling text extraction. Use this when you need to limit text length or include HTML structure.", "properties": {"maxCharacters": {"type": "integer", "description": "Maximum character limit for the full page text. Useful for controlling response size and API costs.", "example": 1000}, "includeHtmlTags": {"type": "boolean", "default": false, "description": "Include HTML tags in the response, which can help LLMs understand text structure and formatting.", "example": false}}}]}, "highlights": {"type": "object", "description": "Text snippets the LLM identifies as most relevant from each page. We recommend you using context instead of highlights for LLMs.", "properties": {"numSentences": {"type": "integer", "minimum": 1, "description": "The number of sentences to return for each snippet.", "example": 1}, "highlightsPerUrl": {"type": "integer", "minimum": 1, "description": "The number of snippets to return for each result.", "example": 1}, "query": {"type": "string", "description": "Custom query to direct the LLM\'s selection of highlights.", "example": "Key advancements"}}}, "summary": {"type": "object", "description": "Summary of the webpage", "properties": {"query": {"type": "string", "description": "Custom query for the LLM-generated summary.", "example": "Main developments"}, "schema": {"type": "object", "description": "JSON schema for structured output from summary. \nSee https://json-schema.org/overview/what-is-jsonschema for JSON Schema documentation.\n", "example": {"$schema": "http://json-schema.org/draft-07/schema#", "title": "Title", "type": "object", "properties": {"Property 1": {"type": "string", "description": "Description"}, "Property 2": {"type": "string", "enum": ["option 1", "option 2", "option 3"], "description": "Description"}}, "required": ["Property 1"]}}}}, "livecrawl": {"type": "string", "enum": ["never", "fallback", "always", "preferred"], "description": "Options for livecrawling pages.\n\'never\': Disable livecrawling (default for neural search).\n\'fallback\': Livecrawl when cache is empty (default for keyword search).\n\'always\': Always livecrawl.\n\'preferred\': Always try to livecrawl, but fall back to cache if crawling fails.\n", "example": "always"}, "livecrawlTimeout": {"type": "integer", "default": 10000, "description": "The timeout for livecrawling in milliseconds.", "example": 1000}, "subpages": {"type": "integer", "default": 0, "description": "The number of subpages to crawl. The actual number crawled may be limited by system constraints.", "example": 1}, "subpageTarget": {"oneOf": [{"type": "string"}, {"type": "array", "items": {"type": "string"}}], "description": "Keyword to find specific subpages of search results. Can be a single string or an array of strings, comma delimited.", "example": "sources"}, "extras": {"type": "object", "description": "Extra parameters to pass.", "properties": {"links": {"type": "integer", "default": 0, "description": "Number of URLs to return from each webpage.", "example": 1}, "imageLinks": {"type": "integer", "default": 0, "description": "Number of images to return for each result.", "example": 1}}}, "context": {"oneOf": [{"type": "boolean", "description": "Return page contents as a context string for LLM. When true, combines all result contents into one string. Context strings often perform better than highlights for LLMs.", "example": true}, {"type": "object", "description": "Return page contents as a context string for LLM. When true, combines all result contents into one string. Context strings often perform better than highlights for LLMs.", "properties": {"maxCharacters": {"type": "integer", "description": "Maximum character limit.", "example": 10000}}}]}}}}}]}',  # noqa: E501
    "FINDSIMILARLINKS": '{"allOf": [{"type": "object", "properties": {"url": {"type": "string", "example": "https://arxiv.org/abs/2307.06435", "description": "The url for which you would like to find similar links."}}, "required": ["url"]}, {"type": "object", "properties": {"numResults": {"type": "integer", "maximum": 100, "default": 10, "minimum": 1, "description": "Number of results to return (up to thousands of results available for custom plans)", "example": 10}, "includeDomains": {"type": "array", "items": {"type": "string"}, "description": "List of domains to include in the search. If specified, results will only come from these domains.", "example": ["arxiv.org", "paperswithcode.com"]}, "excludeDomains": {"type": "array", "items": {"type": "string"}, "description": "List of domains to exclude from search results. If specified, no results will be returned from these domains."}, "startCrawlDate": {"type": "string", "format": "date-time", "description": "Crawl date refers to the date that Exa discovered a link. Results will include links that were crawled after this date. Must be specified in ISO 8601 format.", "example": "2023-01-01"}, "endCrawlDate": {"type": "string", "format": "date-time", "description": "Crawl date refers to the date that Exa discovered a link. Results will include links that were crawled before this date. Must be specified in ISO 8601 format.", "example": "2023-12-31"}, "startPublishedDate": {"type": "string", "format": "date-time", "description": "Only links with a published date after this will be returned. Must be specified in ISO 8601 format.", "example": "2023-01-01"}, "endPublishedDate": {"type": "string", "format": "date-time", "description": "Only links with a published date before this will be returned. Must be specified in ISO 8601 format.", "example": "2023-12-31"}, "includeText": {"type": "array", "items": {"type": "string"}, "description": "List of strings that must be present in webpage text of results. Currently, only 1 string is supported, of up to 5 words.", "example": ["large language model"]}, "excludeText": {"type": "array", "items": {"type": "string"}, "description": "List of strings that must not be present in webpage text of results. Currently, only 1 string is supported, of up to 5 words. Checks from the first 1000 words of the webpage text.", "example": ["course"]}, "context": {"oneOf": [{"type": "boolean", "description": "Return page contents as a context string for LLM. When true, combines all result contents into one string. Context strings often perform better than highlights for LLMs.", "example": true}, {"type": "object", "description": "Return page contents as a context string for LLM. When true, combines all result contents into one string. Context strings often perform better than highlights for LLMs.", "properties": {"maxCharacters": {"type": "integer", "description": "Maximum character limit.", "example": 10000}}}]}, "contents": {"type": "object", "properties": {"text": {"oneOf": [{"type": "boolean", "title": "Simple text retrieval", "description": "If true, returns full page text with default settings. If false, disables text return."}, {"type": "object", "title": "Advanced text options", "description": "Advanced options for controlling text extraction. Use this when you need to limit text length or include HTML structure.", "properties": {"maxCharacters": {"type": "integer", "description": "Maximum character limit for the full page text. Useful for controlling response size and API costs.", "example": 1000}, "includeHtmlTags": {"type": "boolean", "default": false, "description": "Include HTML tags in the response, which can help LLMs understand text structure and formatting.", "example": false}}}]}, "highlights": {"type": "object", "description": "Text snippets the LLM identifies as most relevant from each page. We recommend you using context instead of highlights for LLMs.", "properties": {"numSentences": {"type": "integer", "minimum": 1, "description": "The number of sentences to return for each snippet.", "example": 1}, "highlightsPerUrl": {"type": "integer", "minimum": 1, "description": "The number of snippets to return for each result.", "example": 1}, "query": {"type": "string", "description": "Custom query to direct the LLM\'s selection of highlights.", "example": "Key advancements"}}}, "summary": {"type": "object", "description": "Summary of the webpage", "properties": {"query": {"type": "string", "description": "Custom query for the LLM-generated summary.", "example": "Main developments"}, "schema": {"type": "object", "description": "JSON schema for structured output from summary. \nSee https://json-schema.org/overview/what-is-jsonschema for JSON Schema documentation.\n", "example": {"$schema": "http://json-schema.org/draft-07/schema#", "title": "Title", "type": "object", "properties": {"Property 1": {"type": "string", "description": "Description"}, "Property 2": {"type": "string", "enum": ["option 1", "option 2", "option 3"], "description": "Description"}}, "required": ["Property 1"]}}}}, "livecrawl": {"type": "string", "enum": ["never", "fallback", "always", "preferred"], "description": "Options for livecrawling pages.\n\'never\': Disable livecrawling (default for neural search).\n\'fallback\': Livecrawl when cache is empty (default for keyword search).\n\'always\': Always livecrawl.\n\'preferred\': Always try to livecrawl, but fall back to cache if crawling fails.\n", "example": "always"}, "livecrawlTimeout": {"type": "integer", "default": 10000, "description": "The timeout for livecrawling in milliseconds.", "example": 1000}, "subpages": {"type": "integer", "default": 0, "description": "The number of subpages to crawl. The actual number crawled may be limited by system constraints.", "example": 1}, "subpageTarget": {"oneOf": [{"type": "string"}, {"type": "array", "items": {"type": "string"}}], "description": "Keyword to find specific subpages of search results. Can be a single string or an array of strings, comma delimited.", "example": "sources"}, "extras": {"type": "object", "description": "Extra parameters to pass.", "properties": {"links": {"type": "integer", "default": 0, "description": "Number of URLs to return from each webpage.", "example": 1}, "imageLinks": {"type": "integer", "default": 0, "description": "Number of images to return for each result.", "example": 1}}}, "context": {"oneOf": [{"type": "boolean", "description": "Return page contents as a context string for LLM. When true, combines all result contents into one string. Context strings often perform better than highlights for LLMs.", "example": true}, {"type": "object", "description": "Return page contents as a context string for LLM. When true, combines all result contents into one string. Context strings often perform better than highlights for LLMs.", "properties": {"maxCharacters": {"type": "integer", "description": "Maximum character limit.", "example": 10000}}}]}}}}}]}',  # noqa: E501
    "GETCONTENTDETAILS": '{"type": "object", "allOf": [{"type": "object", "properties": {"urls": {"type": "array", "description": "Array of URLs to crawl (backwards compatible with \'ids\' parameter).", "items": {"type": "string"}, "example": ["https://arxiv.org/pdf/2307.06435"]}, "ids": {"type": "array", "deprecated": true, "description": "Deprecated - use \'urls\' instead. Array of document IDs obtained from searches.", "items": {"type": "string"}, "example": ["https://arxiv.org/pdf/2307.06435"]}}, "required": ["urls"]}, {"type": "object", "properties": {"text": {"oneOf": [{"type": "boolean", "title": "Simple text retrieval", "description": "If true, returns full page text with default settings. If false, disables text return."}, {"type": "object", "title": "Advanced text options", "description": "Advanced options for controlling text extraction. Use this when you need to limit text length or include HTML structure.", "properties": {"maxCharacters": {"type": "integer", "description": "Maximum character limit for the full page text. Useful for controlling response size and API costs.", "example": 1000}, "includeHtmlTags": {"type": "boolean", "default": false, "description": "Include HTML tags in the response, which can help LLMs understand text structure and formatting.", "example": false}}}]}, "highlights": {"type": "object", "description": "Text snippets the LLM identifies as most relevant from each page. We recommend you using context instead of highlights for LLMs.", "properties": {"numSentences": {"type": "integer", "minimum": 1, "description": "The number of sentences to return for each snippet.", "example": 1}, "highlightsPerUrl": {"type": "integer", "minimum": 1, "description": "The number of snippets to return for each result.", "example": 1}, "query": {"type": "string", "description": "Custom query to direct the LLM\'s selection of highlights.", "example": "Key advancements"}}}, "summary": {"type": "object", "description": "Summary of the webpage", "properties": {"query": {"type": "string", "description": "Custom query for the LLM-generated summary.", "example": "Main developments"}, "schema": {"type": "object", "description": "JSON schema for structured output from summary. \nSee https://json-schema.org/overview/what-is-jsonschema for JSON Schema documentation.\n", "example": {"$schema": "http://json-schema.org/draft-07/schema#", "title": "Title", "type": "object", "properties": {"Property 1": {"type": "string", "description": "Description"}, "Property 2": {"type": "string", "enum": ["option 1", "option 2", "option 3"], "description": "Description"}}, "required": ["Property 1"]}}}}, "livecrawl": {"type": "string", "enum": ["never", "fallback", "always", "preferred"], "description": "Options for livecrawling pages.\n\'never\': Disable livecrawling (default for neural search).\n\'fallback\': Livecrawl when cache is empty (default for keyword search).\n\'always\': Always livecrawl.\n\'preferred\': Always try to livecrawl, but fall back to cache if crawling fails.\n", "example": "always"}, "livecrawlTimeout": {"type": "integer", "default": 10000, "description": "The timeout for livecrawling in milliseconds.", "example": 1000}, "subpages": {"type": "integer", "default": 0, "description": "The number of subpages to crawl. The actual number crawled may be limited by system constraints.", "example": 1}, "subpageTarget": {"oneOf": [{"type": "string"}, {"type": "array", "items": {"type": "string"}}], "description": "Keyword to find specific subpages of search results. Can be a single string or an array of strings, comma delimited.", "example": "sources"}, "extras": {"type": "object", "description": "Extra parameters to pass.", "properties": {"links": {"type": "integer", "default": 0, "description": "Number of URLs to return from each webpage.", "example": 1}, "imageLinks": {"type": "integer", "default": 0, "description": "Number of images to return for each result.", "example": 1}}}, "context": {"oneOf": [{"type": "boolean", "description": "Return page contents as a context string for LLM. When true, combines all result contents into one string. Context strings often perform better than highlights for LLMs.", "example": true}, {"type": "object", "description": "Return page contents as a context string for LLM. When true, combines all result contents into one string. Context strings often perform better than highlights for LLMs.", "properties": {"maxCharacters": {"type": "integer", "description": "Maximum character limit.", "example": 10000}}}]}}}]}',  # noqa: E501
}
