@azure/ai-projects 2.0.0-beta.2 → 2.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +212 -8
  2. package/dist/browser/aiProjectClient.d.ts.map +1 -1
  3. package/dist/browser/aiProjectClient.js +6 -0
  4. package/dist/browser/aiProjectClient.js.map +1 -1
  5. package/dist/browser/api/aiProjectContext.js +1 -1
  6. package/dist/browser/api/aiProjectContext.js.map +1 -1
  7. package/dist/browser/constants.d.ts +1 -1
  8. package/dist/browser/constants.js +1 -1
  9. package/dist/browser/constants.js.map +1 -1
  10. package/dist/browser/getCustomFetch-browser.d.mts.map +1 -0
  11. package/dist/browser/getCustomFetch-browser.mjs.map +1 -0
  12. package/dist/browser/getCustomFetch.d.ts +13 -0
  13. package/dist/browser/getCustomFetch.js +40 -0
  14. package/dist/browser/models/models.d.ts +10 -10
  15. package/dist/browser/models/models.d.ts.map +1 -1
  16. package/dist/browser/models/models.js +1 -1
  17. package/dist/browser/models/models.js.map +1 -1
  18. package/dist/commonjs/aiProjectClient.d.ts.map +1 -1
  19. package/dist/commonjs/aiProjectClient.js +6 -0
  20. package/dist/commonjs/aiProjectClient.js.map +1 -1
  21. package/dist/commonjs/api/aiProjectContext.js +1 -1
  22. package/dist/commonjs/api/aiProjectContext.js.map +1 -1
  23. package/dist/commonjs/constants.d.ts +1 -1
  24. package/dist/commonjs/constants.js +1 -1
  25. package/dist/commonjs/constants.js.map +1 -1
  26. package/dist/commonjs/getCustomFetch.d.ts +13 -0
  27. package/dist/commonjs/getCustomFetch.d.ts.map +1 -0
  28. package/dist/commonjs/getCustomFetch.js +45 -0
  29. package/dist/commonjs/getCustomFetch.js.map +1 -0
  30. package/dist/commonjs/models/models.d.ts +10 -10
  31. package/dist/commonjs/models/models.d.ts.map +1 -1
  32. package/dist/commonjs/models/models.js +1 -1
  33. package/dist/commonjs/models/models.js.map +1 -1
  34. package/dist/commonjs/tsdoc-metadata.json +1 -1
  35. package/dist/esm/aiProjectClient.d.ts.map +1 -1
  36. package/dist/esm/aiProjectClient.js +6 -0
  37. package/dist/esm/aiProjectClient.js.map +1 -1
  38. package/dist/esm/api/aiProjectContext.js +1 -1
  39. package/dist/esm/api/aiProjectContext.js.map +1 -1
  40. package/dist/esm/constants.d.ts +1 -1
  41. package/dist/esm/constants.js +1 -1
  42. package/dist/esm/constants.js.map +1 -1
  43. package/dist/esm/getCustomFetch.d.ts +13 -0
  44. package/dist/esm/getCustomFetch.d.ts.map +1 -0
  45. package/dist/esm/getCustomFetch.js +42 -0
  46. package/dist/esm/getCustomFetch.js.map +1 -0
  47. package/dist/esm/models/models.d.ts +10 -10
  48. package/dist/esm/models/models.d.ts.map +1 -1
  49. package/dist/esm/models/models.js +1 -1
  50. package/dist/esm/models/models.js.map +1 -1
  51. package/dist/react-native/aiProjectClient.d.ts.map +1 -1
  52. package/dist/react-native/aiProjectClient.js +6 -0
  53. package/dist/react-native/aiProjectClient.js.map +1 -1
  54. package/dist/react-native/api/aiProjectContext.js +1 -1
  55. package/dist/react-native/api/aiProjectContext.js.map +1 -1
  56. package/dist/react-native/constants.d.ts +1 -1
  57. package/dist/react-native/constants.js +1 -1
  58. package/dist/react-native/constants.js.map +1 -1
  59. package/dist/react-native/getCustomFetch.d.ts +13 -0
  60. package/dist/react-native/getCustomFetch.d.ts.map +1 -0
  61. package/dist/react-native/getCustomFetch.js +42 -0
  62. package/dist/react-native/getCustomFetch.js.map +1 -0
  63. package/dist/react-native/models/models.d.ts +10 -10
  64. package/dist/react-native/models/models.d.ts.map +1 -1
  65. package/dist/react-native/models/models.js +1 -1
  66. package/dist/react-native/models/models.js.map +1 -1
  67. package/package.json +6 -3
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/models/models.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable tsdoc/syntax */\n\nimport { serializeRecord } from \"../static-helpers/serialization/serialize-record.js\";\n\n/**\n * Represents an agent object.\n * Contains the agent's unique identifier, name, and version information.\n */\nexport interface Agent {\n /** The object type, which is always 'agent'. */\n object: \"agent\";\n /** The unique identifier of the agent. */\n id: string;\n /** The name of the agent. */\n name: string;\n /** The latest version of the agent. */\n versions: {\n latest: AgentVersion;\n };\n}\n\nexport function agentObjectDeserializer(item: any): Agent {\n return {\n object: item[\"object\"],\n id: item[\"id\"],\n name: item[\"name\"],\n versions: _agentObjectVersionsDeserializer(item[\"versions\"]),\n };\n}\n\n/**\n * Helper interface for agent version references.\n */\nexport interface _AgentVersions {\n latest: AgentVersion;\n}\n\nexport function _agentObjectVersionsDeserializer(item: any): _AgentVersions {\n return {\n latest: agentVersionObjectDeserializer(item[\"latest\"]),\n };\n}\n\n/**\n * Represents a specific version of an agent.\n * Includes metadata, versioning, creation time, and agent definition.\n */\nexport interface AgentVersion {\n /**\n * Set of 16 key-value pairs that can be attached to an object. This can be\n * useful for storing additional information about the object in a structured\n * format, and querying for objects via API or the dashboard.\n *\n * Keys are strings with a maximum length of 64 characters. Values are strings\n * with a maximum length of 512 characters.\n */\n metadata: Record<string, string>;\n /** The object type, which is always 'agent.version'. */\n object: \"agent.version\";\n /** The unique identifier of the agent version. */\n id: string;\n /** The name of the agent. Name can be used to retrieve/update/delete the agent. */\n name: string;\n /** The version identifier of the agent. Agents are immutable and every update creates a new version while keeping the name same. */\n version: string;\n /** A human-readable description of the agent. */\n description?: string;\n /** The Unix timestamp (seconds) when the agent was created. */\n created_at: Date;\n /** The definition of the agent. */\n definition: AgentDefinitionUnion;\n}\n\nexport function agentVersionObjectDeserializer(item: any): AgentVersion {\n return {\n metadata: item[\"metadata\"],\n object: item[\"object\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n created_at: new Date(item[\"created_at\"] * 1000),\n definition: agentDefinitionUnionDeserializer(item[\"definition\"]),\n };\n}\n\n/**\n * Base definition interface for agents.\n * Contains the agent kind and optional RAI configuration.\n */\nexport interface AgentDefinition {\n kind: AgentKind;\n /** Configuration for Responsible AI (RAI) content filtering and safety features. */\n rai_config?: RaiConfig;\n}\n\nexport function agentDefinitionSerializer(item: AgentDefinition): any {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n };\n}\n\nexport function agentDefinitionDeserializer(item: any): AgentDefinition {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n };\n}\n\n/**\n * Union type for all agent definition types.\n * Supports workflow, hosted, container app, and prompt agents.\n */\nexport type AgentDefinitionUnion =\n | WorkflowAgentDefinition\n | HostedAgentDefinitionUnion\n | ContainerAppAgentDefinition\n | PromptAgentDefinition\n | AgentDefinition;\n\nexport function agentDefinitionUnionSerializer(item: AgentDefinitionUnion): any {\n switch (item.kind) {\n case \"workflow\":\n return workflowAgentDefinitionSerializer(item as WorkflowAgentDefinition);\n\n case \"hosted\":\n return hostedAgentDefinitionUnionSerializer(item as HostedAgentDefinitionUnion);\n\n case \"container_app\":\n return containerAppAgentDefinitionSerializer(item as ContainerAppAgentDefinition);\n\n case \"prompt\":\n return promptAgentDefinitionSerializer(item as PromptAgentDefinition);\n\n default:\n return agentDefinitionSerializer(item);\n }\n}\n\nexport function agentDefinitionUnionDeserializer(item: any): AgentDefinitionUnion {\n switch (item.kind) {\n case \"workflow\":\n return workflowAgentDefinitionDeserializer(item as WorkflowAgentDefinition);\n\n case \"hosted\":\n return hostedAgentDefinitionUnionDeserializer(item as HostedAgentDefinitionUnion);\n\n case \"container_app\":\n return containerAppAgentDefinitionDeserializer(item as ContainerAppAgentDefinition);\n\n case \"prompt\":\n return promptAgentDefinitionDeserializer(item as PromptAgentDefinition);\n\n default:\n return agentDefinitionDeserializer(item);\n }\n}\n\n/**\n * Defines the type/kind of agent.\n * Determines which agent definition structure is used.\n */\nexport type AgentKind = \"prompt\" | \"hosted\" | \"container_app\" | \"workflow\";\n\n/** Configuration for Responsible AI (RAI) content filtering and safety features. */\nexport interface RaiConfig {\n /** The name of the RAI policy to apply. */\n rai_policy_name: string;\n}\n\nexport function raiConfigSerializer(item: RaiConfig): any {\n return { rai_policy_name: item[\"rai_policy_name\"] };\n}\n\nexport function raiConfigDeserializer(item: any): RaiConfig {\n return {\n rai_policy_name: item[\"rai_policy_name\"],\n };\n}\n\n/** The workflow agent definition. */\nexport interface WorkflowAgentDefinition extends AgentDefinition {\n kind: \"workflow\";\n /** The CSDL YAML definition of the workflow. */\n workflow?: string;\n}\n\nexport function workflowAgentDefinitionSerializer(item: WorkflowAgentDefinition): any {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n workflow: item[\"workflow\"],\n };\n}\n\nexport function workflowAgentDefinitionDeserializer(item: any): WorkflowAgentDefinition {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n workflow: item[\"workflow\"],\n };\n}\n\n/** The hosted agent definition. */\nexport interface HostedAgentDefinition extends AgentDefinition {\n /** The kind of agent definition. */\n kind: \"hosted\";\n /**\n * An array of tools the hosted agent's model may call while generating a response. You\n * can specify which tool to use by setting the `tool_choice` parameter.\n */\n tools?: ToolUnion[];\n /** The protocols that the agent supports for ingress communication of the containers. */\n container_protocol_versions: ProtocolVersionRecord[];\n /** The CPU configuration for the hosted agent. */\n cpu: string;\n /** The memory configuration for the hosted agent. */\n memory: string;\n /** Environment variables to set in the hosted agent container. */\n environment_variables?: Record<string, string>;\n}\n\nexport function hostedAgentDefinitionSerializer(item: HostedAgentDefinition): any {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n tools: !item[\"tools\"] ? item[\"tools\"] : toolUnionArraySerializer(item[\"tools\"]),\n container_protocol_versions: protocolVersionRecordArraySerializer(\n item[\"container_protocol_versions\"],\n ),\n cpu: item[\"cpu\"],\n memory: item[\"memory\"],\n environment_variables: item[\"environment_variables\"],\n };\n}\n\nexport function hostedAgentDefinitionDeserializer(item: any): HostedAgentDefinition {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n tools: !item[\"tools\"] ? item[\"tools\"] : toolUnionArrayDeserializer(item[\"tools\"]),\n container_protocol_versions: protocolVersionRecordArrayDeserializer(\n item[\"container_protocol_versions\"],\n ),\n cpu: item[\"cpu\"],\n memory: item[\"memory\"],\n environment_variables: item[\"environment_variables\"],\n };\n}\n\n/** Alias for HostedAgentDefinitionUnion */\nexport type HostedAgentDefinitionUnion = ImageBasedHostedAgentDefinition | HostedAgentDefinition;\n\nexport function hostedAgentDefinitionUnionSerializer(item: HostedAgentDefinitionUnion): any {\n switch (item.kind) {\n case \"hosted\":\n return imageBasedHostedAgentDefinitionSerializer(item as ImageBasedHostedAgentDefinition);\n\n default:\n return hostedAgentDefinitionSerializer(item);\n }\n}\n\nexport function hostedAgentDefinitionUnionDeserializer(item: any): HostedAgentDefinitionUnion {\n switch (item.kind) {\n case \"hosted\":\n return imageBasedHostedAgentDefinitionDeserializer(item as ImageBasedHostedAgentDefinition);\n\n default:\n return hostedAgentDefinitionDeserializer(item);\n }\n}\n\nexport function toolUnionArraySerializer(result: Array<ToolUnion>): any[] {\n return result.map((item) => {\n return toolUnionSerializer(item);\n });\n}\n\nexport function toolUnionArrayDeserializer(result: Array<ToolUnion>): any[] {\n return result.map((item) => {\n return toolUnionDeserializer(item);\n });\n}\n\n/** model interface Tool */\nexport interface Tool {\n type: ToolType;\n}\n\nexport function toolSerializer(item: Tool): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolDeserializer(item: any): Tool {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for ToolUnion */\nexport type ToolUnion =\n | FunctionTool\n | FileSearchTool\n | ComputerUsePreviewTool\n | WebSearchPreviewTool\n | CodeInterpreterTool\n | ImageGenTool\n | LocalShellTool\n | MCPTool\n | BingGroundingAgentTool\n | MicrosoftFabricAgentTool\n | SharepointAgentTool\n | AzureAISearchAgentTool\n | OpenApiAgentTool\n | BingCustomSearchAgentTool\n | BrowserAutomationAgentTool\n | AzureFunctionAgentTool\n | CaptureStructuredOutputsTool\n | A2ATool\n | MemorySearchTool\n | Tool;\n\nexport function toolUnionSerializer(item: ToolUnion): any {\n switch (item.type) {\n case \"function\":\n return functionToolSerializer(item as FunctionTool);\n\n case \"file_search\":\n return fileSearchToolSerializer(item as FileSearchTool);\n\n case \"computer_use_preview\":\n return computerUsePreviewToolSerializer(item as ComputerUsePreviewTool);\n\n case \"web_search_preview\":\n return webSearchPreviewToolSerializer(item as WebSearchPreviewTool);\n\n case \"code_interpreter\":\n return codeInterpreterToolSerializer(item as CodeInterpreterTool);\n\n case \"image_generation\":\n return imageGenToolSerializer(item as ImageGenTool);\n\n case \"local_shell\":\n return localShellToolSerializer(item as LocalShellTool);\n\n case \"mcp\":\n return mcpToolSerializer(item as MCPTool);\n\n case \"bing_grounding\":\n return bingGroundingAgentToolSerializer(item as BingGroundingAgentTool);\n\n case \"fabric_dataagent_preview\":\n return microsoftFabricAgentToolSerializer(item as MicrosoftFabricAgentTool);\n\n case \"sharepoint_grounding_preview\":\n return sharepointAgentToolSerializer(item as SharepointAgentTool);\n\n case \"azure_ai_search\":\n return azureAISearchAgentToolSerializer(item as AzureAISearchAgentTool);\n\n case \"openapi\":\n return openApiAgentToolSerializer(item as OpenApiAgentTool);\n\n case \"bing_custom_search_preview\":\n return bingCustomSearchAgentToolSerializer(item as BingCustomSearchAgentTool);\n\n case \"browser_automation_preview\":\n return browserAutomationAgentToolSerializer(item as BrowserAutomationAgentTool);\n\n case \"azure_function\":\n return azureFunctionAgentToolSerializer(item as AzureFunctionAgentTool);\n\n case \"capture_structured_outputs\":\n return captureStructuredOutputsToolSerializer(item as CaptureStructuredOutputsTool);\n\n case \"a2a_preview\":\n return a2AToolSerializer(item as A2ATool);\n\n case \"memory_search\":\n return memorySearchToolSerializer(item as MemorySearchTool);\n\n default:\n return toolSerializer(item);\n }\n}\n\nexport function toolUnionDeserializer(item: any): ToolUnion {\n switch (item.type) {\n case \"function\":\n return functionToolDeserializer(item as FunctionTool);\n\n case \"file_search\":\n return fileSearchToolDeserializer(item as FileSearchTool);\n\n case \"computer_use_preview\":\n return computerUsePreviewToolDeserializer(item as ComputerUsePreviewTool);\n\n case \"web_search_preview\":\n return webSearchPreviewToolDeserializer(item as WebSearchPreviewTool);\n\n case \"code_interpreter\":\n return codeInterpreterToolDeserializer(item as CodeInterpreterTool);\n\n case \"image_generation\":\n return imageGenToolDeserializer(item as ImageGenTool);\n\n case \"local_shell\":\n return localShellToolDeserializer(item as LocalShellTool);\n\n case \"mcp\":\n return mcpToolDeserializer(item as MCPTool);\n\n case \"bing_grounding\":\n return bingGroundingAgentToolDeserializer(item as BingGroundingAgentTool);\n\n case \"fabric_dataagent_preview\":\n return microsoftFabricAgentToolDeserializer(item as MicrosoftFabricAgentTool);\n\n case \"sharepoint_grounding_preview\":\n return sharepointAgentToolDeserializer(item as SharepointAgentTool);\n\n case \"azure_ai_search\":\n return azureAISearchAgentToolDeserializer(item as AzureAISearchAgentTool);\n\n case \"openapi\":\n return openApiAgentToolDeserializer(item as OpenApiAgentTool);\n\n case \"bing_custom_search_preview\":\n return bingCustomSearchAgentToolDeserializer(item as BingCustomSearchAgentTool);\n\n case \"browser_automation_preview\":\n return browserAutomationAgentToolDeserializer(item as BrowserAutomationAgentTool);\n\n case \"azure_function\":\n return azureFunctionAgentToolDeserializer(item as AzureFunctionAgentTool);\n\n case \"capture_structured_outputs\":\n return captureStructuredOutputsToolDeserializer(item as CaptureStructuredOutputsTool);\n\n case \"a2a_preview\":\n return a2AToolDeserializer(item as A2ATool);\n\n case \"memory_search\":\n return memorySearchToolDeserializer(item as MemorySearchTool);\n\n default:\n return toolDeserializer(item);\n }\n}\n\n/** A tool that can be used to generate a response. */\nexport type ToolType =\n | \"file_search\"\n | \"function\"\n | \"computer_use_preview\"\n | \"web_search_preview\"\n | \"mcp\"\n | \"code_interpreter\"\n | \"image_generation\"\n | \"local_shell\"\n | \"bing_grounding\"\n | \"browser_automation_preview\"\n | \"fabric_dataagent_preview\"\n | \"sharepoint_grounding_preview\"\n | \"azure_ai_search\"\n | \"openapi\"\n | \"bing_custom_search_preview\"\n | \"capture_structured_outputs\"\n | \"a2a_preview\"\n | \"azure_function\"\n | \"memory_search\";\n\n/**\n * Function tool definition for agents.\n * Allows the model to call functions defined in your code.\n * Learn more about [function calling](https://platform.openai.com/docs/guides/function-calling).\n */\nexport interface FunctionTool extends Tool {\n /** The type of the function tool. Always `function`. */\n type: \"function\";\n /** The name of the function to call. */\n name: string;\n /** A description of the function. Used by the model to determine whether or not to call the function. */\n description?: string;\n /** A JSON schema object describing the parameters of the function. */\n parameters: unknown;\n /** Whether to enforce strict parameter validation. Default `true`. */\n strict: boolean;\n}\n\nexport function functionToolSerializer(item: FunctionTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n parameters: item[\"parameters\"],\n strict: item[\"strict\"],\n };\n}\n\nexport function functionToolDeserializer(item: any): FunctionTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n parameters: item[\"parameters\"],\n strict: item[\"strict\"],\n };\n}\n\n/**\n * File search tool definition for agents.\n * Searches for relevant content from uploaded files.\n * Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search).\n */\nexport interface FileSearchTool extends Tool {\n /** The type of the file search tool. Always `file_search`. */\n type: \"file_search\";\n /** The IDs of the vector stores to search. */\n vector_store_ids: string[];\n /** The maximum number of results to return. This number should be between 1 and 50 inclusive. */\n max_num_results?: number;\n /** Ranking options for search. */\n ranking_options?: RankingOptions;\n /** A filter to apply. */\n filters?: Filters;\n}\n\nexport function fileSearchToolSerializer(item: FileSearchTool): any {\n return {\n type: item[\"type\"],\n vector_store_ids: item[\"vector_store_ids\"].map((p: any) => {\n return p;\n }),\n max_num_results: item[\"max_num_results\"],\n ranking_options: !item[\"ranking_options\"]\n ? item[\"ranking_options\"]\n : rankingOptionsSerializer(item[\"ranking_options\"]),\n filters: !item[\"filters\"] ? item[\"filters\"] : filtersSerializer(item[\"filters\"]),\n };\n}\n\nexport function fileSearchToolDeserializer(item: any): FileSearchTool {\n return {\n type: item[\"type\"],\n vector_store_ids: item[\"vector_store_ids\"].map((p: any) => {\n return p;\n }),\n max_num_results: item[\"max_num_results\"],\n ranking_options: !item[\"ranking_options\"]\n ? item[\"ranking_options\"]\n : rankingOptionsDeserializer(item[\"ranking_options\"]),\n filters: !item[\"filters\"] ? item[\"filters\"] : filtersDeserializer(item[\"filters\"]),\n };\n}\n\n/**\n * Ranking options for file search.\n * Controls which ranker to use and the score threshold for results.\n */\nexport interface RankingOptions {\n /** The ranker to use for the file search. */\n ranker?: \"auto\" | \"default-2024-11-15\";\n /** The score threshold for the file search, a number between 0 and 1. Numbers closer to 1 will attempt to return only the most relevant results, but may return fewer results. */\n score_threshold?: number;\n}\n\nexport function rankingOptionsSerializer(item: RankingOptions): any {\n return { ranker: item[\"ranker\"], score_threshold: item[\"score_threshold\"] };\n}\n\nexport function rankingOptionsDeserializer(item: any): RankingOptions {\n return {\n ranker: item[\"ranker\"],\n score_threshold: item[\"score_threshold\"],\n };\n}\n\n/**\n * Filter types for file search.\n * Can be either a comparison filter or a compound filter combining multiple filters.\n */\nexport type Filters = ComparisonFilter | CompoundFilter;\n\nexport function filtersSerializer(item: Filters): any {\n return item;\n}\n\nexport function filtersDeserializer(item: any): Filters {\n return item;\n}\n\n/**\n * Comparison filter for file search.\n * Compares a specified attribute key to a given value using a comparison operation.\n */\nexport interface ComparisonFilter {\n /**\n * Specifies the comparison operator:\n * `eq` (equal), `ne` (not equal), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal).\n */\n type: \"eq\" | \"ne\" | \"gt\" | \"gte\" | \"lt\" | \"lte\";\n /** The key to compare against the value. */\n key: string;\n /** The value to compare against the attribute key; supports string, number, or boolean types. */\n value: string | number | boolean;\n}\n\nexport function comparisonFilterSerializer(item: ComparisonFilter): any {\n return {\n type: item[\"type\"],\n key: item[\"key\"],\n value: _comparisonFilterValueSerializer(item[\"value\"]),\n };\n}\n\nexport function comparisonFilterDeserializer(item: any): ComparisonFilter {\n return {\n type: item[\"type\"],\n key: item[\"key\"],\n value: _comparisonFilterValueDeserializer(item[\"value\"]),\n };\n}\n\n/** Alias for _ComparisonFilterValue */\nexport type _ComparisonFilterValue = string | number | boolean;\n\nexport function _comparisonFilterValueSerializer(item: _ComparisonFilterValue): any {\n return item;\n}\n\nexport function _comparisonFilterValueDeserializer(item: any): _ComparisonFilterValue {\n return item;\n}\n\n/**\n * Compound filter for file search.\n * Combines multiple filters using logical AND or OR operations.\n */\nexport interface CompoundFilter {\n /** Type of operation: `and` or `or`. */\n type: \"and\" | \"or\";\n /** Array of filters to combine. Items can be `ComparisonFilter` or `CompoundFilter`. */\n filters: (ComparisonFilter | CompoundFilter)[];\n}\n\nexport function compoundFilterSerializer(item: CompoundFilter): any {\n return {\n type: item[\"type\"],\n filters: _compoundFilterFilterArraySerializer(item[\"filters\"]),\n };\n}\n\nexport function compoundFilterDeserializer(item: any): CompoundFilter {\n return {\n type: item[\"type\"],\n filters: _compoundFilterFilterArrayDeserializer(item[\"filters\"]),\n };\n}\n\nexport function _compoundFilterFilterArraySerializer(result: Array<_CompoundFilterFilter>): any[] {\n return result.map((item) => {\n return _compoundFilterFilterSerializer(item);\n });\n}\n\nexport function _compoundFilterFilterArrayDeserializer(\n result: Array<_CompoundFilterFilter>,\n): any[] {\n return result.map((item) => {\n return _compoundFilterFilterDeserializer(item);\n });\n}\n\n/** Alias for _CompoundFilterFilter */\nexport type _CompoundFilterFilter = ComparisonFilter | CompoundFilter;\n\nexport function _compoundFilterFilterSerializer(item: _CompoundFilterFilter): any {\n return item;\n}\n\nexport function _compoundFilterFilterDeserializer(item: any): _CompoundFilterFilter {\n return item;\n}\n\n/** A tool that controls a virtual computer. Learn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use). */\nexport interface ComputerUsePreviewTool extends Tool {\n /** The type of the computer use tool. Always `computer_use_preview`. */\n type: \"computer_use_preview\";\n /** The type of computer environment to control. */\n environment: \"windows\" | \"mac\" | \"linux\" | \"browser\";\n /** The width of the computer display. */\n display_width: number;\n /** The height of the computer display. */\n display_height: number;\n}\n\nexport function computerUsePreviewToolSerializer(item: ComputerUsePreviewTool): any {\n return {\n type: item[\"type\"],\n environment: item[\"environment\"],\n display_width: item[\"display_width\"],\n display_height: item[\"display_height\"],\n };\n}\n\nexport function computerUsePreviewToolDeserializer(item: any): ComputerUsePreviewTool {\n return {\n type: item[\"type\"],\n environment: item[\"environment\"],\n display_width: item[\"display_width\"],\n display_height: item[\"display_height\"],\n };\n}\n\n/**\n * Web search tool definition for agents.\n * Note: web_search is not yet available via Azure OpenAI.\n */\nexport interface WebSearchPreviewTool extends Tool {\n /** The type of the web search tool. One of `web_search_preview` or `web_search_preview_2025_03_11`. */\n type: \"web_search_preview\";\n /** The user's location. */\n user_location?: LocationUnion;\n /** High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default. */\n search_context_size?: \"low\" | \"medium\" | \"high\";\n}\n\nexport function webSearchPreviewToolSerializer(item: WebSearchPreviewTool): any {\n return {\n type: item[\"type\"],\n user_location: !item[\"user_location\"]\n ? item[\"user_location\"]\n : locationUnionSerializer(item[\"user_location\"]),\n search_context_size: item[\"search_context_size\"],\n };\n}\n\nexport function webSearchPreviewToolDeserializer(item: any): WebSearchPreviewTool {\n return {\n type: item[\"type\"],\n user_location: !item[\"user_location\"]\n ? item[\"user_location\"]\n : locationUnionDeserializer(item[\"user_location\"]),\n search_context_size: item[\"search_context_size\"],\n };\n}\n\n/**\n * Base interface for location information.\n */\nexport interface Location {\n type: LocationType;\n}\n\nexport function locationSerializer(item: Location): any {\n return { type: item[\"type\"] };\n}\n\nexport function locationDeserializer(item: any): Location {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for LocationUnion */\nexport type LocationUnion = ApproximateLocation | Location;\n\nexport function locationUnionSerializer(item: LocationUnion): any {\n switch (item.type) {\n case \"approximate\":\n return approximateLocationSerializer(item as ApproximateLocation);\n\n default:\n return locationSerializer(item);\n }\n}\n\nexport function locationUnionDeserializer(item: any): LocationUnion {\n switch (item.type) {\n case \"approximate\":\n return approximateLocationDeserializer(item as ApproximateLocation);\n\n default:\n return locationDeserializer(item);\n }\n}\n\n/**\n * Type discriminator for location.\n */\nexport type LocationType = \"approximate\";\n\n/**\n * Approximate location information for web search.\n * Includes country, region, city, and timezone.\n */\nexport interface ApproximateLocation extends Location {\n type: \"approximate\";\n /** The country of the location. */\n country?: string;\n /** The region of the location. */\n region?: string;\n /** The city of the location. */\n city?: string;\n /** The timezone of the location. */\n timezone?: string;\n}\n\nexport function approximateLocationSerializer(item: ApproximateLocation): any {\n return {\n type: item[\"type\"],\n country: item[\"country\"],\n region: item[\"region\"],\n city: item[\"city\"],\n timezone: item[\"timezone\"],\n };\n}\n\nexport function approximateLocationDeserializer(item: any): ApproximateLocation {\n return {\n type: item[\"type\"],\n country: item[\"country\"],\n region: item[\"region\"],\n city: item[\"city\"],\n timezone: item[\"timezone\"],\n };\n}\n\n/**\n * Code interpreter tool definition for agents.\n * Runs Python code to help generate responses to prompts.\n */\nexport interface CodeInterpreterTool extends Tool {\n /** The type of the code interpreter tool. Always `code_interpreter`. */\n type: \"code_interpreter\";\n /**\n * The code interpreter container. Can be a container ID or an object that\n * specifies uploaded file IDs to make available to your code.\n */\n container: string | CodeInterpreterToolAuto;\n}\n\nexport function codeInterpreterToolSerializer(item: CodeInterpreterTool): any {\n return {\n type: item[\"type\"],\n container: _codeInterpreterToolContainerSerializer(item[\"container\"]),\n };\n}\n\nexport function codeInterpreterToolDeserializer(item: any): CodeInterpreterTool {\n return {\n type: item[\"type\"],\n container: _codeInterpreterToolContainerDeserializer(item[\"container\"]),\n };\n}\n\n/** Alias for _CodeInterpreterToolContainer */\nexport type _CodeInterpreterToolContainer = string | CodeInterpreterToolAuto;\n\nexport function _codeInterpreterToolContainerSerializer(item: _CodeInterpreterToolContainer): any {\n return item;\n}\n\nexport function _codeInterpreterToolContainerDeserializer(\n item: any,\n): _CodeInterpreterToolContainer {\n return item;\n}\n\n/**\n * Configuration for a code interpreter container. Optionally specify the IDs\n * of the files to run the code on.\n */\nexport interface CodeInterpreterToolAuto {\n /** Always `auto`. */\n type: \"auto\";\n /** An optional list of uploaded files to make available to your code. */\n file_ids?: string[];\n}\n\nexport function codeInterpreterToolAutoSerializer(item: CodeInterpreterToolAuto): any {\n return {\n type: item[\"type\"],\n file_ids: !item[\"file_ids\"]\n ? item[\"file_ids\"]\n : item[\"file_ids\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function codeInterpreterToolAutoDeserializer(item: any): CodeInterpreterToolAuto {\n return {\n type: item[\"type\"],\n file_ids: !item[\"file_ids\"]\n ? item[\"file_ids\"]\n : item[\"file_ids\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/**\n * Image generation tool definition for agents.\n * Generates images using a model like `gpt-image-1`.\n */\nexport interface ImageGenTool extends Tool {\n /** The type of the image generation tool. Always `image_generation`. */\n type: \"image_generation\";\n /** The image generation model to use. Default: `gpt-image-1`. */\n model?: \"gpt-image-1\";\n /**\n * The quality of the generated image. One of `low`, `medium`, `high`,\n * or `auto`. Default: `auto`.\n */\n quality?: \"low\" | \"medium\" | \"high\" | \"auto\";\n /**\n * The size of the generated image. One of `1024x1024`, `1024x1536`,\n * `1536x1024`, or `auto`. Default: `auto`.\n */\n size?: \"1024x1024\" | \"1024x1536\" | \"1536x1024\" | \"auto\";\n /**\n * The output format of the generated image. One of `png`, `webp`, or\n * `jpeg`. Default: `png`.\n */\n output_format?: \"png\" | \"webp\" | \"jpeg\";\n /** Compression level for the output image. Default: 100. */\n output_compression?: number;\n /** Moderation level for the generated image. Default: `auto`. */\n moderation?: \"auto\" | \"low\";\n /**\n * Background type for the generated image. One of `transparent`,\n * `opaque`, or `auto`. Default: `auto`.\n */\n background?: \"transparent\" | \"opaque\" | \"auto\";\n /**\n * Optional mask for inpainting. Contains `image_url`\n * (string, optional) and `file_id` (string, optional).\n */\n input_image_mask?: {\n image_url?: string;\n file_id?: string;\n };\n /** Number of partial images to generate in streaming mode, from 0 (default value) to 3. */\n partial_images?: number;\n}\n\nexport function imageGenToolSerializer(item: ImageGenTool): any {\n return {\n type: item[\"type\"],\n model: item[\"model\"],\n quality: item[\"quality\"],\n size: item[\"size\"],\n output_format: item[\"output_format\"],\n output_compression: item[\"output_compression\"],\n moderation: item[\"moderation\"],\n background: item[\"background\"],\n input_image_mask: !item[\"input_image_mask\"]\n ? item[\"input_image_mask\"]\n : _imageGenToolInputImageMaskSerializer(item[\"input_image_mask\"]),\n partial_images: item[\"partial_images\"],\n };\n}\n\nexport function imageGenToolDeserializer(item: any): ImageGenTool {\n return {\n type: item[\"type\"],\n model: item[\"model\"],\n quality: item[\"quality\"],\n size: item[\"size\"],\n output_format: item[\"output_format\"],\n output_compression: item[\"output_compression\"],\n moderation: item[\"moderation\"],\n background: item[\"background\"],\n input_image_mask: !item[\"input_image_mask\"]\n ? item[\"input_image_mask\"]\n : _imageGenToolInputImageMaskDeserializer(item[\"input_image_mask\"]),\n partial_images: item[\"partial_images\"],\n };\n}\n\n/**\n * Input image mask configuration for image generation tool.\n * Can specify either a base64-encoded image URL or a file ID.\n */\nexport interface _ImageGenToolInputImageMask {\n /** Base64-encoded mask image. */\n image_url?: string;\n /** File ID for the mask image. */\n file_id?: string;\n}\n\nexport function _imageGenToolInputImageMaskSerializer(item: _ImageGenToolInputImageMask): any {\n return { image_url: item[\"image_url\"], file_id: item[\"file_id\"] };\n}\n\nexport function _imageGenToolInputImageMaskDeserializer(item: any): _ImageGenToolInputImageMask {\n return {\n image_url: item[\"image_url\"],\n file_id: item[\"file_id\"],\n };\n}\n\n/**\n * Local shell tool definition for agents.\n * Allows the model to execute shell commands in a local environment.\n */\nexport interface LocalShellTool extends Tool {\n /** The type of the local shell tool. Always `local_shell`. */\n type: \"local_shell\";\n}\n\nexport function localShellToolSerializer(item: LocalShellTool): any {\n return { type: item[\"type\"] };\n}\n\nexport function localShellToolDeserializer(item: any): LocalShellTool {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * MCP (Model Context Protocol) tool definition for agents.\n * Gives the model access to additional tools via remote MCP servers.\n * [Learn more about MCP](https://platform.openai.com/docs/guides/tools-remote-mcp).\n */\nexport interface MCPTool extends Tool {\n /** The type of the MCP tool. Always `mcp`. */\n type: \"mcp\";\n /** A label for this MCP server, used to identify it in tool calls. */\n server_label: string;\n /** The URL for the MCP server. */\n server_url: string;\n /**\n * Optional HTTP headers to send to the MCP server. Use for authentication\n * or other purposes.\n */\n headers?: Record<string, string>;\n /** List of allowed tool names or a filter object. */\n allowed_tools?:\n | string[]\n | {\n tool_names?: string[];\n };\n /** Specify which of the MCP server's tools require approval. */\n require_approval?:\n | {\n /** A list of tools that always require approval. */\n always?: {\n /** List of tool names (snake_case) that always require approval. */\n tool_names?: string[];\n };\n /** A list of tools that never require approval. */\n never?: {\n /** List of tool names (snake_case) that never require approval. */\n tool_names?: string[];\n };\n }\n | \"always\"\n | \"never\";\n /** The connection ID in the project for the MCP server. The connection stores authentication and other connection details needed to connect to the MCP server. */\n project_connection_id?: string;\n}\n\nexport function mcpToolSerializer(item: MCPTool): any {\n return {\n type: item[\"type\"],\n server_label: item[\"server_label\"],\n server_url: item[\"server_url\"],\n headers: item[\"headers\"],\n allowed_tools: !item[\"allowed_tools\"]\n ? item[\"allowed_tools\"]\n : _mcpToolAllowedToolsSerializer(item[\"allowed_tools\"]),\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _mcpToolRequireApprovalSerializer(item[\"require_approval\"]),\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\nexport function mcpToolDeserializer(item: any): MCPTool {\n return {\n type: item[\"type\"],\n server_label: item[\"server_label\"],\n server_url: item[\"server_url\"],\n headers: item[\"headers\"],\n allowed_tools: !item[\"allowed_tools\"]\n ? item[\"allowed_tools\"]\n : _mcpToolAllowedToolsDeserializer(item[\"allowed_tools\"]),\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _mcpToolRequireApprovalDeserializer(item[\"require_approval\"]),\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\n/** Alias for _MCPToolAllowedTools */\nexport type _MCPToolAllowedTools =\n | string[]\n | {\n tool_names?: string[];\n };\n\nexport function _mcpToolAllowedToolsSerializer(item: _MCPToolAllowedTools): any {\n return item;\n}\n\nexport function _mcpToolAllowedToolsDeserializer(item: any): _MCPToolAllowedTools {\n return item;\n}\n\n/** model interface _MCPToolAllowedTools1 */\nexport interface _MCPToolAllowedTools1 {\n /** List of allowed tool names. */\n tool_names?: string[];\n}\n\nexport function _mcpToolAllowedTools1Serializer(item: _MCPToolAllowedTools1): any {\n return {\n tool_names: !item[\"tool_names\"]\n ? item[\"tool_names\"]\n : item[\"tool_names\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function _mcpToolAllowedTools1Deserializer(item: any): _MCPToolAllowedTools1 {\n return {\n tool_names: !item[\"tool_names\"]\n ? item[\"tool_names\"]\n : item[\"tool_names\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Alias for _MCPToolRequireApproval */\nexport type _MCPToolRequireApproval =\n | {\n always?: {\n tool_names?: string[];\n };\n never?: {\n tool_names?: string[];\n };\n }\n | \"always\"\n | \"never\";\n\nexport function _mcpToolRequireApprovalSerializer(item: _MCPToolRequireApproval): any {\n if (typeof item === \"string\") {\n return item;\n }\n return {\n always: !item.always\n ? item.always\n : {\n tool_names: item.always.tool_names,\n },\n never: !item.never\n ? item.never\n : {\n tool_names: item.never.tool_names,\n },\n };\n}\n\nexport function _mcpToolRequireApprovalDeserializer(item: any): _MCPToolRequireApproval {\n return item;\n}\n\n/** model interface _MCPToolRequireApproval1 */\nexport interface _MCPToolRequireApproval1 {\n /** A list of tools that always require approval. */\n always?: {\n tool_names?: string[];\n };\n /** A list of tools that never require approval. */\n never?: {\n tool_names?: string[];\n };\n}\n\nexport function _mcpToolRequireApproval1Serializer(item: _MCPToolRequireApproval1): any {\n return {\n always: !item[\"always\"]\n ? item[\"always\"]\n : _mcpToolRequireApprovalAlwaysSerializer(item[\"always\"]),\n never: !item[\"never\"] ? item[\"never\"] : _mcpToolRequireApprovalNeverSerializer(item[\"never\"]),\n };\n}\n\nexport function _mcpToolRequireApproval1Deserializer(item: any): _MCPToolRequireApproval1 {\n return {\n always: !item[\"always\"]\n ? item[\"always\"]\n : _mcpToolRequireApprovalAlwaysDeserializer(item[\"always\"]),\n never: !item[\"never\"] ? item[\"never\"] : _mcpToolRequireApprovalNeverDeserializer(item[\"never\"]),\n };\n}\n\n/** model interface _MCPToolRequireApprovalAlways */\nexport interface _MCPToolRequireApprovalAlways {\n /** List of tools that require approval. */\n tool_names?: string[];\n}\n\nexport function _mcpToolRequireApprovalAlwaysSerializer(item: _MCPToolRequireApprovalAlways): any {\n return {\n tool_names: !item[\"tool_names\"]\n ? item[\"tool_names\"]\n : item[\"tool_names\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function _mcpToolRequireApprovalAlwaysDeserializer(\n item: any,\n): _MCPToolRequireApprovalAlways {\n return {\n tool_names: !item[\"tool_names\"]\n ? item[\"tool_names\"]\n : item[\"tool_names\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** model interface _MCPToolRequireApprovalNever */\nexport interface _MCPToolRequireApprovalNever {\n /** List of tools that do not require approval. */\n tool_names?: string[];\n}\n\nexport function _mcpToolRequireApprovalNeverSerializer(item: _MCPToolRequireApprovalNever): any {\n return {\n tool_names: !item[\"tool_names\"]\n ? item[\"tool_names\"]\n : item[\"tool_names\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function _mcpToolRequireApprovalNeverDeserializer(item: any): _MCPToolRequireApprovalNever {\n return {\n tool_names: !item[\"tool_names\"]\n ? item[\"tool_names\"]\n : item[\"tool_names\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** The input definition information for a bing grounding search tool as used to configure an agent. */\nexport interface BingGroundingAgentTool extends Tool {\n /** The object type, which is always 'bing_grounding'. */\n type: \"bing_grounding\";\n /** The bing grounding search tool parameters. */\n bing_grounding: BingGroundingSearchToolParameters;\n}\n\nexport function bingGroundingAgentToolSerializer(item: BingGroundingAgentTool): any {\n return {\n type: item[\"type\"],\n bing_grounding: bingGroundingSearchToolParametersSerializer(item[\"bing_grounding\"]),\n };\n}\n\nexport function bingGroundingAgentToolDeserializer(item: any): BingGroundingAgentTool {\n return {\n type: item[\"type\"],\n bing_grounding: bingGroundingSearchToolParametersDeserializer(item[\"bing_grounding\"]),\n };\n}\n\n/** The bing grounding search tool parameters. */\nexport interface BingGroundingSearchToolParameters {\n /**\n * The search configurations attached to this tool. There can be a maximum of 1\n * search configuration resource attached to the tool.\n */\n search_configurations: BingGroundingSearchConfiguration[];\n}\n\nexport function bingGroundingSearchToolParametersSerializer(\n item: BingGroundingSearchToolParameters,\n): any {\n return {\n search_configurations: bingGroundingSearchConfigurationArraySerializer(\n item[\"search_configurations\"],\n ),\n };\n}\n\nexport function bingGroundingSearchToolParametersDeserializer(\n item: any,\n): BingGroundingSearchToolParameters {\n return {\n search_configurations: bingGroundingSearchConfigurationArrayDeserializer(\n item[\"search_configurations\"],\n ),\n };\n}\n\nexport function bingGroundingSearchConfigurationArraySerializer(\n result: Array<BingGroundingSearchConfiguration>,\n): any[] {\n return result.map((item) => {\n return bingGroundingSearchConfigurationSerializer(item);\n });\n}\n\nexport function bingGroundingSearchConfigurationArrayDeserializer(\n result: Array<BingGroundingSearchConfiguration>,\n): any[] {\n return result.map((item) => {\n return bingGroundingSearchConfigurationDeserializer(item);\n });\n}\n\n/** Search configuration for Bing Grounding */\nexport interface BingGroundingSearchConfiguration {\n /** Project connection id for grounding with bing search */\n project_connection_id: string;\n /** The market where the results come from. */\n market?: string;\n /** The language to use for user interface strings when calling Bing API. */\n set_lang?: string;\n /** The number of search results to return in the bing api response */\n count?: number;\n /** Filter search results by a specific time range. See [accepted values here](https://learn.microsoft.com/bing/search-apis/bing-web-search/reference/query-parameters). */\n freshness?: string;\n}\n\nexport function bingGroundingSearchConfigurationSerializer(\n item: BingGroundingSearchConfiguration,\n): any {\n return {\n project_connection_id: item[\"project_connection_id\"],\n market: item[\"market\"],\n set_lang: item[\"set_lang\"],\n count: item[\"count\"],\n freshness: item[\"freshness\"],\n };\n}\n\nexport function bingGroundingSearchConfigurationDeserializer(\n item: any,\n): BingGroundingSearchConfiguration {\n return {\n project_connection_id: item[\"project_connection_id\"],\n market: item[\"market\"],\n set_lang: item[\"set_lang\"],\n count: item[\"count\"],\n freshness: item[\"freshness\"],\n };\n}\n\n/** The input definition information for a Microsoft Fabric tool as used to configure an agent. */\nexport interface MicrosoftFabricAgentTool extends Tool {\n /** The object type, which is always 'fabric_dataagent'. */\n type: \"fabric_dataagent_preview\";\n /** The fabric data agent tool parameters. */\n fabric_dataagent_preview: FabricDataAgentToolParameters;\n}\n\nexport function microsoftFabricAgentToolSerializer(item: MicrosoftFabricAgentTool): any {\n return {\n type: item[\"type\"],\n fabric_dataagent_preview: fabricDataAgentToolParametersSerializer(\n item[\"fabric_dataagent_preview\"],\n ),\n };\n}\n\nexport function microsoftFabricAgentToolDeserializer(item: any): MicrosoftFabricAgentTool {\n return {\n type: item[\"type\"],\n fabric_dataagent_preview: fabricDataAgentToolParametersDeserializer(\n item[\"fabric_dataagent_preview\"],\n ),\n };\n}\n\n/** The fabric data agent tool parameters. */\nexport interface FabricDataAgentToolParameters {\n /**\n * The project connections attached to this tool. There can be a maximum of 1 connection\n * resource attached to the tool.\n */\n project_connections?: ToolProjectConnection[];\n}\n\nexport function fabricDataAgentToolParametersSerializer(item: FabricDataAgentToolParameters): any {\n return {\n project_connections: !item[\"project_connections\"]\n ? item[\"project_connections\"]\n : toolProjectConnectionArraySerializer(item[\"project_connections\"]),\n };\n}\n\nexport function fabricDataAgentToolParametersDeserializer(\n item: any,\n): FabricDataAgentToolParameters {\n return {\n project_connections: !item[\"project_connections\"]\n ? item[\"project_connections\"]\n : toolProjectConnectionArrayDeserializer(item[\"project_connections\"]),\n };\n}\n\nexport function toolProjectConnectionArraySerializer(result: Array<ToolProjectConnection>): any[] {\n return result.map((item) => {\n return toolProjectConnectionSerializer(item);\n });\n}\n\nexport function toolProjectConnectionArrayDeserializer(\n result: Array<ToolProjectConnection>,\n): any[] {\n return result.map((item) => {\n return toolProjectConnectionDeserializer(item);\n });\n}\n\n/** A project connection resource. */\nexport interface ToolProjectConnection {\n /** A project connection in a ToolProjectConnectionList attached to this tool. */\n project_connection_id: string;\n}\n\nexport function toolProjectConnectionSerializer(item: ToolProjectConnection): any {\n return { project_connection_id: item[\"project_connection_id\"] };\n}\n\nexport function toolProjectConnectionDeserializer(item: any): ToolProjectConnection {\n return {\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\n/** The input definition information for a sharepoint tool as used to configure an agent. */\nexport interface SharepointAgentTool extends Tool {\n /** The object type, which is always 'sharepoint_grounding'. */\n type: \"sharepoint_grounding_preview\";\n /** The sharepoint grounding tool parameters. */\n sharepoint_grounding_preview: SharepointGroundingToolParameters;\n}\n\nexport function sharepointAgentToolSerializer(item: SharepointAgentTool): any {\n return {\n type: item[\"type\"],\n sharepoint_grounding_preview: sharepointGroundingToolParametersSerializer(\n item[\"sharepoint_grounding_preview\"],\n ),\n };\n}\n\nexport function sharepointAgentToolDeserializer(item: any): SharepointAgentTool {\n return {\n type: item[\"type\"],\n sharepoint_grounding_preview: sharepointGroundingToolParametersDeserializer(\n item[\"sharepoint_grounding_preview\"],\n ),\n };\n}\n\n/** The sharepoint grounding tool parameters. */\nexport interface SharepointGroundingToolParameters {\n /**\n * The project connections attached to this tool. There can be a maximum of 1 connection\n * resource attached to the tool.\n */\n project_connections?: ToolProjectConnection[];\n}\n\nexport function sharepointGroundingToolParametersSerializer(\n item: SharepointGroundingToolParameters,\n): any {\n return {\n project_connections: !item[\"project_connections\"]\n ? item[\"project_connections\"]\n : toolProjectConnectionArraySerializer(item[\"project_connections\"]),\n };\n}\n\nexport function sharepointGroundingToolParametersDeserializer(\n item: any,\n): SharepointGroundingToolParameters {\n return {\n project_connections: !item[\"project_connections\"]\n ? item[\"project_connections\"]\n : toolProjectConnectionArrayDeserializer(item[\"project_connections\"]),\n };\n}\n\n/** The input definition information for an Azure AI search tool as used to configure an agent. */\nexport interface AzureAISearchAgentTool extends Tool {\n /** The object type, which is always 'azure_ai_search'. */\n type: \"azure_ai_search\";\n /** The azure ai search index resource. */\n azure_ai_search: AzureAISearchToolResource;\n}\n\nexport function azureAISearchAgentToolSerializer(item: AzureAISearchAgentTool): any {\n return {\n type: item[\"type\"],\n azure_ai_search: azureAISearchToolResourceSerializer(item[\"azure_ai_search\"]),\n };\n}\n\nexport function azureAISearchAgentToolDeserializer(item: any): AzureAISearchAgentTool {\n return {\n type: item[\"type\"],\n azure_ai_search: azureAISearchToolResourceDeserializer(item[\"azure_ai_search\"]),\n };\n}\n\n/** A set of index resources used by the `azure_ai_search` tool. */\nexport interface AzureAISearchToolResource {\n /**\n * The indices attached to this agent. There can be a maximum of 1 index\n * resource attached to the agent.\n */\n indexes: AISearchIndexResource[];\n}\n\nexport function azureAISearchToolResourceSerializer(item: AzureAISearchToolResource): any {\n return { indexes: aiSearchIndexResourceArraySerializer(item[\"indexes\"]) };\n}\n\nexport function azureAISearchToolResourceDeserializer(item: any): AzureAISearchToolResource {\n return {\n indexes: aiSearchIndexResourceArrayDeserializer(item[\"indexes\"]),\n };\n}\n\nexport function aiSearchIndexResourceArraySerializer(result: Array<AISearchIndexResource>): any[] {\n return result.map((item) => {\n return aiSearchIndexResourceSerializer(item);\n });\n}\n\nexport function aiSearchIndexResourceArrayDeserializer(\n result: Array<AISearchIndexResource>,\n): any[] {\n return result.map((item) => {\n return aiSearchIndexResourceDeserializer(item);\n });\n}\n\n/** A AI Search Index resource. */\nexport interface AISearchIndexResource {\n /** An index connection ID in an IndexResource attached to this agent. */\n project_connection_id?: string;\n /** The name of an index in an IndexResource attached to this agent. */\n index_name?: string;\n /** Type of query in an AIIndexResource attached to this agent. */\n query_type?: AzureAISearchQueryType;\n /** Number of documents to retrieve from search and present to the model. */\n top_k?: number;\n /** filter string for search resource. [Learn more here](https://learn.microsoft.com/azure/search/search-filters). */\n filter?: string;\n /** Index asset id for search resource. */\n index_asset_id?: string;\n}\n\nexport function aiSearchIndexResourceSerializer(item: AISearchIndexResource): any {\n return {\n project_connection_id: item[\"project_connection_id\"],\n index_name: item[\"index_name\"],\n query_type: item[\"query_type\"],\n top_k: item[\"top_k\"],\n filter: item[\"filter\"],\n index_asset_id: item[\"index_asset_id\"],\n };\n}\n\nexport function aiSearchIndexResourceDeserializer(item: any): AISearchIndexResource {\n return {\n project_connection_id: item[\"project_connection_id\"],\n index_name: item[\"index_name\"],\n query_type: item[\"query_type\"],\n top_k: item[\"top_k\"],\n filter: item[\"filter\"],\n index_asset_id: item[\"index_asset_id\"],\n };\n}\n\n/** Available query types for Azure AI Search tool. */\nexport type AzureAISearchQueryType =\n | \"simple\"\n | \"semantic\"\n | \"vector\"\n | \"vector_simple_hybrid\"\n | \"vector_semantic_hybrid\";\n\n/** The input definition information for an OpenAPI tool as used to configure an agent. */\nexport interface OpenApiAgentTool extends Tool {\n /** The object type, which is always 'openapi'. */\n type: \"openapi\";\n /** The openapi function definition. */\n openapi: OpenApiFunctionDefinition;\n}\n\nexport function openApiAgentToolSerializer(item: OpenApiAgentTool): any {\n return {\n type: item[\"type\"],\n openapi: openApiFunctionDefinitionSerializer(item[\"openapi\"]),\n };\n}\n\nexport function openApiAgentToolDeserializer(item: any): OpenApiAgentTool {\n return {\n type: item[\"type\"],\n openapi: openApiFunctionDefinitionDeserializer(item[\"openapi\"]),\n };\n}\n\n/** The input definition information for an openapi function. */\nexport interface OpenApiFunctionDefinition {\n /** The name of the function to be called. */\n name: string;\n /** A description of what the function does, used by the model to choose when and how to call the function. */\n description?: string;\n /** The openapi function shape, described as a JSON Schema object. */\n spec: unknown;\n /** Open API authentication details */\n auth: OpenApiAuthDetailsUnion;\n /** List of OpenAPI spec parameters that will use user-provided defaults */\n default_params?: string[];\n /** List of function definitions used by OpenApi tool */\n readonly functions?: {\n name: string;\n description?: string;\n parameters: unknown;\n }[];\n}\n\nexport function openApiFunctionDefinitionSerializer(item: OpenApiFunctionDefinition): any {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n spec: item[\"spec\"],\n auth: openApiAuthDetailsUnionSerializer(item[\"auth\"]),\n default_params: !item[\"default_params\"]\n ? item[\"default_params\"]\n : item[\"default_params\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function openApiFunctionDefinitionDeserializer(item: any): OpenApiFunctionDefinition {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n spec: item[\"spec\"],\n auth: openApiAuthDetailsUnionDeserializer(item[\"auth\"]),\n default_params: !item[\"default_params\"]\n ? item[\"default_params\"]\n : item[\"default_params\"].map((p: any) => {\n return p;\n }),\n functions: !item[\"functions\"]\n ? item[\"functions\"]\n : _openApiFunctionDefinitionFunctionArrayDeserializer(item[\"functions\"]),\n };\n}\n\n/** authentication details for OpenApiFunctionDefinition */\nexport interface OpenApiAuthDetails {\n /** The type of authentication, must be anonymous/project_connection/managed_identity */\n /** The discriminator possible values: anonymous, project_connection, managed_identity */\n type: OpenApiAuthType;\n}\n\nexport function openApiAuthDetailsSerializer(item: OpenApiAuthDetails): any {\n return { type: item[\"type\"] };\n}\n\nexport function openApiAuthDetailsDeserializer(item: any): OpenApiAuthDetails {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for OpenApiAuthDetailsUnion */\nexport type OpenApiAuthDetailsUnion =\n | OpenApiAnonymousAuthDetails\n | OpenApiProjectConnectionAuthDetails\n | OpenApiManagedAuthDetails\n | OpenApiAuthDetails;\n\nexport function openApiAuthDetailsUnionSerializer(item: OpenApiAuthDetailsUnion): any {\n switch (item.type) {\n case \"anonymous\":\n return openApiAnonymousAuthDetailsSerializer(item as OpenApiAnonymousAuthDetails);\n\n case \"project_connection\":\n return openApiProjectConnectionAuthDetailsSerializer(\n item as OpenApiProjectConnectionAuthDetails,\n );\n\n case \"managed_identity\":\n return openApiManagedAuthDetailsSerializer(item as OpenApiManagedAuthDetails);\n\n default:\n return openApiAuthDetailsSerializer(item);\n }\n}\n\nexport function openApiAuthDetailsUnionDeserializer(item: any): OpenApiAuthDetailsUnion {\n switch (item.type) {\n case \"anonymous\":\n return openApiAnonymousAuthDetailsDeserializer(item as OpenApiAnonymousAuthDetails);\n\n case \"project_connection\":\n return openApiProjectConnectionAuthDetailsDeserializer(\n item as OpenApiProjectConnectionAuthDetails,\n );\n\n case \"managed_identity\":\n return openApiManagedAuthDetailsDeserializer(item as OpenApiManagedAuthDetails);\n\n default:\n return openApiAuthDetailsDeserializer(item);\n }\n}\n\n/**\n * Authentication type for OpenApi endpoint. Allowed types are:\n * - Anonymous (no authentication required)\n * - Project Connection (requires project_connection_id to endpoint, as setup in Microsoft Foundry)\n * - Managed_Identity (requires audience for identity based auth)\n */\nexport type OpenApiAuthType = \"anonymous\" | \"project_connection\" | \"managed_identity\";\n\n/** Security details for OpenApi anonymous authentication */\nexport interface OpenApiAnonymousAuthDetails extends OpenApiAuthDetails {\n /** The object type, which is always 'anonymous'. */\n type: \"anonymous\";\n}\n\nexport function openApiAnonymousAuthDetailsSerializer(item: OpenApiAnonymousAuthDetails): any {\n return { type: item[\"type\"] };\n}\n\nexport function openApiAnonymousAuthDetailsDeserializer(item: any): OpenApiAnonymousAuthDetails {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Security details for OpenApi project connection authentication */\nexport interface OpenApiProjectConnectionAuthDetails extends OpenApiAuthDetails {\n /** The object type, which is always 'project_connection'. */\n type: \"project_connection\";\n /** Project connection auth security details */\n security_scheme: OpenApiProjectConnectionSecurityScheme;\n}\n\nexport function openApiProjectConnectionAuthDetailsSerializer(\n item: OpenApiProjectConnectionAuthDetails,\n): any {\n return {\n type: item[\"type\"],\n security_scheme: openApiProjectConnectionSecuritySchemeSerializer(item[\"security_scheme\"]),\n };\n}\n\nexport function openApiProjectConnectionAuthDetailsDeserializer(\n item: any,\n): OpenApiProjectConnectionAuthDetails {\n return {\n type: item[\"type\"],\n security_scheme: openApiProjectConnectionSecuritySchemeDeserializer(item[\"security_scheme\"]),\n };\n}\n\n/** Security scheme for OpenApi managed_identity authentication */\nexport interface OpenApiProjectConnectionSecurityScheme {\n /** Project connection id for Project Connection auth type */\n project_connection_id: string;\n}\n\nexport function openApiProjectConnectionSecuritySchemeSerializer(\n item: OpenApiProjectConnectionSecurityScheme,\n): any {\n return { project_connection_id: item[\"project_connection_id\"] };\n}\n\nexport function openApiProjectConnectionSecuritySchemeDeserializer(\n item: any,\n): OpenApiProjectConnectionSecurityScheme {\n return {\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\n/** Security details for OpenApi managed_identity authentication */\nexport interface OpenApiManagedAuthDetails extends OpenApiAuthDetails {\n /** The object type, which is always 'managed_identity'. */\n type: \"managed_identity\";\n /** Connection auth security details */\n security_scheme: OpenApiManagedSecurityScheme;\n}\n\nexport function openApiManagedAuthDetailsSerializer(item: OpenApiManagedAuthDetails): any {\n return {\n type: item[\"type\"],\n security_scheme: openApiManagedSecuritySchemeSerializer(item[\"security_scheme\"]),\n };\n}\n\nexport function openApiManagedAuthDetailsDeserializer(item: any): OpenApiManagedAuthDetails {\n return {\n type: item[\"type\"],\n security_scheme: openApiManagedSecuritySchemeDeserializer(item[\"security_scheme\"]),\n };\n}\n\n/** Security scheme for OpenApi managed_identity authentication */\nexport interface OpenApiManagedSecurityScheme {\n /** Authentication scope for managed_identity auth type */\n audience: string;\n}\n\nexport function openApiManagedSecuritySchemeSerializer(item: OpenApiManagedSecurityScheme): any {\n return { audience: item[\"audience\"] };\n}\n\nexport function openApiManagedSecuritySchemeDeserializer(item: any): OpenApiManagedSecurityScheme {\n return {\n audience: item[\"audience\"],\n };\n}\n\nexport function _openApiFunctionDefinitionFunctionArrayDeserializer(\n result: Array<_OpenApiFunctionDefinitionFunction>,\n): any[] {\n return result.map((item) => {\n return _openApiFunctionDefinitionFunctionDeserializer(item);\n });\n}\n\n/** model interface _OpenApiFunctionDefinitionFunction */\nexport interface _OpenApiFunctionDefinitionFunction {\n /** The name of the function to be called. */\n name: string;\n /** A description of what the function does, used by the model to choose when and how to call the function. */\n description?: string;\n /** The parameters the functions accepts, described as a JSON Schema object. */\n parameters: unknown;\n}\n\nexport function _openApiFunctionDefinitionFunctionDeserializer(\n item: any,\n): _OpenApiFunctionDefinitionFunction {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n parameters: item[\"parameters\"],\n };\n}\n\n/** The input definition information for a Bing custom search tool as used to configure an agent. */\nexport interface BingCustomSearchAgentTool extends Tool {\n /** The object type, which is always 'bing_custom_search'. */\n type: \"bing_custom_search_preview\";\n /** The bing custom search tool parameters. */\n bing_custom_search_preview: BingCustomSearchToolParameters;\n}\n\nexport function bingCustomSearchAgentToolSerializer(item: BingCustomSearchAgentTool): any {\n return {\n type: item[\"type\"],\n bing_custom_search_preview: bingCustomSearchToolParametersSerializer(\n item[\"bing_custom_search_preview\"],\n ),\n };\n}\n\nexport function bingCustomSearchAgentToolDeserializer(item: any): BingCustomSearchAgentTool {\n return {\n type: item[\"type\"],\n bing_custom_search_preview: bingCustomSearchToolParametersDeserializer(\n item[\"bing_custom_search_preview\"],\n ),\n };\n}\n\n/** The bing custom search tool parameters. */\nexport interface BingCustomSearchToolParameters {\n /**\n * The project connections attached to this tool. There can be a maximum of 1 connection\n * resource attached to the tool.\n */\n search_configurations: BingCustomSearchConfiguration[];\n}\n\nexport function bingCustomSearchToolParametersSerializer(\n item: BingCustomSearchToolParameters,\n): any {\n return {\n search_configurations: bingCustomSearchConfigurationArraySerializer(\n item[\"search_configurations\"],\n ),\n };\n}\n\nexport function bingCustomSearchToolParametersDeserializer(\n item: any,\n): BingCustomSearchToolParameters {\n return {\n search_configurations: bingCustomSearchConfigurationArrayDeserializer(\n item[\"search_configurations\"],\n ),\n };\n}\n\nexport function bingCustomSearchConfigurationArraySerializer(\n result: Array<BingCustomSearchConfiguration>,\n): any[] {\n return result.map((item) => {\n return bingCustomSearchConfigurationSerializer(item);\n });\n}\n\nexport function bingCustomSearchConfigurationArrayDeserializer(\n result: Array<BingCustomSearchConfiguration>,\n): any[] {\n return result.map((item) => {\n return bingCustomSearchConfigurationDeserializer(item);\n });\n}\n\n/** A bing custom search configuration. */\nexport interface BingCustomSearchConfiguration {\n /** Project connection id for grounding with bing search */\n project_connection_id: string;\n /** Name of the custom configuration instance given to config. */\n instance_name: string;\n /** The market where the results come from. */\n market?: string;\n /** The language to use for user interface strings when calling Bing API. */\n set_lang?: string;\n /** The number of search results to return in the bing api response */\n count?: number;\n /** Filter search results by a specific time range. See [accepted values here](https://learn.microsoft.com/bing/search-apis/bing-web-search/reference/query-parameters). */\n freshness?: string;\n}\n\nexport function bingCustomSearchConfigurationSerializer(item: BingCustomSearchConfiguration): any {\n return {\n project_connection_id: item[\"project_connection_id\"],\n instance_name: item[\"instance_name\"],\n market: item[\"market\"],\n set_lang: item[\"set_lang\"],\n count: item[\"count\"],\n freshness: item[\"freshness\"],\n };\n}\n\nexport function bingCustomSearchConfigurationDeserializer(\n item: any,\n): BingCustomSearchConfiguration {\n return {\n project_connection_id: item[\"project_connection_id\"],\n instance_name: item[\"instance_name\"],\n market: item[\"market\"],\n set_lang: item[\"set_lang\"],\n count: item[\"count\"],\n freshness: item[\"freshness\"],\n };\n}\n\n/** The input definition information for a Browser Automation Tool, as used to configure an Agent. */\nexport interface BrowserAutomationAgentTool extends Tool {\n /** The object type, which is always 'browser_automation'. */\n type: \"browser_automation_preview\";\n /** The Browser Automation Tool parameters. */\n browser_automation_preview: BrowserAutomationToolParameters;\n}\n\nexport function browserAutomationAgentToolSerializer(item: BrowserAutomationAgentTool): any {\n return {\n type: item[\"type\"],\n browser_automation_preview: browserAutomationToolParametersSerializer(\n item[\"browser_automation_preview\"],\n ),\n };\n}\n\nexport function browserAutomationAgentToolDeserializer(item: any): BrowserAutomationAgentTool {\n return {\n type: item[\"type\"],\n browser_automation_preview: browserAutomationToolParametersDeserializer(\n item[\"browser_automation_preview\"],\n ),\n };\n}\n\n/** Definition of input parameters for the Browser Automation Tool. */\nexport interface BrowserAutomationToolParameters {\n /** The project connection parameters associated with the Browser Automation Tool. */\n connection: BrowserAutomationToolConnectionParameters;\n}\n\nexport function browserAutomationToolParametersSerializer(\n item: BrowserAutomationToolParameters,\n): any {\n return {\n connection: browserAutomationToolConnectionParametersSerializer(item[\"connection\"]),\n };\n}\n\nexport function browserAutomationToolParametersDeserializer(\n item: any,\n): BrowserAutomationToolParameters {\n return {\n connection: browserAutomationToolConnectionParametersDeserializer(item[\"connection\"]),\n };\n}\n\n/** Definition of input parameters for the connection used by the Browser Automation Tool. */\nexport interface BrowserAutomationToolConnectionParameters {\n /** The ID of the project connection to your Azure Playwright resource. */\n project_connection_id: string;\n}\n\nexport function browserAutomationToolConnectionParametersSerializer(\n item: BrowserAutomationToolConnectionParameters,\n): any {\n return { project_connection_id: item[\"project_connection_id\"] };\n}\n\nexport function browserAutomationToolConnectionParametersDeserializer(\n item: any,\n): BrowserAutomationToolConnectionParameters {\n return {\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\n/** The input definition information for an Azure Function Tool, as used to configure an Agent. */\nexport interface AzureFunctionAgentTool extends Tool {\n /** The object type, which is always 'browser_automation'. */\n type: \"azure_function\";\n /** The Azure Function Tool definition. */\n azure_function: AzureFunctionDefinition;\n}\n\nexport function azureFunctionAgentToolSerializer(item: AzureFunctionAgentTool): any {\n return {\n type: item[\"type\"],\n azure_function: azureFunctionDefinitionSerializer(item[\"azure_function\"]),\n };\n}\n\nexport function azureFunctionAgentToolDeserializer(item: any): AzureFunctionAgentTool {\n return {\n type: item[\"type\"],\n azure_function: azureFunctionDefinitionDeserializer(item[\"azure_function\"]),\n };\n}\n\n/** The definition of Azure function. */\nexport interface AzureFunctionDefinition {\n /** The definition of azure function and its parameters. */\n function: {\n name: string;\n description?: string;\n parameters: unknown;\n };\n /** Input storage queue. The queue storage trigger runs a function as messages are added to it. */\n input_binding: AzureFunctionBinding;\n /** Output storage queue. The function writes output to this queue when the input items are processed. */\n output_binding: AzureFunctionBinding;\n}\n\nexport function azureFunctionDefinitionSerializer(item: AzureFunctionDefinition): any {\n return {\n function: _azureFunctionDefinitionFunctionSerializer(item[\"function\"]),\n input_binding: azureFunctionBindingSerializer(item[\"input_binding\"]),\n output_binding: azureFunctionBindingSerializer(item[\"output_binding\"]),\n };\n}\n\nexport function azureFunctionDefinitionDeserializer(item: any): AzureFunctionDefinition {\n return {\n function: _azureFunctionDefinitionFunctionDeserializer(item[\"function\"]),\n input_binding: azureFunctionBindingDeserializer(item[\"input_binding\"]),\n output_binding: azureFunctionBindingDeserializer(item[\"output_binding\"]),\n };\n}\n\n/** model interface _AzureFunctionDefinitionFunction */\nexport interface _AzureFunctionDefinitionFunction {\n /** The name of the function to be called. */\n name: string;\n /** A description of what the function does, used by the model to choose when and how to call the function. */\n description?: string;\n /** The parameters the functions accepts, described as a JSON Schema object. */\n parameters: unknown;\n}\n\nexport function _azureFunctionDefinitionFunctionSerializer(\n item: _AzureFunctionDefinitionFunction,\n): any {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n parameters: item[\"parameters\"],\n };\n}\n\nexport function _azureFunctionDefinitionFunctionDeserializer(\n item: any,\n): _AzureFunctionDefinitionFunction {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n parameters: item[\"parameters\"],\n };\n}\n\n/** The structure for keeping storage queue name and URI. */\nexport interface AzureFunctionBinding {\n /** The type of binding, which is always 'storage_queue'. */\n type: \"storage_queue\";\n /** Storage queue. */\n storage_queue: AzureFunctionStorageQueue;\n}\n\nexport function azureFunctionBindingSerializer(item: AzureFunctionBinding): any {\n return {\n type: item[\"type\"],\n storage_queue: azureFunctionStorageQueueSerializer(item[\"storage_queue\"]),\n };\n}\n\nexport function azureFunctionBindingDeserializer(item: any): AzureFunctionBinding {\n return {\n type: item[\"type\"],\n storage_queue: azureFunctionStorageQueueDeserializer(item[\"storage_queue\"]),\n };\n}\n\n/** The structure for keeping storage queue name and URI. */\nexport interface AzureFunctionStorageQueue {\n /** URI to the Azure Storage Queue service allowing you to manipulate a queue. */\n queue_service_endpoint: string;\n /** The name of an Azure function storage queue. */\n queue_name: string;\n}\n\nexport function azureFunctionStorageQueueSerializer(item: AzureFunctionStorageQueue): any {\n return {\n queue_service_endpoint: item[\"queue_service_endpoint\"],\n queue_name: item[\"queue_name\"],\n };\n}\n\nexport function azureFunctionStorageQueueDeserializer(item: any): AzureFunctionStorageQueue {\n return {\n queue_service_endpoint: item[\"queue_service_endpoint\"],\n queue_name: item[\"queue_name\"],\n };\n}\n\n/** A tool for capturing structured outputs */\nexport interface CaptureStructuredOutputsTool extends Tool {\n /** The type of the tool. Always `capture_structured_outputs`. */\n type: \"capture_structured_outputs\";\n /** The structured outputs to capture from the model. */\n outputs: StructuredOutputDefinition;\n}\n\nexport function captureStructuredOutputsToolSerializer(item: CaptureStructuredOutputsTool): any {\n return {\n type: item[\"type\"],\n outputs: structuredOutputDefinitionSerializer(item[\"outputs\"]),\n };\n}\n\nexport function captureStructuredOutputsToolDeserializer(item: any): CaptureStructuredOutputsTool {\n return {\n type: item[\"type\"],\n outputs: structuredOutputDefinitionDeserializer(item[\"outputs\"]),\n };\n}\n\n/**\n * A structured output definition for agents.\n * Defines a named output schema that the agent can produce.\n */\nexport interface StructuredOutputDefinition {\n /** The name of the structured output. */\n name: string;\n /** A description of the output to emit. Used by the model to determine when to emit the output. */\n description: string;\n /** The JSON schema for the structured output. */\n schema: Record<string, any>;\n /** Whether to enforce strict validation. Default `true`. */\n strict: boolean;\n}\n\nexport function structuredOutputDefinitionSerializer(item: StructuredOutputDefinition): any {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n schema: item[\"schema\"],\n strict: item[\"strict\"],\n };\n}\n\nexport function structuredOutputDefinitionDeserializer(item: any): StructuredOutputDefinition {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n schema: item[\"schema\"],\n strict: item[\"strict\"],\n };\n}\n\n/** An agent implementing the A2A protocol. */\nexport interface A2ATool extends Tool {\n /** The type of the tool. Always `a2a`. */\n type: \"a2a_preview\";\n /** Base URL of the agent. */\n base_url?: string;\n /**\n * The path to the agent card relative to the `base_url`.\n * If not provided, defaults to `/.well-known/agent-card.json`\n */\n agent_card_path?: string;\n /**\n * The connection ID in the project for the A2A server.\n * The connection stores authentication and other connection details needed to connect to the A2A server.\n */\n project_connection_id?: string;\n}\n\nexport function a2AToolSerializer(item: A2ATool): any {\n return {\n type: item[\"type\"],\n base_url: item[\"base_url\"],\n agent_card_path: item[\"agent_card_path\"],\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\nexport function a2AToolDeserializer(item: any): A2ATool {\n return {\n type: item[\"type\"],\n base_url: item[\"base_url\"],\n agent_card_path: item[\"agent_card_path\"],\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\n/** A tool for integrating memories into the agent. */\nexport interface MemorySearchTool extends Tool {\n /** The type of the tool. Always `memory_search`. */\n type: \"memory_search\";\n /** The name of the memory store to use. */\n memory_store_name: string;\n /**\n * The namespace used to group and isolate memories, such as a user ID.\n * Limits which memories can be retrieved or updated.\n * Use special variable `{{$userId}}` to scope memories to the current signed-in user.\n */\n scope: string;\n /** Options for searching the memory store. */\n search_options?: MemorySearchOptions;\n /** Time to wait before updating memories after inactivity (seconds). Default 300. */\n update_delay?: number;\n}\n\nexport function memorySearchToolSerializer(item: MemorySearchTool): any {\n return {\n type: item[\"type\"],\n memory_store_name: item[\"memory_store_name\"],\n scope: item[\"scope\"],\n search_options: !item[\"search_options\"]\n ? item[\"search_options\"]\n : memorySearchOptionsSerializer(item[\"search_options\"]),\n update_delay: item[\"update_delay\"],\n };\n}\n\nexport function memorySearchToolDeserializer(item: any): MemorySearchTool {\n return {\n type: item[\"type\"],\n memory_store_name: item[\"memory_store_name\"],\n scope: item[\"scope\"],\n search_options: !item[\"search_options\"]\n ? item[\"search_options\"]\n : memorySearchOptionsDeserializer(item[\"search_options\"]),\n update_delay: item[\"update_delay\"],\n };\n}\n\n/** Memory search options. */\nexport interface MemorySearchOptions {\n /** Maximum number of memory items to return. */\n max_memories?: number;\n}\n\nexport function memorySearchOptionsSerializer(item: MemorySearchOptions): any {\n return { max_memories: item[\"max_memories\"] };\n}\n\nexport function memorySearchOptionsDeserializer(item: any): MemorySearchOptions {\n return {\n max_memories: item[\"max_memories\"],\n };\n}\n\nexport function protocolVersionRecordArraySerializer(result: Array<ProtocolVersionRecord>): any[] {\n return result.map((item) => {\n return protocolVersionRecordSerializer(item);\n });\n}\n\nexport function protocolVersionRecordArrayDeserializer(\n result: Array<ProtocolVersionRecord>,\n): any[] {\n return result.map((item) => {\n return protocolVersionRecordDeserializer(item);\n });\n}\n\n/** A record mapping for a single protocol and its version. */\nexport interface ProtocolVersionRecord {\n /** The protocol type. */\n protocol: AgentProtocol;\n /** The version string for the protocol, e.g. 'v0.1.1'. */\n version: string;\n}\n\nexport function protocolVersionRecordSerializer(item: ProtocolVersionRecord): any {\n return { protocol: item[\"protocol\"], version: item[\"version\"] };\n}\n\nexport function protocolVersionRecordDeserializer(item: any): ProtocolVersionRecord {\n return {\n protocol: item[\"protocol\"],\n version: item[\"version\"],\n };\n}\n\n/** Type of AgentProtocol */\nexport type AgentProtocol = \"activity_protocol\" | \"responses\";\n\n/** The image-based deployment definition for a hosted agent. */\nexport interface ImageBasedHostedAgentDefinition extends HostedAgentDefinition {\n kind: \"hosted\";\n /** The image for the hosted agent. */\n image: string;\n}\n\nexport function imageBasedHostedAgentDefinitionSerializer(\n item: ImageBasedHostedAgentDefinition,\n): any {\n return {\n kind: item[\"kind\"],\n tools: !item[\"tools\"] ? item[\"tools\"] : toolUnionArraySerializer(item[\"tools\"]),\n container_protocol_versions: protocolVersionRecordArraySerializer(\n item[\"container_protocol_versions\"],\n ),\n cpu: item[\"cpu\"],\n memory: item[\"memory\"],\n environment_variables: item[\"environment_variables\"],\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n image: item[\"image\"],\n };\n}\n\nexport function imageBasedHostedAgentDefinitionDeserializer(\n item: any,\n): ImageBasedHostedAgentDefinition {\n return {\n kind: item[\"kind\"],\n tools: !item[\"tools\"] ? item[\"tools\"] : toolUnionArrayDeserializer(item[\"tools\"]),\n container_protocol_versions: protocolVersionRecordArrayDeserializer(\n item[\"container_protocol_versions\"],\n ),\n cpu: item[\"cpu\"],\n memory: item[\"memory\"],\n environment_variables: item[\"environment_variables\"],\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n image: item[\"image\"],\n };\n}\n\n/** The container app agent definition. */\nexport interface ContainerAppAgentDefinition extends AgentDefinition {\n kind: \"container_app\";\n /** The protocols that the agent supports for ingress communication of the containers. */\n container_protocol_versions: ProtocolVersionRecord[];\n /** The resource ID of the Azure Container App that hosts this agent. Not mutable across versions. */\n container_app_resource_id: string;\n /** The suffix to apply to the app subdomain when sending ingress to the agent. This can be a label (e.g., '---current'), a specific revision (e.g., '--0000001'), or empty to use the default endpoint for the container app. */\n ingress_subdomain_suffix: string;\n}\n\nexport function containerAppAgentDefinitionSerializer(item: ContainerAppAgentDefinition): any {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n container_protocol_versions: protocolVersionRecordArraySerializer(\n item[\"container_protocol_versions\"],\n ),\n container_app_resource_id: item[\"container_app_resource_id\"],\n ingress_subdomain_suffix: item[\"ingress_subdomain_suffix\"],\n };\n}\n\nexport function containerAppAgentDefinitionDeserializer(item: any): ContainerAppAgentDefinition {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n container_protocol_versions: protocolVersionRecordArrayDeserializer(\n item[\"container_protocol_versions\"],\n ),\n container_app_resource_id: item[\"container_app_resource_id\"],\n ingress_subdomain_suffix: item[\"ingress_subdomain_suffix\"],\n };\n}\n\n/**\n * Prompt-based agent definition.\n * Defines an agent that uses a language model with custom instructions and tools.\n */\nexport interface PromptAgentDefinition extends AgentDefinition {\n kind: \"prompt\";\n /** The model deployment to use for this agent. */\n model: string;\n /** A system (or developer) message inserted into the model's context. */\n instructions?: string;\n /**\n * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.\n * We generally recommend altering this or `top_p` but not both.\n */\n temperature?: number;\n /**\n * An alternative to sampling with temperature, called nucleus sampling,\n * where the model considers the results of the tokens with top_p probability\n * mass. So 0.1 means only the tokens comprising the top 10% probability mass\n * are considered.\n *\n * We generally recommend altering this or `temperature` but not both.\n */\n top_p?: number;\n reasoning?: Reasoning;\n /**\n * An array of tools the model may call while generating a response. You\n * can specify which tool to use by setting the `tool_choice` parameter.\n */\n tools?: ToolUnion[];\n /** Configuration options for a text response from the model. Can be plain text or structured JSON data. */\n text?: {\n format?: ResponseTextFormatConfigurationUnion;\n };\n /** Set of structured inputs that can participate in prompt template substitution or tool argument bindings. */\n structured_inputs?: Record<string, StructuredInputDefinition>;\n}\n\nexport function promptAgentDefinitionSerializer(item: PromptAgentDefinition): any {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n model: item[\"model\"],\n instructions: item[\"instructions\"],\n temperature: item[\"temperature\"],\n top_p: item[\"top_p\"],\n reasoning: !item[\"reasoning\"] ? item[\"reasoning\"] : reasoningSerializer(item[\"reasoning\"]),\n tools: !item[\"tools\"] ? item[\"tools\"] : toolUnionArraySerializer(item[\"tools\"]),\n text: !item[\"text\"] ? item[\"text\"] : _promptAgentDefinitionTextSerializer(item[\"text\"]),\n structured_inputs: !item[\"structured_inputs\"]\n ? item[\"structured_inputs\"]\n : structuredInputDefinitionRecordSerializer(item[\"structured_inputs\"]),\n };\n}\n\nexport function promptAgentDefinitionDeserializer(item: any): PromptAgentDefinition {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n model: item[\"model\"],\n instructions: item[\"instructions\"],\n temperature: item[\"temperature\"],\n top_p: item[\"top_p\"],\n reasoning: !item[\"reasoning\"] ? item[\"reasoning\"] : reasoningDeserializer(item[\"reasoning\"]),\n tools: !item[\"tools\"] ? item[\"tools\"] : toolUnionArrayDeserializer(item[\"tools\"]),\n text: !item[\"text\"] ? item[\"text\"] : _promptAgentDefinitionTextDeserializer(item[\"text\"]),\n structured_inputs: !item[\"structured_inputs\"]\n ? item[\"structured_inputs\"]\n : structuredInputDefinitionRecordDeserializer(item[\"structured_inputs\"]),\n };\n}\n\n/**\n * **o-series models only**\n *\n * Configuration options for [reasoning models](https://platform.openai.com/docs/guides/reasoning).\n */\nexport interface Reasoning {\n effort?: ReasoningEffort;\n /**\n * A summary of the reasoning performed by the model. This can be\n * useful for debugging and understanding the model's reasoning process.\n * One of `auto`, `concise`, or `detailed`.\n */\n summary?: \"auto\" | \"concise\" | \"detailed\";\n /** **Deprecated**: use `summary` instead. A summary of the reasoning performed by the model. This can be useful for debugging and understanding the model's reasoning process. One of `auto`, `concise`, or `detailed`. */\n generate_summary?: \"auto\" | \"concise\" | \"detailed\";\n}\n\nexport function reasoningSerializer(item: Reasoning): any {\n return {\n effort: item[\"effort\"],\n summary: item[\"summary\"],\n generate_summary: item[\"generate_summary\"],\n };\n}\n\nexport function reasoningDeserializer(item: any): Reasoning {\n return {\n effort: item[\"effort\"],\n summary: item[\"summary\"],\n generate_summary: item[\"generate_summary\"],\n };\n}\n\n/**\n * **o-series models only**\n *\n * Constrains effort on reasoning for\n * [reasoning models](https://platform.openai.com/docs/guides/reasoning).\n * Currently supported values are `low`, `medium`, and `high`. Reducing\n * reasoning effort can result in faster responses and fewer tokens used\n * on reasoning in a response.\n */\nexport type ReasoningEffort = \"low\" | \"medium\" | \"high\";\n\n/** model interface _PromptAgentDefinitionText */\nexport interface _PromptAgentDefinitionText {\n format?: ResponseTextFormatConfigurationUnion;\n}\n\nexport function _promptAgentDefinitionTextSerializer(item: _PromptAgentDefinitionText): any {\n return {\n format: !item[\"format\"]\n ? item[\"format\"]\n : responseTextFormatConfigurationUnionSerializer(item[\"format\"]),\n };\n}\n\nexport function _promptAgentDefinitionTextDeserializer(item: any): _PromptAgentDefinitionText {\n return {\n format: !item[\"format\"]\n ? item[\"format\"]\n : responseTextFormatConfigurationUnionDeserializer(item[\"format\"]),\n };\n}\n\n/** model interface ResponseTextFormatConfiguration */\nexport interface ResponseTextFormatConfiguration {\n type: ResponseTextFormatConfigurationType;\n}\n\nexport function responseTextFormatConfigurationSerializer(\n item: ResponseTextFormatConfiguration,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function responseTextFormatConfigurationDeserializer(\n item: any,\n): ResponseTextFormatConfiguration {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for ResponseTextFormatConfigurationUnion */\nexport type ResponseTextFormatConfigurationUnion =\n | ResponseTextFormatConfigurationText\n | ResponseTextFormatConfigurationJson\n | ResponseTextFormatConfigurationJsonSchema\n | ResponseTextFormatConfiguration;\n\nexport function responseTextFormatConfigurationUnionSerializer(\n item: ResponseTextFormatConfigurationUnion,\n): any {\n switch (item.type) {\n case \"text\":\n return responseTextFormatConfigurationTextSerializer(\n item as ResponseTextFormatConfigurationText,\n );\n\n case \"json_object\":\n return responseTextFormatConfigurationJsonObjectSerializer(\n item as ResponseTextFormatConfigurationJson,\n );\n\n case \"json_schema\":\n return responseTextFormatConfigurationJsonSchemaSerializer(\n item as ResponseTextFormatConfigurationJsonSchema,\n );\n\n default:\n return responseTextFormatConfigurationSerializer(item);\n }\n}\n\nexport function responseTextFormatConfigurationUnionDeserializer(\n item: any,\n): ResponseTextFormatConfigurationUnion {\n switch (item.type) {\n case \"text\":\n return responseTextFormatConfigurationTextDeserializer(\n item as ResponseTextFormatConfigurationText,\n );\n\n case \"json_object\":\n return responseTextFormatConfigurationJsonObjectDeserializer(\n item as ResponseTextFormatConfigurationJson,\n );\n\n case \"json_schema\":\n return responseTextFormatConfigurationJsonSchemaDeserializer(\n item as ResponseTextFormatConfigurationJsonSchema,\n );\n\n default:\n return responseTextFormatConfigurationDeserializer(item);\n }\n}\n\n/**\n * An object specifying the format that the model must output.\n *\n * Configuring `{ \"type\": \"json_schema\" }` enables Structured Outputs,\n * which ensures the model will match your supplied JSON schema. Learn more in the\n * [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).\n *\n * The default format is `{ \"type\": \"text\" }` with no additional options.\n *\n * **Not recommended for gpt-4o and newer models:**\n *\n * Setting to `{ \"type\": \"json_object\" }` enables the older JSON mode, which\n * ensures the message the model generates is valid JSON. Using `json_schema`\n * is preferred for models that support it.\n */\nexport type ResponseTextFormatConfigurationType = \"text\" | \"json_schema\" | \"json_object\";\n\n/** model interface ResponseTextFormatConfigurationText */\nexport interface ResponseTextFormatConfigurationText extends ResponseTextFormatConfiguration {\n type: \"text\";\n}\n\nexport function responseTextFormatConfigurationTextSerializer(\n item: ResponseTextFormatConfigurationText,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function responseTextFormatConfigurationTextDeserializer(\n item: any,\n): ResponseTextFormatConfigurationText {\n return {\n type: item[\"type\"],\n };\n}\n\n/** model interface ResponseTextFormatConfigurationJson */\nexport interface ResponseTextFormatConfigurationJson extends ResponseTextFormatConfiguration {\n type: \"json_object\";\n}\n\nexport function responseTextFormatConfigurationJsonObjectSerializer(\n item: ResponseTextFormatConfigurationJson,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function responseTextFormatConfigurationJsonObjectDeserializer(\n item: any,\n): ResponseTextFormatConfigurationJson {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * JSON Schema response format. Used to generate structured JSON responses.\n * Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs).\n */\nexport interface ResponseTextFormatConfigurationJsonSchema extends ResponseTextFormatConfiguration {\n /** The type of response format being defined. Always `json_schema`. */\n type: \"json_schema\";\n /**\n * A description of what the response format is for, used by the model to\n * determine how to respond in the format.\n */\n description?: string;\n /**\n * The name of the response format. Must be a-z, A-Z, 0-9, or contain\n * underscores and dashes, with a maximum length of 64.\n */\n name: string;\n schema: ResponseFormatJsonSchemaSchema;\n /**\n * Whether to enable strict schema adherence when generating the output.\n * If set to true, the model will always follow the exact schema defined\n * in the `schema` field. Only a subset of JSON Schema is supported when\n * `strict` is `true`. To learn more, read the [Structured Outputs\n * guide](https://platform.openai.com/docs/guides/structured-outputs).\n */\n strict?: boolean;\n}\n\n/**\n * The schema for the response format, described as a JSON Schema object.\n * Learn how to build JSON schemas [here](https://json-schema.org/).\n */\nexport interface ResponseFormatJsonSchemaSchema {\n /** Additional properties */\n additionalProperties?: Record<string, any>;\n}\n\nexport function responseFormatJsonSchemaSchemaSerializer(\n item: ResponseFormatJsonSchemaSchema,\n): any {\n return { ...serializeRecord(item.additionalProperties) };\n}\n\nexport function responseFormatJsonSchemaSchemaDeserializer(\n item: any,\n): ResponseFormatJsonSchemaSchema {\n return {\n additionalProperties: serializeRecord(item, []),\n };\n}\n\nexport function responseTextFormatConfigurationJsonSchemaSerializer(\n item: ResponseTextFormatConfigurationJsonSchema,\n): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n name: item[\"name\"],\n schema: responseFormatJsonSchemaSchemaDeserializer(item[\"schema\"]),\n strict: item[\"strict\"],\n };\n}\n\nexport function responseTextFormatConfigurationJsonSchemaDeserializer(\n item: any,\n): ResponseTextFormatConfigurationJsonSchema {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n name: item[\"name\"],\n schema: item[\"schema\"],\n strict: item[\"strict\"],\n };\n}\n\nexport function structuredInputDefinitionRecordSerializer(\n item: Record<string, StructuredInputDefinition>,\n): Record<string, any> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : structuredInputDefinitionSerializer(item[key]);\n });\n return result;\n}\n\nexport function structuredInputDefinitionRecordDeserializer(\n item: Record<string, any>,\n): Record<string, StructuredInputDefinition> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : structuredInputDefinitionDeserializer(item[key]);\n });\n return result;\n}\n\n/** An structured input that can participate in prompt template substitutions and tool argument binding. */\nexport interface StructuredInputDefinition {\n /** A human-readable description of the input. */\n description?: string;\n /** The default value for the input if no run-time value is provided. */\n default_value?: unknown;\n /** When provided, the input value is bound to the specified tool arguments. */\n tool_argument_bindings?: ToolArgumentBinding[];\n /** The JSON schema for the structured input (optional). */\n schema?: unknown;\n /** Whether the input property is required when the agent is invoked. */\n required?: boolean;\n}\n\nexport function structuredInputDefinitionSerializer(item: StructuredInputDefinition): any {\n return {\n description: item[\"description\"],\n default_value: item[\"default_value\"],\n tool_argument_bindings: !item[\"tool_argument_bindings\"]\n ? item[\"tool_argument_bindings\"]\n : toolArgumentBindingArraySerializer(item[\"tool_argument_bindings\"]),\n schema: item[\"schema\"],\n required: item[\"required\"],\n };\n}\n\nexport function structuredInputDefinitionDeserializer(item: any): StructuredInputDefinition {\n return {\n description: item[\"description\"],\n default_value: item[\"default_value\"],\n tool_argument_bindings: !item[\"tool_argument_bindings\"]\n ? item[\"tool_argument_bindings\"]\n : toolArgumentBindingArrayDeserializer(item[\"tool_argument_bindings\"]),\n schema: item[\"schema\"],\n required: item[\"required\"],\n };\n}\n\nexport function toolArgumentBindingArraySerializer(result: Array<ToolArgumentBinding>): any[] {\n return result.map((item) => {\n return toolArgumentBindingSerializer(item);\n });\n}\n\nexport function toolArgumentBindingArrayDeserializer(result: Array<ToolArgumentBinding>): any[] {\n return result.map((item) => {\n return toolArgumentBindingDeserializer(item);\n });\n}\n\n/** model interface ToolArgumentBinding */\nexport interface ToolArgumentBinding {\n /** The name of the tool to participate in the argument binding. If not provided, then all tools with matching arguments will participate in binding. */\n tool_name?: string;\n /** The name of the argument within the tool. */\n argument_name: string;\n}\n\nexport function toolArgumentBindingSerializer(item: ToolArgumentBinding): any {\n return { tool_name: item[\"tool_name\"], argument_name: item[\"argument_name\"] };\n}\n\nexport function toolArgumentBindingDeserializer(item: any): ToolArgumentBinding {\n return {\n tool_name: item[\"tool_name\"],\n argument_name: item[\"argument_name\"],\n };\n}\n\n/** Error response for API failures. */\nexport interface ApiErrorResponse {\n error: ApiError;\n}\n\nexport function apiErrorResponseDeserializer(item: any): ApiErrorResponse {\n return {\n error: apiErrorDeserializer(item[\"error\"]),\n };\n}\n\n/** model interface ApiError */\nexport interface ApiError {\n /** The error code. */\n code: string;\n /** A human-readable description of the error. */\n message: string;\n /** The target of the error, if applicable. */\n target?: string;\n /** Additional details about the error. */\n details: ApiError[];\n /** The inner error, if any. */\n innererror?: ApiInnerError;\n}\n\nexport function apiErrorDeserializer(item: any): ApiError {\n return {\n code: item[\"code\"],\n message: item[\"message\"],\n target: item[\"target\"],\n details: apiErrorArrayDeserializer(item[\"details\"]),\n innererror: !item[\"innererror\"]\n ? item[\"innererror\"]\n : apiInnerErrorDeserializer(item[\"innererror\"]),\n };\n}\n\nexport function apiErrorArrayDeserializer(result: Array<ApiError>): any[] {\n return result.map((item) => {\n return apiErrorDeserializer(item);\n });\n}\n\n/** model interface ApiInnerError */\nexport interface ApiInnerError {\n /** The error code. */\n code: string;\n /** The inner error, if any. */\n innererror?: ApiInnerError;\n}\n\nexport function apiInnerErrorDeserializer(item: any): ApiInnerError {\n return {\n code: item[\"code\"],\n innererror: !item[\"innererror\"]\n ? item[\"innererror\"]\n : apiInnerErrorDeserializer(item[\"innererror\"]),\n };\n}\n\n/** A deleted agent Object */\nexport interface DeleteAgentResponse {\n /** The object type. Always 'agent.deleted'. */\n object: \"agent.deleted\";\n /** The name of the agent. */\n name: string;\n /** Whether the agent was successfully deleted. */\n deleted: boolean;\n}\n\nexport function deleteAgentResponseDeserializer(item: any): DeleteAgentResponse {\n return {\n object: item[\"object\"],\n name: item[\"name\"],\n deleted: item[\"deleted\"],\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultAgentObject {\n /** The requested list of items. */\n data: Agent[];\n /** The first ID represented in this list. */\n first_id?: string;\n /** The last ID represented in this list. */\n last_id?: string;\n /** A value indicating whether there are additional values available not captured in this list. */\n has_more: boolean;\n}\n\nexport function _agentsPagedResultAgentObjectDeserializer(\n item: any,\n): _AgentsPagedResultAgentObject {\n return {\n data: agentObjectArrayDeserializer(item[\"data\"]),\n first_id: item[\"first_id\"],\n last_id: item[\"last_id\"],\n has_more: item[\"has_more\"],\n };\n}\n\nexport function agentObjectArrayDeserializer(result: Array<Agent>): any[] {\n return result.map((item) => {\n return agentObjectDeserializer(item);\n });\n}\n\n/** A deleted agent version Object */\nexport interface DeleteAgentVersionResponse {\n /** The object type. Always 'agent.deleted'. */\n object: \"agent.version.deleted\";\n /** The name of the agent. */\n name: string;\n /** The version identifier of the agent. */\n version: string;\n /** Whether the agent was successfully deleted. */\n deleted: boolean;\n}\n\nexport function deleteAgentVersionResponseDeserializer(item: any): DeleteAgentVersionResponse {\n return {\n object: item[\"object\"],\n name: item[\"name\"],\n version: item[\"version\"],\n deleted: item[\"deleted\"],\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultAgentVersionObject {\n /** The requested list of items. */\n data: AgentVersion[];\n /** The first ID represented in this list. */\n first_id?: string;\n /** The last ID represented in this list. */\n last_id?: string;\n /** A value indicating whether there are additional values available not captured in this list. */\n has_more: boolean;\n}\n\nexport function _agentsPagedResultAgentVersionObjectDeserializer(\n item: any,\n): _AgentsPagedResultAgentVersionObject {\n return {\n data: agentVersionObjectArrayDeserializer(item[\"data\"]),\n first_id: item[\"first_id\"],\n last_id: item[\"last_id\"],\n has_more: item[\"has_more\"],\n };\n}\n\nexport function agentVersionObjectArrayDeserializer(result: Array<AgentVersion>): any[] {\n return result.map((item) => {\n return agentVersionObjectDeserializer(item);\n });\n}\n\n/** Base definition for memory store configurations. */\nexport interface MemoryStoreDefinition {\n /** The kind of the memory store. */\n /** The discriminator possible values: default */\n kind: MemoryStoreKind;\n}\n\nexport function memoryStoreDefinitionSerializer(item: MemoryStoreDefinition): any {\n return { kind: item[\"kind\"] };\n}\n\nexport function memoryStoreDefinitionDeserializer(item: any): MemoryStoreDefinition {\n return {\n kind: item[\"kind\"],\n };\n}\n\n/** Alias for MemoryStoreDefinitionUnion */\nexport type MemoryStoreDefinitionUnion = MemoryStoreDefaultDefinition | MemoryStoreDefinition;\n\nexport function memoryStoreDefinitionUnionSerializer(item: MemoryStoreDefinitionUnion): any {\n switch (item.kind) {\n case \"default\":\n return memoryStoreDefaultDefinitionSerializer(item as MemoryStoreDefaultDefinition);\n\n default:\n return memoryStoreDefinitionSerializer(item);\n }\n}\n\nexport function memoryStoreDefinitionUnionDeserializer(item: any): MemoryStoreDefinitionUnion {\n switch (item.kind) {\n case \"default\":\n return memoryStoreDefaultDefinitionDeserializer(item as MemoryStoreDefaultDefinition);\n\n default:\n return memoryStoreDefinitionDeserializer(item);\n }\n}\n\n/** The type of memory store implementation to use. */\nexport type MemoryStoreKind = \"default\";\n\n/** Default memory store implementation. */\nexport interface MemoryStoreDefaultDefinition extends MemoryStoreDefinition {\n /** The kind of the memory store. */\n kind: \"default\";\n /** The name or identifier of the chat completion model deployment used for memory processing. */\n chat_model: string;\n /** The name or identifier of the embedding model deployment used for memory processing. */\n embedding_model: string;\n /** Default memory store options. */\n options?: MemoryStoreDefaultOptions;\n}\n\nexport function memoryStoreDefaultDefinitionSerializer(item: MemoryStoreDefaultDefinition): any {\n return {\n kind: item[\"kind\"],\n chat_model: item[\"chat_model\"],\n embedding_model: item[\"embedding_model\"],\n options: !item[\"options\"]\n ? item[\"options\"]\n : memoryStoreDefaultOptionsSerializer(item[\"options\"]),\n };\n}\n\nexport function memoryStoreDefaultDefinitionDeserializer(item: any): MemoryStoreDefaultDefinition {\n return {\n kind: item[\"kind\"],\n chat_model: item[\"chat_model\"],\n embedding_model: item[\"embedding_model\"],\n options: !item[\"options\"]\n ? item[\"options\"]\n : memoryStoreDefaultOptionsDeserializer(item[\"options\"]),\n };\n}\n\n/** Default memory store configurations. */\nexport interface MemoryStoreDefaultOptions {\n /** Whether to enable user profile extraction and storage. Default is true. */\n user_profile_enabled: boolean;\n /** Specific categories or types of user profile information to extract and store. */\n user_profile_details?: string;\n /** Whether to enable chat summary extraction and storage. Default is true. */\n chat_summary_enabled: boolean;\n}\n\nexport function memoryStoreDefaultOptionsSerializer(item: MemoryStoreDefaultOptions): any {\n return {\n user_profile_enabled: item[\"user_profile_enabled\"],\n user_profile_details: item[\"user_profile_details\"],\n chat_summary_enabled: item[\"chat_summary_enabled\"],\n };\n}\n\nexport function memoryStoreDefaultOptionsDeserializer(item: any): MemoryStoreDefaultOptions {\n return {\n user_profile_enabled: item[\"user_profile_enabled\"],\n user_profile_details: item[\"user_profile_details\"],\n chat_summary_enabled: item[\"chat_summary_enabled\"],\n };\n}\n\n/** A memory store that can store and retrieve user memories. */\nexport interface MemoryStore {\n /** The object type, which is always 'memory_store'. */\n object: \"memory_store\";\n /** The unique identifier of the memory store. */\n id: string;\n /** The Unix timestamp (seconds) when the memory store was created. */\n created_at: Date;\n /** The Unix timestamp (seconds) when the memory store was last updated. */\n updated_at: Date;\n /** The name of the memory store. */\n name: string;\n /** A human-readable description of the memory store. */\n description?: string;\n /** Arbitrary key-value metadata to associate with the memory store. */\n metadata?: Record<string, string>;\n /** The definition of the memory store. */\n definition: MemoryStoreDefinitionUnion;\n}\n\nexport function memoryStoreObjectDeserializer(item: any): MemoryStore {\n return {\n object: item[\"object\"],\n id: item[\"id\"],\n created_at: new Date(item[\"created_at\"] * 1000),\n updated_at: new Date(item[\"updated_at\"] * 1000),\n name: item[\"name\"],\n description: item[\"description\"],\n metadata: item[\"metadata\"],\n definition: memoryStoreDefinitionUnionDeserializer(item[\"definition\"]),\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultMemoryStore {\n /** The requested list of items. */\n data: MemoryStore[];\n /** The first ID represented in this list. */\n first_id?: string;\n /** The last ID represented in this list. */\n last_id?: string;\n /** A value indicating whether there are additional values available not captured in this list. */\n has_more: boolean;\n}\n\nexport function _agentsPagedResultMemoryStoreObjectDeserializer(\n item: any,\n): _AgentsPagedResultMemoryStore {\n return {\n data: memoryStoreObjectArrayDeserializer(item[\"data\"]),\n first_id: item[\"first_id\"],\n last_id: item[\"last_id\"],\n has_more: item[\"has_more\"],\n };\n}\n\nexport function memoryStoreObjectArrayDeserializer(result: Array<MemoryStore>): any[] {\n return result.map((item) => {\n return memoryStoreObjectDeserializer(item);\n });\n}\n\n/** model interface DeleteMemoryStoreResponse */\nexport interface DeleteMemoryStoreResponse {\n /** The object type. Always 'memory_store.deleted'. */\n object: \"memory_store.deleted\";\n /** The name of the memory store. */\n name: string;\n /** Whether the memory store was successfully deleted. */\n deleted: boolean;\n}\n\nexport function deleteMemoryStoreResponseDeserializer(item: any): DeleteMemoryStoreResponse {\n return {\n object: item[\"object\"],\n name: item[\"name\"],\n deleted: item[\"deleted\"],\n };\n}\n\n/** Content item used to generate a response. */\nexport interface ItemParam {\n type: ItemType;\n}\n\nexport function itemParamSerializer(item: ItemParam): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for ItemParamUnion */\nexport type ItemParamUnion =\n | ResponsesMessageItemParamUnion\n | FunctionToolCallOutputItemParam\n | FileSearchToolCallItemParam\n | ComputerToolCallItemParam\n | ComputerToolCallOutputItemParam\n | WebSearchToolCallItemParam\n | FunctionToolCallItemParam\n | ReasoningItemParam\n | ItemReferenceItemParam\n | ImageGenToolCallItemParam\n | CodeInterpreterToolCallItemParam\n | LocalShellToolCallItemParam\n | LocalShellToolCallOutputItemParam\n | MCPListToolsItemParam\n | MCPApprovalRequestItemParam\n | MCPApprovalResponseItemParam\n | MCPCallItemParam\n | MemorySearchToolCallItemParam\n | ItemParam;\n\nexport function itemParamUnionSerializer(item: ItemParamUnion): any {\n switch (item.type) {\n case \"message\":\n return responsesMessageItemParamUnionSerializer(item as ResponsesMessageItemParamUnion);\n\n case \"function_call_output\":\n return functionToolCallOutputItemParamSerializer(item as FunctionToolCallOutputItemParam);\n\n case \"file_search_call\":\n return fileSearchToolCallItemParamSerializer(item as FileSearchToolCallItemParam);\n\n case \"computer_call\":\n return computerToolCallItemParamSerializer(item as ComputerToolCallItemParam);\n\n case \"computer_call_output\":\n return computerToolCallOutputItemParamSerializer(item as ComputerToolCallOutputItemParam);\n\n case \"web_search_call\":\n return webSearchToolCallItemParamSerializer(item as WebSearchToolCallItemParam);\n\n case \"function_call\":\n return functionToolCallItemParamSerializer(item as FunctionToolCallItemParam);\n\n case \"reasoning\":\n return reasoningItemParamSerializer(item as ReasoningItemParam);\n\n case \"item_reference\":\n return itemReferenceItemParamSerializer(item as ItemReferenceItemParam);\n\n case \"image_generation_call\":\n return imageGenToolCallItemParamSerializer(item as ImageGenToolCallItemParam);\n\n case \"code_interpreter_call\":\n return codeInterpreterToolCallItemParamSerializer(item as CodeInterpreterToolCallItemParam);\n\n case \"local_shell_call\":\n return localShellToolCallItemParamSerializer(item as LocalShellToolCallItemParam);\n\n case \"local_shell_call_output\":\n return localShellToolCallOutputItemParamSerializer(item as LocalShellToolCallOutputItemParam);\n\n case \"mcp_list_tools\":\n return mcpListToolsItemParamSerializer(item as MCPListToolsItemParam);\n\n case \"mcp_approval_request\":\n return mcpApprovalRequestItemParamSerializer(item as MCPApprovalRequestItemParam);\n\n case \"mcp_approval_response\":\n return mcpApprovalResponseItemParamSerializer(item as MCPApprovalResponseItemParam);\n\n case \"mcp_call\":\n return mcpCallItemParamSerializer(item as MCPCallItemParam);\n\n case \"memory_search_call\":\n return memorySearchToolCallItemParamSerializer(item as MemorySearchToolCallItemParam);\n\n default:\n return itemParamSerializer(item);\n }\n}\n\n/** Type of ItemType */\nexport type ItemType =\n | \"message\"\n | \"file_search_call\"\n | \"function_call\"\n | \"function_call_output\"\n | \"computer_call\"\n | \"computer_call_output\"\n | \"web_search_call\"\n | \"reasoning\"\n | \"item_reference\"\n | \"image_generation_call\"\n | \"code_interpreter_call\"\n | \"local_shell_call\"\n | \"local_shell_call_output\"\n | \"mcp_list_tools\"\n | \"mcp_approval_request\"\n | \"mcp_approval_response\"\n | \"mcp_call\"\n | \"structured_outputs\"\n | \"workflow_action\"\n | \"memory_search_call\"\n | \"oauth_consent_request\";\n\n/** A response message item, representing a role and content, as provided as client request parameters. */\nexport interface ResponsesMessageItemParam extends ItemParam {\n /** The type of the responses item, which is always 'message'. */\n type: \"message\";\n /** The role associated with the message. */\n /** The discriminator possible values: user, system, developer, assistant */\n role: ResponsesMessageRole;\n}\n\nexport function responsesMessageItemParamSerializer(item: ResponsesMessageItemParam): any {\n return { type: item[\"type\"], role: item[\"role\"] };\n}\n\n/** Alias for ResponsesMessageItemParamUnion */\nexport type ResponsesMessageItemParamUnion =\n | ResponsesUserMessageItemParam\n | ResponsesSystemMessageItemParam\n | ResponsesDeveloperMessageItemParam\n | ResponsesAssistantMessageItemParam\n | ResponsesMessageItemParam;\n\nexport function responsesMessageItemParamUnionSerializer(\n item: ResponsesMessageItemParamUnion,\n): any {\n switch (item.role) {\n case \"user\":\n return responsesUserMessageItemParamSerializer(item as ResponsesUserMessageItemParam);\n\n case \"system\":\n return responsesSystemMessageItemParamSerializer(item as ResponsesSystemMessageItemParam);\n\n case \"developer\":\n return responsesDeveloperMessageItemParamSerializer(\n item as ResponsesDeveloperMessageItemParam,\n );\n\n case \"assistant\":\n return responsesAssistantMessageItemParamSerializer(\n item as ResponsesAssistantMessageItemParam,\n );\n\n default:\n return responsesMessageItemParamSerializer(item);\n }\n}\n\n/** The collection of valid roles for responses message items. */\nexport type ResponsesMessageRole = \"system\" | \"developer\" | \"user\" | \"assistant\";\n\n/** A message parameter item with the `user` role. */\nexport interface ResponsesUserMessageItemParam extends ResponsesMessageItemParam {\n /** The role of the message, which is always `user`. */\n role: \"user\";\n /** The content associated with the message. */\n content: string | ItemContentUnion[];\n}\n\nexport function responsesUserMessageItemParamSerializer(item: ResponsesUserMessageItemParam): any {\n return {\n type: item[\"type\"],\n role: item[\"role\"],\n content: _responsesUserMessageItemParamContentSerializer(item[\"content\"]),\n };\n}\n\n/** Alias for _ResponsesUserMessageItemParamContent */\nexport type _ResponsesUserMessageItemParamContent = string | ItemContentUnion[];\n\nexport function _responsesUserMessageItemParamContentSerializer(\n item: _ResponsesUserMessageItemParamContent,\n): any {\n return item;\n}\n\nexport function itemContentUnionArraySerializer(result: Array<ItemContentUnion>): any[] {\n return result.map((item) => {\n return itemContentUnionSerializer(item);\n });\n}\n\n/** model interface ItemContent */\nexport interface ItemContent {\n type: ItemContentType;\n}\n\nexport function itemContentSerializer(item: ItemContent): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for ItemContentUnion */\nexport type ItemContentUnion =\n | ItemContentInputAudio\n | ItemContentOutputAudio\n | ItemContentRefusal\n | ItemContentInputText\n | ItemContentInputImage\n | ItemContentInputFile\n | ItemContentOutputText\n | ItemContent;\n\nexport function itemContentUnionSerializer(item: ItemContentUnion): any {\n switch (item.type) {\n case \"input_audio\":\n return itemContentInputAudioSerializer(item as ItemContentInputAudio);\n\n case \"output_audio\":\n return itemContentOutputAudioSerializer(item as ItemContentOutputAudio);\n\n case \"refusal\":\n return itemContentRefusalSerializer(item as ItemContentRefusal);\n\n case \"input_text\":\n return itemContentInputTextSerializer(item as ItemContentInputText);\n\n case \"input_image\":\n return itemContentInputImageSerializer(item as ItemContentInputImage);\n\n case \"input_file\":\n return itemContentInputFileSerializer(item as ItemContentInputFile);\n\n case \"output_text\":\n return itemContentOutputTextSerializer(item as ItemContentOutputText);\n\n default:\n return itemContentSerializer(item);\n }\n}\n\n/** Multi-modal input and output contents. */\nexport type ItemContentType =\n | \"input_text\"\n | \"input_audio\"\n | \"input_image\"\n | \"input_file\"\n | \"output_text\"\n | \"output_audio\"\n | \"refusal\";\n\n/** An audio input to the model. */\nexport interface ItemContentInputAudio extends ItemContent {\n /** The type of the input item. Always `input_audio`. */\n type: \"input_audio\";\n /** Base64-encoded audio data. */\n data: string;\n /**\n * The format of the audio data. Currently supported formats are `mp3` and\n * `wav`.\n */\n format: \"mp3\" | \"wav\";\n}\n\nexport function itemContentInputAudioSerializer(item: ItemContentInputAudio): any {\n return { type: item[\"type\"], data: item[\"data\"], format: item[\"format\"] };\n}\n\n/** An audio output from the model. */\nexport interface ItemContentOutputAudio extends ItemContent {\n /** The type of the output audio. Always `output_audio`. */\n type: \"output_audio\";\n /** Base64-encoded audio data from the model. */\n data: string;\n /** The transcript of the audio data from the model. */\n transcript: string;\n}\n\nexport function itemContentOutputAudioSerializer(item: ItemContentOutputAudio): any {\n return {\n type: item[\"type\"],\n data: item[\"data\"],\n transcript: item[\"transcript\"],\n };\n}\n\n/** A refusal from the model. */\nexport interface ItemContentRefusal extends ItemContent {\n /** The type of the refusal. Always `refusal`. */\n type: \"refusal\";\n /** The refusal explanationfrom the model. */\n refusal: string;\n}\n\nexport function itemContentRefusalSerializer(item: ItemContentRefusal): any {\n return { type: item[\"type\"], refusal: item[\"refusal\"] };\n}\n\n/** A text input to the model. */\nexport interface ItemContentInputText extends ItemContent {\n /** The type of the input item. Always `input_text`. */\n type: \"input_text\";\n /** The text input to the model. */\n text: string;\n}\n\nexport function itemContentInputTextSerializer(item: ItemContentInputText): any {\n return { type: item[\"type\"], text: item[\"text\"] };\n}\n\n/**\n * Image input content for messages.\n * Learn about [image inputs](https://platform.openai.com/docs/guides/vision).\n */\nexport interface ItemContentInputImage extends ItemContent {\n /** The type of the input item. Always `input_image`. */\n type: \"input_image\";\n /** The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL. */\n image_url?: string;\n /** The ID of the file to be sent to the model. */\n file_id?: string;\n /** The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`. Defaults to `auto`. */\n detail?: \"low\" | \"high\" | \"auto\";\n}\n\nexport function itemContentInputImageSerializer(item: ItemContentInputImage): any {\n return {\n type: item[\"type\"],\n image_url: item[\"image_url\"],\n file_id: item[\"file_id\"],\n detail: item[\"detail\"],\n };\n}\n\n/**\n * File input content for messages.\n * Can specify a file by ID or provide inline file data.\n */\nexport interface ItemContentInputFile extends ItemContent {\n /** The type of the input item. Always `input_file`. */\n type: \"input_file\";\n /** The ID of the file to be sent to the model. */\n file_id?: string;\n /** The name of the file to be sent to the model. */\n filename?: string;\n /** The content of the file to be sent to the model. */\n file_data?: string;\n}\n\nexport function itemContentInputFileSerializer(item: ItemContentInputFile): any {\n return {\n type: item[\"type\"],\n file_id: item[\"file_id\"],\n filename: item[\"filename\"],\n file_data: item[\"file_data\"],\n };\n}\n\n/** A text output from the model. */\nexport interface ItemContentOutputText extends ItemContent {\n /** The type of the output text. Always `output_text`. */\n type: \"output_text\";\n /** The text output from the model. */\n text: string;\n /** The annotations of the text output. */\n annotations: AnnotationUnion[];\n logprobs?: LogProb[];\n}\n\nexport function itemContentOutputTextSerializer(item: ItemContentOutputText): any {\n return {\n type: item[\"type\"],\n text: item[\"text\"],\n annotations: annotationUnionArraySerializer(item[\"annotations\"]),\n logprobs: !item[\"logprobs\"] ? item[\"logprobs\"] : logProbArraySerializer(item[\"logprobs\"]),\n };\n}\n\nexport function annotationUnionArraySerializer(result: Array<AnnotationUnion>): any[] {\n return result.map((item) => {\n return annotationUnionSerializer(item);\n });\n}\n\n/** model interface Annotation */\nexport interface Annotation {\n type: AnnotationType;\n}\n\nexport function annotationSerializer(item: Annotation): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for AnnotationUnion */\nexport type AnnotationUnion =\n | AnnotationFileCitation\n | AnnotationUrlCitation\n | AnnotationFilePath\n | Annotation;\n\nexport function annotationUnionSerializer(item: AnnotationUnion): any {\n switch (item.type) {\n case \"file_citation\":\n return annotationFileCitationSerializer(item as AnnotationFileCitation);\n\n case \"url_citation\":\n return annotationUrlCitationSerializer(item as AnnotationUrlCitation);\n\n case \"file_path\":\n return annotationFilePathSerializer(item as AnnotationFilePath);\n\n default:\n return annotationSerializer(item);\n }\n}\n\n/** Type of AnnotationType */\nexport type AnnotationType =\n | \"file_citation\"\n | \"url_citation\"\n | \"file_path\"\n | \"container_file_citation\";\n\n/** A citation to a file. */\nexport interface AnnotationFileCitation extends Annotation {\n /** The type of the file citation. Always `file_citation`. */\n type: \"file_citation\";\n /** The ID of the file. */\n file_id: string;\n /** The index of the file in the list of files. */\n index: number;\n /** The filename of the file cited. */\n filename: string;\n}\n\nexport function annotationFileCitationSerializer(item: AnnotationFileCitation): any {\n return {\n type: item[\"type\"],\n file_id: item[\"file_id\"],\n index: item[\"index\"],\n filename: item[\"filename\"],\n };\n}\n\n/** A citation for a web resource used to generate a model response. */\nexport interface AnnotationUrlCitation extends Annotation {\n /** The type of the URL citation. Always `url_citation`. */\n type: \"url_citation\";\n /** The URL of the web resource. */\n url: string;\n /** The index of the first character of the URL citation in the message. */\n start_index: number;\n /** The index of the last character of the URL citation in the message. */\n end_index: number;\n /** The title of the web resource. */\n title: string;\n}\n\nexport function annotationUrlCitationSerializer(item: AnnotationUrlCitation): any {\n return {\n type: item[\"type\"],\n url: item[\"url\"],\n start_index: item[\"start_index\"],\n end_index: item[\"end_index\"],\n title: item[\"title\"],\n };\n}\n\n/** A path to a file. */\nexport interface AnnotationFilePath extends Annotation {\n /** The type of the file path. Always `file_path`. */\n type: \"file_path\";\n /** The ID of the file. */\n file_id: string;\n /** The index of the file in the list of files. */\n index: number;\n}\n\nexport function annotationFilePathSerializer(item: AnnotationFilePath): any {\n return { type: item[\"type\"], file_id: item[\"file_id\"], index: item[\"index\"] };\n}\n\nexport function logProbArraySerializer(result: Array<LogProb>): any[] {\n return result.map((item) => {\n return logProbSerializer(item);\n });\n}\n\n/** The log probability of a token. */\nexport interface LogProb {\n token: string;\n logprob: number;\n bytes: number[];\n top_logprobs: TopLogProb[];\n}\n\nexport function logProbSerializer(item: LogProb): any {\n return {\n token: item[\"token\"],\n logprob: item[\"logprob\"],\n bytes: item[\"bytes\"].map((p: any) => {\n return p;\n }),\n top_logprobs: topLogProbArraySerializer(item[\"top_logprobs\"]),\n };\n}\n\nexport function topLogProbArraySerializer(result: Array<TopLogProb>): any[] {\n return result.map((item) => {\n return topLogProbSerializer(item);\n });\n}\n\n/** The top log probability of a token. */\nexport interface TopLogProb {\n token: string;\n logprob: number;\n bytes: number[];\n}\n\nexport function topLogProbSerializer(item: TopLogProb): any {\n return {\n token: item[\"token\"],\n logprob: item[\"logprob\"],\n bytes: item[\"bytes\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** A message parameter item with the `system` role. */\nexport interface ResponsesSystemMessageItemParam extends ResponsesMessageItemParam {\n /** The role of the message, which is always `system`. */\n role: \"system\";\n /** The content associated with the message. */\n content: string | ItemContentUnion[];\n}\n\nexport function responsesSystemMessageItemParamSerializer(\n item: ResponsesSystemMessageItemParam,\n): any {\n return {\n type: item[\"type\"],\n role: item[\"role\"],\n content: _responsesSystemMessageItemParamContentSerializer(item[\"content\"]),\n };\n}\n\n/** Alias for _ResponsesSystemMessageItemParamContent */\nexport type _ResponsesSystemMessageItemParamContent = string | ItemContentUnion[];\n\nexport function _responsesSystemMessageItemParamContentSerializer(\n item: _ResponsesSystemMessageItemParamContent,\n): any {\n return item;\n}\n\n/** A message parameter item with the `developer` role. */\nexport interface ResponsesDeveloperMessageItemParam extends ResponsesMessageItemParam {\n /** The role of the message, which is always `developer`. */\n role: \"developer\";\n /** The content associated with the message. */\n content: string | ItemContentUnion[];\n}\n\nexport function responsesDeveloperMessageItemParamSerializer(\n item: ResponsesDeveloperMessageItemParam,\n): any {\n return {\n type: item[\"type\"],\n role: item[\"role\"],\n content: _responsesDeveloperMessageItemParamContentSerializer(item[\"content\"]),\n };\n}\n\n/** Alias for _ResponsesDeveloperMessageItemParamContent */\nexport type _ResponsesDeveloperMessageItemParamContent = string | ItemContentUnion[];\n\nexport function _responsesDeveloperMessageItemParamContentSerializer(\n item: _ResponsesDeveloperMessageItemParamContent,\n): any {\n return item;\n}\n\n/** A message parameter item with the `assistant` role. */\nexport interface ResponsesAssistantMessageItemParam extends ResponsesMessageItemParam {\n /** The role of the message, which is always `assistant`. */\n role: \"assistant\";\n /** The content associated with the message. */\n content: string | ItemContentUnion[];\n}\n\nexport function responsesAssistantMessageItemParamSerializer(\n item: ResponsesAssistantMessageItemParam,\n): any {\n return {\n type: item[\"type\"],\n role: item[\"role\"],\n content: _responsesAssistantMessageItemParamContentSerializer(item[\"content\"]),\n };\n}\n\n/** Alias for _ResponsesAssistantMessageItemParamContent */\nexport type _ResponsesAssistantMessageItemParamContent = string | ItemContentUnion[];\n\nexport function _responsesAssistantMessageItemParamContentSerializer(\n item: _ResponsesAssistantMessageItemParamContent,\n): any {\n return item;\n}\n\n/**\n * The output of a function tool call.\n *\n */\nexport interface FunctionToolCallOutputItemParam extends ItemParam {\n type: \"function_call_output\";\n /** The unique ID of the function tool call generated by the model. */\n call_id: string;\n /** A JSON string of the output of the function tool call. */\n output: string;\n}\n\nexport function functionToolCallOutputItemParamSerializer(\n item: FunctionToolCallOutputItemParam,\n): any {\n return {\n type: item[\"type\"],\n call_id: item[\"call_id\"],\n output: item[\"output\"],\n };\n}\n\n/**\n * File search tool call item.\n * Contains queries and results from a file search operation.\n * See the [file search guide](https://platform.openai.com/docs/guides/tools-file-search) for more information.\n */\nexport interface FileSearchToolCallItemParam extends ItemParam {\n type: \"file_search_call\";\n /** The queries used to search for files. */\n queries: string[];\n /** The results of the file search tool call. */\n results?: {\n file_id?: string;\n text?: string;\n filename?: string;\n attributes?: VectorStoreFileAttributes;\n score?: number;\n }[];\n}\n\nexport function fileSearchToolCallItemParamSerializer(item: FileSearchToolCallItemParam): any {\n return {\n type: item[\"type\"],\n queries: item[\"queries\"].map((p: any) => {\n return p;\n }),\n results: !item[\"results\"]\n ? item[\"results\"]\n : _fileSearchToolCallItemParamResultArraySerializer(item[\"results\"]),\n };\n}\n\nexport function _fileSearchToolCallItemParamResultArraySerializer(\n result: Array<_FileSearchToolCallItemParamResult>,\n): any[] {\n return result.map((item) => {\n return _fileSearchToolCallItemParamResultSerializer(item);\n });\n}\n\n/** model interface _FileSearchToolCallItemParamResult */\nexport interface _FileSearchToolCallItemParamResult {\n /** The unique ID of the file. */\n file_id?: string;\n /** The text that was retrieved from the file. */\n text?: string;\n /** The name of the file. */\n filename?: string;\n attributes?: VectorStoreFileAttributes;\n /** The relevance score of the file - a value between 0 and 1. */\n score?: number;\n}\n\nexport function _fileSearchToolCallItemParamResultSerializer(\n item: _FileSearchToolCallItemParamResult,\n): any {\n return {\n file_id: item[\"file_id\"],\n text: item[\"text\"],\n filename: item[\"filename\"],\n attributes: !item[\"attributes\"]\n ? item[\"attributes\"]\n : vectorStoreFileAttributesSerializer(item[\"attributes\"]),\n score: item[\"score\"],\n };\n}\n\n/**\n * Set of 16 key-value pairs that can be attached to an object. This can be\n * useful for storing additional information about the object in a structured\n * format, and querying for objects via API or the dashboard. Keys are strings\n * with a maximum length of 64 characters. Values are strings with a maximum\n * length of 512 characters, booleans, or numbers.\n */\nexport interface VectorStoreFileAttributes {\n /** Additional properties */\n additionalProperties?: Record<string, string | boolean | number>;\n}\n\nexport function vectorStoreFileAttributesSerializer(item: VectorStoreFileAttributes): any {\n return {\n ...serializeRecord(\n item.additionalProperties,\n undefined,\n _vectorStoreFileAttributesAdditionalPropertySerializer,\n ),\n };\n}\n\n/** Alias for _VectorStoreFileAttributesAdditionalProperty */\nexport type _VectorStoreFileAttributesAdditionalProperty = string | boolean | number | number;\n\nexport function _vectorStoreFileAttributesAdditionalPropertySerializer(\n item: _VectorStoreFileAttributesAdditionalProperty,\n): any {\n return item;\n}\n\n/**\n * A tool call to a computer use tool. See the\n * [computer use guide](https://platform.openai.com/docs/guides/tools-computer-use) for more information.\n *\n */\nexport interface ComputerToolCallItemParam extends ItemParam {\n type: \"computer_call\";\n /** An identifier used when responding to the tool call with output. */\n call_id: string;\n action: ComputerActionUnion;\n /** The pending safety checks for the computer call. */\n pending_safety_checks: ComputerToolCallSafetyCheck[];\n}\n\nexport function computerToolCallItemParamSerializer(item: ComputerToolCallItemParam): any {\n return {\n type: item[\"type\"],\n call_id: item[\"call_id\"],\n action: computerActionUnionSerializer(item[\"action\"]),\n pending_safety_checks: computerToolCallSafetyCheckArraySerializer(\n item[\"pending_safety_checks\"],\n ),\n };\n}\n\n/** model interface ComputerAction */\nexport interface ComputerAction {\n type: ComputerActionType;\n}\n\nexport function computerActionSerializer(item: ComputerAction): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for ComputerActionUnion */\nexport type ComputerActionUnion =\n | ComputerActionClick\n | ComputerActionDoubleClick\n | ComputerActionDrag\n | ComputerActionMove\n | ComputerActionScreenshot\n | ComputerActionScroll\n | ComputerActionTypeKeys\n | ComputerActionWait\n | ComputerActionKeyPress\n | ComputerAction;\n\nexport function computerActionUnionSerializer(item: ComputerActionUnion): any {\n switch (item.type) {\n case \"click\":\n return computerActionClickSerializer(item as ComputerActionClick);\n\n case \"double_click\":\n return computerActionDoubleClickSerializer(item as ComputerActionDoubleClick);\n\n case \"drag\":\n return computerActionDragSerializer(item as ComputerActionDrag);\n\n case \"move\":\n return computerActionMoveSerializer(item as ComputerActionMove);\n\n case \"screenshot\":\n return computerActionScreenshotSerializer(item as ComputerActionScreenshot);\n\n case \"scroll\":\n return computerActionScrollSerializer(item as ComputerActionScroll);\n\n case \"type\":\n return computerActionTypeKeysSerializer(item as ComputerActionTypeKeys);\n\n case \"wait\":\n return computerActionWaitSerializer(item as ComputerActionWait);\n\n case \"keypress\":\n return computerActionKeyPressSerializer(item as ComputerActionKeyPress);\n\n default:\n return computerActionSerializer(item);\n }\n}\n\n/** Type of ComputerActionType */\nexport type ComputerActionType =\n | \"screenshot\"\n | \"click\"\n | \"double_click\"\n | \"scroll\"\n | \"type\"\n | \"wait\"\n | \"keypress\"\n | \"drag\"\n | \"move\";\n\n/** A click action. */\nexport interface ComputerActionClick extends ComputerAction {\n /**\n * Specifies the event type. For a click action, this property is\n * always set to `click`.\n */\n type: \"click\";\n /** Indicates which mouse button was pressed during the click. One of `left`, `right`, `wheel`, `back`, or `forward`. */\n button: \"left\" | \"right\" | \"wheel\" | \"back\" | \"forward\";\n /** The x-coordinate where the click occurred. */\n x: number;\n /** The y-coordinate where the click occurred. */\n y: number;\n}\n\nexport function computerActionClickSerializer(item: ComputerActionClick): any {\n return {\n type: item[\"type\"],\n button: item[\"button\"],\n x: item[\"x\"],\n y: item[\"y\"],\n };\n}\n\n/** A double click action. */\nexport interface ComputerActionDoubleClick extends ComputerAction {\n /**\n * Specifies the event type. For a double click action, this property is\n * always set to `double_click`.\n */\n type: \"double_click\";\n /** The x-coordinate where the double click occurred. */\n x: number;\n /** The y-coordinate where the double click occurred. */\n y: number;\n}\n\nexport function computerActionDoubleClickSerializer(item: ComputerActionDoubleClick): any {\n return { type: item[\"type\"], x: item[\"x\"], y: item[\"y\"] };\n}\n\n/** A drag action. */\nexport interface ComputerActionDrag extends ComputerAction {\n /**\n * Specifies the event type. For a drag action, this property is\n * always set to `drag`.\n */\n type: \"drag\";\n /**\n * An array of coordinates representing the path of the drag action. Coordinates will appear as an array\n * of objects, eg\n * ```\n * [\n * { x: 100, y: 200 },\n * { x: 200, y: 300 }\n * ]\n * ```\n */\n path: Coordinate[];\n}\n\nexport function computerActionDragSerializer(item: ComputerActionDrag): any {\n return { type: item[\"type\"], path: coordinateArraySerializer(item[\"path\"]) };\n}\n\nexport function coordinateArraySerializer(result: Array<Coordinate>): any[] {\n return result.map((item) => {\n return coordinateSerializer(item);\n });\n}\n\n/** An x/y coordinate pair, e.g. `{ x: 100, y: 200 }`. */\nexport interface Coordinate {\n /** The x-coordinate. */\n x: number;\n /** The y-coordinate. */\n y: number;\n}\n\nexport function coordinateSerializer(item: Coordinate): any {\n return { x: item[\"x\"], y: item[\"y\"] };\n}\n\n/** A mouse move action. */\nexport interface ComputerActionMove extends ComputerAction {\n /**\n * Specifies the event type. For a move action, this property is\n * always set to `move`.\n */\n type: \"move\";\n /** The x-coordinate to move to. */\n x: number;\n /** The y-coordinate to move to. */\n y: number;\n}\n\nexport function computerActionMoveSerializer(item: ComputerActionMove): any {\n return { type: item[\"type\"], x: item[\"x\"], y: item[\"y\"] };\n}\n\n/** A screenshot action. */\nexport interface ComputerActionScreenshot extends ComputerAction {\n /**\n * Specifies the event type. For a screenshot action, this property is\n * always set to `screenshot`.\n */\n type: \"screenshot\";\n}\n\nexport function computerActionScreenshotSerializer(item: ComputerActionScreenshot): any {\n return { type: item[\"type\"] };\n}\n\n/** A scroll action. */\nexport interface ComputerActionScroll extends ComputerAction {\n /**\n * Specifies the event type. For a scroll action, this property is\n * always set to `scroll`.\n */\n type: \"scroll\";\n /** The x-coordinate where the scroll occurred. */\n x: number;\n /** The y-coordinate where the scroll occurred. */\n y: number;\n /** The horizontal scroll distance. */\n scroll_x: number;\n /** The vertical scroll distance. */\n scroll_y: number;\n}\n\nexport function computerActionScrollSerializer(item: ComputerActionScroll): any {\n return {\n type: item[\"type\"],\n x: item[\"x\"],\n y: item[\"y\"],\n scroll_x: item[\"scroll_x\"],\n scroll_y: item[\"scroll_y\"],\n };\n}\n\n/** An action to type in text. */\nexport interface ComputerActionTypeKeys extends ComputerAction {\n /**\n * Specifies the event type. For a type action, this property is\n * always set to `type`.\n */\n type: \"type\";\n /** The text to type. */\n text: string;\n}\n\nexport function computerActionTypeKeysSerializer(item: ComputerActionTypeKeys): any {\n return { type: item[\"type\"], text: item[\"text\"] };\n}\n\n/** A wait action. */\nexport interface ComputerActionWait extends ComputerAction {\n /**\n * Specifies the event type. For a wait action, this property is\n * always set to `wait`.\n */\n type: \"wait\";\n}\n\nexport function computerActionWaitSerializer(item: ComputerActionWait): any {\n return { type: item[\"type\"] };\n}\n\n/** A collection of keypresses the model would like to perform. */\nexport interface ComputerActionKeyPress extends ComputerAction {\n /**\n * Specifies the event type. For a keypress action, this property is\n * always set to `keypress`.\n */\n type: \"keypress\";\n /**\n * The combination of keys the model is requesting to be pressed. This is an\n * array of strings, each representing a key.\n */\n keys: string[];\n}\n\nexport function computerActionKeyPressSerializer(item: ComputerActionKeyPress): any {\n return {\n type: item[\"type\"],\n keys: item[\"keys\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function computerToolCallSafetyCheckArraySerializer(\n result: Array<ComputerToolCallSafetyCheck>,\n): any[] {\n return result.map((item) => {\n return computerToolCallSafetyCheckSerializer(item);\n });\n}\n\n/** A pending safety check for the computer call. */\nexport interface ComputerToolCallSafetyCheck {\n /** The ID of the pending safety check. */\n id: string;\n /** The type of the pending safety check. */\n code: string;\n /** Details about the pending safety check. */\n message: string;\n}\n\nexport function computerToolCallSafetyCheckSerializer(item: ComputerToolCallSafetyCheck): any {\n return { id: item[\"id\"], code: item[\"code\"], message: item[\"message\"] };\n}\n\n/**\n * The output of a computer tool call.\n *\n */\nexport interface ComputerToolCallOutputItemParam extends ItemParam {\n type: \"computer_call_output\";\n /** The ID of the computer tool call that produced the output. */\n call_id: string;\n /**\n * The safety checks reported by the API that have been acknowledged by the\n * developer.\n */\n acknowledged_safety_checks?: ComputerToolCallSafetyCheck[];\n output: ComputerToolCallOutputItemOutputUnion;\n}\n\nexport function computerToolCallOutputItemParamSerializer(\n item: ComputerToolCallOutputItemParam,\n): any {\n return {\n type: item[\"type\"],\n call_id: item[\"call_id\"],\n acknowledged_safety_checks: !item[\"acknowledged_safety_checks\"]\n ? item[\"acknowledged_safety_checks\"]\n : computerToolCallSafetyCheckArraySerializer(item[\"acknowledged_safety_checks\"]),\n output: computerToolCallOutputItemOutputUnionSerializer(item[\"output\"]),\n };\n}\n\n/** model interface ComputerToolCallOutputItemOutput */\nexport interface ComputerToolCallOutputItemOutput {\n type: ComputerToolCallOutputItemOutputType;\n}\n\nexport function computerToolCallOutputItemOutputSerializer(\n item: ComputerToolCallOutputItemOutput,\n): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for ComputerToolCallOutputItemOutputUnion */\nexport type ComputerToolCallOutputItemOutputUnion =\n | ComputerToolCallOutputItemOutputComputerScreenshot\n | ComputerToolCallOutputItemOutput;\n\nexport function computerToolCallOutputItemOutputUnionSerializer(\n item: ComputerToolCallOutputItemOutputUnion,\n): any {\n switch (item.type) {\n case \"computer_screenshot\":\n return computerToolCallOutputItemOutputComputerScreenshotSerializer(\n item as ComputerToolCallOutputItemOutputComputerScreenshot,\n );\n\n default:\n return computerToolCallOutputItemOutputSerializer(item);\n }\n}\n\n/** A computer screenshot image used with the computer use tool. */\nexport type ComputerToolCallOutputItemOutputType = \"computer_screenshot\";\n\n/** model interface ComputerToolCallOutputItemOutputComputerScreenshot */\nexport interface ComputerToolCallOutputItemOutputComputerScreenshot extends ComputerToolCallOutputItemOutput {\n type: \"computer_screenshot\";\n /** The URL of the screenshot image. */\n image_url?: string;\n /** The ID of the screenshot file. */\n file_id?: string;\n}\n\nexport function computerToolCallOutputItemOutputComputerScreenshotSerializer(\n item: ComputerToolCallOutputItemOutputComputerScreenshot,\n): any {\n return {\n type: item[\"type\"],\n image_url: item[\"image_url\"],\n file_id: item[\"file_id\"],\n };\n}\n\n/**\n * The results of a web search tool call. See the\n * [web search guide](https://platform.openai.com/docs/guides/tools-web-search) for more information.\n *\n */\nexport interface WebSearchToolCallItemParam extends ItemParam {\n type: \"web_search_call\";\n /**\n * An object describing the specific action taken in this web search call.\n * Includes details on how the model used the web (search, open_page, find).\n */\n action: WebSearchActionUnion;\n}\n\nexport function webSearchToolCallItemParamSerializer(item: WebSearchToolCallItemParam): any {\n return {\n type: item[\"type\"],\n action: webSearchActionUnionSerializer(item[\"action\"]),\n };\n}\n\n/** model interface WebSearchAction */\nexport interface WebSearchAction {\n type: WebSearchActionType;\n}\n\nexport function webSearchActionSerializer(item: WebSearchAction): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for WebSearchActionUnion */\nexport type WebSearchActionUnion =\n | WebSearchActionFind\n | WebSearchActionOpenPage\n | WebSearchActionSearch\n | WebSearchAction;\n\nexport function webSearchActionUnionSerializer(item: WebSearchActionUnion): any {\n switch (item.type) {\n case \"find\":\n return webSearchActionFindSerializer(item as WebSearchActionFind);\n\n case \"open_page\":\n return webSearchActionOpenPageSerializer(item as WebSearchActionOpenPage);\n\n case \"search\":\n return webSearchActionSearchSerializer(item as WebSearchActionSearch);\n\n default:\n return webSearchActionSerializer(item);\n }\n}\n\n/** Type of WebSearchActionType */\nexport type WebSearchActionType = \"search\" | \"open_page\" | \"find\";\n\n/** Action type \"find\": Searches for a pattern within a loaded page. */\nexport interface WebSearchActionFind extends WebSearchAction {\n /** The action type. */\n type: \"find\";\n /** The URL of the page searched for the pattern. */\n url: string;\n /** The pattern or text to search for within the page. */\n pattern: string;\n}\n\nexport function webSearchActionFindSerializer(item: WebSearchActionFind): any {\n return { type: item[\"type\"], url: item[\"url\"], pattern: item[\"pattern\"] };\n}\n\n/** Action type \"open_page\" - Opens a specific URL from search results. */\nexport interface WebSearchActionOpenPage extends WebSearchAction {\n /** The action type. */\n type: \"open_page\";\n /** The URL opened by the model. */\n url: string;\n}\n\nexport function webSearchActionOpenPageSerializer(item: WebSearchActionOpenPage): any {\n return { type: item[\"type\"], url: item[\"url\"] };\n}\n\n/** Action type \"search\" - Performs a web search query. */\nexport interface WebSearchActionSearch extends WebSearchAction {\n /** The action type. */\n type: \"search\";\n /** The search query. */\n query: string;\n /** The sources used in the search. */\n sources?: WebSearchActionSearchSources[];\n}\n\nexport function webSearchActionSearchSerializer(item: WebSearchActionSearch): any {\n return {\n type: item[\"type\"],\n query: item[\"query\"],\n sources: !item[\"sources\"]\n ? item[\"sources\"]\n : webSearchActionSearchSourcesArraySerializer(item[\"sources\"]),\n };\n}\n\nexport function webSearchActionSearchSourcesArraySerializer(\n result: Array<WebSearchActionSearchSources>,\n): any[] {\n return result.map((item) => {\n return webSearchActionSearchSourcesSerializer(item);\n });\n}\n\n/** model interface WebSearchActionSearchSources */\nexport interface WebSearchActionSearchSources {\n type: \"url\";\n url: string;\n}\n\nexport function webSearchActionSearchSourcesSerializer(item: WebSearchActionSearchSources): any {\n return { type: item[\"type\"], url: item[\"url\"] };\n}\n\n/**\n * A tool call to run a function. See the\n * [function calling guide](https://platform.openai.com/docs/guides/function-calling) for more information.\n *\n */\nexport interface FunctionToolCallItemParam extends ItemParam {\n type: \"function_call\";\n /** The unique ID of the function tool call generated by the model. */\n call_id: string;\n /** The name of the function to run. */\n name: string;\n /** A JSON string of the arguments to pass to the function. */\n arguments: string;\n}\n\nexport function functionToolCallItemParamSerializer(item: FunctionToolCallItemParam): any {\n return {\n type: item[\"type\"],\n call_id: item[\"call_id\"],\n name: item[\"name\"],\n arguments: item[\"arguments\"],\n };\n}\n\n/**\n * Reasoning item parameter for o-series models.\n * Contains the chain of thought used by a reasoning model while generating a response.\n * Be sure to include these items in your `input` to the Responses API\n * for subsequent turns of a conversation if you are manually\n * [managing conversation state](https://platform.openai.com/docs/guides/conversation-state).\n */\nexport interface ReasoningItemParam extends ItemParam {\n type: \"reasoning\";\n /**\n * The encrypted content of the reasoning item - populated when a response is\n * generated with `reasoning.encrypted_content` in the `include` parameter.\n */\n encrypted_content?: string;\n /** Reasoning text contents. */\n summary: ReasoningItemSummaryPartUnion[];\n}\n\nexport function reasoningItemParamSerializer(item: ReasoningItemParam): any {\n return {\n type: item[\"type\"],\n encrypted_content: item[\"encrypted_content\"],\n summary: reasoningItemSummaryPartUnionArraySerializer(item[\"summary\"]),\n };\n}\n\nexport function reasoningItemSummaryPartUnionArraySerializer(\n result: Array<ReasoningItemSummaryPartUnion>,\n): any[] {\n return result.map((item) => {\n return reasoningItemSummaryPartUnionSerializer(item);\n });\n}\n\n/** model interface ReasoningItemSummaryPart */\nexport interface ReasoningItemSummaryPart {\n type: ReasoningItemSummaryPartType;\n}\n\nexport function reasoningItemSummaryPartSerializer(item: ReasoningItemSummaryPart): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for ReasoningItemSummaryPartUnion */\nexport type ReasoningItemSummaryPartUnion = ReasoningItemSummaryTextPart | ReasoningItemSummaryPart;\n\nexport function reasoningItemSummaryPartUnionSerializer(item: ReasoningItemSummaryPartUnion): any {\n switch (item.type) {\n case \"summary_text\":\n return reasoningItemSummaryTextPartSerializer(item as ReasoningItemSummaryTextPart);\n\n default:\n return reasoningItemSummaryPartSerializer(item);\n }\n}\n\n/** Type of ReasoningItemSummaryPartType */\nexport type ReasoningItemSummaryPartType = \"summary_text\";\n\n/** model interface ReasoningItemSummaryTextPart */\nexport interface ReasoningItemSummaryTextPart extends ReasoningItemSummaryPart {\n type: \"summary_text\";\n text: string;\n}\n\nexport function reasoningItemSummaryTextPartSerializer(item: ReasoningItemSummaryTextPart): any {\n return { type: item[\"type\"], text: item[\"text\"] };\n}\n\n/** An internal identifier for an item to reference. */\nexport interface ItemReferenceItemParam extends ItemParam {\n type: \"item_reference\";\n /** The service-originated ID of the previously generated response item being referenced. */\n id: string;\n}\n\nexport function itemReferenceItemParamSerializer(item: ItemReferenceItemParam): any {\n return { type: item[\"type\"], id: item[\"id\"] };\n}\n\n/**\n * Image generation tool call item.\n * Contains the request made by the model to generate an image.\n */\nexport interface ImageGenToolCallItemParam extends ItemParam {\n type: \"image_generation_call\";\n /** The generated image encoded in base64. */\n result: string;\n}\n\nexport function imageGenToolCallItemParamSerializer(item: ImageGenToolCallItemParam): any {\n return { type: item[\"type\"], result: item[\"result\"] };\n}\n\n/**\n * Code interpreter tool call item.\n * Contains code execution request and outputs from the code interpreter.\n */\nexport interface CodeInterpreterToolCallItemParam extends ItemParam {\n type: \"code_interpreter_call\";\n /** The ID of the container used to run the code. */\n container_id: string;\n /** The code to run. */\n code: string;\n /**\n * The outputs generated by the code interpreter, such as logs or images.\n */\n outputs: CodeInterpreterOutputUnion[];\n}\n\nexport function codeInterpreterToolCallItemParamSerializer(\n item: CodeInterpreterToolCallItemParam,\n): any {\n return {\n type: item[\"type\"],\n container_id: item[\"container_id\"],\n code: item[\"code\"],\n outputs: !item[\"outputs\"]\n ? item[\"outputs\"]\n : codeInterpreterOutputUnionArraySerializer(item[\"outputs\"]),\n };\n}\n\nexport function codeInterpreterOutputUnionArraySerializer(\n result: Array<CodeInterpreterOutputUnion>,\n): any[] {\n return result.map((item) => {\n return codeInterpreterOutputUnionSerializer(item);\n });\n}\n\n/** model interface CodeInterpreterOutput */\nexport interface CodeInterpreterOutput {\n type: CodeInterpreterOutputType;\n}\n\nexport function codeInterpreterOutputSerializer(item: CodeInterpreterOutput): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for CodeInterpreterOutputUnion */\nexport type CodeInterpreterOutputUnion =\n | CodeInterpreterOutputImage\n | CodeInterpreterOutputLogs\n | CodeInterpreterOutput;\n\nexport function codeInterpreterOutputUnionSerializer(item: CodeInterpreterOutputUnion): any {\n switch (item.type) {\n case \"image\":\n return codeInterpreterOutputImageSerializer(item as CodeInterpreterOutputImage);\n\n case \"logs\":\n return codeInterpreterOutputLogsSerializer(item as CodeInterpreterOutputLogs);\n\n default:\n return codeInterpreterOutputSerializer(item);\n }\n}\n\n/** Type of CodeInterpreterOutputType */\nexport type CodeInterpreterOutputType = \"logs\" | \"image\";\n\n/** The image output from the code interpreter. */\nexport interface CodeInterpreterOutputImage extends CodeInterpreterOutput {\n /** The type of the output. Always 'image'. */\n type: \"image\";\n /** The URL of the image output from the code interpreter. */\n url: string;\n}\n\nexport function codeInterpreterOutputImageSerializer(item: CodeInterpreterOutputImage): any {\n return { type: item[\"type\"], url: item[\"url\"] };\n}\n\n/** The logs output from the code interpreter. */\nexport interface CodeInterpreterOutputLogs extends CodeInterpreterOutput {\n /** The type of the output. Always 'logs'. */\n type: \"logs\";\n /** The logs output from the code interpreter. */\n logs: string;\n}\n\nexport function codeInterpreterOutputLogsSerializer(item: CodeInterpreterOutputLogs): any {\n return { type: item[\"type\"], logs: item[\"logs\"] };\n}\n\n/**\n * A tool call to run a command on the local shell.\n *\n */\nexport interface LocalShellToolCallItemParam extends ItemParam {\n type: \"local_shell_call\";\n /** The unique ID of the local shell tool call generated by the model. */\n call_id: string;\n action: LocalShellExecAction;\n}\n\nexport function localShellToolCallItemParamSerializer(item: LocalShellToolCallItemParam): any {\n return {\n type: item[\"type\"],\n call_id: item[\"call_id\"],\n action: localShellExecActionSerializer(item[\"action\"]),\n };\n}\n\n/**\n * Execute a shell command action.\n * Defines the command, environment, and execution context for local shell execution.\n */\nexport interface LocalShellExecAction {\n /** The type of the local shell action. Always `exec`. */\n type: \"exec\";\n /** The command to run. */\n command: string[];\n /** Optional timeout in milliseconds for the command. */\n timeout_ms?: number;\n /** Optional working directory to run the command in. */\n working_directory?: string;\n /** Environment variables to set for the command. */\n env: Record<string, string>;\n /** Optional user to run the command as. */\n user?: string;\n}\n\nexport function localShellExecActionSerializer(item: LocalShellExecAction): any {\n return {\n type: item[\"type\"],\n command: item[\"command\"].map((p: any) => {\n return p;\n }),\n timeout_ms: item[\"timeout_ms\"],\n working_directory: item[\"working_directory\"],\n env: item[\"env\"],\n user: item[\"user\"],\n };\n}\n\n/**\n * The output of a local shell tool call.\n *\n */\nexport interface LocalShellToolCallOutputItemParam extends ItemParam {\n type: \"local_shell_call_output\";\n /** A JSON string of the output of the local shell tool call. */\n output: string;\n}\n\nexport function localShellToolCallOutputItemParamSerializer(\n item: LocalShellToolCallOutputItemParam,\n): any {\n return { type: item[\"type\"], output: item[\"output\"] };\n}\n\n/**\n * MCP tool list item.\n * Contains the list of tools available on an MCP server.\n */\nexport interface MCPListToolsItemParam extends ItemParam {\n type: \"mcp_list_tools\";\n /** The label of the MCP server. */\n server_label: string;\n /** The tools available on the server. */\n tools: MCPListToolsTool[];\n /** Error message if the server could not list tools. */\n error?: string;\n}\n\nexport function mcpListToolsItemParamSerializer(item: MCPListToolsItemParam): any {\n return {\n type: item[\"type\"],\n server_label: item[\"server_label\"],\n tools: mcpListToolsToolArraySerializer(item[\"tools\"]),\n error: item[\"error\"],\n };\n}\n\nexport function mcpListToolsToolArraySerializer(result: Array<MCPListToolsTool>): any[] {\n return result.map((item) => {\n return mcpListToolsToolSerializer(item);\n });\n}\n\n/**\n * A tool available on an MCP server.\n * Describes a single tool with its name, description, input schema, and annotations.\n */\nexport interface MCPListToolsTool {\n /** The name of the tool. */\n name: string;\n /** The description of the tool. */\n description?: string;\n /** The JSON schema describing the tool's input. */\n input_schema: unknown;\n /** Additional annotations about the tool. */\n annotations?: unknown;\n}\n\nexport function mcpListToolsToolSerializer(item: MCPListToolsTool): any {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n input_schema: item[\"input_schema\"],\n annotations: item[\"annotations\"],\n };\n}\n\n/**\n * A request for human approval of a tool invocation.\n *\n */\nexport interface MCPApprovalRequestItemParam extends ItemParam {\n type: \"mcp_approval_request\";\n /** The label of the MCP server making the request. */\n server_label: string;\n /** The name of the tool to run. */\n name: string;\n /** A JSON string of arguments for the tool. */\n arguments: string;\n}\n\nexport function mcpApprovalRequestItemParamSerializer(item: MCPApprovalRequestItemParam): any {\n return {\n type: item[\"type\"],\n server_label: item[\"server_label\"],\n name: item[\"name\"],\n arguments: item[\"arguments\"],\n };\n}\n\n/**\n * MCP approval response item.\n * Contains the response to an MCP tool approval request.\n */\nexport interface MCPApprovalResponseItemParam extends ItemParam {\n type: \"mcp_approval_response\";\n /** The ID of the approval request being answered. */\n approval_request_id: string;\n /** Whether the request was approved. */\n approve: boolean;\n /** Optional reason for the decision. */\n reason?: string;\n}\n\nexport function mcpApprovalResponseItemParamSerializer(item: MCPApprovalResponseItemParam): any {\n return {\n type: item[\"type\"],\n approval_request_id: item[\"approval_request_id\"],\n approve: item[\"approve\"],\n reason: item[\"reason\"],\n };\n}\n\n/**\n * MCP tool call item.\n * Contains an invocation of a tool on an MCP server with its arguments and results.\n */\nexport interface MCPCallItemParam extends ItemParam {\n type: \"mcp_call\";\n /** The label of the MCP server running the tool. */\n server_label: string;\n /** The name of the tool that was run. */\n name: string;\n /** A JSON string of the arguments passed to the tool. */\n arguments: string;\n /** The output from the tool call. */\n output?: string;\n /** The error from the tool call, if any. */\n error?: string;\n}\n\nexport function mcpCallItemParamSerializer(item: MCPCallItemParam): any {\n return {\n type: item[\"type\"],\n server_label: item[\"server_label\"],\n name: item[\"name\"],\n arguments: item[\"arguments\"],\n output: item[\"output\"],\n error: item[\"error\"],\n };\n}\n\n/**\n * Memory search tool call item.\n * Contains results from a memory store search operation.\n */\nexport interface MemorySearchToolCallItemParam extends ItemParam {\n type: \"memory_search_call\";\n /** The results returned from the memory search. */\n results?: MemorySearchItem[];\n}\n\nexport function memorySearchToolCallItemParamSerializer(item: MemorySearchToolCallItemParam): any {\n return {\n type: item[\"type\"],\n results: !item[\"results\"] ? item[\"results\"] : memorySearchItemArraySerializer(item[\"results\"]),\n };\n}\n\nexport function memorySearchItemArraySerializer(result: Array<MemorySearchItem>): any[] {\n return result.map((item) => {\n return memorySearchItemSerializer(item);\n });\n}\n\nexport function memorySearchItemArrayDeserializer(result: Array<MemorySearchItem>): any[] {\n return result.map((item) => {\n return memorySearchItemDeserializer(item);\n });\n}\n\n/** A retrieved memory item from memory search. */\nexport interface MemorySearchItem {\n /** Retrieved memory item. */\n memory_item: MemoryItemUnion;\n}\n\nexport function memorySearchItemSerializer(item: MemorySearchItem): any {\n return { memory_item: memoryItemUnionSerializer(item[\"memory_item\"]) };\n}\n\nexport function memorySearchItemDeserializer(item: any): MemorySearchItem {\n return {\n memory_item: memoryItemUnionDeserializer(item[\"memory_item\"]),\n };\n}\n\n/** A single memory item stored in the memory store, containing content and metadata. */\nexport interface MemoryItem {\n /** The unique ID of the memory item. */\n memory_id: string;\n /** The last update time of the memory item. */\n updated_at: Date;\n /** The namespace that logically groups and isolates memories, such as a user ID. */\n scope: string;\n /** The content of the memory. */\n content: string;\n /** The kind of the memory item. */\n /** The discriminator possible values: user_profile, chat_summary */\n kind: MemoryItemKind;\n}\n\nexport function memoryItemSerializer(item: MemoryItem): any {\n return {\n memory_id: item[\"memory_id\"],\n updated_at: (item[\"updated_at\"].getTime() / 1000) | 0,\n scope: item[\"scope\"],\n content: item[\"content\"],\n kind: item[\"kind\"],\n };\n}\n\nexport function memoryItemDeserializer(item: any): MemoryItem {\n return {\n memory_id: item[\"memory_id\"],\n updated_at: new Date(item[\"updated_at\"] * 1000),\n scope: item[\"scope\"],\n content: item[\"content\"],\n kind: item[\"kind\"],\n };\n}\n\n/** Alias for MemoryItemUnion */\nexport type MemoryItemUnion = UserProfileMemoryItem | ChatSummaryMemoryItem | MemoryItem;\n\nexport function memoryItemUnionSerializer(item: MemoryItemUnion): any {\n switch (item.kind) {\n case \"user_profile\":\n return userProfileMemoryItemSerializer(item as UserProfileMemoryItem);\n\n case \"chat_summary\":\n return chatSummaryMemoryItemSerializer(item as ChatSummaryMemoryItem);\n\n default:\n return memoryItemSerializer(item);\n }\n}\n\nexport function memoryItemUnionDeserializer(item: any): MemoryItemUnion {\n switch (item.kind) {\n case \"user_profile\":\n return userProfileMemoryItemDeserializer(item as UserProfileMemoryItem);\n\n case \"chat_summary\":\n return chatSummaryMemoryItemDeserializer(item as ChatSummaryMemoryItem);\n\n default:\n return memoryItemDeserializer(item);\n }\n}\n\n/** Memory item kind. */\nexport type MemoryItemKind = \"user_profile\" | \"chat_summary\";\n\n/** A memory item specifically containing user profile information extracted from conversations, such as preferences, interests, and personal details. */\nexport interface UserProfileMemoryItem extends MemoryItem {\n /** The kind of the memory item. */\n kind: \"user_profile\";\n}\n\nexport function userProfileMemoryItemSerializer(item: UserProfileMemoryItem): any {\n return {\n memory_id: item[\"memory_id\"],\n updated_at: (item[\"updated_at\"].getTime() / 1000) | 0,\n scope: item[\"scope\"],\n content: item[\"content\"],\n kind: item[\"kind\"],\n };\n}\n\nexport function userProfileMemoryItemDeserializer(item: any): UserProfileMemoryItem {\n return {\n memory_id: item[\"memory_id\"],\n updated_at: new Date(item[\"updated_at\"] * 1000),\n scope: item[\"scope\"],\n content: item[\"content\"],\n kind: item[\"kind\"],\n };\n}\n\n/** A memory item containing a summary extracted from conversations. */\nexport interface ChatSummaryMemoryItem extends MemoryItem {\n /** The kind of the memory item. */\n kind: \"chat_summary\";\n}\n\nexport function chatSummaryMemoryItemSerializer(item: ChatSummaryMemoryItem): any {\n return {\n memory_id: item[\"memory_id\"],\n updated_at: (item[\"updated_at\"].getTime() / 1000) | 0,\n scope: item[\"scope\"],\n content: item[\"content\"],\n kind: item[\"kind\"],\n };\n}\n\nexport function chatSummaryMemoryItemDeserializer(item: any): ChatSummaryMemoryItem {\n return {\n memory_id: item[\"memory_id\"],\n updated_at: new Date(item[\"updated_at\"] * 1000),\n scope: item[\"scope\"],\n content: item[\"content\"],\n kind: item[\"kind\"],\n };\n}\n\nexport function itemParamUnionArraySerializer(result: Array<ItemParamUnion>): any[] {\n return result.map((item) => {\n return itemParamUnionSerializer(item);\n });\n}\n\n/** Memory search response. */\nexport interface MemoryStoreSearchResponse {\n /** The unique ID of this search request. Use this value as previous_search_id in subsequent requests to perform incremental searches. */\n search_id: string;\n /** Related memory items found during the search operation. */\n memories: MemorySearchItem[];\n /** Usage statistics associated with the memory search operation. */\n usage: MemoryStoreOperationUsage;\n}\n\nexport function memoryStoreSearchResponseDeserializer(item: any): MemoryStoreSearchResponse {\n return {\n search_id: item[\"search_id\"],\n memories: memorySearchItemArrayDeserializer(item[\"memories\"]),\n usage: memoryStoreOperationUsageDeserializer(item[\"usage\"]),\n };\n}\n\n/** Usage statistics of a memory store operation. */\nexport interface MemoryStoreOperationUsage {\n /** The number of embedding tokens. */\n embedding_tokens: number;\n /** The number of input tokens. */\n input_tokens: number;\n /** A detailed breakdown of the input tokens. */\n input_tokens_details: {\n cached_tokens: number;\n };\n /** The number of output tokens. */\n output_tokens: number;\n /** A detailed breakdown of the output tokens. */\n output_tokens_details: {\n reasoning_tokens: number;\n };\n /** The total number of tokens used. */\n total_tokens: number;\n}\n\nexport function memoryStoreOperationUsageDeserializer(item: any): MemoryStoreOperationUsage {\n return {\n embedding_tokens: item[\"embedding_tokens\"],\n input_tokens: item[\"input_tokens\"],\n input_tokens_details: _memoryStoreOperationUsageInputTokensDetailsDeserializer(\n item[\"input_tokens_details\"],\n ),\n output_tokens: item[\"output_tokens\"],\n output_tokens_details: _memoryStoreOperationUsageOutputTokensDetailsDeserializer(\n item[\"output_tokens_details\"],\n ),\n total_tokens: item[\"total_tokens\"],\n };\n}\n\n/** model interface _MemoryStoreOperationUsageInputTokensDetails */\nexport interface _MemoryStoreOperationUsageInputTokensDetails {\n /**\n * The number of tokens that were retrieved from the cache.\n * [More on prompt caching](https://platform.openai.com/docs/guides/prompt-caching).\n */\n cached_tokens: number;\n}\n\nexport function _memoryStoreOperationUsageInputTokensDetailsDeserializer(\n item: any,\n): _MemoryStoreOperationUsageInputTokensDetails {\n return {\n cached_tokens: item[\"cached_tokens\"],\n };\n}\n\n/** model interface _MemoryStoreOperationUsageOutputTokensDetails */\nexport interface _MemoryStoreOperationUsageOutputTokensDetails {\n /** The number of reasoning tokens. */\n reasoning_tokens: number;\n}\n\nexport function _memoryStoreOperationUsageOutputTokensDetailsDeserializer(\n item: any,\n): _MemoryStoreOperationUsageOutputTokensDetails {\n return {\n reasoning_tokens: item[\"reasoning_tokens\"],\n };\n}\n\n/** Provides the status of a memory store update operation. */\nexport interface MemoryStoreUpdateResponse {\n /** The unique ID of this update request. Use this value as previous_update_id in subsequent requests to perform incremental updates. */\n update_id: string;\n /** The status of the memory update operation. One of \"queued\", \"in_progress\", \"completed\", \"failed\", or \"superseded\". */\n status: MemoryStoreUpdateStatus;\n /** The update_id the operation was superseded by when status is \"superseded\". */\n superseded_by?: string;\n /** The result of memory store update operation when status is \"completed\". */\n result?: MemoryStoreUpdateResult;\n /** Error object that describes the error when status is \"failed\". */\n error?: ApiError;\n}\n\nexport function memoryStoreUpdateResponseDeserializer(item: any): MemoryStoreUpdateResponse {\n return {\n update_id: item[\"update_id\"],\n status: item[\"status\"],\n superseded_by: item[\"superseded_by\"],\n result: !item[\"result\"] ? item[\"result\"] : MemoryStoreUpdateResultDeserializer(item[\"result\"]),\n error: !item[\"error\"] ? item[\"error\"] : apiErrorDeserializer(item[\"error\"]),\n };\n}\n\n/** Status of a memory store update operation. */\nexport type MemoryStoreUpdateStatus =\n | \"queued\"\n | \"in_progress\"\n | \"completed\"\n | \"failed\"\n | \"superseded\";\n\n/** Memory update result. */\nexport interface MemoryStoreUpdateResult {\n /** A list of individual memory operations that were performed during the update. */\n memory_operations: MemoryOperation[];\n /** Usage statistics associated with the memory update operation. */\n usage: MemoryStoreOperationUsage;\n}\n\nexport function MemoryStoreUpdateResultDeserializer(item: any): MemoryStoreUpdateResult {\n return {\n memory_operations: memoryOperationArrayDeserializer(item[\"memory_operations\"]),\n usage: memoryStoreOperationUsageDeserializer(item[\"usage\"]),\n };\n}\n\nexport function memoryOperationArrayDeserializer(result: Array<MemoryOperation>): any[] {\n return result.map((item) => {\n return memoryOperationDeserializer(item);\n });\n}\n\n/** Represents a single memory operation (create, update, or delete) performed on a memory item. */\nexport interface MemoryOperation {\n /** The type of memory operation being performed. */\n kind: MemoryOperationKind;\n /** The memory item to create, update, or delete. */\n memory_item: MemoryItemUnion;\n}\n\nexport function memoryOperationDeserializer(item: any): MemoryOperation {\n return {\n kind: item[\"kind\"],\n memory_item: memoryItemUnionDeserializer(item[\"memory_item\"]),\n };\n}\n\n/** Memory operation kind. */\nexport type MemoryOperationKind = \"create\" | \"update\" | \"delete\";\n\n/** Response for deleting memories from a scope. */\nexport interface MemoryStoreDeleteScopeResponse {\n /** The object type. Always 'memory_store.scope.deleted'. */\n object: \"memory_store.scope.deleted\";\n /** The name of the memory store. */\n name: string;\n /** The scope from which memories were deleted. */\n scope: string;\n /** Whether the deletion operation was successful. */\n deleted: boolean;\n}\n\nexport function memoryStoreDeleteScopeResponseDeserializer(\n item: any,\n): MemoryStoreDeleteScopeResponse {\n return {\n object: item[\"object\"],\n name: item[\"name\"],\n scope: item[\"scope\"],\n deleted: item[\"deleted\"],\n };\n}\n\n/** Response from the list and get connections operations */\nexport interface Connection {\n /** The friendly name of the connection, provided by the user. */\n readonly name: string;\n /** A unique identifier for the connection, generated by the service */\n readonly id: string;\n /** Category of the connection */\n readonly type: ConnectionType;\n /** The connection URL to be used for this service */\n readonly target: string;\n /** Whether the connection is tagged as the default connection of its type */\n readonly isDefault: boolean;\n /** The credentials used by the connection */\n readonly credentials: BaseCredentialsUnion;\n /** Metadata of the connection */\n readonly metadata: Record<string, string>;\n}\n\nexport function connectionDeserializer(item: any): Connection {\n return {\n name: item[\"name\"],\n id: item[\"id\"],\n type: item[\"type\"],\n target: item[\"target\"],\n isDefault: item[\"isDefault\"],\n credentials: baseCredentialsUnionDeserializer(item[\"credentials\"]),\n metadata: item[\"metadata\"],\n };\n}\n\n/** The Type (or category) of the connection */\nexport type ConnectionType =\n | \"AzureOpenAI\"\n | \"AzureBlob\"\n | \"AzureStorageAccount\"\n | \"CognitiveSearch\"\n | \"CosmosDB\"\n | \"ApiKey\"\n | \"AppConfig\"\n | \"AppInsights\"\n | \"CustomKeys\"\n | \"RemoteTool\";\n\n/** A base class for connection credentials */\nexport interface BaseCredentials {\n /** The type of credential used by the connection */\n /** The discriminator possible values: ApiKey, AAD, CustomKeys, SAS, None, AgenticIdentityToken */\n readonly type: CredentialType;\n}\n\nexport function baseCredentialsDeserializer(item: any): BaseCredentials {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for BaseCredentialsUnion */\nexport type BaseCredentialsUnion =\n | ApiKeyCredentials\n | EntraIDCredentials\n | CustomCredential\n | SASTokenCredentials\n | NoAuthenticationCredentials\n | AgenticIdentityCredentials\n | BaseCredentials;\n\nexport function baseCredentialsUnionDeserializer(item: any): BaseCredentialsUnion {\n switch (item.type) {\n case \"ApiKey\":\n return apiKeyCredentialsDeserializer(item as ApiKeyCredentials);\n\n case \"AAD\":\n return entraIDCredentialsDeserializer(item as EntraIDCredentials);\n\n case \"CustomKeys\":\n return customCredentialDeserializer(item as CustomCredential);\n\n case \"SAS\":\n return sasCredentialsDeserializer(item as SASTokenCredentials);\n\n case \"None\":\n return noAuthenticationCredentialsDeserializer(item as NoAuthenticationCredentials);\n\n case \"AgenticIdentityToken\":\n return agenticIdentityCredentialsDeserializer(item as AgenticIdentityCredentials);\n\n default:\n return baseCredentialsDeserializer(item);\n }\n}\n\n/** The credential type used by the connection */\nexport type CredentialType =\n | \"ApiKey\"\n | \"AAD\"\n | \"SAS\"\n | \"CustomKeys\"\n | \"None\"\n | \"AgenticIdentityToken\";\n\n/** API Key Credential definition */\nexport interface ApiKeyCredentials extends BaseCredentials {\n /** The credential type */\n readonly type: \"ApiKey\";\n /** API Key */\n readonly apiKey: string;\n}\n\nexport function apiKeyCredentialsDeserializer(item: any): ApiKeyCredentials {\n return {\n type: item[\"type\"],\n apiKey: item[\"key\"],\n };\n}\n\n/** Entra ID credential definition */\nexport interface EntraIDCredentials extends BaseCredentials {\n /** The credential type */\n readonly type: \"AAD\";\n}\n\nexport function entraIDCredentialsDeserializer(item: any): EntraIDCredentials {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Custom credential definition */\nexport interface CustomCredential extends BaseCredentials {\n /** The credential type */\n readonly type: \"CustomKeys\";\n /** Additional properties */\n additionalProperties?: Record<string, string>;\n}\n\nexport function customCredentialDeserializer(item: any): CustomCredential {\n return {\n additionalProperties: serializeRecord(item, [\"type\"]),\n type: item[\"type\"],\n };\n}\n\n/** Shared Access Signature (SAS) credential definition */\nexport interface SASTokenCredentials extends BaseCredentials {\n /** The credential type */\n readonly type: \"SAS\";\n /** SAS token */\n readonly sasToken: string;\n}\n\nexport function sasCredentialsDeserializer(item: any): SASTokenCredentials {\n return {\n type: item[\"type\"],\n sasToken: item[\"SAS\"],\n };\n}\n\n/** Credentials that do not require authentication */\nexport interface NoAuthenticationCredentials extends BaseCredentials {\n /** The credential type */\n readonly type: \"None\";\n}\n\nexport function noAuthenticationCredentialsDeserializer(item: any): NoAuthenticationCredentials {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Agentic identity credential definition */\nexport interface AgenticIdentityCredentials extends BaseCredentials {\n /** The credential type */\n readonly type: \"AgenticIdentityToken\";\n}\n\nexport function agenticIdentityCredentialsDeserializer(item: any): AgenticIdentityCredentials {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Paged collection of Connection items */\nexport interface _PagedConnection {\n /** The Connection items on this page */\n value: Connection[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedConnectionDeserializer(item: any): _PagedConnection {\n return {\n value: connectionArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function connectionArrayDeserializer(result: Array<Connection>): any[] {\n return result.map((item) => {\n return connectionDeserializer(item);\n });\n}\n\n/** Paged collection of DatasetVersion items */\nexport interface _PagedDatasetVersion {\n /** The DatasetVersion items on this page */\n value: DatasetVersionUnion[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedDatasetVersionDeserializer(item: any): _PagedDatasetVersion {\n return {\n value: datasetVersionUnionArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function datasetVersionUnionArraySerializer(result: Array<DatasetVersionUnion>): any[] {\n return result.map((item) => {\n return datasetVersionUnionSerializer(item);\n });\n}\n\nexport function datasetVersionUnionArrayDeserializer(result: Array<DatasetVersionUnion>): any[] {\n return result.map((item) => {\n return datasetVersionUnionDeserializer(item);\n });\n}\n\n/** DatasetVersion Definition */\nexport interface DatasetVersion {\n /** URI of the data ([example](https://go.microsoft.com/fwlink/?linkid=2202330)) */\n dataUri: string;\n /** Dataset type */\n /** The discriminator possible values: uri_file, uri_folder */\n type: DatasetType;\n /** Indicates if the dataset holds a reference to the storage, or the dataset manages storage itself. If true, the underlying data will not be deleted when the dataset version is deleted */\n readonly isReference?: boolean;\n /** The Azure Storage Account connection name. Required if startPendingUploadVersion was not called before creating the Dataset */\n connectionName?: string;\n /** Asset ID, a unique identifier for the asset */\n readonly id?: string;\n /** The name of the resource */\n readonly name: string;\n /** The version of the resource */\n readonly version: string;\n /** The asset description text. */\n description?: string;\n /** Tag dictionary. Tags can be added, removed, and updated. */\n tags?: Record<string, string>;\n}\n\nexport function datasetVersionSerializer(item: DatasetVersion): any {\n return {\n dataUri: item[\"dataUri\"],\n type: item[\"type\"],\n connectionName: item[\"connectionName\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\nexport function datasetVersionDeserializer(item: any): DatasetVersion {\n return {\n dataUri: item[\"dataUri\"],\n type: item[\"type\"],\n isReference: item[\"isReference\"],\n connectionName: item[\"connectionName\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\n/** Alias for DatasetVersionUnion */\nexport type DatasetVersionUnion = FileDatasetVersion | FolderDatasetVersion | DatasetVersion;\n\nexport function datasetVersionUnionSerializer(item: DatasetVersionUnion): any {\n switch (item.type) {\n case \"uri_file\":\n return fileDatasetVersionSerializer(item as FileDatasetVersion);\n\n case \"uri_folder\":\n return folderDatasetVersionSerializer(item as FolderDatasetVersion);\n\n default:\n return datasetVersionSerializer(item);\n }\n}\n\nexport function datasetVersionUnionDeserializer(item: any): DatasetVersionUnion {\n switch (item.type) {\n case \"uri_file\":\n return fileDatasetVersionDeserializer(item as FileDatasetVersion);\n\n case \"uri_folder\":\n return folderDatasetVersionDeserializer(item as FolderDatasetVersion);\n\n default:\n return datasetVersionDeserializer(item);\n }\n}\n\n/** Enum to determine the type of data. */\nexport type DatasetType = \"uri_file\" | \"uri_folder\";\n\n/** FileDatasetVersion Definition */\nexport interface FileDatasetVersion extends DatasetVersion {\n /** Dataset type */\n type: \"uri_file\";\n}\n\nexport function fileDatasetVersionSerializer(item: FileDatasetVersion): any {\n return {\n dataUri: item[\"dataUri\"],\n type: item[\"type\"],\n connectionName: item[\"connectionName\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\nexport function fileDatasetVersionDeserializer(item: any): FileDatasetVersion {\n return {\n dataUri: item[\"dataUri\"],\n type: item[\"type\"],\n isReference: item[\"isReference\"],\n connectionName: item[\"connectionName\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\n/** FileDatasetVersion Definition */\nexport interface FolderDatasetVersion extends DatasetVersion {\n /** Dataset type */\n type: \"uri_folder\";\n}\n\nexport function folderDatasetVersionSerializer(item: FolderDatasetVersion): any {\n return {\n dataUri: item[\"dataUri\"],\n type: item[\"type\"],\n connectionName: item[\"connectionName\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\nexport function folderDatasetVersionDeserializer(item: any): FolderDatasetVersion {\n return {\n dataUri: item[\"dataUri\"],\n type: item[\"type\"],\n isReference: item[\"isReference\"],\n connectionName: item[\"connectionName\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\n/** Represents a request for a pending upload. */\nexport interface PendingUploadRequest {\n /** If PendingUploadId is not provided, a random GUID will be used. */\n pendingUploadId?: string;\n /** Azure Storage Account connection name to use for generating temporary SAS token */\n connectionName?: string;\n /** BlobReference is the only supported type. */\n pendingUploadType: \"BlobReference\";\n}\n\nexport function pendingUploadRequestSerializer(item: PendingUploadRequest): any {\n return {\n pendingUploadId: item[\"pendingUploadId\"],\n connectionName: item[\"connectionName\"],\n pendingUploadType: item[\"pendingUploadType\"],\n };\n}\n\n/** Represents the response for a pending upload request */\nexport interface PendingUploadResponse {\n /** Container-level read, write, list SAS. */\n blobReference: BlobReference;\n /** ID for this upload request. */\n pendingUploadId: string;\n /** Version of asset to be created if user did not specify version when initially creating upload */\n version?: string;\n /** BlobReference is the only supported type */\n pendingUploadType: \"BlobReference\";\n}\n\nexport function pendingUploadResponseDeserializer(item: any): PendingUploadResponse {\n return {\n blobReference: blobReferenceDeserializer(item[\"blobReference\"]),\n pendingUploadId: item[\"pendingUploadId\"],\n version: item[\"version\"],\n pendingUploadType: item[\"pendingUploadType\"],\n };\n}\n\n/** Blob reference details. */\nexport interface BlobReference {\n /** Blob URI path for client to upload data. Example: `https://blob.windows.core.net/Container/Path` */\n blobUri: string;\n /** ARM ID of the storage account to use. */\n storageAccountArmId: string;\n /** Credential info to access the storage account. */\n credential: SasCredential;\n}\n\nexport function blobReferenceDeserializer(item: any): BlobReference {\n return {\n blobUri: item[\"blobUri\"],\n storageAccountArmId: item[\"storageAccountArmId\"],\n credential: SasCredentialDeserializer(item[\"credential\"]),\n };\n}\n\n/** SAS Credential definition */\nexport interface SasCredential {\n /** SAS uri */\n readonly sasUri: string;\n /** Type of credential */\n readonly type: \"SAS\";\n}\n\nexport function SasCredentialDeserializer(item: any): SasCredential {\n return {\n sasUri: item[\"sasUri\"],\n type: item[\"type\"],\n };\n}\n\n/** Represents a reference to a blob for consumption */\nexport interface DatasetCredential {\n /** Credential info to access the storage account. */\n blobReference: BlobReference;\n}\n\nexport function datasetCredentialDeserializer(item: any): DatasetCredential {\n return {\n blobReference: blobReferenceDeserializer(item[\"blobReference\"]),\n };\n}\n\n/** Paged collection of Index items */\nexport interface _PagedIndex {\n /** The Index items on this page */\n value: IndexUnion[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedIndexDeserializer(item: any): _PagedIndex {\n return {\n value: indexUnionArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function indexUnionArraySerializer(result: Array<IndexUnion>): any[] {\n return result.map((item) => {\n return indexUnionSerializer(item);\n });\n}\n\nexport function indexUnionArrayDeserializer(result: Array<IndexUnion>): any[] {\n return result.map((item) => {\n return indexUnionDeserializer(item);\n });\n}\n\n/** Index resource Definition */\nexport interface Index {\n /** Type of index */\n /** The discriminator possible values: AzureSearch, ManagedAzureSearch, CosmosDBNoSqlVectorStore */\n type: IndexType;\n /** Asset ID, a unique identifier for the asset */\n readonly id?: string;\n /** The name of the resource */\n readonly name: string;\n /** The version of the resource */\n readonly version: string;\n /** The asset description text. */\n description?: string;\n /** Tag dictionary. Tags can be added, removed, and updated. */\n tags?: Record<string, string>;\n}\n\nexport function indexSerializer(item: Index): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\nexport function indexDeserializer(item: any): Index {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\n/** Alias for IndexUnion */\nexport type IndexUnion = AzureAISearchIndex | ManagedAzureAISearchIndex | CosmosDBIndex | Index;\n\nexport function indexUnionSerializer(item: IndexUnion): any {\n switch (item.type) {\n case \"AzureSearch\":\n return azureAISearchIndexSerializer(item as AzureAISearchIndex);\n\n case \"ManagedAzureSearch\":\n return managedAzureAISearchIndexSerializer(item as ManagedAzureAISearchIndex);\n\n case \"CosmosDBNoSqlVectorStore\":\n return cosmosDBIndexSerializer(item as CosmosDBIndex);\n\n default:\n return indexSerializer(item);\n }\n}\n\nexport function indexUnionDeserializer(item: any): IndexUnion {\n switch (item.type) {\n case \"AzureSearch\":\n return azureAISearchIndexDeserializer(item as AzureAISearchIndex);\n\n case \"ManagedAzureSearch\":\n return managedAzureAISearchIndexDeserializer(item as ManagedAzureAISearchIndex);\n\n case \"CosmosDBNoSqlVectorStore\":\n return cosmosDBIndexDeserializer(item as CosmosDBIndex);\n\n default:\n return indexDeserializer(item);\n }\n}\n\n/** Type of IndexType */\nexport type IndexType = \"AzureSearch\" | \"CosmosDBNoSqlVectorStore\" | \"ManagedAzureSearch\";\n\n/** Azure AI Search Index Definition */\nexport interface AzureAISearchIndex extends Index {\n /** Type of index */\n type: \"AzureSearch\";\n /** Name of connection to Azure AI Search */\n connectionName: string;\n /** Name of index in Azure AI Search resource to attach */\n indexName: string;\n /** Field mapping configuration */\n fieldMapping?: FieldMapping;\n}\n\nexport function azureAISearchIndexSerializer(item: AzureAISearchIndex): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n connectionName: item[\"connectionName\"],\n indexName: item[\"indexName\"],\n fieldMapping: !item[\"fieldMapping\"]\n ? item[\"fieldMapping\"]\n : fieldMappingSerializer(item[\"fieldMapping\"]),\n };\n}\n\nexport function azureAISearchIndexDeserializer(item: any): AzureAISearchIndex {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n connectionName: item[\"connectionName\"],\n indexName: item[\"indexName\"],\n fieldMapping: !item[\"fieldMapping\"]\n ? item[\"fieldMapping\"]\n : fieldMappingDeserializer(item[\"fieldMapping\"]),\n };\n}\n\n/** Field mapping configuration class */\nexport interface FieldMapping {\n /** List of fields with text content */\n contentFields: string[];\n /** Path of file to be used as a source of text content */\n filepathField?: string;\n /** Field containing the title of the document */\n titleField?: string;\n /** Field containing the url of the document */\n urlField?: string;\n /** List of fields with vector content */\n vectorFields?: string[];\n /** List of fields with metadata content */\n metadataFields?: string[];\n}\n\nexport function fieldMappingSerializer(item: FieldMapping): any {\n return {\n contentFields: item[\"contentFields\"].map((p: any) => {\n return p;\n }),\n filepathField: item[\"filepathField\"],\n titleField: item[\"titleField\"],\n urlField: item[\"urlField\"],\n vectorFields: !item[\"vectorFields\"]\n ? item[\"vectorFields\"]\n : item[\"vectorFields\"].map((p: any) => {\n return p;\n }),\n metadataFields: !item[\"metadataFields\"]\n ? item[\"metadataFields\"]\n : item[\"metadataFields\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function fieldMappingDeserializer(item: any): FieldMapping {\n return {\n contentFields: item[\"contentFields\"].map((p: any) => {\n return p;\n }),\n filepathField: item[\"filepathField\"],\n titleField: item[\"titleField\"],\n urlField: item[\"urlField\"],\n vectorFields: !item[\"vectorFields\"]\n ? item[\"vectorFields\"]\n : item[\"vectorFields\"].map((p: any) => {\n return p;\n }),\n metadataFields: !item[\"metadataFields\"]\n ? item[\"metadataFields\"]\n : item[\"metadataFields\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Managed Azure AI Search Index Definition */\nexport interface ManagedAzureAISearchIndex extends Index {\n /** Type of index */\n type: \"ManagedAzureSearch\";\n /** Vector store id of managed index */\n vectorStoreId: string;\n}\n\nexport function managedAzureAISearchIndexSerializer(item: ManagedAzureAISearchIndex): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n vectorStoreId: item[\"vectorStoreId\"],\n };\n}\n\nexport function managedAzureAISearchIndexDeserializer(item: any): ManagedAzureAISearchIndex {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n vectorStoreId: item[\"vectorStoreId\"],\n };\n}\n\n/** CosmosDB Vector Store Index Definition */\nexport interface CosmosDBIndex extends Index {\n /** Type of index */\n type: \"CosmosDBNoSqlVectorStore\";\n /** Name of connection to CosmosDB */\n connectionName: string;\n /** Name of the CosmosDB Database */\n databaseName: string;\n /** Name of CosmosDB Container */\n containerName: string;\n /** Embedding model configuration */\n embeddingConfiguration: EmbeddingConfiguration;\n /** Field mapping configuration */\n fieldMapping: FieldMapping;\n}\n\nexport function cosmosDBIndexSerializer(item: CosmosDBIndex): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n connectionName: item[\"connectionName\"],\n databaseName: item[\"databaseName\"],\n containerName: item[\"containerName\"],\n embeddingConfiguration: embeddingConfigurationSerializer(item[\"embeddingConfiguration\"]),\n fieldMapping: fieldMappingSerializer(item[\"fieldMapping\"]),\n };\n}\n\nexport function cosmosDBIndexDeserializer(item: any): CosmosDBIndex {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n connectionName: item[\"connectionName\"],\n databaseName: item[\"databaseName\"],\n containerName: item[\"containerName\"],\n embeddingConfiguration: embeddingConfigurationDeserializer(item[\"embeddingConfiguration\"]),\n fieldMapping: fieldMappingDeserializer(item[\"fieldMapping\"]),\n };\n}\n\n/** Embedding configuration class */\nexport interface EmbeddingConfiguration {\n /** Deployment name of embedding model. It can point to a model deployment either in the parent AIServices or a connection. */\n modelDeploymentName: string;\n /** Embedding field */\n embeddingField: string;\n}\n\nexport function embeddingConfigurationSerializer(item: EmbeddingConfiguration): any {\n return {\n modelDeploymentName: item[\"modelDeploymentName\"],\n embeddingField: item[\"embeddingField\"],\n };\n}\n\nexport function embeddingConfigurationDeserializer(item: any): EmbeddingConfiguration {\n return {\n modelDeploymentName: item[\"modelDeploymentName\"],\n embeddingField: item[\"embeddingField\"],\n };\n}\n\n/** Model Deployment Definition */\nexport interface Deployment {\n /** The type of the deployment */\n /** The discriminator possible values: ModelDeployment */\n type: DeploymentType;\n /** Name of the deployment */\n readonly name: string;\n}\n\nexport function deploymentDeserializer(item: any): Deployment {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n };\n}\n\n/** Alias for DeploymentUnion */\nexport type DeploymentUnion = ModelDeployment | Deployment;\n\nexport function deploymentUnionDeserializer(item: any): DeploymentUnion {\n switch (item.type) {\n case \"ModelDeployment\":\n return modelDeploymentDeserializer(item as ModelDeployment);\n\n default:\n return deploymentDeserializer(item);\n }\n}\n\n/** Type of DeploymentType */\nexport type DeploymentType = \"ModelDeployment\";\n\n/** Model Deployment Definition */\nexport interface ModelDeployment extends Deployment {\n /** The type of the deployment */\n type: \"ModelDeployment\";\n /** Publisher-specific name of the deployed model */\n readonly modelName: string;\n /** Publisher-specific version of the deployed model */\n readonly modelVersion: string;\n /** Name of the deployed model's publisher */\n readonly modelPublisher: string;\n /** Capabilities of deployed model */\n readonly capabilities: Record<string, string>;\n /** Sku of the model deployment */\n readonly sku: ModelDeploymentSku;\n /** Name of the connection the deployment comes from */\n readonly connectionName?: string;\n}\n\nexport function modelDeploymentDeserializer(item: any): ModelDeployment {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n modelName: item[\"modelName\"],\n modelVersion: item[\"modelVersion\"],\n modelPublisher: item[\"modelPublisher\"],\n capabilities: item[\"capabilities\"],\n sku: modelDeploymentSkuDeserializer(item[\"sku\"]),\n connectionName: item[\"connectionName\"],\n };\n}\n\n/** Sku information */\nexport interface ModelDeploymentSku {\n /** Sku capacity */\n capacity: number;\n /** Sku family */\n family: string;\n /** Sku name */\n name: string;\n /** Sku size */\n size: string;\n /** Sku tier */\n tier: string;\n}\n\nexport function modelDeploymentSkuDeserializer(item: any): ModelDeploymentSku {\n return {\n capacity: item[\"capacity\"],\n family: item[\"family\"],\n name: item[\"name\"],\n size: item[\"size\"],\n tier: item[\"tier\"],\n };\n}\n\n/** Paged collection of Deployment items */\nexport interface _PagedDeployment {\n /** The Deployment items on this page */\n value: DeploymentUnion[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedDeploymentDeserializer(item: any): _PagedDeployment {\n return {\n value: deploymentUnionArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function deploymentUnionArrayDeserializer(result: Array<DeploymentUnion>): any[] {\n return result.map((item) => {\n return deploymentUnionDeserializer(item);\n });\n}\n\n/** Red team details. */\nexport interface RedTeam {\n /** Identifier of the red team run. */\n readonly name: string;\n /** Name of the red-team run. */\n displayName?: string;\n /** Number of simulation rounds. */\n numTurns?: number;\n /** List of attack strategies or nested lists of attack strategies. */\n attackStrategies?: AttackStrategy[];\n /** Simulation-only or Simulation + Evaluation. Default false, if true the scan outputs conversation not evaluation result. */\n simulationOnly?: boolean;\n /** List of risk categories to generate attack objectives for. */\n riskCategories?: RiskCategory[];\n /** Application scenario for the red team operation, to generate scenario specific attacks. */\n applicationScenario?: string;\n /** Red team's tags. Unlike properties, tags are fully mutable. */\n tags?: Record<string, string>;\n /** Red team's properties. Unlike tags, properties are add-only. Once added, a property cannot be removed. */\n properties?: Record<string, string>;\n /** Status of the red-team. It is set by service and is read-only. */\n readonly status?: string;\n /** Target configuration for the red-team run. */\n target: TargetConfigUnion;\n}\n\nexport function redTeamSerializer(item: RedTeam): any {\n return {\n displayName: item[\"displayName\"],\n numTurns: item[\"numTurns\"],\n attackStrategies: !item[\"attackStrategies\"]\n ? item[\"attackStrategies\"]\n : item[\"attackStrategies\"].map((p: any) => {\n return p;\n }),\n simulationOnly: item[\"simulationOnly\"],\n riskCategories: !item[\"riskCategories\"]\n ? item[\"riskCategories\"]\n : item[\"riskCategories\"].map((p: any) => {\n return p;\n }),\n applicationScenario: item[\"applicationScenario\"],\n tags: item[\"tags\"],\n properties: item[\"properties\"],\n target: targetConfigUnionSerializer(item[\"target\"]),\n };\n}\n\nexport function redTeamDeserializer(item: any): RedTeam {\n return {\n name: item[\"id\"],\n displayName: item[\"displayName\"],\n numTurns: item[\"numTurns\"],\n attackStrategies: !item[\"attackStrategies\"]\n ? item[\"attackStrategies\"]\n : item[\"attackStrategies\"].map((p: any) => {\n return p;\n }),\n simulationOnly: item[\"simulationOnly\"],\n riskCategories: !item[\"riskCategories\"]\n ? item[\"riskCategories\"]\n : item[\"riskCategories\"].map((p: any) => {\n return p;\n }),\n applicationScenario: item[\"applicationScenario\"],\n tags: item[\"tags\"],\n properties: item[\"properties\"],\n status: item[\"status\"],\n target: targetConfigUnionDeserializer(item[\"target\"]),\n };\n}\n\n/** Strategies for attacks. */\nexport type AttackStrategy =\n | \"easy\"\n | \"moderate\"\n | \"difficult\"\n | \"ascii_art\"\n | \"ascii_smuggler\"\n | \"atbash\"\n | \"base64\"\n | \"binary\"\n | \"caesar\"\n | \"character_space\"\n | \"jailbreak\"\n | \"ansii_attack\"\n | \"character_swap\"\n | \"suffix_append\"\n | \"string_join\"\n | \"unicode_confusable\"\n | \"unicode_substitution\"\n | \"diacritic\"\n | \"flip\"\n | \"leetspeak\"\n | \"rot13\"\n | \"morse\"\n | \"url\"\n | \"baseline\"\n | \"indirect_jailbreak\"\n | \"tense\"\n | \"multi_turn\"\n | \"crescendo\";\n/** Risk category for the attack objective. */\nexport type RiskCategory =\n | \"HateUnfairness\"\n | \"Violence\"\n | \"Sexual\"\n | \"SelfHarm\"\n | \"ProtectedMaterial\"\n | \"CodeVulnerability\"\n | \"UngroundedAttributes\"\n | \"ProhibitedActions\"\n | \"SensitiveDataLeakage\"\n | \"TaskAdherence\";\n\n/** Abstract class for target configuration. */\nexport interface TargetConfig {\n /** Type of the model configuration. */\n /** The discriminator possible values: AzureOpenAIModel */\n type: string;\n}\n\nexport function targetConfigSerializer(item: TargetConfig): any {\n return { type: item[\"type\"] };\n}\n\nexport function targetConfigDeserializer(item: any): TargetConfig {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for TargetConfigUnion */\nexport type TargetConfigUnion = AzureOpenAIModelConfiguration | TargetConfig;\n\nexport function targetConfigUnionSerializer(item: TargetConfigUnion): any {\n switch (item.type) {\n case \"AzureOpenAIModel\":\n return azureOpenAIModelConfigurationSerializer(item as AzureOpenAIModelConfiguration);\n\n default:\n return targetConfigSerializer(item);\n }\n}\n\nexport function targetConfigUnionDeserializer(item: any): TargetConfigUnion {\n switch (item.type) {\n case \"AzureOpenAIModel\":\n return azureOpenAIModelConfigurationDeserializer(item as AzureOpenAIModelConfiguration);\n\n default:\n return targetConfigDeserializer(item);\n }\n}\n\n/** Azure OpenAI model configuration. The API version would be selected by the service for querying the model. */\nexport interface AzureOpenAIModelConfiguration extends TargetConfig {\n type: \"AzureOpenAIModel\";\n /** Deployment name for AOAI model. Example: gpt-4o if in AIServices or connection based `connection_name/deployment_name` (e.g. `my-aoai-connection/gpt-4o`). */\n modelDeploymentName: string;\n}\n\nexport function azureOpenAIModelConfigurationSerializer(item: AzureOpenAIModelConfiguration): any {\n return {\n type: item[\"type\"],\n modelDeploymentName: item[\"modelDeploymentName\"],\n };\n}\n\nexport function azureOpenAIModelConfigurationDeserializer(\n item: any,\n): AzureOpenAIModelConfiguration {\n return {\n type: item[\"type\"],\n modelDeploymentName: item[\"modelDeploymentName\"],\n };\n}\n\n/** Paged collection of RedTeam items */\nexport interface _PagedRedTeam {\n /** The RedTeam items on this page */\n value: RedTeam[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedRedTeamDeserializer(item: any): _PagedRedTeam {\n return {\n value: redTeamArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function redTeamArraySerializer(result: Array<RedTeam>): any[] {\n return result.map((item) => {\n return redTeamSerializer(item);\n });\n}\n\nexport function redTeamArrayDeserializer(result: Array<RedTeam>): any[] {\n return result.map((item) => {\n return redTeamDeserializer(item);\n });\n}\n\n/** Evaluation rule model. */\nexport interface EvaluationRule {\n /** Unique identifier for the evaluation rule. */\n readonly id: string;\n /** Display Name for the evaluation rule. */\n displayName?: string;\n /** Description for the evaluation rule. */\n description?: string;\n /** Definition of the evaluation rule action. */\n action: EvaluationRuleActionUnion;\n /** Filter condition of the evaluation rule. */\n filter?: EvaluationRuleFilter;\n /** Event type that the evaluation rule applies to. */\n eventType: EvaluationRuleEventType;\n /** Indicates whether the evaluation rule is enabled. Default is true. */\n enabled: boolean;\n /** System metadata for the evaluation rule. */\n readonly systemData: Record<string, string>;\n}\n\nexport function evaluationRuleSerializer(item: EvaluationRule): any {\n return {\n displayName: item[\"displayName\"],\n description: item[\"description\"],\n action: evaluationRuleActionUnionSerializer(item[\"action\"]),\n filter: !item[\"filter\"] ? item[\"filter\"] : evaluationRuleFilterSerializer(item[\"filter\"]),\n eventType: item[\"eventType\"],\n enabled: item[\"enabled\"],\n };\n}\n\nexport function evaluationRuleDeserializer(item: any): EvaluationRule {\n return {\n id: item[\"id\"],\n displayName: item[\"displayName\"],\n description: item[\"description\"],\n action: evaluationRuleActionUnionDeserializer(item[\"action\"]),\n filter: !item[\"filter\"] ? item[\"filter\"] : evaluationRuleFilterDeserializer(item[\"filter\"]),\n eventType: item[\"eventType\"],\n enabled: item[\"enabled\"],\n systemData: item[\"systemData\"],\n };\n}\n\n/** Evaluation action model. */\nexport interface EvaluationRuleAction {\n /** Type of the evaluation action. */\n /** The discriminator possible values: continuousEvaluation, humanEvaluation */\n type: EvaluationRuleActionType;\n}\n\nexport function evaluationRuleActionSerializer(item: EvaluationRuleAction): any {\n return { type: item[\"type\"] };\n}\n\nexport function evaluationRuleActionDeserializer(item: any): EvaluationRuleAction {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for EvaluationRuleActionUnion */\nexport type EvaluationRuleActionUnion =\n | ContinuousEvaluationRuleAction\n | HumanEvaluationRuleAction\n | EvaluationRuleAction;\n\nexport function evaluationRuleActionUnionSerializer(item: EvaluationRuleActionUnion): any {\n switch (item.type) {\n case \"continuousEvaluation\":\n return continuousEvaluationRuleActionSerializer(item as ContinuousEvaluationRuleAction);\n\n case \"humanEvaluation\":\n return humanEvaluationRuleActionSerializer(item as HumanEvaluationRuleAction);\n\n default:\n return evaluationRuleActionSerializer(item);\n }\n}\n\nexport function evaluationRuleActionUnionDeserializer(item: any): EvaluationRuleActionUnion {\n switch (item.type) {\n case \"continuousEvaluation\":\n return continuousEvaluationRuleActionDeserializer(item as ContinuousEvaluationRuleAction);\n\n case \"humanEvaluation\":\n return humanEvaluationRuleActionDeserializer(item as HumanEvaluationRuleAction);\n\n default:\n return evaluationRuleActionDeserializer(item);\n }\n}\n\n/** Type of the evaluation action. */\nexport type EvaluationRuleActionType = \"continuousEvaluation\" | \"humanEvaluation\";\n\n/** Evaluation rule action for continuous evaluation. */\nexport interface ContinuousEvaluationRuleAction extends EvaluationRuleAction {\n type: \"continuousEvaluation\";\n /** Eval Id to add continuous evaluation runs to. */\n evalId: string;\n /** Maximum number of evaluation runs allowed per hour. */\n maxHourlyRuns?: number;\n}\n\nexport function continuousEvaluationRuleActionSerializer(\n item: ContinuousEvaluationRuleAction,\n): any {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n maxHourlyRuns: item[\"maxHourlyRuns\"],\n };\n}\n\nexport function continuousEvaluationRuleActionDeserializer(\n item: any,\n): ContinuousEvaluationRuleAction {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n maxHourlyRuns: item[\"maxHourlyRuns\"],\n };\n}\n\n/** Evaluation rule action for human evaluation. */\nexport interface HumanEvaluationRuleAction extends EvaluationRuleAction {\n type: \"humanEvaluation\";\n /** Human evaluation template Id. */\n templateId: string;\n}\n\nexport function humanEvaluationRuleActionSerializer(item: HumanEvaluationRuleAction): any {\n return { type: item[\"type\"], templateId: item[\"templateId\"] };\n}\n\nexport function humanEvaluationRuleActionDeserializer(item: any): HumanEvaluationRuleAction {\n return {\n type: item[\"type\"],\n templateId: item[\"templateId\"],\n };\n}\n\n/** Evaluation filter model. */\nexport interface EvaluationRuleFilter {\n /** Filter by agent name. */\n agentName: string;\n}\n\nexport function evaluationRuleFilterSerializer(item: EvaluationRuleFilter): any {\n return { agentName: item[\"agentName\"] };\n}\n\nexport function evaluationRuleFilterDeserializer(item: any): EvaluationRuleFilter {\n return {\n agentName: item[\"agentName\"],\n };\n}\n\n/** Type of the evaluation rule event. */\nexport type EvaluationRuleEventType = \"responseCompleted\" | \"manual\";\n\n/** Paged collection of EvaluationRule items */\nexport interface _PagedEvaluationRule {\n /** The EvaluationRule items on this page */\n value: EvaluationRule[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedEvaluationRuleDeserializer(item: any): _PagedEvaluationRule {\n return {\n value: evaluationRuleArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function evaluationRuleArraySerializer(result: Array<EvaluationRule>): any[] {\n return result.map((item) => {\n return evaluationRuleSerializer(item);\n });\n}\n\nexport function evaluationRuleArrayDeserializer(result: Array<EvaluationRule>): any[] {\n return result.map((item) => {\n return evaluationRuleDeserializer(item);\n });\n}\n\n/** Evaluation Taxonomy Definition */\nexport interface EvaluationTaxonomy {\n /** Asset ID, a unique identifier for the asset */\n readonly id?: string;\n /** The name of the resource */\n readonly name: string;\n /** The version of the resource */\n readonly version: string;\n /** The asset description text. */\n description?: string;\n /** Tag dictionary. Tags can be added, removed, and updated. */\n tags?: Record<string, string>;\n /** Input configuration for the evaluation taxonomy. */\n taxonomyInput: EvaluationTaxonomyInputUnion;\n /** List of taxonomy categories. */\n taxonomyCategories?: TaxonomyCategory[];\n /** Additional properties for the evaluation taxonomy. */\n properties?: Record<string, string>;\n}\n\nexport function evaluationTaxonomySerializer(item: EvaluationTaxonomy): any {\n return {\n description: item[\"description\"],\n tags: item[\"tags\"],\n taxonomyInput: evaluationTaxonomyInputUnionSerializer(item[\"taxonomyInput\"]),\n taxonomyCategories: !item[\"taxonomyCategories\"]\n ? item[\"taxonomyCategories\"]\n : taxonomyCategoryArraySerializer(item[\"taxonomyCategories\"]),\n properties: item[\"properties\"],\n };\n}\n\nexport function evaluationTaxonomyDeserializer(item: any): EvaluationTaxonomy {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n taxonomyInput: evaluationTaxonomyInputUnionDeserializer(item[\"taxonomyInput\"]),\n taxonomyCategories: !item[\"taxonomyCategories\"]\n ? item[\"taxonomyCategories\"]\n : taxonomyCategoryArrayDeserializer(item[\"taxonomyCategories\"]),\n properties: item[\"properties\"],\n };\n}\n\n/** Input configuration for the evaluation taxonomy. */\nexport interface EvaluationTaxonomyInput {\n /** Input type of the evaluation taxonomy. */\n /** The discriminator possible values: agent */\n type: EvaluationTaxonomyInputType;\n}\n\nexport function evaluationTaxonomyInputSerializer(item: EvaluationTaxonomyInput): any {\n return { type: item[\"type\"] };\n}\n\nexport function evaluationTaxonomyInputDeserializer(item: any): EvaluationTaxonomyInput {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for EvaluationTaxonomyInputUnion */\nexport type EvaluationTaxonomyInputUnion = AgentTaxonomyInput | EvaluationTaxonomyInput;\n\nexport function evaluationTaxonomyInputUnionSerializer(item: EvaluationTaxonomyInputUnion): any {\n switch (item.type) {\n case \"agent\":\n return agentTaxonomyInputSerializer(item as AgentTaxonomyInput);\n\n default:\n return evaluationTaxonomyInputSerializer(item);\n }\n}\n\nexport function evaluationTaxonomyInputUnionDeserializer(item: any): EvaluationTaxonomyInputUnion {\n switch (item.type) {\n case \"agent\":\n return agentTaxonomyInputDeserializer(item as AgentTaxonomyInput);\n\n default:\n return evaluationTaxonomyInputDeserializer(item);\n }\n}\n\n/** Type of the evaluation taxonomy input. */\nexport type EvaluationTaxonomyInputType = \"agent\" | \"policy\";\n\n/** Input configuration for the evaluation taxonomy when the input type is agent. */\nexport interface AgentTaxonomyInput extends EvaluationTaxonomyInput {\n /** Input type of the evaluation taxonomy. */\n type: \"agent\";\n /** Target configuration for the agent. */\n target: AzureAIAgentTarget;\n /** List of risk categories to evaluate against. */\n riskCategories: RiskCategory[];\n}\n\nexport function agentTaxonomyInputSerializer(item: AgentTaxonomyInput): any {\n return {\n type: item[\"type\"],\n target: azureAIAgentTargetSerializer(item[\"target\"]),\n riskCategories: item[\"riskCategories\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function agentTaxonomyInputDeserializer(item: any): AgentTaxonomyInput {\n return {\n type: item[\"type\"],\n target: azureAIAgentTargetDeserializer(item[\"target\"]),\n riskCategories: item[\"riskCategories\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Represents a target specifying an Azure AI agent. */\nexport interface AzureAIAgentTarget extends Target {\n /** The type of target, always `azure_ai_agent`. */\n type: \"azure_ai_agent\";\n /** The unique identifier of the Azure AI agent. */\n name: string;\n /** The version of the Azure AI agent. */\n version?: string;\n /** The parameters used to control the sampling behavior of the agent during text generation. */\n tool_descriptions?: ToolDescription[];\n}\n\nexport function azureAIAgentTargetSerializer(item: AzureAIAgentTarget): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n version: item[\"version\"],\n tool_descriptions: !item[\"tool_descriptions\"]\n ? item[\"tool_descriptions\"]\n : toolDescriptionArraySerializer(item[\"tool_descriptions\"]),\n };\n}\n\nexport function azureAIAgentTargetDeserializer(item: any): AzureAIAgentTarget {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n version: item[\"version\"],\n tool_descriptions: !item[\"tool_descriptions\"]\n ? item[\"tool_descriptions\"]\n : toolDescriptionArrayDeserializer(item[\"tool_descriptions\"]),\n };\n}\n\nexport function toolDescriptionArraySerializer(result: Array<ToolDescription>): any[] {\n return result.map((item) => {\n return toolDescriptionSerializer(item);\n });\n}\n\nexport function toolDescriptionArrayDeserializer(result: Array<ToolDescription>): any[] {\n return result.map((item) => {\n return toolDescriptionDeserializer(item);\n });\n}\n\n/** Description of a tool that can be used by an agent. */\nexport interface ToolDescription {\n /** The name of the tool. */\n name?: string;\n /** A brief description of the tool's purpose. */\n description?: string;\n}\n\nexport function toolDescriptionSerializer(item: ToolDescription): any {\n return { name: item[\"name\"], description: item[\"description\"] };\n}\n\nexport function toolDescriptionDeserializer(item: any): ToolDescription {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n };\n}\n\nexport function taxonomyCategoryArraySerializer(result: Array<TaxonomyCategory>): any[] {\n return result.map((item) => {\n return taxonomyCategorySerializer(item);\n });\n}\n\nexport function taxonomyCategoryArrayDeserializer(result: Array<TaxonomyCategory>): any[] {\n return result.map((item) => {\n return taxonomyCategoryDeserializer(item);\n });\n}\n\n/** Taxonomy category definition. */\nexport interface TaxonomyCategory {\n /** Unique identifier of the taxonomy category. */\n id: string;\n /** Name of the taxonomy category. */\n name: string;\n /** Description of the taxonomy category. */\n description?: string;\n /** Risk category associated with this taxonomy category. */\n riskCategory: RiskCategory;\n /** List of taxonomy sub categories. */\n subCategories: TaxonomySubCategory[];\n /** Additional properties for the taxonomy category. */\n properties?: Record<string, string>;\n}\n\nexport function taxonomyCategorySerializer(item: TaxonomyCategory): any {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n description: item[\"description\"],\n riskCategory: item[\"riskCategory\"],\n subCategories: taxonomySubCategoryArraySerializer(item[\"subCategories\"]),\n properties: item[\"properties\"],\n };\n}\n\nexport function taxonomyCategoryDeserializer(item: any): TaxonomyCategory {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n description: item[\"description\"],\n riskCategory: item[\"riskCategory\"],\n subCategories: taxonomySubCategoryArrayDeserializer(item[\"subCategories\"]),\n properties: item[\"properties\"],\n };\n}\n\nexport function taxonomySubCategoryArraySerializer(result: Array<TaxonomySubCategory>): any[] {\n return result.map((item) => {\n return taxonomySubCategorySerializer(item);\n });\n}\n\nexport function taxonomySubCategoryArrayDeserializer(result: Array<TaxonomySubCategory>): any[] {\n return result.map((item) => {\n return taxonomySubCategoryDeserializer(item);\n });\n}\n\n/** Taxonomy sub-category definition. */\nexport interface TaxonomySubCategory {\n /** Unique identifier of the taxonomy sub-category. */\n id: string;\n /** Name of the taxonomy sub-category. */\n name: string;\n /** Description of the taxonomy sub-category. */\n description?: string;\n /** List of taxonomy items under this sub-category. */\n enabled: boolean;\n /** Additional properties for the taxonomy sub-category. */\n properties?: Record<string, string>;\n}\n\nexport function taxonomySubCategorySerializer(item: TaxonomySubCategory): any {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n description: item[\"description\"],\n enabled: item[\"enabled\"],\n properties: item[\"properties\"],\n };\n}\n\nexport function taxonomySubCategoryDeserializer(item: any): TaxonomySubCategory {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n description: item[\"description\"],\n enabled: item[\"enabled\"],\n properties: item[\"properties\"],\n };\n}\n\n/** Base class for targets with discriminator support. */\nexport interface Target {\n /** The type of target. */\n /** The discriminator possible values: azure_ai_model, azure_ai_agent, azure_ai_assistant */\n type: string;\n}\n\nexport function targetSerializer(item: Target): any {\n return { type: item[\"type\"] };\n}\n\nexport function targetDeserializer(item: any): Target {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for TargetUnion */\nexport type TargetUnion = AzureAIAgentTarget | Target;\n\nexport function targetUnionSerializer(item: TargetUnion): any {\n switch (item.type) {\n case \"azure_ai_agent\":\n return azureAIAgentTargetSerializer(item as AzureAIAgentTarget);\n\n default:\n return targetSerializer(item);\n }\n}\n\nexport function targetUnionDeserializer(item: any): TargetUnion {\n switch (item.type) {\n case \"azure_ai_agent\":\n return azureAIAgentTargetDeserializer(item as AzureAIAgentTarget);\n\n default:\n return targetDeserializer(item);\n }\n}\n\n/** Paged collection of EvaluationTaxonomy items */\nexport interface _PagedEvaluationTaxonomy {\n /** The EvaluationTaxonomy items on this page */\n value: EvaluationTaxonomy[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedEvaluationTaxonomyDeserializer(item: any): _PagedEvaluationTaxonomy {\n return {\n value: evaluationTaxonomyArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function evaluationTaxonomyArraySerializer(result: Array<EvaluationTaxonomy>): any[] {\n return result.map((item) => {\n return evaluationTaxonomySerializer(item);\n });\n}\n\nexport function evaluationTaxonomyArrayDeserializer(result: Array<EvaluationTaxonomy>): any[] {\n return result.map((item) => {\n return evaluationTaxonomyDeserializer(item);\n });\n}\n\n/** Paged collection of EvaluatorVersion items */\nexport interface _PagedEvaluatorVersion {\n /** The EvaluatorVersion items on this page */\n value: EvaluatorVersion[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedEvaluatorVersionDeserializer(item: any): _PagedEvaluatorVersion {\n return {\n value: evaluatorVersionArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function evaluatorVersionArraySerializer(result: Array<EvaluatorVersion>): any[] {\n return result.map((item) => {\n return evaluatorVersionSerializer(item);\n });\n}\n\nexport function evaluatorVersionArrayDeserializer(result: Array<EvaluatorVersion>): any[] {\n return result.map((item) => {\n return evaluatorVersionDeserializer(item);\n });\n}\n\n/** Evaluator Definition */\nexport interface EvaluatorVersion {\n /** Display Name for evaluator. It helps to find the evaluator easily in Microsoft Foundry. It does not need to be unique. */\n display_name?: string;\n /** Metadata about the evaluator */\n metadata?: Record<string, string>;\n /** The type of the evaluator */\n evaluator_type: EvaluatorType;\n /** The categories of the evaluator */\n categories: EvaluatorCategory[];\n /** Definition of the evaluator */\n definition: EvaluatorDefinitionUnion;\n /** Creator of the evaluator */\n readonly created_by: string;\n /** Creation date/time of the evaluator */\n readonly created_at: number;\n /** Last modified date/time of the evaluator */\n readonly modified_at: number;\n /** Asset ID, a unique identifier for the asset */\n readonly id?: string;\n /** The name of the resource */\n readonly name: string;\n /** The version of the resource */\n readonly version: string;\n /** The asset description text. */\n description?: string;\n /** Tag dictionary. Tags can be added, removed, and updated. */\n tags?: Record<string, string>;\n}\n\nexport function evaluatorVersionSerializer(item: EvaluatorVersion): any {\n return {\n display_name: item[\"display_name\"],\n metadata: item[\"metadata\"],\n evaluator_type: item[\"evaluator_type\"],\n categories: item[\"categories\"].map((p: any) => {\n return p;\n }),\n definition: evaluatorDefinitionUnionSerializer(item[\"definition\"]),\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\nexport function evaluatorVersionDeserializer(item: any): EvaluatorVersion {\n return {\n display_name: item[\"display_name\"],\n metadata: item[\"metadata\"],\n evaluator_type: item[\"evaluator_type\"],\n categories: item[\"categories\"].map((p: any) => {\n return p;\n }),\n definition: evaluatorDefinitionUnionDeserializer(item[\"definition\"]),\n created_by: item[\"created_by\"],\n created_at: item[\"created_at\"],\n modified_at: item[\"modified_at\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\n/** The type of the evaluator */\nexport type EvaluatorType = \"builtin\" | \"custom\";\n/** The category of the evaluator */\nexport type EvaluatorCategory = \"quality\" | \"safety\" | \"agents\";\n\n/** Base evaluator configuration with discriminator */\nexport interface EvaluatorDefinition {\n /** The type of evaluator definition */\n /** The discriminator possible values: code, prompt */\n type: EvaluatorDefinitionType;\n /** The JSON schema (Draft 2020-12) for the evaluator's input parameters. This includes parameters like type, properties, required. */\n init_parameters?: unknown;\n /** The JSON schema (Draft 2020-12) for the evaluator's input data. This includes parameters like type, properties, required. */\n data_schema?: unknown;\n /** List of output metrics produced by this evaluator */\n metrics?: Record<string, EvaluatorMetric>;\n}\n\nexport function evaluatorDefinitionSerializer(item: EvaluatorDefinition): any {\n return {\n type: item[\"type\"],\n init_parameters: item[\"init_parameters\"],\n data_schema: item[\"data_schema\"],\n metrics: !item[\"metrics\"] ? item[\"metrics\"] : evaluatorMetricRecordSerializer(item[\"metrics\"]),\n };\n}\n\nexport function evaluatorDefinitionDeserializer(item: any): EvaluatorDefinition {\n return {\n type: item[\"type\"],\n init_parameters: item[\"init_parameters\"],\n data_schema: item[\"data_schema\"],\n metrics: !item[\"metrics\"]\n ? item[\"metrics\"]\n : evaluatorMetricRecordDeserializer(item[\"metrics\"]),\n };\n}\n\n/** Alias for EvaluatorDefinitionUnion */\nexport type EvaluatorDefinitionUnion =\n | CodeBasedEvaluatorDefinition\n | PromptBasedEvaluatorDefinition\n | EvaluatorDefinition;\n\nexport function evaluatorDefinitionUnionSerializer(item: EvaluatorDefinitionUnion): any {\n switch (item.type) {\n case \"code\":\n return codeBasedEvaluatorDefinitionSerializer(item as CodeBasedEvaluatorDefinition);\n\n case \"prompt\":\n return promptBasedEvaluatorDefinitionSerializer(item as PromptBasedEvaluatorDefinition);\n\n default:\n return evaluatorDefinitionSerializer(item);\n }\n}\n\nexport function evaluatorDefinitionUnionDeserializer(item: any): EvaluatorDefinitionUnion {\n switch (item.type) {\n case \"code\":\n return codeBasedEvaluatorDefinitionDeserializer(item as CodeBasedEvaluatorDefinition);\n\n case \"prompt\":\n return promptBasedEvaluatorDefinitionDeserializer(item as PromptBasedEvaluatorDefinition);\n\n default:\n return evaluatorDefinitionDeserializer(item);\n }\n}\n\n/** The type of evaluator definition */\nexport type EvaluatorDefinitionType =\n | \"prompt\"\n | \"code\"\n | \"prompt_and_code\"\n | \"service\"\n | \"openai_graders\";\n\nexport function evaluatorMetricRecordSerializer(\n item: Record<string, EvaluatorMetric>,\n): Record<string, any> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : evaluatorMetricSerializer(item[key]);\n });\n return result;\n}\n\nexport function evaluatorMetricRecordDeserializer(\n item: Record<string, any>,\n): Record<string, EvaluatorMetric> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : evaluatorMetricDeserializer(item[key]);\n });\n return result;\n}\n\n/** Evaluator Metric */\nexport interface EvaluatorMetric {\n /** Type of the metric. */\n type?: EvaluatorMetricType;\n /** It indicates whether a higher value is better or a lower value is better for this metric. */\n desirable_direction?: EvaluatorMetricDirection;\n /** Minimum value for the metric */\n min_value?: number;\n /** Maximum value for the metric. If not specified, it is assumed to be unbounded. */\n max_value?: number;\n /** Indicates if this metric is primary when there are multiple metrics. */\n is_primary?: boolean;\n}\n\nexport function evaluatorMetricSerializer(item: EvaluatorMetric): any {\n return {\n type: item[\"type\"],\n desirable_direction: item[\"desirable_direction\"],\n min_value: item[\"min_value\"],\n max_value: item[\"max_value\"],\n is_primary: item[\"is_primary\"],\n };\n}\n\nexport function evaluatorMetricDeserializer(item: any): EvaluatorMetric {\n return {\n type: item[\"type\"],\n desirable_direction: item[\"desirable_direction\"],\n min_value: item[\"min_value\"],\n max_value: item[\"max_value\"],\n is_primary: item[\"is_primary\"],\n };\n}\n\n/** The type of the evaluator */\nexport type EvaluatorMetricType = \"ordinal\" | \"continuous\" | \"boolean\";\n/** The direction of the metric indicating whether a higher value is better, a lower value is better, or neutral */\nexport type EvaluatorMetricDirection = \"increase\" | \"decrease\" | \"neutral\";\n\n/** Code-based evaluator definition using python code */\nexport interface CodeBasedEvaluatorDefinition extends EvaluatorDefinition {\n type: \"code\";\n /** Inline code text for the evaluator */\n code_text: string;\n}\n\nexport function codeBasedEvaluatorDefinitionSerializer(item: CodeBasedEvaluatorDefinition): any {\n return {\n type: item[\"type\"],\n init_parameters: item[\"init_parameters\"],\n data_schema: item[\"data_schema\"],\n metrics: !item[\"metrics\"] ? item[\"metrics\"] : evaluatorMetricRecordSerializer(item[\"metrics\"]),\n code_text: item[\"code_text\"],\n };\n}\n\nexport function codeBasedEvaluatorDefinitionDeserializer(item: any): CodeBasedEvaluatorDefinition {\n return {\n type: item[\"type\"],\n init_parameters: item[\"init_parameters\"],\n data_schema: item[\"data_schema\"],\n metrics: !item[\"metrics\"]\n ? item[\"metrics\"]\n : evaluatorMetricRecordDeserializer(item[\"metrics\"]),\n code_text: item[\"code_text\"],\n };\n}\n\n/** Prompt-based evaluator */\nexport interface PromptBasedEvaluatorDefinition extends EvaluatorDefinition {\n type: \"prompt\";\n /** The prompt text used for evaluation */\n prompt_text: string;\n}\n\nexport function promptBasedEvaluatorDefinitionSerializer(\n item: PromptBasedEvaluatorDefinition,\n): any {\n return {\n type: item[\"type\"],\n init_parameters: item[\"init_parameters\"],\n data_schema: item[\"data_schema\"],\n metrics: !item[\"metrics\"] ? item[\"metrics\"] : evaluatorMetricRecordSerializer(item[\"metrics\"]),\n prompt_text: item[\"prompt_text\"],\n };\n}\n\nexport function promptBasedEvaluatorDefinitionDeserializer(\n item: any,\n): PromptBasedEvaluatorDefinition {\n return {\n type: item[\"type\"],\n init_parameters: item[\"init_parameters\"],\n data_schema: item[\"data_schema\"],\n metrics: !item[\"metrics\"]\n ? item[\"metrics\"]\n : evaluatorMetricRecordDeserializer(item[\"metrics\"]),\n prompt_text: item[\"prompt_text\"],\n };\n}\n\n/** The response body for cluster insights. */\nexport interface Insight {\n /** The unique identifier for the insights report. */\n readonly id: string;\n /** Metadata about the insights report. */\n readonly metadata: InsightsMetadata;\n /** The current state of the insights. */\n readonly state: OperationState;\n /** User friendly display name for the insight. */\n displayName: string;\n /** Request for the insights analysis. */\n request: InsightRequestUnion;\n /** The result of the insights report. */\n readonly result?: InsightResultUnion;\n}\n\nexport function insightSerializer(item: Insight): any {\n return {\n displayName: item[\"displayName\"],\n request: insightRequestUnionSerializer(item[\"request\"]),\n };\n}\n\nexport function insightDeserializer(item: any): Insight {\n return {\n id: item[\"id\"],\n metadata: insightsMetadataDeserializer(item[\"metadata\"]),\n state: item[\"state\"],\n displayName: item[\"displayName\"],\n request: insightRequestUnionDeserializer(item[\"request\"]),\n result: !item[\"result\"] ? item[\"result\"] : insightResultUnionDeserializer(item[\"result\"]),\n };\n}\n\n/** Metadata about the insights. */\nexport interface InsightsMetadata {\n /** The timestamp when the insights were created. */\n createdAt: Date;\n /** The timestamp when the insights were completed. */\n completedAt?: Date;\n}\n\nexport function insightsMetadataDeserializer(item: any): InsightsMetadata {\n return {\n createdAt: new Date(item[\"createdAt\"]),\n completedAt: !item[\"completedAt\"] ? item[\"completedAt\"] : new Date(item[\"completedAt\"]),\n };\n}\n\n/** Enum describing allowed operation states. */\nexport type OperationState = \"NotStarted\" | \"Running\" | \"Succeeded\" | \"Failed\" | \"Canceled\";\n\n/** The request of the insights report. */\nexport interface InsightRequest {\n /** The type of request. */\n /** The discriminator possible values: EvaluationRunClusterInsight, AgentClusterInsight, EvaluationComparison */\n type: InsightType;\n}\n\nexport function insightRequestSerializer(item: InsightRequest): any {\n return { type: item[\"type\"] };\n}\n\nexport function insightRequestDeserializer(item: any): InsightRequest {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for InsightRequestUnion */\nexport type InsightRequestUnion =\n | EvaluationRunClusterInsightsRequest\n | AgentClusterInsightsRequest\n | EvaluationComparisonRequest\n | InsightRequest;\n\nexport function insightRequestUnionSerializer(item: InsightRequestUnion): any {\n switch (item.type) {\n case \"EvaluationRunClusterInsight\":\n return evaluationRunClusterInsightsRequestSerializer(\n item as EvaluationRunClusterInsightsRequest,\n );\n\n case \"AgentClusterInsight\":\n return agentClusterInsightsRequestSerializer(item as AgentClusterInsightsRequest);\n\n case \"EvaluationComparison\":\n return evaluationComparisonRequestSerializer(item as EvaluationComparisonRequest);\n\n default:\n return insightRequestSerializer(item);\n }\n}\n\nexport function insightRequestUnionDeserializer(item: any): InsightRequestUnion {\n switch (item.type) {\n case \"EvaluationRunClusterInsight\":\n return evaluationRunClusterInsightsRequestDeserializer(\n item as EvaluationRunClusterInsightsRequest,\n );\n\n case \"AgentClusterInsight\":\n return agentClusterInsightsRequestDeserializer(item as AgentClusterInsightsRequest);\n\n case \"EvaluationComparison\":\n return evaluationComparisonRequestDeserializer(item as EvaluationComparisonRequest);\n\n default:\n return insightRequestDeserializer(item);\n }\n}\n\n/** The request of the insights. */\nexport type InsightType =\n | \"EvaluationRunClusterInsight\"\n | \"AgentClusterInsight\"\n | \"EvaluationComparison\";\n\n/** Insights on set of Evaluation Results */\nexport interface EvaluationRunClusterInsightsRequest extends InsightRequest {\n /** The type of insights request. */\n type: \"EvaluationRunClusterInsight\";\n /** Evaluation Id for the insights. */\n evalId: string;\n /** List of evaluation run IDs for the insights. */\n runIds: string[];\n /** Configuration of the model used in the insight generation. */\n modelConfiguration?: InsightModelConfiguration;\n}\n\nexport function evaluationRunClusterInsightsRequestSerializer(\n item: EvaluationRunClusterInsightsRequest,\n): any {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n runIds: item[\"runIds\"].map((p: any) => {\n return p;\n }),\n modelConfiguration: !item[\"modelConfiguration\"]\n ? item[\"modelConfiguration\"]\n : insightModelConfigurationSerializer(item[\"modelConfiguration\"]),\n };\n}\n\nexport function evaluationRunClusterInsightsRequestDeserializer(\n item: any,\n): EvaluationRunClusterInsightsRequest {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n runIds: item[\"runIds\"].map((p: any) => {\n return p;\n }),\n modelConfiguration: !item[\"modelConfiguration\"]\n ? item[\"modelConfiguration\"]\n : insightModelConfigurationDeserializer(item[\"modelConfiguration\"]),\n };\n}\n\n/** Configuration of the model used in the insight generation. */\nexport interface InsightModelConfiguration {\n /** The model deployment to be evaluated. Accepts either the deployment name alone or with the connection name as '{connectionName}/<modelDeploymentName>'. */\n modelDeploymentName: string;\n}\n\nexport function insightModelConfigurationSerializer(item: InsightModelConfiguration): any {\n return { modelDeploymentName: item[\"modelDeploymentName\"] };\n}\n\nexport function insightModelConfigurationDeserializer(item: any): InsightModelConfiguration {\n return {\n modelDeploymentName: item[\"modelDeploymentName\"],\n };\n}\n\n/** Insights on set of Agent Evaluation Results */\nexport interface AgentClusterInsightsRequest extends InsightRequest {\n /** The type of request. */\n type: \"AgentClusterInsight\";\n /** Identifier for the agent. */\n agentName: string;\n /** Configuration of the model used in the insight generation. */\n modelConfiguration?: InsightModelConfiguration;\n}\n\nexport function agentClusterInsightsRequestSerializer(item: AgentClusterInsightsRequest): any {\n return {\n type: item[\"type\"],\n agentName: item[\"agentName\"],\n modelConfiguration: !item[\"modelConfiguration\"]\n ? item[\"modelConfiguration\"]\n : insightModelConfigurationSerializer(item[\"modelConfiguration\"]),\n };\n}\n\nexport function agentClusterInsightsRequestDeserializer(item: any): AgentClusterInsightsRequest {\n return {\n type: item[\"type\"],\n agentName: item[\"agentName\"],\n modelConfiguration: !item[\"modelConfiguration\"]\n ? item[\"modelConfiguration\"]\n : insightModelConfigurationDeserializer(item[\"modelConfiguration\"]),\n };\n}\n\n/** Evaluation Comparison Request */\nexport interface EvaluationComparisonRequest extends InsightRequest {\n /** The type of request. */\n type: \"EvaluationComparison\";\n /** Identifier for the evaluation. */\n evalId: string;\n /** The baseline run ID for comparison. */\n baselineRunId: string;\n /** List of treatment run IDs for comparison. */\n treatmentRunIds: string[];\n}\n\nexport function evaluationComparisonRequestSerializer(item: EvaluationComparisonRequest): any {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n baselineRunId: item[\"baselineRunId\"],\n treatmentRunIds: item[\"treatmentRunIds\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function evaluationComparisonRequestDeserializer(item: any): EvaluationComparisonRequest {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n baselineRunId: item[\"baselineRunId\"],\n treatmentRunIds: item[\"treatmentRunIds\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** The result of the insights. */\nexport interface InsightResult {\n /** The type of insights result. */\n /** The discriminator possible values: EvaluationComparison, EvaluationRunClusterInsight, AgentClusterInsight */\n type: InsightType;\n}\n\nexport function insightResultDeserializer(item: any): InsightResult {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for InsightResultUnion */\nexport type InsightResultUnion =\n | EvalCompareReport\n | EvaluationRunClusterInsightResult\n | AgentClusterInsightResult\n | InsightResult;\n\nexport function insightResultUnionDeserializer(item: any): InsightResultUnion {\n switch (item.type) {\n case \"EvaluationComparison\":\n return evalCompareReportDeserializer(item as EvalCompareReport);\n\n case \"EvaluationRunClusterInsight\":\n return evaluationRunClusterInsightResultDeserializer(\n item as EvaluationRunClusterInsightResult,\n );\n\n case \"AgentClusterInsight\":\n return agentClusterInsightResultDeserializer(item as AgentClusterInsightResult);\n\n default:\n return insightResultDeserializer(item);\n }\n}\n\n/** Insights from the evaluation comparison. */\nexport interface EvalCompareReport extends InsightResult {\n /** The type of insights result. */\n type: \"EvaluationComparison\";\n /** Comparison results for each treatment run against the baseline. */\n comparisons: EvalRunResultComparison[];\n /** The statistical method used for comparison. */\n method: string;\n}\n\nexport function evalCompareReportDeserializer(item: any): EvalCompareReport {\n return {\n type: item[\"type\"],\n comparisons: evalRunResultComparisonArrayDeserializer(item[\"comparisons\"]),\n method: item[\"method\"],\n };\n}\n\nexport function evalRunResultComparisonArrayDeserializer(\n result: Array<EvalRunResultComparison>,\n): any[] {\n return result.map((item) => {\n return evalRunResultComparisonDeserializer(item);\n });\n}\n\n/** Comparison results for treatment runs against the baseline. */\nexport interface EvalRunResultComparison {\n /** Name of the testing criteria. */\n testingCriteria: string;\n /** Metric being evaluated. */\n metric: string;\n /** Name of the evaluator for this testing criteria. */\n evaluator: string;\n /** Summary statistics of the baseline run. */\n baselineRunSummary: EvalRunResultSummary;\n /** List of comparison results for each treatment run. */\n compareItems: EvalRunResultCompareItem[];\n}\n\nexport function evalRunResultComparisonDeserializer(item: any): EvalRunResultComparison {\n return {\n testingCriteria: item[\"testingCriteria\"],\n metric: item[\"metric\"],\n evaluator: item[\"evaluator\"],\n baselineRunSummary: evalRunResultSummaryDeserializer(item[\"baselineRunSummary\"]),\n compareItems: evalRunResultCompareItemArrayDeserializer(item[\"compareItems\"]),\n };\n}\n\n/** Summary statistics of a metric in an evaluation run. */\nexport interface EvalRunResultSummary {\n /** The evaluation run ID. */\n runId: string;\n /** Number of samples in the evaluation run. */\n sampleCount: number;\n /** Average value of the metric in the evaluation run. */\n average: number;\n /** Standard deviation of the metric in the evaluation run. */\n standardDeviation: number;\n}\n\nexport function evalRunResultSummaryDeserializer(item: any): EvalRunResultSummary {\n return {\n runId: item[\"runId\"],\n sampleCount: item[\"sampleCount\"],\n average: item[\"average\"],\n standardDeviation: item[\"standardDeviation\"],\n };\n}\n\nexport function evalRunResultCompareItemArrayDeserializer(\n result: Array<EvalRunResultCompareItem>,\n): any[] {\n return result.map((item) => {\n return evalRunResultCompareItemDeserializer(item);\n });\n}\n\n/** Metric comparison for a treatment against the baseline. */\nexport interface EvalRunResultCompareItem {\n /** The treatment run ID. */\n treatmentRunId: string;\n /** Summary statistics of the treatment run. */\n treatmentRunSummary: EvalRunResultSummary;\n /** Estimated difference between treatment and baseline. */\n deltaEstimate: number;\n /** P-value for the treatment effect. */\n pValue: number;\n /** Type of treatment effect. */\n treatmentEffect: TreatmentEffectType;\n}\n\nexport function evalRunResultCompareItemDeserializer(item: any): EvalRunResultCompareItem {\n return {\n treatmentRunId: item[\"treatmentRunId\"],\n treatmentRunSummary: evalRunResultSummaryDeserializer(item[\"treatmentRunSummary\"]),\n deltaEstimate: item[\"deltaEstimate\"],\n pValue: item[\"pValue\"],\n treatmentEffect: item[\"treatmentEffect\"],\n };\n}\n\n/** Treatment Effect Type. */\nexport type TreatmentEffectType =\n | \"TooFewSamples\"\n | \"Inconclusive\"\n | \"Changed\"\n | \"Improved\"\n | \"Degraded\";\n\n/** Insights from the evaluation run cluster analysis. */\nexport interface EvaluationRunClusterInsightResult extends InsightResult {\n /** The type of insights result. */\n type: \"EvaluationRunClusterInsight\";\n clusterInsight: ClusterInsightResult;\n}\n\nexport function evaluationRunClusterInsightResultDeserializer(\n item: any,\n): EvaluationRunClusterInsightResult {\n return {\n type: item[\"type\"],\n clusterInsight: clusterInsightResultDeserializer(item[\"clusterInsight\"]),\n };\n}\n\n/** Insights from the cluster analysis. */\nexport interface ClusterInsightResult {\n /** Summary of the insights report. */\n summary: InsightSummary;\n /** List of clusters identified in the insights. */\n clusters: InsightCluster[];\n /**\n * Optional mapping of IDs to 2D coordinates used by the UX for visualization.\n *\n * The map keys are string identifiers (for example, a cluster id or a sample id)\n * and the values are the coordinates and visual size for rendering on a 2D chart.\n *\n * This property is omitted unless the client requests coordinates (for example,\n * by passing `includeCoordinates=true` as a query parameter).\n *\n * Example:\n * ```\n * {\n * \"cluster-1\": { \"x\": 12, \"y\": 34, \"size\": 8 },\n * \"sample-123\": { \"x\": 18, \"y\": 22, \"size\": 4 }\n * }\n * ```\n *\n * Coordinates are intended only for client-side visualization and do not\n * modify the canonical insights results.\n */\n coordinates?: Record<string, ChartCoordinate>;\n}\n\nexport function clusterInsightResultDeserializer(item: any): ClusterInsightResult {\n return {\n summary: insightSummaryDeserializer(item[\"summary\"]),\n clusters: insightClusterArrayDeserializer(item[\"clusters\"]),\n coordinates: !item[\"coordinates\"]\n ? item[\"coordinates\"]\n : chartCoordinateRecordDeserializer(item[\"coordinates\"]),\n };\n}\n\n/** Summary of the error cluster analysis. */\nexport interface InsightSummary {\n /** Total number of samples analyzed. */\n sampleCount: number;\n /** Total number of unique subcluster labels. */\n uniqueSubclusterCount: number;\n /** Total number of unique clusters. */\n uniqueClusterCount: number;\n /** Method used for clustering. */\n method: string;\n /** Token usage while performing clustering analysis */\n usage: ClusterTokenUsage;\n}\n\nexport function insightSummaryDeserializer(item: any): InsightSummary {\n return {\n sampleCount: item[\"sampleCount\"],\n uniqueSubclusterCount: item[\"uniqueSubclusterCount\"],\n uniqueClusterCount: item[\"uniqueClusterCount\"],\n method: item[\"method\"],\n usage: clusterTokenUsageDeserializer(item[\"usage\"]),\n };\n}\n\n/** Token usage for cluster analysis */\nexport interface ClusterTokenUsage {\n /** input token usage */\n inputTokenUsage: number;\n /** output token usage */\n outputTokenUsage: number;\n /** total token usage */\n totalTokenUsage: number;\n}\n\nexport function clusterTokenUsageDeserializer(item: any): ClusterTokenUsage {\n return {\n inputTokenUsage: item[\"inputTokenUsage\"],\n outputTokenUsage: item[\"outputTokenUsage\"],\n totalTokenUsage: item[\"totalTokenUsage\"],\n };\n}\n\nexport function insightClusterArrayDeserializer(result: Array<InsightCluster>): any[] {\n return result.map((item) => {\n return insightClusterDeserializer(item);\n });\n}\n\n/** A cluster of analysis samples. */\nexport interface InsightCluster {\n /** The id of the analysis cluster. */\n id: string;\n /** Label for the cluster */\n label: string;\n /** Suggestion for the cluster */\n suggestion: string;\n /** The title of the suggestion for the cluster */\n suggestionTitle: string;\n /** Description of the analysis cluster. */\n description: string;\n /** The weight of the analysis cluster. This indicate number of samples in the cluster. */\n weight: number;\n /** List of subclusters within this cluster. Empty if no subclusters exist. */\n subClusters?: InsightCluster[];\n /** List of samples that belong to this cluster. Empty if samples are part of subclusters. */\n samples?: InsightSampleUnion[];\n}\n\nexport function insightClusterDeserializer(item: any): InsightCluster {\n return {\n id: item[\"id\"],\n label: item[\"label\"],\n suggestion: item[\"suggestion\"],\n suggestionTitle: item[\"suggestionTitle\"],\n description: item[\"description\"],\n weight: item[\"weight\"],\n subClusters: !item[\"subClusters\"]\n ? item[\"subClusters\"]\n : insightClusterArrayDeserializer(item[\"subClusters\"]),\n samples: !item[\"samples\"]\n ? item[\"samples\"]\n : insightSampleUnionArrayDeserializer(item[\"samples\"]),\n };\n}\n\nexport function insightSampleUnionArrayDeserializer(result: Array<InsightSampleUnion>): any[] {\n return result.map((item) => {\n return insightSampleUnionDeserializer(item);\n });\n}\n\n/** A sample from the analysis. */\nexport interface InsightSample {\n /** The unique identifier for the analysis sample. */\n id: string;\n /** Sample type */\n /** The discriminator possible values: EvaluationResultSample */\n type: SampleType;\n /** Features to help with additional filtering of data in UX. */\n features: Record<string, any>;\n /** Info about the correlation for the analysis sample. */\n correlationInfo: Record<string, any>;\n}\n\nexport function insightSampleDeserializer(item: any): InsightSample {\n return {\n id: item[\"id\"],\n type: item[\"type\"],\n features: item[\"features\"],\n correlationInfo: item[\"correlationInfo\"],\n };\n}\n\n/** Alias for InsightSampleUnion */\nexport type InsightSampleUnion = EvaluationResultSample | InsightSample;\n\nexport function insightSampleUnionDeserializer(item: any): InsightSampleUnion {\n switch (item.type) {\n case \"EvaluationResultSample\":\n return evaluationResultSampleDeserializer(item as EvaluationResultSample);\n\n default:\n return insightSampleDeserializer(item);\n }\n}\n\n/** The type of sample used in the analysis. */\nexport type SampleType = \"EvaluationResultSample\";\n\n/** A sample from the evaluation result. */\nexport interface EvaluationResultSample extends InsightSample {\n /** Evaluation Result Sample Type */\n type: \"EvaluationResultSample\";\n /** Evaluation result for the analysis sample. */\n evaluationResult: EvalResult;\n}\n\nexport function evaluationResultSampleDeserializer(item: any): EvaluationResultSample {\n return {\n id: item[\"id\"],\n type: item[\"type\"],\n features: item[\"features\"],\n correlationInfo: item[\"correlationInfo\"],\n evaluationResult: evalResultDeserializer(item[\"evaluationResult\"]),\n };\n}\n\n/** Result of the evaluation. */\nexport interface EvalResult {\n /** name of the check */\n name: string;\n /** type of the check */\n type: string;\n /** score */\n score: number;\n /** indicates if the check passed or failed */\n passed: boolean;\n}\n\nexport function evalResultDeserializer(item: any): EvalResult {\n return {\n name: item[\"name\"],\n type: item[\"type\"],\n score: item[\"score\"],\n passed: item[\"passed\"],\n };\n}\n\nexport function chartCoordinateRecordDeserializer(\n item: Record<string, any>,\n): Record<string, ChartCoordinate> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : chartCoordinateDeserializer(item[key]);\n });\n return result;\n}\n\n/** Coordinates for the analysis chart. */\nexport interface ChartCoordinate {\n /** X-axis coordinate. */\n x: number;\n /** Y-axis coordinate. */\n y: number;\n /** Size of the chart element. */\n size: number;\n}\n\nexport function chartCoordinateDeserializer(item: any): ChartCoordinate {\n return {\n x: item[\"x\"],\n y: item[\"y\"],\n size: item[\"size\"],\n };\n}\n\n/** Insights from the agent cluster analysis. */\nexport interface AgentClusterInsightResult extends InsightResult {\n /** The type of insights result. */\n type: \"AgentClusterInsight\";\n clusterInsight: ClusterInsightResult;\n}\n\nexport function agentClusterInsightResultDeserializer(item: any): AgentClusterInsightResult {\n return {\n type: item[\"type\"],\n clusterInsight: clusterInsightResultDeserializer(item[\"clusterInsight\"]),\n };\n}\n\n/** Paged collection of Insight items */\nexport interface _PagedInsight {\n /** The Insight items on this page */\n value: Insight[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedInsightDeserializer(item: any): _PagedInsight {\n return {\n value: insightArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function insightArraySerializer(result: Array<Insight>): any[] {\n return result.map((item) => {\n return insightSerializer(item);\n });\n}\n\nexport function insightArrayDeserializer(result: Array<Insight>): any[] {\n return result.map((item) => {\n return insightDeserializer(item);\n });\n}\n\n/** Schedule model. */\nexport interface Schedule {\n /** Identifier of the schedule. */\n readonly id: string;\n /** Name of the schedule. */\n displayName?: string;\n /** Description of the schedule. */\n description?: string;\n /** Enabled status of the schedule. */\n enabled: boolean;\n /** Provisioning status of the schedule. */\n readonly provisioningStatus?: ScheduleProvisioningStatus;\n /** Trigger for the schedule. */\n trigger: TriggerUnion;\n /** Task for the schedule. */\n task: ScheduleTaskUnion;\n /** Schedule's tags. Unlike properties, tags are fully mutable. */\n tags?: Record<string, string>;\n /** Schedule's properties. Unlike tags, properties are add-only. Once added, a property cannot be removed. */\n properties?: Record<string, string>;\n /** System metadata for the resource. */\n readonly systemData: Record<string, string>;\n}\n\nexport function scheduleSerializer(item: Schedule): any {\n return {\n displayName: item[\"displayName\"],\n description: item[\"description\"],\n enabled: item[\"enabled\"],\n trigger: triggerUnionSerializer(item[\"trigger\"]),\n task: scheduleTaskUnionSerializer(item[\"task\"]),\n tags: item[\"tags\"],\n properties: item[\"properties\"],\n };\n}\n\nexport function scheduleDeserializer(item: any): Schedule {\n return {\n id: item[\"id\"],\n displayName: item[\"displayName\"],\n description: item[\"description\"],\n enabled: item[\"enabled\"],\n provisioningStatus: item[\"provisioningStatus\"],\n trigger: triggerUnionDeserializer(item[\"trigger\"]),\n task: scheduleTaskUnionDeserializer(item[\"task\"]),\n tags: item[\"tags\"],\n properties: item[\"properties\"],\n systemData: item[\"systemData\"],\n };\n}\n\n/** Schedule provisioning status. */\nexport type ScheduleProvisioningStatus =\n | \"Creating\"\n | \"Updating\"\n | \"Deleting\"\n | \"Succeeded\"\n | \"Failed\";\n\n/** Base model for Trigger of the schedule. */\nexport interface Trigger {\n /** Type of the trigger. */\n /** The discriminator possible values: Cron, Recurrence, OneTime */\n type: TriggerType;\n}\n\nexport function triggerSerializer(item: Trigger): any {\n return { type: item[\"type\"] };\n}\n\nexport function triggerDeserializer(item: any): Trigger {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for TriggerUnion */\nexport type TriggerUnion = CronTrigger | RecurrenceTrigger | OneTimeTrigger | Trigger;\n\nexport function triggerUnionSerializer(item: TriggerUnion): any {\n switch (item.type) {\n case \"Cron\":\n return cronTriggerSerializer(item as CronTrigger);\n\n case \"Recurrence\":\n return recurrenceTriggerSerializer(item as RecurrenceTrigger);\n\n case \"OneTime\":\n return oneTimeTriggerSerializer(item as OneTimeTrigger);\n\n default:\n return triggerSerializer(item);\n }\n}\n\nexport function triggerUnionDeserializer(item: any): TriggerUnion {\n switch (item.type) {\n case \"Cron\":\n return cronTriggerDeserializer(item as CronTrigger);\n\n case \"Recurrence\":\n return recurrenceTriggerDeserializer(item as RecurrenceTrigger);\n\n case \"OneTime\":\n return oneTimeTriggerDeserializer(item as OneTimeTrigger);\n\n default:\n return triggerDeserializer(item);\n }\n}\n\n/** Type of the trigger. */\nexport type TriggerType = \"Cron\" | \"Recurrence\" | \"OneTime\";\n\n/** Cron based trigger. */\nexport interface CronTrigger extends Trigger {\n type: \"Cron\";\n /** Cron expression that defines the schedule frequency. */\n expression: string;\n /** Time zone for the cron schedule. */\n timeZone?: string;\n /** Start time for the cron schedule in ISO 8601 format. */\n startTime?: string;\n /** End time for the cron schedule in ISO 8601 format. */\n endTime?: string;\n}\n\nexport function cronTriggerSerializer(item: CronTrigger): any {\n return {\n type: item[\"type\"],\n expression: item[\"expression\"],\n timeZone: item[\"timeZone\"],\n startTime: item[\"startTime\"],\n endTime: item[\"endTime\"],\n };\n}\n\nexport function cronTriggerDeserializer(item: any): CronTrigger {\n return {\n type: item[\"type\"],\n expression: item[\"expression\"],\n timeZone: item[\"timeZone\"],\n startTime: item[\"startTime\"],\n endTime: item[\"endTime\"],\n };\n}\n\n/** Recurrence based trigger. */\nexport interface RecurrenceTrigger extends Trigger {\n /** Type of the trigger. */\n type: \"Recurrence\";\n /** Start time for the recurrence schedule in ISO 8601 format. */\n startTime?: string;\n /** End time for the recurrence schedule in ISO 8601 format. */\n endTime?: string;\n /** Time zone for the recurrence schedule. */\n timeZone?: string;\n /** Interval for the recurrence schedule. */\n interval: number;\n /** Recurrence schedule for the recurrence trigger. */\n schedule: RecurrenceScheduleUnion;\n}\n\nexport function recurrenceTriggerSerializer(item: RecurrenceTrigger): any {\n return {\n type: item[\"type\"],\n startTime: item[\"startTime\"],\n endTime: item[\"endTime\"],\n timeZone: item[\"timeZone\"],\n interval: item[\"interval\"],\n schedule: recurrenceScheduleUnionSerializer(item[\"schedule\"]),\n };\n}\n\nexport function recurrenceTriggerDeserializer(item: any): RecurrenceTrigger {\n return {\n type: item[\"type\"],\n startTime: item[\"startTime\"],\n endTime: item[\"endTime\"],\n timeZone: item[\"timeZone\"],\n interval: item[\"interval\"],\n schedule: recurrenceScheduleUnionDeserializer(item[\"schedule\"]),\n };\n}\n\n/** Recurrence schedule model. */\nexport interface RecurrenceSchedule {\n /** Recurrence type for the recurrence schedule. */\n /** The discriminator possible values: Hourly, Daily, Weekly, Monthly */\n type: RecurrenceType;\n}\n\nexport function recurrenceScheduleSerializer(item: RecurrenceSchedule): any {\n return { type: item[\"type\"] };\n}\n\nexport function recurrenceScheduleDeserializer(item: any): RecurrenceSchedule {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for RecurrenceScheduleUnion */\nexport type RecurrenceScheduleUnion =\n | HourlyRecurrenceSchedule\n | DailyRecurrenceSchedule\n | WeeklyRecurrenceSchedule\n | MonthlyRecurrenceSchedule\n | RecurrenceSchedule;\n\nexport function recurrenceScheduleUnionSerializer(item: RecurrenceScheduleUnion): any {\n switch (item.type) {\n case \"Hourly\":\n return hourlyRecurrenceScheduleSerializer(item as HourlyRecurrenceSchedule);\n\n case \"Daily\":\n return dailyRecurrenceScheduleSerializer(item as DailyRecurrenceSchedule);\n\n case \"Weekly\":\n return weeklyRecurrenceScheduleSerializer(item as WeeklyRecurrenceSchedule);\n\n case \"Monthly\":\n return monthlyRecurrenceScheduleSerializer(item as MonthlyRecurrenceSchedule);\n\n default:\n return recurrenceScheduleSerializer(item);\n }\n}\n\nexport function recurrenceScheduleUnionDeserializer(item: any): RecurrenceScheduleUnion {\n switch (item.type) {\n case \"Hourly\":\n return hourlyRecurrenceScheduleDeserializer(item as HourlyRecurrenceSchedule);\n\n case \"Daily\":\n return dailyRecurrenceScheduleDeserializer(item as DailyRecurrenceSchedule);\n\n case \"Weekly\":\n return weeklyRecurrenceScheduleDeserializer(item as WeeklyRecurrenceSchedule);\n\n case \"Monthly\":\n return monthlyRecurrenceScheduleDeserializer(item as MonthlyRecurrenceSchedule);\n\n default:\n return recurrenceScheduleDeserializer(item);\n }\n}\n\n/** Recurrence type. */\nexport type RecurrenceType = \"Hourly\" | \"Daily\" | \"Weekly\" | \"Monthly\";\n\n/** Hourly recurrence schedule. */\nexport interface HourlyRecurrenceSchedule extends RecurrenceSchedule {\n type: \"Hourly\";\n}\n\nexport function hourlyRecurrenceScheduleSerializer(item: HourlyRecurrenceSchedule): any {\n return { type: item[\"type\"] };\n}\n\nexport function hourlyRecurrenceScheduleDeserializer(item: any): HourlyRecurrenceSchedule {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Daily recurrence schedule. */\nexport interface DailyRecurrenceSchedule extends RecurrenceSchedule {\n /** Daily recurrence type. */\n type: \"Daily\";\n /** Hours for the recurrence schedule. */\n hours: number[];\n}\n\nexport function dailyRecurrenceScheduleSerializer(item: DailyRecurrenceSchedule): any {\n return {\n type: item[\"type\"],\n hours: item[\"hours\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function dailyRecurrenceScheduleDeserializer(item: any): DailyRecurrenceSchedule {\n return {\n type: item[\"type\"],\n hours: item[\"hours\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Weekly recurrence schedule. */\nexport interface WeeklyRecurrenceSchedule extends RecurrenceSchedule {\n /** Weekly recurrence type. */\n type: \"Weekly\";\n /** Days of the week for the recurrence schedule. */\n daysOfWeek: DayOfWeek[];\n}\n\nexport function weeklyRecurrenceScheduleSerializer(item: WeeklyRecurrenceSchedule): any {\n return {\n type: item[\"type\"],\n daysOfWeek: item[\"daysOfWeek\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function weeklyRecurrenceScheduleDeserializer(item: any): WeeklyRecurrenceSchedule {\n return {\n type: item[\"type\"],\n daysOfWeek: item[\"daysOfWeek\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Days of the week for recurrence schedule. */\nexport type DayOfWeek =\n | \"Sunday\"\n | \"Monday\"\n | \"Tuesday\"\n | \"Wednesday\"\n | \"Thursday\"\n | \"Friday\"\n | \"Saturday\";\n\n/** Monthly recurrence schedule. */\nexport interface MonthlyRecurrenceSchedule extends RecurrenceSchedule {\n /** Monthly recurrence type. */\n type: \"Monthly\";\n /** Days of the month for the recurrence schedule. */\n daysOfMonth: number[];\n}\n\nexport function monthlyRecurrenceScheduleSerializer(item: MonthlyRecurrenceSchedule): any {\n return {\n type: item[\"type\"],\n daysOfMonth: item[\"daysOfMonth\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function monthlyRecurrenceScheduleDeserializer(item: any): MonthlyRecurrenceSchedule {\n return {\n type: item[\"type\"],\n daysOfMonth: item[\"daysOfMonth\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** One-time trigger. */\nexport interface OneTimeTrigger extends Trigger {\n type: \"OneTime\";\n /** Date and time for the one-time trigger in ISO 8601 format. */\n triggerAt: string;\n /** Time zone for the one-time trigger. */\n timeZone?: string;\n}\n\nexport function oneTimeTriggerSerializer(item: OneTimeTrigger): any {\n return {\n type: item[\"type\"],\n triggerAt: item[\"triggerAt\"],\n timeZone: item[\"timeZone\"],\n };\n}\n\nexport function oneTimeTriggerDeserializer(item: any): OneTimeTrigger {\n return {\n type: item[\"type\"],\n triggerAt: item[\"triggerAt\"],\n timeZone: item[\"timeZone\"],\n };\n}\n\n/** Schedule task model. */\nexport interface ScheduleTask {\n /** Type of the task. */\n /** The discriminator possible values: Evaluation, Insight */\n type: ScheduleTaskType;\n /** Configuration for the task. */\n configuration?: Record<string, string>;\n}\n\nexport function scheduleTaskSerializer(item: ScheduleTask): any {\n return { type: item[\"type\"], configuration: item[\"configuration\"] };\n}\n\nexport function scheduleTaskDeserializer(item: any): ScheduleTask {\n return {\n type: item[\"type\"],\n configuration: item[\"configuration\"],\n };\n}\n\n/** Alias for ScheduleTaskUnion */\nexport type ScheduleTaskUnion = EvaluationScheduleTask | InsightScheduleTask | ScheduleTask;\n\nexport function scheduleTaskUnionSerializer(item: ScheduleTaskUnion): any {\n switch (item.type) {\n case \"Evaluation\":\n return evaluationScheduleTaskSerializer(item as EvaluationScheduleTask);\n\n case \"Insight\":\n return insightScheduleTaskSerializer(item as InsightScheduleTask);\n\n default:\n return scheduleTaskSerializer(item);\n }\n}\n\nexport function scheduleTaskUnionDeserializer(item: any): ScheduleTaskUnion {\n switch (item.type) {\n case \"Evaluation\":\n return evaluationScheduleTaskDeserializer(item as EvaluationScheduleTask);\n\n case \"Insight\":\n return insightScheduleTaskDeserializer(item as InsightScheduleTask);\n\n default:\n return scheduleTaskDeserializer(item);\n }\n}\n\n/** Type of the task. */\nexport type ScheduleTaskType = \"Evaluation\" | \"Insight\";\n\n/** Evaluation task for the schedule. */\nexport interface EvaluationScheduleTask extends ScheduleTask {\n type: \"Evaluation\";\n /** Identifier of the evaluation group. */\n evalId: string;\n /** The evaluation run payload. */\n evalRun: Record<string, any>;\n}\n\nexport function evaluationScheduleTaskSerializer(item: EvaluationScheduleTask): any {\n return {\n type: item[\"type\"],\n configuration: item[\"configuration\"],\n evalId: item[\"evalId\"],\n evalRun: _evaluationScheduleTaskEvalRunSerializer(item[\"evalRun\"]),\n };\n}\n\nexport function evaluationScheduleTaskDeserializer(item: any): EvaluationScheduleTask {\n return {\n type: item[\"type\"],\n configuration: item[\"configuration\"],\n evalId: item[\"evalId\"],\n evalRun: _evaluationScheduleTaskEvalRunDeserializer(item[\"evalRun\"]),\n };\n}\n\n/** model interface _EvaluationScheduleTaskEvalRun */\nexport interface _EvaluationScheduleTaskEvalRun {}\n\nexport function _evaluationScheduleTaskEvalRunSerializer(\n item: _EvaluationScheduleTaskEvalRun,\n): any {\n return item;\n}\n\nexport function _evaluationScheduleTaskEvalRunDeserializer(\n item: any,\n): _EvaluationScheduleTaskEvalRun {\n return item;\n}\n\n/** Insight task for the schedule. */\nexport interface InsightScheduleTask extends ScheduleTask {\n type: \"Insight\";\n /** The insight payload. */\n insight: Insight;\n}\n\nexport function insightScheduleTaskSerializer(item: InsightScheduleTask): any {\n return {\n type: item[\"type\"],\n configuration: item[\"configuration\"],\n insight: insightSerializer(item[\"insight\"]),\n };\n}\n\nexport function insightScheduleTaskDeserializer(item: any): InsightScheduleTask {\n return {\n type: item[\"type\"],\n configuration: item[\"configuration\"],\n insight: insightDeserializer(item[\"insight\"]),\n };\n}\n\n/** Paged collection of Schedule items */\nexport interface _PagedSchedule {\n /** The Schedule items on this page */\n value: Schedule[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedScheduleDeserializer(item: any): _PagedSchedule {\n return {\n value: scheduleArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function scheduleArraySerializer(result: Array<Schedule>): any[] {\n return result.map((item) => {\n return scheduleSerializer(item);\n });\n}\n\nexport function scheduleArrayDeserializer(result: Array<Schedule>): any[] {\n return result.map((item) => {\n return scheduleDeserializer(item);\n });\n}\n\n/** Schedule run model. */\nexport interface ScheduleRun {\n /** Identifier of the schedule run. */\n readonly id: string;\n /** Identifier of the schedule. */\n scheduleId: string;\n /** Trigger success status of the schedule run. */\n readonly success: boolean;\n /** Trigger time of the schedule run. */\n triggerTime?: string;\n /** Error information for the schedule run. */\n readonly error?: string;\n /** Properties of the schedule run. */\n readonly properties: Record<string, string>;\n}\n\nexport function scheduleRunDeserializer(item: any): ScheduleRun {\n return {\n id: item[\"id\"],\n scheduleId: item[\"scheduleId\"],\n success: item[\"success\"],\n triggerTime: item[\"triggerTime\"],\n error: item[\"error\"],\n properties: item[\"properties\"],\n };\n}\n\n/** Paged collection of ScheduleRun items */\nexport interface PagedScheduleRun {\n /** The ScheduleRun items on this page */\n value: ScheduleRun[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function pagedScheduleRunDeserializer(item: any): PagedScheduleRun {\n return {\n value: scheduleRunArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function scheduleRunArrayDeserializer(result: Array<ScheduleRun>): any[] {\n return result.map((item) => {\n return scheduleRunDeserializer(item);\n });\n}\n\n/** model interface AgentId */\nexport interface AgentId {\n type: \"agent_id\";\n /** The name of the agent. */\n name: string;\n /** The version identifier of the agent. */\n version: string;\n}\n\nexport function agentIdDeserializer(item: any): AgentId {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\n/** Alias for _ResponseInstructions */\nexport type _ResponseInstructions = string | ItemParamUnion[];\n\n/** model interface AgentReference */\nexport interface AgentReference {\n type: \"agent_reference\";\n /** The name of the agent. */\n name: string;\n /** The version identifier of the agent. */\n version?: string;\n}\n\nexport function agentReferenceSerializer(item: AgentReference): any {\n return { type: item[\"type\"], name: item[\"name\"], version: item[\"version\"] };\n}\n\n/** Alias for _ListVersionsRequestType */\nexport type _ListVersionsRequestType = EvaluatorType | \"all\";\n\nexport function _listVersionsRequestTypeSerializer(item: _ListVersionsRequestType): any {\n return item;\n}\n\n/** The type of pending upload. */\nexport type PendingUploadType = \"None\" | \"BlobReference\";\n\n/** Azure AI Projects API versions */\nexport enum KnownApiVersions {\n /** Azure AI API version 2025-11-15-preview. */\n v2025_11_15_preview = \"2025-11-15-preview\",\n}\n"]}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/models/models.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable tsdoc/syntax */\n\nimport { serializeRecord } from \"../static-helpers/serialization/serialize-record.js\";\n\n/**\n * Represents an agent object.\n * Contains the agent's unique identifier, name, and version information.\n */\nexport interface Agent {\n /** The object type, which is always 'agent'. */\n object: \"agent\";\n /** The unique identifier of the agent. */\n id: string;\n /** The name of the agent. */\n name: string;\n /** The latest version of the agent. */\n versions: {\n latest: AgentVersion;\n };\n}\n\nexport function agentObjectDeserializer(item: any): Agent {\n return {\n object: item[\"object\"],\n id: item[\"id\"],\n name: item[\"name\"],\n versions: _agentObjectVersionsDeserializer(item[\"versions\"]),\n };\n}\n\n/**\n * Helper interface for agent version references.\n */\nexport interface _AgentVersions {\n latest: AgentVersion;\n}\n\nexport function _agentObjectVersionsDeserializer(item: any): _AgentVersions {\n return {\n latest: agentVersionObjectDeserializer(item[\"latest\"]),\n };\n}\n\n/**\n * Represents a specific version of an agent.\n * Includes metadata, versioning, creation time, and agent definition.\n */\nexport interface AgentVersion {\n /**\n * Set of 16 key-value pairs that can be attached to an object. This can be\n * useful for storing additional information about the object in a structured\n * format, and querying for objects via API or the dashboard.\n *\n * Keys are strings with a maximum length of 64 characters. Values are strings\n * with a maximum length of 512 characters.\n */\n metadata: Record<string, string>;\n /** The object type, which is always 'agent.version'. */\n object: \"agent.version\";\n /** The unique identifier of the agent version. */\n id: string;\n /** The name of the agent. Name can be used to retrieve/update/delete the agent. */\n name: string;\n /** The version identifier of the agent. Agents are immutable and every update creates a new version while keeping the name same. */\n version: string;\n /** A human-readable description of the agent. */\n description?: string;\n /** The Unix timestamp (seconds) when the agent was created. */\n created_at: Date;\n /** The definition of the agent. */\n definition: AgentDefinitionUnion;\n}\n\nexport function agentVersionObjectDeserializer(item: any): AgentVersion {\n return {\n metadata: item[\"metadata\"],\n object: item[\"object\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n created_at: new Date(item[\"created_at\"] * 1000),\n definition: agentDefinitionUnionDeserializer(item[\"definition\"]),\n };\n}\n\n/**\n * Base definition interface for agents.\n * Contains the agent kind and optional RAI configuration.\n */\nexport interface AgentDefinition {\n kind: AgentKind;\n /** Configuration for Responsible AI (RAI) content filtering and safety features. */\n rai_config?: RaiConfig;\n}\n\nexport function agentDefinitionSerializer(item: AgentDefinition): any {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n };\n}\n\nexport function agentDefinitionDeserializer(item: any): AgentDefinition {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n };\n}\n\n/**\n * Union type for all agent definition types.\n * Supports workflow, hosted, container app, and prompt agents.\n */\nexport type AgentDefinitionUnion =\n | WorkflowAgentDefinition\n | HostedAgentDefinitionUnion\n | ContainerAppAgentDefinition\n | PromptAgentDefinition\n | AgentDefinition;\n\nexport function agentDefinitionUnionSerializer(item: AgentDefinitionUnion): any {\n switch (item.kind) {\n case \"workflow\":\n return workflowAgentDefinitionSerializer(item as WorkflowAgentDefinition);\n\n case \"hosted\":\n return hostedAgentDefinitionUnionSerializer(item as HostedAgentDefinitionUnion);\n\n case \"container_app\":\n return containerAppAgentDefinitionSerializer(item as ContainerAppAgentDefinition);\n\n case \"prompt\":\n return promptAgentDefinitionSerializer(item as PromptAgentDefinition);\n\n default:\n return agentDefinitionSerializer(item);\n }\n}\n\nexport function agentDefinitionUnionDeserializer(item: any): AgentDefinitionUnion {\n switch (item.kind) {\n case \"workflow\":\n return workflowAgentDefinitionDeserializer(item as WorkflowAgentDefinition);\n\n case \"hosted\":\n return hostedAgentDefinitionUnionDeserializer(item as HostedAgentDefinitionUnion);\n\n case \"container_app\":\n return containerAppAgentDefinitionDeserializer(item as ContainerAppAgentDefinition);\n\n case \"prompt\":\n return promptAgentDefinitionDeserializer(item as PromptAgentDefinition);\n\n default:\n return agentDefinitionDeserializer(item);\n }\n}\n\n/**\n * Defines the type/kind of agent.\n * Determines which agent definition structure is used.\n */\nexport type AgentKind = \"prompt\" | \"hosted\" | \"container_app\" | \"workflow\";\n\n/** Configuration for Responsible AI (RAI) content filtering and safety features. */\nexport interface RaiConfig {\n /** The name of the RAI policy to apply. */\n rai_policy_name: string;\n}\n\nexport function raiConfigSerializer(item: RaiConfig): any {\n return { rai_policy_name: item[\"rai_policy_name\"] };\n}\n\nexport function raiConfigDeserializer(item: any): RaiConfig {\n return {\n rai_policy_name: item[\"rai_policy_name\"],\n };\n}\n\n/** The workflow agent definition. */\nexport interface WorkflowAgentDefinition extends AgentDefinition {\n kind: \"workflow\";\n /** The CSDL YAML definition of the workflow. */\n workflow?: string;\n}\n\nexport function workflowAgentDefinitionSerializer(item: WorkflowAgentDefinition): any {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n workflow: item[\"workflow\"],\n };\n}\n\nexport function workflowAgentDefinitionDeserializer(item: any): WorkflowAgentDefinition {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n workflow: item[\"workflow\"],\n };\n}\n\n/** The hosted agent definition. */\nexport interface HostedAgentDefinition extends AgentDefinition {\n /** The kind of agent definition. */\n kind: \"hosted\";\n /**\n * An array of tools the hosted agent's model may call while generating a response. You\n * can specify which tool to use by setting the `tool_choice` parameter.\n */\n tools?: ToolUnion[];\n /** The protocols that the agent supports for ingress communication of the containers. */\n container_protocol_versions: ProtocolVersionRecord[];\n /** The CPU configuration for the hosted agent. */\n cpu: string;\n /** The memory configuration for the hosted agent. */\n memory: string;\n /** Environment variables to set in the hosted agent container. */\n environment_variables?: Record<string, string>;\n}\n\nexport function hostedAgentDefinitionSerializer(item: HostedAgentDefinition): any {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n tools: !item[\"tools\"] ? item[\"tools\"] : toolUnionArraySerializer(item[\"tools\"]),\n container_protocol_versions: protocolVersionRecordArraySerializer(\n item[\"container_protocol_versions\"],\n ),\n cpu: item[\"cpu\"],\n memory: item[\"memory\"],\n environment_variables: item[\"environment_variables\"],\n };\n}\n\nexport function hostedAgentDefinitionDeserializer(item: any): HostedAgentDefinition {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n tools: !item[\"tools\"] ? item[\"tools\"] : toolUnionArrayDeserializer(item[\"tools\"]),\n container_protocol_versions: protocolVersionRecordArrayDeserializer(\n item[\"container_protocol_versions\"],\n ),\n cpu: item[\"cpu\"],\n memory: item[\"memory\"],\n environment_variables: item[\"environment_variables\"],\n };\n}\n\n/** Alias for HostedAgentDefinitionUnion */\nexport type HostedAgentDefinitionUnion = ImageBasedHostedAgentDefinition | HostedAgentDefinition;\n\nexport function hostedAgentDefinitionUnionSerializer(item: HostedAgentDefinitionUnion): any {\n switch (item.kind) {\n case \"hosted\":\n return imageBasedHostedAgentDefinitionSerializer(item as ImageBasedHostedAgentDefinition);\n\n default:\n return hostedAgentDefinitionSerializer(item);\n }\n}\n\nexport function hostedAgentDefinitionUnionDeserializer(item: any): HostedAgentDefinitionUnion {\n switch (item.kind) {\n case \"hosted\":\n return imageBasedHostedAgentDefinitionDeserializer(item as ImageBasedHostedAgentDefinition);\n\n default:\n return hostedAgentDefinitionDeserializer(item);\n }\n}\n\nexport function toolUnionArraySerializer(result: Array<ToolUnion>): any[] {\n return result.map((item) => {\n return toolUnionSerializer(item);\n });\n}\n\nexport function toolUnionArrayDeserializer(result: Array<ToolUnion>): any[] {\n return result.map((item) => {\n return toolUnionDeserializer(item);\n });\n}\n\n/** model interface Tool */\nexport interface Tool {\n type: ToolType;\n}\n\nexport function toolSerializer(item: Tool): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolDeserializer(item: any): Tool {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for ToolUnion */\nexport type ToolUnion =\n | FunctionTool\n | FileSearchTool\n | ComputerUsePreviewTool\n | WebSearchPreviewTool\n | CodeInterpreterTool\n | ImageGenTool\n | LocalShellTool\n | MCPTool\n | BingGroundingAgentTool\n | MicrosoftFabricAgentTool\n | SharepointAgentTool\n | AzureAISearchAgentTool\n | OpenApiAgentTool\n | BingCustomSearchAgentTool\n | BrowserAutomationAgentTool\n | AzureFunctionAgentTool\n | CaptureStructuredOutputsTool\n | A2ATool\n | MemorySearchTool\n | Tool;\n\nexport function toolUnionSerializer(item: ToolUnion): any {\n switch (item.type) {\n case \"function\":\n return functionToolSerializer(item as FunctionTool);\n\n case \"file_search\":\n return fileSearchToolSerializer(item as FileSearchTool);\n\n case \"computer_use_preview\":\n return computerUsePreviewToolSerializer(item as ComputerUsePreviewTool);\n\n case \"web_search_preview\":\n return webSearchPreviewToolSerializer(item as WebSearchPreviewTool);\n\n case \"code_interpreter\":\n return codeInterpreterToolSerializer(item as CodeInterpreterTool);\n\n case \"image_generation\":\n return imageGenToolSerializer(item as ImageGenTool);\n\n case \"local_shell\":\n return localShellToolSerializer(item as LocalShellTool);\n\n case \"mcp\":\n return mcpToolSerializer(item as MCPTool);\n\n case \"bing_grounding\":\n return bingGroundingAgentToolSerializer(item as BingGroundingAgentTool);\n\n case \"fabric_dataagent_preview\":\n return microsoftFabricAgentToolSerializer(item as MicrosoftFabricAgentTool);\n\n case \"sharepoint_grounding_preview\":\n return sharepointAgentToolSerializer(item as SharepointAgentTool);\n\n case \"azure_ai_search\":\n return azureAISearchAgentToolSerializer(item as AzureAISearchAgentTool);\n\n case \"openapi\":\n return openApiAgentToolSerializer(item as OpenApiAgentTool);\n\n case \"bing_custom_search_preview\":\n return bingCustomSearchAgentToolSerializer(item as BingCustomSearchAgentTool);\n\n case \"browser_automation_preview\":\n return browserAutomationAgentToolSerializer(item as BrowserAutomationAgentTool);\n\n case \"azure_function\":\n return azureFunctionAgentToolSerializer(item as AzureFunctionAgentTool);\n\n case \"capture_structured_outputs\":\n return captureStructuredOutputsToolSerializer(item as CaptureStructuredOutputsTool);\n\n case \"a2a_preview\":\n return a2AToolSerializer(item as A2ATool);\n\n case \"memory_search\":\n return memorySearchToolSerializer(item as MemorySearchTool);\n\n default:\n return toolSerializer(item);\n }\n}\n\nexport function toolUnionDeserializer(item: any): ToolUnion {\n switch (item.type) {\n case \"function\":\n return functionToolDeserializer(item as FunctionTool);\n\n case \"file_search\":\n return fileSearchToolDeserializer(item as FileSearchTool);\n\n case \"computer_use_preview\":\n return computerUsePreviewToolDeserializer(item as ComputerUsePreviewTool);\n\n case \"web_search_preview\":\n return webSearchPreviewToolDeserializer(item as WebSearchPreviewTool);\n\n case \"code_interpreter\":\n return codeInterpreterToolDeserializer(item as CodeInterpreterTool);\n\n case \"image_generation\":\n return imageGenToolDeserializer(item as ImageGenTool);\n\n case \"local_shell\":\n return localShellToolDeserializer(item as LocalShellTool);\n\n case \"mcp\":\n return mcpToolDeserializer(item as MCPTool);\n\n case \"bing_grounding\":\n return bingGroundingAgentToolDeserializer(item as BingGroundingAgentTool);\n\n case \"fabric_dataagent_preview\":\n return microsoftFabricAgentToolDeserializer(item as MicrosoftFabricAgentTool);\n\n case \"sharepoint_grounding_preview\":\n return sharepointAgentToolDeserializer(item as SharepointAgentTool);\n\n case \"azure_ai_search\":\n return azureAISearchAgentToolDeserializer(item as AzureAISearchAgentTool);\n\n case \"openapi\":\n return openApiAgentToolDeserializer(item as OpenApiAgentTool);\n\n case \"bing_custom_search_preview\":\n return bingCustomSearchAgentToolDeserializer(item as BingCustomSearchAgentTool);\n\n case \"browser_automation_preview\":\n return browserAutomationAgentToolDeserializer(item as BrowserAutomationAgentTool);\n\n case \"azure_function\":\n return azureFunctionAgentToolDeserializer(item as AzureFunctionAgentTool);\n\n case \"capture_structured_outputs\":\n return captureStructuredOutputsToolDeserializer(item as CaptureStructuredOutputsTool);\n\n case \"a2a_preview\":\n return a2AToolDeserializer(item as A2ATool);\n\n case \"memory_search\":\n return memorySearchToolDeserializer(item as MemorySearchTool);\n\n default:\n return toolDeserializer(item);\n }\n}\n\n/** A tool that can be used to generate a response. */\nexport type ToolType =\n | \"file_search\"\n | \"function\"\n | \"computer_use_preview\"\n | \"web_search_preview\"\n | \"mcp\"\n | \"code_interpreter\"\n | \"image_generation\"\n | \"local_shell\"\n | \"bing_grounding\"\n | \"browser_automation_preview\"\n | \"fabric_dataagent_preview\"\n | \"sharepoint_grounding_preview\"\n | \"azure_ai_search\"\n | \"openapi\"\n | \"bing_custom_search_preview\"\n | \"capture_structured_outputs\"\n | \"a2a_preview\"\n | \"azure_function\"\n | \"memory_search\";\n\n/**\n * Function tool definition for agents.\n * Allows the model to call functions defined in your code.\n * Learn more about [function calling](https://platform.openai.com/docs/guides/function-calling).\n */\nexport interface FunctionTool extends Tool {\n /** The type of the function tool. Always `function`. */\n type: \"function\";\n /** The name of the function to call. */\n name: string;\n /** A description of the function. Used by the model to determine whether or not to call the function. */\n description?: string;\n /** A JSON schema object describing the parameters of the function. */\n parameters: unknown;\n /** Whether to enforce strict parameter validation. Default `true`. */\n strict: boolean;\n}\n\nexport function functionToolSerializer(item: FunctionTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n parameters: item[\"parameters\"],\n strict: item[\"strict\"],\n };\n}\n\nexport function functionToolDeserializer(item: any): FunctionTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n parameters: item[\"parameters\"],\n strict: item[\"strict\"],\n };\n}\n\n/**\n * File search tool definition for agents.\n * Searches for relevant content from uploaded files.\n * Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search).\n */\nexport interface FileSearchTool extends Tool {\n /** The type of the file search tool. Always `file_search`. */\n type: \"file_search\";\n /** The IDs of the vector stores to search. */\n vector_store_ids: string[];\n /** The maximum number of results to return. This number should be between 1 and 50 inclusive. */\n max_num_results?: number;\n /** Ranking options for search. */\n ranking_options?: RankingOptions;\n /** A filter to apply. */\n filters?: Filters;\n}\n\nexport function fileSearchToolSerializer(item: FileSearchTool): any {\n return {\n type: item[\"type\"],\n vector_store_ids: item[\"vector_store_ids\"].map((p: any) => {\n return p;\n }),\n max_num_results: item[\"max_num_results\"],\n ranking_options: !item[\"ranking_options\"]\n ? item[\"ranking_options\"]\n : rankingOptionsSerializer(item[\"ranking_options\"]),\n filters: !item[\"filters\"] ? item[\"filters\"] : filtersSerializer(item[\"filters\"]),\n };\n}\n\nexport function fileSearchToolDeserializer(item: any): FileSearchTool {\n return {\n type: item[\"type\"],\n vector_store_ids: item[\"vector_store_ids\"].map((p: any) => {\n return p;\n }),\n max_num_results: item[\"max_num_results\"],\n ranking_options: !item[\"ranking_options\"]\n ? item[\"ranking_options\"]\n : rankingOptionsDeserializer(item[\"ranking_options\"]),\n filters: !item[\"filters\"] ? item[\"filters\"] : filtersDeserializer(item[\"filters\"]),\n };\n}\n\n/**\n * Ranking options for file search.\n * Controls which ranker to use and the score threshold for results.\n */\nexport interface RankingOptions {\n /** The ranker to use for the file search. */\n ranker?: \"auto\" | \"default-2024-11-15\";\n /** The score threshold for the file search, a number between 0 and 1. Numbers closer to 1 will attempt to return only the most relevant results, but may return fewer results. */\n score_threshold?: number;\n}\n\nexport function rankingOptionsSerializer(item: RankingOptions): any {\n return { ranker: item[\"ranker\"], score_threshold: item[\"score_threshold\"] };\n}\n\nexport function rankingOptionsDeserializer(item: any): RankingOptions {\n return {\n ranker: item[\"ranker\"],\n score_threshold: item[\"score_threshold\"],\n };\n}\n\n/**\n * Filter types for file search.\n * Can be either a comparison filter or a compound filter combining multiple filters.\n */\nexport type Filters = ComparisonFilter | CompoundFilter;\n\nexport function filtersSerializer(item: Filters): any {\n return item;\n}\n\nexport function filtersDeserializer(item: any): Filters {\n return item;\n}\n\n/**\n * Comparison filter for file search.\n * Compares a specified attribute key to a given value using a comparison operation.\n */\nexport interface ComparisonFilter {\n /**\n * Specifies the comparison operator:\n * `eq` (equal), `ne` (not equal), `gt` (greater than), `gte` (greater than or equal), `lt` (less than), `lte` (less than or equal).\n */\n type: \"eq\" | \"ne\" | \"gt\" | \"gte\" | \"lt\" | \"lte\";\n /** The key to compare against the value. */\n key: string;\n /** The value to compare against the attribute key; supports string, number, or boolean types. */\n value: string | number | boolean;\n}\n\nexport function comparisonFilterSerializer(item: ComparisonFilter): any {\n return {\n type: item[\"type\"],\n key: item[\"key\"],\n value: _comparisonFilterValueSerializer(item[\"value\"]),\n };\n}\n\nexport function comparisonFilterDeserializer(item: any): ComparisonFilter {\n return {\n type: item[\"type\"],\n key: item[\"key\"],\n value: _comparisonFilterValueDeserializer(item[\"value\"]),\n };\n}\n\n/** Alias for _ComparisonFilterValue */\nexport type _ComparisonFilterValue = string | number | boolean;\n\nexport function _comparisonFilterValueSerializer(item: _ComparisonFilterValue): any {\n return item;\n}\n\nexport function _comparisonFilterValueDeserializer(item: any): _ComparisonFilterValue {\n return item;\n}\n\n/**\n * Compound filter for file search.\n * Combines multiple filters using logical AND or OR operations.\n */\nexport interface CompoundFilter {\n /** Type of operation: `and` or `or`. */\n type: \"and\" | \"or\";\n /** Array of filters to combine. Items can be `ComparisonFilter` or `CompoundFilter`. */\n filters: (ComparisonFilter | CompoundFilter)[];\n}\n\nexport function compoundFilterSerializer(item: CompoundFilter): any {\n return {\n type: item[\"type\"],\n filters: _compoundFilterFilterArraySerializer(item[\"filters\"]),\n };\n}\n\nexport function compoundFilterDeserializer(item: any): CompoundFilter {\n return {\n type: item[\"type\"],\n filters: _compoundFilterFilterArrayDeserializer(item[\"filters\"]),\n };\n}\n\nexport function _compoundFilterFilterArraySerializer(result: Array<_CompoundFilterFilter>): any[] {\n return result.map((item) => {\n return _compoundFilterFilterSerializer(item);\n });\n}\n\nexport function _compoundFilterFilterArrayDeserializer(\n result: Array<_CompoundFilterFilter>,\n): any[] {\n return result.map((item) => {\n return _compoundFilterFilterDeserializer(item);\n });\n}\n\n/** Alias for _CompoundFilterFilter */\nexport type _CompoundFilterFilter = ComparisonFilter | CompoundFilter;\n\nexport function _compoundFilterFilterSerializer(item: _CompoundFilterFilter): any {\n return item;\n}\n\nexport function _compoundFilterFilterDeserializer(item: any): _CompoundFilterFilter {\n return item;\n}\n\n/** A tool that controls a virtual computer. Learn more about the [computer tool](https://platform.openai.com/docs/guides/tools-computer-use). */\nexport interface ComputerUsePreviewTool extends Tool {\n /** The type of the computer use tool. Always `computer_use_preview`. */\n type: \"computer_use_preview\";\n /** The type of computer environment to control. */\n environment: \"windows\" | \"mac\" | \"linux\" | \"browser\";\n /** The width of the computer display. */\n display_width: number;\n /** The height of the computer display. */\n display_height: number;\n}\n\nexport function computerUsePreviewToolSerializer(item: ComputerUsePreviewTool): any {\n return {\n type: item[\"type\"],\n environment: item[\"environment\"],\n display_width: item[\"display_width\"],\n display_height: item[\"display_height\"],\n };\n}\n\nexport function computerUsePreviewToolDeserializer(item: any): ComputerUsePreviewTool {\n return {\n type: item[\"type\"],\n environment: item[\"environment\"],\n display_width: item[\"display_width\"],\n display_height: item[\"display_height\"],\n };\n}\n\n/**\n * Web search tool definition for agents.\n * Note: web_search is not yet available via Azure OpenAI.\n */\nexport interface WebSearchPreviewTool extends Tool {\n /** The type of the web search tool. One of `web_search_preview` or `web_search_preview_2025_03_11`. */\n type: \"web_search_preview\";\n /** The user's location. */\n user_location?: LocationUnion;\n /** High level guidance for the amount of context window space to use for the search. One of `low`, `medium`, or `high`. `medium` is the default. */\n search_context_size?: \"low\" | \"medium\" | \"high\";\n}\n\nexport function webSearchPreviewToolSerializer(item: WebSearchPreviewTool): any {\n return {\n type: item[\"type\"],\n user_location: !item[\"user_location\"]\n ? item[\"user_location\"]\n : locationUnionSerializer(item[\"user_location\"]),\n search_context_size: item[\"search_context_size\"],\n };\n}\n\nexport function webSearchPreviewToolDeserializer(item: any): WebSearchPreviewTool {\n return {\n type: item[\"type\"],\n user_location: !item[\"user_location\"]\n ? item[\"user_location\"]\n : locationUnionDeserializer(item[\"user_location\"]),\n search_context_size: item[\"search_context_size\"],\n };\n}\n\n/**\n * Base interface for location information.\n */\nexport interface Location {\n type: LocationType;\n}\n\nexport function locationSerializer(item: Location): any {\n return { type: item[\"type\"] };\n}\n\nexport function locationDeserializer(item: any): Location {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for LocationUnion */\nexport type LocationUnion = ApproximateLocation | Location;\n\nexport function locationUnionSerializer(item: LocationUnion): any {\n switch (item.type) {\n case \"approximate\":\n return approximateLocationSerializer(item as ApproximateLocation);\n\n default:\n return locationSerializer(item);\n }\n}\n\nexport function locationUnionDeserializer(item: any): LocationUnion {\n switch (item.type) {\n case \"approximate\":\n return approximateLocationDeserializer(item as ApproximateLocation);\n\n default:\n return locationDeserializer(item);\n }\n}\n\n/**\n * Type discriminator for location.\n */\nexport type LocationType = \"approximate\";\n\n/**\n * Approximate location information for web search.\n * Includes country, region, city, and timezone.\n */\nexport interface ApproximateLocation extends Location {\n type: \"approximate\";\n /** The country of the location. */\n country?: string;\n /** The region of the location. */\n region?: string;\n /** The city of the location. */\n city?: string;\n /** The timezone of the location. */\n timezone?: string;\n}\n\nexport function approximateLocationSerializer(item: ApproximateLocation): any {\n return {\n type: item[\"type\"],\n country: item[\"country\"],\n region: item[\"region\"],\n city: item[\"city\"],\n timezone: item[\"timezone\"],\n };\n}\n\nexport function approximateLocationDeserializer(item: any): ApproximateLocation {\n return {\n type: item[\"type\"],\n country: item[\"country\"],\n region: item[\"region\"],\n city: item[\"city\"],\n timezone: item[\"timezone\"],\n };\n}\n\n/**\n * Code interpreter tool definition for agents.\n * Runs Python code to help generate responses to prompts.\n */\nexport interface CodeInterpreterTool extends Tool {\n /** The type of the code interpreter tool. Always `code_interpreter`. */\n type: \"code_interpreter\";\n /**\n * The code interpreter container. Can be a container ID or an object that\n * specifies uploaded file IDs to make available to your code.\n */\n container: string | CodeInterpreterToolAuto;\n}\n\nexport function codeInterpreterToolSerializer(item: CodeInterpreterTool): any {\n return {\n type: item[\"type\"],\n container: _codeInterpreterToolContainerSerializer(item[\"container\"]),\n };\n}\n\nexport function codeInterpreterToolDeserializer(item: any): CodeInterpreterTool {\n return {\n type: item[\"type\"],\n container: _codeInterpreterToolContainerDeserializer(item[\"container\"]),\n };\n}\n\n/** Alias for _CodeInterpreterToolContainer */\nexport type _CodeInterpreterToolContainer = string | CodeInterpreterToolAuto;\n\nexport function _codeInterpreterToolContainerSerializer(item: _CodeInterpreterToolContainer): any {\n return item;\n}\n\nexport function _codeInterpreterToolContainerDeserializer(\n item: any,\n): _CodeInterpreterToolContainer {\n return item;\n}\n\n/**\n * Configuration for a code interpreter container. Optionally specify the IDs\n * of the files to run the code on.\n */\nexport interface CodeInterpreterToolAuto {\n /** Always `auto`. */\n type: \"auto\";\n /** An optional list of uploaded files to make available to your code. */\n file_ids?: string[];\n}\n\nexport function codeInterpreterToolAutoSerializer(item: CodeInterpreterToolAuto): any {\n return {\n type: item[\"type\"],\n file_ids: !item[\"file_ids\"]\n ? item[\"file_ids\"]\n : item[\"file_ids\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function codeInterpreterToolAutoDeserializer(item: any): CodeInterpreterToolAuto {\n return {\n type: item[\"type\"],\n file_ids: !item[\"file_ids\"]\n ? item[\"file_ids\"]\n : item[\"file_ids\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/**\n * Image generation tool definition for agents.\n * Generates images using a model like `gpt-image-1`.\n */\nexport interface ImageGenTool extends Tool {\n /** The type of the image generation tool. Always `image_generation`. */\n type: \"image_generation\";\n /** The image generation model to use. Default: `gpt-image-1`. */\n model?: \"gpt-image-1\";\n /**\n * The quality of the generated image. One of `low`, `medium`, `high`,\n * or `auto`. Default: `auto`.\n */\n quality?: \"low\" | \"medium\" | \"high\" | \"auto\";\n /**\n * The size of the generated image. One of `1024x1024`, `1024x1536`,\n * `1536x1024`, or `auto`. Default: `auto`.\n */\n size?: \"1024x1024\" | \"1024x1536\" | \"1536x1024\" | \"auto\";\n /**\n * The output format of the generated image. One of `png`, `webp`, or\n * `jpeg`. Default: `png`.\n */\n output_format?: \"png\" | \"webp\" | \"jpeg\";\n /** Compression level for the output image. Default: 100. */\n output_compression?: number;\n /** Moderation level for the generated image. Default: `auto`. */\n moderation?: \"auto\" | \"low\";\n /**\n * Background type for the generated image. One of `transparent`,\n * `opaque`, or `auto`. Default: `auto`.\n */\n background?: \"transparent\" | \"opaque\" | \"auto\";\n /**\n * Optional mask for inpainting. Contains `image_url`\n * (string, optional) and `file_id` (string, optional).\n */\n input_image_mask?: {\n image_url?: string;\n file_id?: string;\n };\n /** Number of partial images to generate in streaming mode, from 0 (default value) to 3. */\n partial_images?: number;\n}\n\nexport function imageGenToolSerializer(item: ImageGenTool): any {\n return {\n type: item[\"type\"],\n model: item[\"model\"],\n quality: item[\"quality\"],\n size: item[\"size\"],\n output_format: item[\"output_format\"],\n output_compression: item[\"output_compression\"],\n moderation: item[\"moderation\"],\n background: item[\"background\"],\n input_image_mask: !item[\"input_image_mask\"]\n ? item[\"input_image_mask\"]\n : _imageGenToolInputImageMaskSerializer(item[\"input_image_mask\"]),\n partial_images: item[\"partial_images\"],\n };\n}\n\nexport function imageGenToolDeserializer(item: any): ImageGenTool {\n return {\n type: item[\"type\"],\n model: item[\"model\"],\n quality: item[\"quality\"],\n size: item[\"size\"],\n output_format: item[\"output_format\"],\n output_compression: item[\"output_compression\"],\n moderation: item[\"moderation\"],\n background: item[\"background\"],\n input_image_mask: !item[\"input_image_mask\"]\n ? item[\"input_image_mask\"]\n : _imageGenToolInputImageMaskDeserializer(item[\"input_image_mask\"]),\n partial_images: item[\"partial_images\"],\n };\n}\n\n/**\n * Input image mask configuration for image generation tool.\n * Can specify either a base64-encoded image URL or a file ID.\n */\nexport interface _ImageGenToolInputImageMask {\n /** Base64-encoded mask image. */\n image_url?: string;\n /** File ID for the mask image. */\n file_id?: string;\n}\n\nexport function _imageGenToolInputImageMaskSerializer(item: _ImageGenToolInputImageMask): any {\n return { image_url: item[\"image_url\"], file_id: item[\"file_id\"] };\n}\n\nexport function _imageGenToolInputImageMaskDeserializer(item: any): _ImageGenToolInputImageMask {\n return {\n image_url: item[\"image_url\"],\n file_id: item[\"file_id\"],\n };\n}\n\n/**\n * Local shell tool definition for agents.\n * Allows the model to execute shell commands in a local environment.\n */\nexport interface LocalShellTool extends Tool {\n /** The type of the local shell tool. Always `local_shell`. */\n type: \"local_shell\";\n}\n\nexport function localShellToolSerializer(item: LocalShellTool): any {\n return { type: item[\"type\"] };\n}\n\nexport function localShellToolDeserializer(item: any): LocalShellTool {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * MCP (Model Context Protocol) tool definition for agents.\n * Gives the model access to additional tools via remote MCP servers.\n * [Learn more about MCP](https://platform.openai.com/docs/guides/tools-remote-mcp).\n */\nexport interface MCPTool extends Tool {\n /** The type of the MCP tool. Always `mcp`. */\n type: \"mcp\";\n /** A label for this MCP server, used to identify it in tool calls. */\n server_label: string;\n /** The URL for the MCP server. */\n server_url: string;\n /**\n * Optional HTTP headers to send to the MCP server. Use for authentication\n * or other purposes.\n */\n headers?: Record<string, string>;\n /** List of allowed tool names or a filter object. */\n allowed_tools?:\n | string[]\n | {\n tool_names?: string[];\n };\n /** Specify which of the MCP server's tools require approval. */\n require_approval?:\n | {\n /** A list of tools that always require approval. */\n always?: {\n /** List of tool names (snake_case) that always require approval. */\n tool_names?: string[];\n };\n /** A list of tools that never require approval. */\n never?: {\n /** List of tool names (snake_case) that never require approval. */\n tool_names?: string[];\n };\n }\n | \"always\"\n | \"never\";\n /** The connection ID in the project for the MCP server. The connection stores authentication and other connection details needed to connect to the MCP server. */\n project_connection_id?: string;\n}\n\nexport function mcpToolSerializer(item: MCPTool): any {\n return {\n type: item[\"type\"],\n server_label: item[\"server_label\"],\n server_url: item[\"server_url\"],\n headers: item[\"headers\"],\n allowed_tools: !item[\"allowed_tools\"]\n ? item[\"allowed_tools\"]\n : _mcpToolAllowedToolsSerializer(item[\"allowed_tools\"]),\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _mcpToolRequireApprovalSerializer(item[\"require_approval\"]),\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\nexport function mcpToolDeserializer(item: any): MCPTool {\n return {\n type: item[\"type\"],\n server_label: item[\"server_label\"],\n server_url: item[\"server_url\"],\n headers: item[\"headers\"],\n allowed_tools: !item[\"allowed_tools\"]\n ? item[\"allowed_tools\"]\n : _mcpToolAllowedToolsDeserializer(item[\"allowed_tools\"]),\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _mcpToolRequireApprovalDeserializer(item[\"require_approval\"]),\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\n/** Alias for _MCPToolAllowedTools */\nexport type _MCPToolAllowedTools =\n | string[]\n | {\n tool_names?: string[];\n };\n\nexport function _mcpToolAllowedToolsSerializer(item: _MCPToolAllowedTools): any {\n return item;\n}\n\nexport function _mcpToolAllowedToolsDeserializer(item: any): _MCPToolAllowedTools {\n return item;\n}\n\n/** model interface _MCPToolAllowedTools1 */\nexport interface _MCPToolAllowedTools1 {\n /** List of allowed tool names. */\n tool_names?: string[];\n}\n\nexport function _mcpToolAllowedTools1Serializer(item: _MCPToolAllowedTools1): any {\n return {\n tool_names: !item[\"tool_names\"]\n ? item[\"tool_names\"]\n : item[\"tool_names\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function _mcpToolAllowedTools1Deserializer(item: any): _MCPToolAllowedTools1 {\n return {\n tool_names: !item[\"tool_names\"]\n ? item[\"tool_names\"]\n : item[\"tool_names\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Alias for _MCPToolRequireApproval */\nexport type _MCPToolRequireApproval =\n | {\n always?: {\n tool_names?: string[];\n };\n never?: {\n tool_names?: string[];\n };\n }\n | \"always\"\n | \"never\";\n\nexport function _mcpToolRequireApprovalSerializer(item: _MCPToolRequireApproval): any {\n if (typeof item === \"string\") {\n return item;\n }\n return {\n always: !item.always\n ? item.always\n : {\n tool_names: item.always.tool_names,\n },\n never: !item.never\n ? item.never\n : {\n tool_names: item.never.tool_names,\n },\n };\n}\n\nexport function _mcpToolRequireApprovalDeserializer(item: any): _MCPToolRequireApproval {\n return item;\n}\n\n/** model interface _MCPToolRequireApproval1 */\nexport interface _MCPToolRequireApproval1 {\n /** A list of tools that always require approval. */\n always?: {\n tool_names?: string[];\n };\n /** A list of tools that never require approval. */\n never?: {\n tool_names?: string[];\n };\n}\n\nexport function _mcpToolRequireApproval1Serializer(item: _MCPToolRequireApproval1): any {\n return {\n always: !item[\"always\"]\n ? item[\"always\"]\n : _mcpToolRequireApprovalAlwaysSerializer(item[\"always\"]),\n never: !item[\"never\"] ? item[\"never\"] : _mcpToolRequireApprovalNeverSerializer(item[\"never\"]),\n };\n}\n\nexport function _mcpToolRequireApproval1Deserializer(item: any): _MCPToolRequireApproval1 {\n return {\n always: !item[\"always\"]\n ? item[\"always\"]\n : _mcpToolRequireApprovalAlwaysDeserializer(item[\"always\"]),\n never: !item[\"never\"] ? item[\"never\"] : _mcpToolRequireApprovalNeverDeserializer(item[\"never\"]),\n };\n}\n\n/** model interface _MCPToolRequireApprovalAlways */\nexport interface _MCPToolRequireApprovalAlways {\n /** List of tools that require approval. */\n tool_names?: string[];\n}\n\nexport function _mcpToolRequireApprovalAlwaysSerializer(item: _MCPToolRequireApprovalAlways): any {\n return {\n tool_names: !item[\"tool_names\"]\n ? item[\"tool_names\"]\n : item[\"tool_names\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function _mcpToolRequireApprovalAlwaysDeserializer(\n item: any,\n): _MCPToolRequireApprovalAlways {\n return {\n tool_names: !item[\"tool_names\"]\n ? item[\"tool_names\"]\n : item[\"tool_names\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** model interface _MCPToolRequireApprovalNever */\nexport interface _MCPToolRequireApprovalNever {\n /** List of tools that do not require approval. */\n tool_names?: string[];\n}\n\nexport function _mcpToolRequireApprovalNeverSerializer(item: _MCPToolRequireApprovalNever): any {\n return {\n tool_names: !item[\"tool_names\"]\n ? item[\"tool_names\"]\n : item[\"tool_names\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function _mcpToolRequireApprovalNeverDeserializer(item: any): _MCPToolRequireApprovalNever {\n return {\n tool_names: !item[\"tool_names\"]\n ? item[\"tool_names\"]\n : item[\"tool_names\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** The input definition information for a bing grounding search tool as used to configure an agent. */\nexport interface BingGroundingAgentTool extends Tool {\n /** The object type, which is always 'bing_grounding'. */\n type: \"bing_grounding\";\n /** The bing grounding search tool parameters. */\n bing_grounding: BingGroundingSearchToolParameters;\n}\n\nexport function bingGroundingAgentToolSerializer(item: BingGroundingAgentTool): any {\n return {\n type: item[\"type\"],\n bing_grounding: bingGroundingSearchToolParametersSerializer(item[\"bing_grounding\"]),\n };\n}\n\nexport function bingGroundingAgentToolDeserializer(item: any): BingGroundingAgentTool {\n return {\n type: item[\"type\"],\n bing_grounding: bingGroundingSearchToolParametersDeserializer(item[\"bing_grounding\"]),\n };\n}\n\n/** The bing grounding search tool parameters. */\nexport interface BingGroundingSearchToolParameters {\n /**\n * The search configurations attached to this tool. There can be a maximum of 1\n * search configuration resource attached to the tool.\n */\n search_configurations: BingGroundingSearchConfiguration[];\n}\n\nexport function bingGroundingSearchToolParametersSerializer(\n item: BingGroundingSearchToolParameters,\n): any {\n return {\n search_configurations: bingGroundingSearchConfigurationArraySerializer(\n item[\"search_configurations\"],\n ),\n };\n}\n\nexport function bingGroundingSearchToolParametersDeserializer(\n item: any,\n): BingGroundingSearchToolParameters {\n return {\n search_configurations: bingGroundingSearchConfigurationArrayDeserializer(\n item[\"search_configurations\"],\n ),\n };\n}\n\nexport function bingGroundingSearchConfigurationArraySerializer(\n result: Array<BingGroundingSearchConfiguration>,\n): any[] {\n return result.map((item) => {\n return bingGroundingSearchConfigurationSerializer(item);\n });\n}\n\nexport function bingGroundingSearchConfigurationArrayDeserializer(\n result: Array<BingGroundingSearchConfiguration>,\n): any[] {\n return result.map((item) => {\n return bingGroundingSearchConfigurationDeserializer(item);\n });\n}\n\n/** Search configuration for Bing Grounding */\nexport interface BingGroundingSearchConfiguration {\n /** Project connection id for grounding with bing search */\n project_connection_id: string;\n /** The market where the results come from. */\n market?: string;\n /** The language to use for user interface strings when calling Bing API. */\n set_lang?: string;\n /** The number of search results to return in the bing api response */\n count?: number;\n /** Filter search results by a specific time range. See [accepted values here](https://learn.microsoft.com/bing/search-apis/bing-web-search/reference/query-parameters). */\n freshness?: string;\n}\n\nexport function bingGroundingSearchConfigurationSerializer(\n item: BingGroundingSearchConfiguration,\n): any {\n return {\n project_connection_id: item[\"project_connection_id\"],\n market: item[\"market\"],\n set_lang: item[\"set_lang\"],\n count: item[\"count\"],\n freshness: item[\"freshness\"],\n };\n}\n\nexport function bingGroundingSearchConfigurationDeserializer(\n item: any,\n): BingGroundingSearchConfiguration {\n return {\n project_connection_id: item[\"project_connection_id\"],\n market: item[\"market\"],\n set_lang: item[\"set_lang\"],\n count: item[\"count\"],\n freshness: item[\"freshness\"],\n };\n}\n\n/** The input definition information for a Microsoft Fabric tool as used to configure an agent. */\nexport interface MicrosoftFabricAgentTool extends Tool {\n /** The object type, which is always 'fabric_dataagent'. */\n type: \"fabric_dataagent_preview\";\n /** The fabric data agent tool parameters. */\n fabric_dataagent_preview: FabricDataAgentToolParameters;\n}\n\nexport function microsoftFabricAgentToolSerializer(item: MicrosoftFabricAgentTool): any {\n return {\n type: item[\"type\"],\n fabric_dataagent_preview: fabricDataAgentToolParametersSerializer(\n item[\"fabric_dataagent_preview\"],\n ),\n };\n}\n\nexport function microsoftFabricAgentToolDeserializer(item: any): MicrosoftFabricAgentTool {\n return {\n type: item[\"type\"],\n fabric_dataagent_preview: fabricDataAgentToolParametersDeserializer(\n item[\"fabric_dataagent_preview\"],\n ),\n };\n}\n\n/** The fabric data agent tool parameters. */\nexport interface FabricDataAgentToolParameters {\n /**\n * The project connections attached to this tool. There can be a maximum of 1 connection\n * resource attached to the tool.\n */\n project_connections?: ToolProjectConnection[];\n}\n\nexport function fabricDataAgentToolParametersSerializer(item: FabricDataAgentToolParameters): any {\n return {\n project_connections: !item[\"project_connections\"]\n ? item[\"project_connections\"]\n : toolProjectConnectionArraySerializer(item[\"project_connections\"]),\n };\n}\n\nexport function fabricDataAgentToolParametersDeserializer(\n item: any,\n): FabricDataAgentToolParameters {\n return {\n project_connections: !item[\"project_connections\"]\n ? item[\"project_connections\"]\n : toolProjectConnectionArrayDeserializer(item[\"project_connections\"]),\n };\n}\n\nexport function toolProjectConnectionArraySerializer(result: Array<ToolProjectConnection>): any[] {\n return result.map((item) => {\n return toolProjectConnectionSerializer(item);\n });\n}\n\nexport function toolProjectConnectionArrayDeserializer(\n result: Array<ToolProjectConnection>,\n): any[] {\n return result.map((item) => {\n return toolProjectConnectionDeserializer(item);\n });\n}\n\n/** A project connection resource. */\nexport interface ToolProjectConnection {\n /** A project connection in a ToolProjectConnectionList attached to this tool. */\n project_connection_id: string;\n}\n\nexport function toolProjectConnectionSerializer(item: ToolProjectConnection): any {\n return { project_connection_id: item[\"project_connection_id\"] };\n}\n\nexport function toolProjectConnectionDeserializer(item: any): ToolProjectConnection {\n return {\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\n/** The input definition information for a sharepoint tool as used to configure an agent. */\nexport interface SharepointAgentTool extends Tool {\n /** The object type, which is always 'sharepoint_grounding'. */\n type: \"sharepoint_grounding_preview\";\n /** The sharepoint grounding tool parameters. */\n sharepoint_grounding_preview: SharepointGroundingToolParameters;\n}\n\nexport function sharepointAgentToolSerializer(item: SharepointAgentTool): any {\n return {\n type: item[\"type\"],\n sharepoint_grounding_preview: sharepointGroundingToolParametersSerializer(\n item[\"sharepoint_grounding_preview\"],\n ),\n };\n}\n\nexport function sharepointAgentToolDeserializer(item: any): SharepointAgentTool {\n return {\n type: item[\"type\"],\n sharepoint_grounding_preview: sharepointGroundingToolParametersDeserializer(\n item[\"sharepoint_grounding_preview\"],\n ),\n };\n}\n\n/** The sharepoint grounding tool parameters. */\nexport interface SharepointGroundingToolParameters {\n /**\n * The project connections attached to this tool. There can be a maximum of 1 connection\n * resource attached to the tool.\n */\n project_connections?: ToolProjectConnection[];\n}\n\nexport function sharepointGroundingToolParametersSerializer(\n item: SharepointGroundingToolParameters,\n): any {\n return {\n project_connections: !item[\"project_connections\"]\n ? item[\"project_connections\"]\n : toolProjectConnectionArraySerializer(item[\"project_connections\"]),\n };\n}\n\nexport function sharepointGroundingToolParametersDeserializer(\n item: any,\n): SharepointGroundingToolParameters {\n return {\n project_connections: !item[\"project_connections\"]\n ? item[\"project_connections\"]\n : toolProjectConnectionArrayDeserializer(item[\"project_connections\"]),\n };\n}\n\n/** The input definition information for an Azure AI search tool as used to configure an agent. */\nexport interface AzureAISearchAgentTool extends Tool {\n /** The object type, which is always 'azure_ai_search'. */\n type: \"azure_ai_search\";\n /** The azure ai search index resource. */\n azure_ai_search: AzureAISearchToolResource;\n}\n\nexport function azureAISearchAgentToolSerializer(item: AzureAISearchAgentTool): any {\n return {\n type: item[\"type\"],\n azure_ai_search: azureAISearchToolResourceSerializer(item[\"azure_ai_search\"]),\n };\n}\n\nexport function azureAISearchAgentToolDeserializer(item: any): AzureAISearchAgentTool {\n return {\n type: item[\"type\"],\n azure_ai_search: azureAISearchToolResourceDeserializer(item[\"azure_ai_search\"]),\n };\n}\n\n/** A set of index resources used by the `azure_ai_search` tool. */\nexport interface AzureAISearchToolResource {\n /**\n * The indices attached to this agent. There can be a maximum of 1 index\n * resource attached to the agent.\n */\n indexes: AISearchIndexResource[];\n}\n\nexport function azureAISearchToolResourceSerializer(item: AzureAISearchToolResource): any {\n return { indexes: aiSearchIndexResourceArraySerializer(item[\"indexes\"]) };\n}\n\nexport function azureAISearchToolResourceDeserializer(item: any): AzureAISearchToolResource {\n return {\n indexes: aiSearchIndexResourceArrayDeserializer(item[\"indexes\"]),\n };\n}\n\nexport function aiSearchIndexResourceArraySerializer(result: Array<AISearchIndexResource>): any[] {\n return result.map((item) => {\n return aiSearchIndexResourceSerializer(item);\n });\n}\n\nexport function aiSearchIndexResourceArrayDeserializer(\n result: Array<AISearchIndexResource>,\n): any[] {\n return result.map((item) => {\n return aiSearchIndexResourceDeserializer(item);\n });\n}\n\n/** A AI Search Index resource. */\nexport interface AISearchIndexResource {\n /** An index connection ID in an IndexResource attached to this agent. */\n project_connection_id?: string;\n /** The name of an index in an IndexResource attached to this agent. */\n index_name?: string;\n /** Type of query in an AIIndexResource attached to this agent. */\n query_type?: AzureAISearchQueryType;\n /** Number of documents to retrieve from search and present to the model. */\n top_k?: number;\n /** filter string for search resource. [Learn more here](https://learn.microsoft.com/azure/search/search-filters). */\n filter?: string;\n /** Index asset id for search resource. */\n index_asset_id?: string;\n}\n\nexport function aiSearchIndexResourceSerializer(item: AISearchIndexResource): any {\n return {\n project_connection_id: item[\"project_connection_id\"],\n index_name: item[\"index_name\"],\n query_type: item[\"query_type\"],\n top_k: item[\"top_k\"],\n filter: item[\"filter\"],\n index_asset_id: item[\"index_asset_id\"],\n };\n}\n\nexport function aiSearchIndexResourceDeserializer(item: any): AISearchIndexResource {\n return {\n project_connection_id: item[\"project_connection_id\"],\n index_name: item[\"index_name\"],\n query_type: item[\"query_type\"],\n top_k: item[\"top_k\"],\n filter: item[\"filter\"],\n index_asset_id: item[\"index_asset_id\"],\n };\n}\n\n/** Available query types for Azure AI Search tool. */\nexport type AzureAISearchQueryType =\n | \"simple\"\n | \"semantic\"\n | \"vector\"\n | \"vector_simple_hybrid\"\n | \"vector_semantic_hybrid\";\n\n/** The input definition information for an OpenAPI tool as used to configure an agent. */\nexport interface OpenApiAgentTool extends Tool {\n /** The object type, which is always 'openapi'. */\n type: \"openapi\";\n /** The openapi function definition. */\n openapi: OpenApiFunctionDefinition;\n}\n\nexport function openApiAgentToolSerializer(item: OpenApiAgentTool): any {\n return {\n type: item[\"type\"],\n openapi: openApiFunctionDefinitionSerializer(item[\"openapi\"]),\n };\n}\n\nexport function openApiAgentToolDeserializer(item: any): OpenApiAgentTool {\n return {\n type: item[\"type\"],\n openapi: openApiFunctionDefinitionDeserializer(item[\"openapi\"]),\n };\n}\n\n/** The input definition information for an openapi function. */\nexport interface OpenApiFunctionDefinition {\n /** The name of the function to be called. */\n name: string;\n /** A description of what the function does, used by the model to choose when and how to call the function. */\n description?: string;\n /** The openapi function shape, described as a JSON Schema object. */\n spec: unknown;\n /** Open API authentication details */\n auth: OpenApiAuthDetailsUnion;\n /** List of OpenAPI spec parameters that will use user-provided defaults */\n default_params?: string[];\n /** List of function definitions used by OpenApi tool */\n readonly functions?: {\n name: string;\n description?: string;\n parameters: unknown;\n }[];\n}\n\nexport function openApiFunctionDefinitionSerializer(item: OpenApiFunctionDefinition): any {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n spec: item[\"spec\"],\n auth: openApiAuthDetailsUnionSerializer(item[\"auth\"]),\n default_params: !item[\"default_params\"]\n ? item[\"default_params\"]\n : item[\"default_params\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function openApiFunctionDefinitionDeserializer(item: any): OpenApiFunctionDefinition {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n spec: item[\"spec\"],\n auth: openApiAuthDetailsUnionDeserializer(item[\"auth\"]),\n default_params: !item[\"default_params\"]\n ? item[\"default_params\"]\n : item[\"default_params\"].map((p: any) => {\n return p;\n }),\n functions: !item[\"functions\"]\n ? item[\"functions\"]\n : _openApiFunctionDefinitionFunctionArrayDeserializer(item[\"functions\"]),\n };\n}\n\n/** authentication details for OpenApiFunctionDefinition */\nexport interface OpenApiAuthDetails {\n /** The type of authentication, must be anonymous/project_connection/managed_identity */\n /** The discriminator possible values: anonymous, project_connection, managed_identity */\n type: OpenApiAuthType;\n}\n\nexport function openApiAuthDetailsSerializer(item: OpenApiAuthDetails): any {\n return { type: item[\"type\"] };\n}\n\nexport function openApiAuthDetailsDeserializer(item: any): OpenApiAuthDetails {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for OpenApiAuthDetailsUnion */\nexport type OpenApiAuthDetailsUnion =\n | OpenApiAnonymousAuthDetails\n | OpenApiProjectConnectionAuthDetails\n | OpenApiManagedAuthDetails\n | OpenApiAuthDetails;\n\nexport function openApiAuthDetailsUnionSerializer(item: OpenApiAuthDetailsUnion): any {\n switch (item.type) {\n case \"anonymous\":\n return openApiAnonymousAuthDetailsSerializer(item as OpenApiAnonymousAuthDetails);\n\n case \"project_connection\":\n return openApiProjectConnectionAuthDetailsSerializer(\n item as OpenApiProjectConnectionAuthDetails,\n );\n\n case \"managed_identity\":\n return openApiManagedAuthDetailsSerializer(item as OpenApiManagedAuthDetails);\n\n default:\n return openApiAuthDetailsSerializer(item);\n }\n}\n\nexport function openApiAuthDetailsUnionDeserializer(item: any): OpenApiAuthDetailsUnion {\n switch (item.type) {\n case \"anonymous\":\n return openApiAnonymousAuthDetailsDeserializer(item as OpenApiAnonymousAuthDetails);\n\n case \"project_connection\":\n return openApiProjectConnectionAuthDetailsDeserializer(\n item as OpenApiProjectConnectionAuthDetails,\n );\n\n case \"managed_identity\":\n return openApiManagedAuthDetailsDeserializer(item as OpenApiManagedAuthDetails);\n\n default:\n return openApiAuthDetailsDeserializer(item);\n }\n}\n\n/**\n * Authentication type for OpenApi endpoint. Allowed types are:\n * - Anonymous (no authentication required)\n * - Project Connection (requires project_connection_id to endpoint, as setup in Microsoft Foundry)\n * - Managed_Identity (requires audience for identity based auth)\n */\nexport type OpenApiAuthType = \"anonymous\" | \"project_connection\" | \"managed_identity\";\n\n/** Security details for OpenApi anonymous authentication */\nexport interface OpenApiAnonymousAuthDetails extends OpenApiAuthDetails {\n /** The object type, which is always 'anonymous'. */\n type: \"anonymous\";\n}\n\nexport function openApiAnonymousAuthDetailsSerializer(item: OpenApiAnonymousAuthDetails): any {\n return { type: item[\"type\"] };\n}\n\nexport function openApiAnonymousAuthDetailsDeserializer(item: any): OpenApiAnonymousAuthDetails {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Security details for OpenApi project connection authentication */\nexport interface OpenApiProjectConnectionAuthDetails extends OpenApiAuthDetails {\n /** The object type, which is always 'project_connection'. */\n type: \"project_connection\";\n /** Project connection auth security details */\n security_scheme: OpenApiProjectConnectionSecurityScheme;\n}\n\nexport function openApiProjectConnectionAuthDetailsSerializer(\n item: OpenApiProjectConnectionAuthDetails,\n): any {\n return {\n type: item[\"type\"],\n security_scheme: openApiProjectConnectionSecuritySchemeSerializer(item[\"security_scheme\"]),\n };\n}\n\nexport function openApiProjectConnectionAuthDetailsDeserializer(\n item: any,\n): OpenApiProjectConnectionAuthDetails {\n return {\n type: item[\"type\"],\n security_scheme: openApiProjectConnectionSecuritySchemeDeserializer(item[\"security_scheme\"]),\n };\n}\n\n/** Security scheme for OpenApi managed_identity authentication */\nexport interface OpenApiProjectConnectionSecurityScheme {\n /** Project connection id for Project Connection auth type */\n project_connection_id: string;\n}\n\nexport function openApiProjectConnectionSecuritySchemeSerializer(\n item: OpenApiProjectConnectionSecurityScheme,\n): any {\n return { project_connection_id: item[\"project_connection_id\"] };\n}\n\nexport function openApiProjectConnectionSecuritySchemeDeserializer(\n item: any,\n): OpenApiProjectConnectionSecurityScheme {\n return {\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\n/** Security details for OpenApi managed_identity authentication */\nexport interface OpenApiManagedAuthDetails extends OpenApiAuthDetails {\n /** The object type, which is always 'managed_identity'. */\n type: \"managed_identity\";\n /** Connection auth security details */\n security_scheme: OpenApiManagedSecurityScheme;\n}\n\nexport function openApiManagedAuthDetailsSerializer(item: OpenApiManagedAuthDetails): any {\n return {\n type: item[\"type\"],\n security_scheme: openApiManagedSecuritySchemeSerializer(item[\"security_scheme\"]),\n };\n}\n\nexport function openApiManagedAuthDetailsDeserializer(item: any): OpenApiManagedAuthDetails {\n return {\n type: item[\"type\"],\n security_scheme: openApiManagedSecuritySchemeDeserializer(item[\"security_scheme\"]),\n };\n}\n\n/** Security scheme for OpenApi managed_identity authentication */\nexport interface OpenApiManagedSecurityScheme {\n /** Authentication scope for managed_identity auth type */\n audience: string;\n}\n\nexport function openApiManagedSecuritySchemeSerializer(item: OpenApiManagedSecurityScheme): any {\n return { audience: item[\"audience\"] };\n}\n\nexport function openApiManagedSecuritySchemeDeserializer(item: any): OpenApiManagedSecurityScheme {\n return {\n audience: item[\"audience\"],\n };\n}\n\nexport function _openApiFunctionDefinitionFunctionArrayDeserializer(\n result: Array<_OpenApiFunctionDefinitionFunction>,\n): any[] {\n return result.map((item) => {\n return _openApiFunctionDefinitionFunctionDeserializer(item);\n });\n}\n\n/** model interface _OpenApiFunctionDefinitionFunction */\nexport interface _OpenApiFunctionDefinitionFunction {\n /** The name of the function to be called. */\n name: string;\n /** A description of what the function does, used by the model to choose when and how to call the function. */\n description?: string;\n /** The parameters the functions accepts, described as a JSON Schema object. */\n parameters: unknown;\n}\n\nexport function _openApiFunctionDefinitionFunctionDeserializer(\n item: any,\n): _OpenApiFunctionDefinitionFunction {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n parameters: item[\"parameters\"],\n };\n}\n\n/** The input definition information for a Bing custom search tool as used to configure an agent. */\nexport interface BingCustomSearchAgentTool extends Tool {\n /** The object type, which is always 'bing_custom_search'. */\n type: \"bing_custom_search_preview\";\n /** The bing custom search tool parameters. */\n bing_custom_search_preview: BingCustomSearchToolParameters;\n}\n\nexport function bingCustomSearchAgentToolSerializer(item: BingCustomSearchAgentTool): any {\n return {\n type: item[\"type\"],\n bing_custom_search_preview: bingCustomSearchToolParametersSerializer(\n item[\"bing_custom_search_preview\"],\n ),\n };\n}\n\nexport function bingCustomSearchAgentToolDeserializer(item: any): BingCustomSearchAgentTool {\n return {\n type: item[\"type\"],\n bing_custom_search_preview: bingCustomSearchToolParametersDeserializer(\n item[\"bing_custom_search_preview\"],\n ),\n };\n}\n\n/** The bing custom search tool parameters. */\nexport interface BingCustomSearchToolParameters {\n /**\n * The project connections attached to this tool. There can be a maximum of 1 connection\n * resource attached to the tool.\n */\n search_configurations: BingCustomSearchConfiguration[];\n}\n\nexport function bingCustomSearchToolParametersSerializer(\n item: BingCustomSearchToolParameters,\n): any {\n return {\n search_configurations: bingCustomSearchConfigurationArraySerializer(\n item[\"search_configurations\"],\n ),\n };\n}\n\nexport function bingCustomSearchToolParametersDeserializer(\n item: any,\n): BingCustomSearchToolParameters {\n return {\n search_configurations: bingCustomSearchConfigurationArrayDeserializer(\n item[\"search_configurations\"],\n ),\n };\n}\n\nexport function bingCustomSearchConfigurationArraySerializer(\n result: Array<BingCustomSearchConfiguration>,\n): any[] {\n return result.map((item) => {\n return bingCustomSearchConfigurationSerializer(item);\n });\n}\n\nexport function bingCustomSearchConfigurationArrayDeserializer(\n result: Array<BingCustomSearchConfiguration>,\n): any[] {\n return result.map((item) => {\n return bingCustomSearchConfigurationDeserializer(item);\n });\n}\n\n/** A bing custom search configuration. */\nexport interface BingCustomSearchConfiguration {\n /** Project connection id for grounding with bing search */\n project_connection_id: string;\n /** Name of the custom configuration instance given to config. */\n instance_name: string;\n /** The market where the results come from. */\n market?: string;\n /** The language to use for user interface strings when calling Bing API. */\n set_lang?: string;\n /** The number of search results to return in the bing api response */\n count?: number;\n /** Filter search results by a specific time range. See [accepted values here](https://learn.microsoft.com/bing/search-apis/bing-web-search/reference/query-parameters). */\n freshness?: string;\n}\n\nexport function bingCustomSearchConfigurationSerializer(item: BingCustomSearchConfiguration): any {\n return {\n project_connection_id: item[\"project_connection_id\"],\n instance_name: item[\"instance_name\"],\n market: item[\"market\"],\n set_lang: item[\"set_lang\"],\n count: item[\"count\"],\n freshness: item[\"freshness\"],\n };\n}\n\nexport function bingCustomSearchConfigurationDeserializer(\n item: any,\n): BingCustomSearchConfiguration {\n return {\n project_connection_id: item[\"project_connection_id\"],\n instance_name: item[\"instance_name\"],\n market: item[\"market\"],\n set_lang: item[\"set_lang\"],\n count: item[\"count\"],\n freshness: item[\"freshness\"],\n };\n}\n\n/** The input definition information for a Browser Automation Tool, as used to configure an Agent. */\nexport interface BrowserAutomationAgentTool extends Tool {\n /** The object type, which is always 'browser_automation'. */\n type: \"browser_automation_preview\";\n /** The Browser Automation Tool parameters. */\n browser_automation_preview: BrowserAutomationToolParameters;\n}\n\nexport function browserAutomationAgentToolSerializer(item: BrowserAutomationAgentTool): any {\n return {\n type: item[\"type\"],\n browser_automation_preview: browserAutomationToolParametersSerializer(\n item[\"browser_automation_preview\"],\n ),\n };\n}\n\nexport function browserAutomationAgentToolDeserializer(item: any): BrowserAutomationAgentTool {\n return {\n type: item[\"type\"],\n browser_automation_preview: browserAutomationToolParametersDeserializer(\n item[\"browser_automation_preview\"],\n ),\n };\n}\n\n/** Definition of input parameters for the Browser Automation Tool. */\nexport interface BrowserAutomationToolParameters {\n /** The project connection parameters associated with the Browser Automation Tool. */\n connection: BrowserAutomationToolConnectionParameters;\n}\n\nexport function browserAutomationToolParametersSerializer(\n item: BrowserAutomationToolParameters,\n): any {\n return {\n connection: browserAutomationToolConnectionParametersSerializer(item[\"connection\"]),\n };\n}\n\nexport function browserAutomationToolParametersDeserializer(\n item: any,\n): BrowserAutomationToolParameters {\n return {\n connection: browserAutomationToolConnectionParametersDeserializer(item[\"connection\"]),\n };\n}\n\n/** Definition of input parameters for the connection used by the Browser Automation Tool. */\nexport interface BrowserAutomationToolConnectionParameters {\n /** The ID of the project connection to your Azure Playwright resource. */\n project_connection_id: string;\n}\n\nexport function browserAutomationToolConnectionParametersSerializer(\n item: BrowserAutomationToolConnectionParameters,\n): any {\n return { project_connection_id: item[\"project_connection_id\"] };\n}\n\nexport function browserAutomationToolConnectionParametersDeserializer(\n item: any,\n): BrowserAutomationToolConnectionParameters {\n return {\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\n/** The input definition information for an Azure Function Tool, as used to configure an Agent. */\nexport interface AzureFunctionAgentTool extends Tool {\n /** The object type, which is always 'browser_automation'. */\n type: \"azure_function\";\n /** The Azure Function Tool definition. */\n azure_function: AzureFunctionDefinition;\n}\n\nexport function azureFunctionAgentToolSerializer(item: AzureFunctionAgentTool): any {\n return {\n type: item[\"type\"],\n azure_function: azureFunctionDefinitionSerializer(item[\"azure_function\"]),\n };\n}\n\nexport function azureFunctionAgentToolDeserializer(item: any): AzureFunctionAgentTool {\n return {\n type: item[\"type\"],\n azure_function: azureFunctionDefinitionDeserializer(item[\"azure_function\"]),\n };\n}\n\n/** The definition of Azure function. */\nexport interface AzureFunctionDefinition {\n /** The definition of azure function and its parameters. */\n function: {\n name: string;\n description?: string;\n parameters: unknown;\n };\n /** Input storage queue. The queue storage trigger runs a function as messages are added to it. */\n input_binding: AzureFunctionBinding;\n /** Output storage queue. The function writes output to this queue when the input items are processed. */\n output_binding: AzureFunctionBinding;\n}\n\nexport function azureFunctionDefinitionSerializer(item: AzureFunctionDefinition): any {\n return {\n function: _azureFunctionDefinitionFunctionSerializer(item[\"function\"]),\n input_binding: azureFunctionBindingSerializer(item[\"input_binding\"]),\n output_binding: azureFunctionBindingSerializer(item[\"output_binding\"]),\n };\n}\n\nexport function azureFunctionDefinitionDeserializer(item: any): AzureFunctionDefinition {\n return {\n function: _azureFunctionDefinitionFunctionDeserializer(item[\"function\"]),\n input_binding: azureFunctionBindingDeserializer(item[\"input_binding\"]),\n output_binding: azureFunctionBindingDeserializer(item[\"output_binding\"]),\n };\n}\n\n/** model interface _AzureFunctionDefinitionFunction */\nexport interface _AzureFunctionDefinitionFunction {\n /** The name of the function to be called. */\n name: string;\n /** A description of what the function does, used by the model to choose when and how to call the function. */\n description?: string;\n /** The parameters the functions accepts, described as a JSON Schema object. */\n parameters: unknown;\n}\n\nexport function _azureFunctionDefinitionFunctionSerializer(\n item: _AzureFunctionDefinitionFunction,\n): any {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n parameters: item[\"parameters\"],\n };\n}\n\nexport function _azureFunctionDefinitionFunctionDeserializer(\n item: any,\n): _AzureFunctionDefinitionFunction {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n parameters: item[\"parameters\"],\n };\n}\n\n/** The structure for keeping storage queue name and URI. */\nexport interface AzureFunctionBinding {\n /** The type of binding, which is always 'storage_queue'. */\n type: \"storage_queue\";\n /** Storage queue. */\n storage_queue: AzureFunctionStorageQueue;\n}\n\nexport function azureFunctionBindingSerializer(item: AzureFunctionBinding): any {\n return {\n type: item[\"type\"],\n storage_queue: azureFunctionStorageQueueSerializer(item[\"storage_queue\"]),\n };\n}\n\nexport function azureFunctionBindingDeserializer(item: any): AzureFunctionBinding {\n return {\n type: item[\"type\"],\n storage_queue: azureFunctionStorageQueueDeserializer(item[\"storage_queue\"]),\n };\n}\n\n/** The structure for keeping storage queue name and URI. */\nexport interface AzureFunctionStorageQueue {\n /** URI to the Azure Storage Queue service allowing you to manipulate a queue. */\n queue_service_endpoint: string;\n /** The name of an Azure function storage queue. */\n queue_name: string;\n}\n\nexport function azureFunctionStorageQueueSerializer(item: AzureFunctionStorageQueue): any {\n return {\n queue_service_endpoint: item[\"queue_service_endpoint\"],\n queue_name: item[\"queue_name\"],\n };\n}\n\nexport function azureFunctionStorageQueueDeserializer(item: any): AzureFunctionStorageQueue {\n return {\n queue_service_endpoint: item[\"queue_service_endpoint\"],\n queue_name: item[\"queue_name\"],\n };\n}\n\n/** A tool for capturing structured outputs */\nexport interface CaptureStructuredOutputsTool extends Tool {\n /** The type of the tool. Always `capture_structured_outputs`. */\n type: \"capture_structured_outputs\";\n /** The structured outputs to capture from the model. */\n outputs: StructuredOutputDefinition;\n}\n\nexport function captureStructuredOutputsToolSerializer(item: CaptureStructuredOutputsTool): any {\n return {\n type: item[\"type\"],\n outputs: structuredOutputDefinitionSerializer(item[\"outputs\"]),\n };\n}\n\nexport function captureStructuredOutputsToolDeserializer(item: any): CaptureStructuredOutputsTool {\n return {\n type: item[\"type\"],\n outputs: structuredOutputDefinitionDeserializer(item[\"outputs\"]),\n };\n}\n\n/**\n * A structured output definition for agents.\n * Defines a named output schema that the agent can produce.\n */\nexport interface StructuredOutputDefinition {\n /** The name of the structured output. */\n name: string;\n /** A description of the output to emit. Used by the model to determine when to emit the output. */\n description: string;\n /** The JSON schema for the structured output. */\n schema: Record<string, any>;\n /** Whether to enforce strict validation. Default `true`. */\n strict: boolean;\n}\n\nexport function structuredOutputDefinitionSerializer(item: StructuredOutputDefinition): any {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n schema: item[\"schema\"],\n strict: item[\"strict\"],\n };\n}\n\nexport function structuredOutputDefinitionDeserializer(item: any): StructuredOutputDefinition {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n schema: item[\"schema\"],\n strict: item[\"strict\"],\n };\n}\n\n/** An agent implementing the A2A protocol. */\nexport interface A2ATool extends Tool {\n /** The type of the tool. Always `a2a`. */\n type: \"a2a_preview\";\n /** Base URL of the agent. */\n base_url?: string;\n /**\n * The path to the agent card relative to the `base_url`.\n * If not provided, defaults to `/.well-known/agent-card.json`\n */\n agent_card_path?: string;\n /**\n * The connection ID in the project for the A2A server.\n * The connection stores authentication and other connection details needed to connect to the A2A server.\n */\n project_connection_id?: string;\n}\n\nexport function a2AToolSerializer(item: A2ATool): any {\n return {\n type: item[\"type\"],\n base_url: item[\"base_url\"],\n agent_card_path: item[\"agent_card_path\"],\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\nexport function a2AToolDeserializer(item: any): A2ATool {\n return {\n type: item[\"type\"],\n base_url: item[\"base_url\"],\n agent_card_path: item[\"agent_card_path\"],\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\n/** A tool for integrating memories into the agent. */\nexport interface MemorySearchTool extends Tool {\n /** The type of the tool. Always `memory_search`. */\n type: \"memory_search\";\n /** The name of the memory store to use. */\n memory_store_name: string;\n /**\n * The namespace used to group and isolate memories, such as a user ID.\n * Limits which memories can be retrieved or updated.\n * Use special variable `{{$userId}}` to scope memories to the current signed-in user.\n */\n scope: string;\n /** Options for searching the memory store. */\n search_options?: MemorySearchOptions;\n /** Time to wait before updating memories after inactivity (seconds). Default 300. */\n update_delay?: number;\n}\n\nexport function memorySearchToolSerializer(item: MemorySearchTool): any {\n return {\n type: item[\"type\"],\n memory_store_name: item[\"memory_store_name\"],\n scope: item[\"scope\"],\n search_options: !item[\"search_options\"]\n ? item[\"search_options\"]\n : memorySearchOptionsSerializer(item[\"search_options\"]),\n update_delay: item[\"update_delay\"],\n };\n}\n\nexport function memorySearchToolDeserializer(item: any): MemorySearchTool {\n return {\n type: item[\"type\"],\n memory_store_name: item[\"memory_store_name\"],\n scope: item[\"scope\"],\n search_options: !item[\"search_options\"]\n ? item[\"search_options\"]\n : memorySearchOptionsDeserializer(item[\"search_options\"]),\n update_delay: item[\"update_delay\"],\n };\n}\n\n/** Memory search options. */\nexport interface MemorySearchOptions {\n /** Maximum number of memory items to return. */\n max_memories?: number;\n}\n\nexport function memorySearchOptionsSerializer(item: MemorySearchOptions): any {\n return { max_memories: item[\"max_memories\"] };\n}\n\nexport function memorySearchOptionsDeserializer(item: any): MemorySearchOptions {\n return {\n max_memories: item[\"max_memories\"],\n };\n}\n\nexport function protocolVersionRecordArraySerializer(result: Array<ProtocolVersionRecord>): any[] {\n return result.map((item) => {\n return protocolVersionRecordSerializer(item);\n });\n}\n\nexport function protocolVersionRecordArrayDeserializer(\n result: Array<ProtocolVersionRecord>,\n): any[] {\n return result.map((item) => {\n return protocolVersionRecordDeserializer(item);\n });\n}\n\n/** A record mapping for a single protocol and its version. */\nexport interface ProtocolVersionRecord {\n /** The protocol type. */\n protocol: AgentProtocol;\n /** The version string for the protocol, e.g. 'v0.1.1'. */\n version: string;\n}\n\nexport function protocolVersionRecordSerializer(item: ProtocolVersionRecord): any {\n return { protocol: item[\"protocol\"], version: item[\"version\"] };\n}\n\nexport function protocolVersionRecordDeserializer(item: any): ProtocolVersionRecord {\n return {\n protocol: item[\"protocol\"],\n version: item[\"version\"],\n };\n}\n\n/** Type of AgentProtocol */\nexport type AgentProtocol = \"activity_protocol\" | \"responses\";\n\n/** The image-based deployment definition for a hosted agent. */\nexport interface ImageBasedHostedAgentDefinition extends HostedAgentDefinition {\n kind: \"hosted\";\n /** The image for the hosted agent. */\n image: string;\n}\n\nexport function imageBasedHostedAgentDefinitionSerializer(\n item: ImageBasedHostedAgentDefinition,\n): any {\n return {\n kind: item[\"kind\"],\n tools: !item[\"tools\"] ? item[\"tools\"] : toolUnionArraySerializer(item[\"tools\"]),\n container_protocol_versions: protocolVersionRecordArraySerializer(\n item[\"container_protocol_versions\"],\n ),\n cpu: item[\"cpu\"],\n memory: item[\"memory\"],\n environment_variables: item[\"environment_variables\"],\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n image: item[\"image\"],\n };\n}\n\nexport function imageBasedHostedAgentDefinitionDeserializer(\n item: any,\n): ImageBasedHostedAgentDefinition {\n return {\n kind: item[\"kind\"],\n tools: !item[\"tools\"] ? item[\"tools\"] : toolUnionArrayDeserializer(item[\"tools\"]),\n container_protocol_versions: protocolVersionRecordArrayDeserializer(\n item[\"container_protocol_versions\"],\n ),\n cpu: item[\"cpu\"],\n memory: item[\"memory\"],\n environment_variables: item[\"environment_variables\"],\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n image: item[\"image\"],\n };\n}\n\n/** The container app agent definition. */\nexport interface ContainerAppAgentDefinition extends AgentDefinition {\n kind: \"container_app\";\n /** The protocols that the agent supports for ingress communication of the containers. */\n container_protocol_versions: ProtocolVersionRecord[];\n /** The resource ID of the Azure Container App that hosts this agent. Not mutable across versions. */\n container_app_resource_id: string;\n /** The suffix to apply to the app subdomain when sending ingress to the agent. This can be a label (e.g., '---current'), a specific revision (e.g., '--0000001'), or empty to use the default endpoint for the container app. */\n ingress_subdomain_suffix: string;\n}\n\nexport function containerAppAgentDefinitionSerializer(item: ContainerAppAgentDefinition): any {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n container_protocol_versions: protocolVersionRecordArraySerializer(\n item[\"container_protocol_versions\"],\n ),\n container_app_resource_id: item[\"container_app_resource_id\"],\n ingress_subdomain_suffix: item[\"ingress_subdomain_suffix\"],\n };\n}\n\nexport function containerAppAgentDefinitionDeserializer(item: any): ContainerAppAgentDefinition {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n container_protocol_versions: protocolVersionRecordArrayDeserializer(\n item[\"container_protocol_versions\"],\n ),\n container_app_resource_id: item[\"container_app_resource_id\"],\n ingress_subdomain_suffix: item[\"ingress_subdomain_suffix\"],\n };\n}\n\n/**\n * Prompt-based agent definition.\n * Defines an agent that uses a language model with custom instructions and tools.\n */\nexport interface PromptAgentDefinition extends AgentDefinition {\n kind: \"prompt\";\n /** The model deployment to use for this agent. */\n model: string;\n /** A system (or developer) message inserted into the model's context. */\n instructions?: string;\n /**\n * What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.\n * We generally recommend altering this or `top_p` but not both.\n */\n temperature?: number;\n /**\n * An alternative to sampling with temperature, called nucleus sampling,\n * where the model considers the results of the tokens with top_p probability\n * mass. So 0.1 means only the tokens comprising the top 10% probability mass\n * are considered.\n *\n * We generally recommend altering this or `temperature` but not both.\n */\n top_p?: number;\n reasoning?: Reasoning;\n /**\n * An array of tools the model may call while generating a response. You\n * can specify which tool to use by setting the `tool_choice` parameter.\n */\n tools?: ToolUnion[];\n /** Configuration options for a text response from the model. Can be plain text or structured JSON data. */\n text?: {\n format?: ResponseTextFormatConfigurationUnion;\n };\n /** Set of structured inputs that can participate in prompt template substitution or tool argument bindings. */\n structured_inputs?: Record<string, StructuredInputDefinition>;\n}\n\nexport function promptAgentDefinitionSerializer(item: PromptAgentDefinition): any {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n model: item[\"model\"],\n instructions: item[\"instructions\"],\n temperature: item[\"temperature\"],\n top_p: item[\"top_p\"],\n reasoning: !item[\"reasoning\"] ? item[\"reasoning\"] : reasoningSerializer(item[\"reasoning\"]),\n tools: !item[\"tools\"] ? item[\"tools\"] : toolUnionArraySerializer(item[\"tools\"]),\n text: !item[\"text\"] ? item[\"text\"] : _promptAgentDefinitionTextSerializer(item[\"text\"]),\n structured_inputs: !item[\"structured_inputs\"]\n ? item[\"structured_inputs\"]\n : structuredInputDefinitionRecordSerializer(item[\"structured_inputs\"]),\n };\n}\n\nexport function promptAgentDefinitionDeserializer(item: any): PromptAgentDefinition {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n model: item[\"model\"],\n instructions: item[\"instructions\"],\n temperature: item[\"temperature\"],\n top_p: item[\"top_p\"],\n reasoning: !item[\"reasoning\"] ? item[\"reasoning\"] : reasoningDeserializer(item[\"reasoning\"]),\n tools: !item[\"tools\"] ? item[\"tools\"] : toolUnionArrayDeserializer(item[\"tools\"]),\n text: !item[\"text\"] ? item[\"text\"] : _promptAgentDefinitionTextDeserializer(item[\"text\"]),\n structured_inputs: !item[\"structured_inputs\"]\n ? item[\"structured_inputs\"]\n : structuredInputDefinitionRecordDeserializer(item[\"structured_inputs\"]),\n };\n}\n\n/**\n * **o-series models only**\n *\n * Configuration options for [reasoning models](https://platform.openai.com/docs/guides/reasoning).\n */\nexport interface Reasoning {\n effort?: ReasoningEffort;\n /**\n * A summary of the reasoning performed by the model. This can be\n * useful for debugging and understanding the model's reasoning process.\n * One of `auto`, `concise`, or `detailed`.\n */\n summary?: \"auto\" | \"concise\" | \"detailed\";\n /** **Deprecated**: use `summary` instead. A summary of the reasoning performed by the model. This can be useful for debugging and understanding the model's reasoning process. One of `auto`, `concise`, or `detailed`. */\n generate_summary?: \"auto\" | \"concise\" | \"detailed\";\n}\n\nexport function reasoningSerializer(item: Reasoning): any {\n return {\n effort: item[\"effort\"],\n summary: item[\"summary\"],\n generate_summary: item[\"generate_summary\"],\n };\n}\n\nexport function reasoningDeserializer(item: any): Reasoning {\n return {\n effort: item[\"effort\"],\n summary: item[\"summary\"],\n generate_summary: item[\"generate_summary\"],\n };\n}\n\n/**\n * **o-series models only**\n *\n * Constrains effort on reasoning for\n * [reasoning models](https://platform.openai.com/docs/guides/reasoning).\n * Currently supported values are `low`, `medium`, and `high`. Reducing\n * reasoning effort can result in faster responses and fewer tokens used\n * on reasoning in a response.\n */\nexport type ReasoningEffort = \"low\" | \"medium\" | \"high\";\n\n/** model interface _PromptAgentDefinitionText */\nexport interface _PromptAgentDefinitionText {\n format?: ResponseTextFormatConfigurationUnion;\n}\n\nexport function _promptAgentDefinitionTextSerializer(item: _PromptAgentDefinitionText): any {\n return {\n format: !item[\"format\"]\n ? item[\"format\"]\n : responseTextFormatConfigurationUnionSerializer(item[\"format\"]),\n };\n}\n\nexport function _promptAgentDefinitionTextDeserializer(item: any): _PromptAgentDefinitionText {\n return {\n format: !item[\"format\"]\n ? item[\"format\"]\n : responseTextFormatConfigurationUnionDeserializer(item[\"format\"]),\n };\n}\n\n/** model interface ResponseTextFormatConfiguration */\nexport interface ResponseTextFormatConfiguration {\n type: ResponseTextFormatConfigurationType;\n}\n\nexport function responseTextFormatConfigurationSerializer(\n item: ResponseTextFormatConfiguration,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function responseTextFormatConfigurationDeserializer(\n item: any,\n): ResponseTextFormatConfiguration {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for ResponseTextFormatConfigurationUnion */\nexport type ResponseTextFormatConfigurationUnion =\n | ResponseTextFormatConfigurationText\n | ResponseTextFormatConfigurationJson\n | ResponseTextFormatConfigurationJsonSchema\n | ResponseTextFormatConfiguration;\n\nexport function responseTextFormatConfigurationUnionSerializer(\n item: ResponseTextFormatConfigurationUnion,\n): any {\n switch (item.type) {\n case \"text\":\n return responseTextFormatConfigurationTextSerializer(\n item as ResponseTextFormatConfigurationText,\n );\n\n case \"json_object\":\n return responseTextFormatConfigurationJsonObjectSerializer(\n item as ResponseTextFormatConfigurationJson,\n );\n\n case \"json_schema\":\n return responseTextFormatConfigurationJsonSchemaSerializer(\n item as ResponseTextFormatConfigurationJsonSchema,\n );\n\n default:\n return responseTextFormatConfigurationSerializer(item);\n }\n}\n\nexport function responseTextFormatConfigurationUnionDeserializer(\n item: any,\n): ResponseTextFormatConfigurationUnion {\n switch (item.type) {\n case \"text\":\n return responseTextFormatConfigurationTextDeserializer(\n item as ResponseTextFormatConfigurationText,\n );\n\n case \"json_object\":\n return responseTextFormatConfigurationJsonObjectDeserializer(\n item as ResponseTextFormatConfigurationJson,\n );\n\n case \"json_schema\":\n return responseTextFormatConfigurationJsonSchemaDeserializer(\n item as ResponseTextFormatConfigurationJsonSchema,\n );\n\n default:\n return responseTextFormatConfigurationDeserializer(item);\n }\n}\n\n/**\n * An object specifying the format that the model must output.\n *\n * Configuring `{ \"type\": \"json_schema\" }` enables Structured Outputs,\n * which ensures the model will match your supplied JSON schema. Learn more in the\n * [Structured Outputs guide](https://platform.openai.com/docs/guides/structured-outputs).\n *\n * The default format is `{ \"type\": \"text\" }` with no additional options.\n *\n * **Not recommended for gpt-4o and newer models:**\n *\n * Setting to `{ \"type\": \"json_object\" }` enables the older JSON mode, which\n * ensures the message the model generates is valid JSON. Using `json_schema`\n * is preferred for models that support it.\n */\nexport type ResponseTextFormatConfigurationType = \"text\" | \"json_schema\" | \"json_object\";\n\n/** model interface ResponseTextFormatConfigurationText */\nexport interface ResponseTextFormatConfigurationText extends ResponseTextFormatConfiguration {\n type: \"text\";\n}\n\nexport function responseTextFormatConfigurationTextSerializer(\n item: ResponseTextFormatConfigurationText,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function responseTextFormatConfigurationTextDeserializer(\n item: any,\n): ResponseTextFormatConfigurationText {\n return {\n type: item[\"type\"],\n };\n}\n\n/** model interface ResponseTextFormatConfigurationJson */\nexport interface ResponseTextFormatConfigurationJson extends ResponseTextFormatConfiguration {\n type: \"json_object\";\n}\n\nexport function responseTextFormatConfigurationJsonObjectSerializer(\n item: ResponseTextFormatConfigurationJson,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function responseTextFormatConfigurationJsonObjectDeserializer(\n item: any,\n): ResponseTextFormatConfigurationJson {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * JSON Schema response format. Used to generate structured JSON responses.\n * Learn more about [Structured Outputs](https://platform.openai.com/docs/guides/structured-outputs).\n */\nexport interface ResponseTextFormatConfigurationJsonSchema extends ResponseTextFormatConfiguration {\n /** The type of response format being defined. Always `json_schema`. */\n type: \"json_schema\";\n /**\n * A description of what the response format is for, used by the model to\n * determine how to respond in the format.\n */\n description?: string;\n /**\n * The name of the response format. Must be a-z, A-Z, 0-9, or contain\n * underscores and dashes, with a maximum length of 64.\n */\n name: string;\n schema: ResponseFormatJsonSchemaSchema;\n /**\n * Whether to enable strict schema adherence when generating the output.\n * If set to true, the model will always follow the exact schema defined\n * in the `schema` field. Only a subset of JSON Schema is supported when\n * `strict` is `true`. To learn more, read the [Structured Outputs\n * guide](https://platform.openai.com/docs/guides/structured-outputs).\n */\n strict?: boolean;\n}\n\n/**\n * The schema for the response format, described as a JSON Schema object.\n * Learn how to build JSON schemas [here](https://json-schema.org/).\n */\nexport interface ResponseFormatJsonSchemaSchema {\n /** Additional properties */\n additionalProperties?: boolean;\n}\n\nexport function responseFormatJsonSchemaSchemaSerializer(\n item: ResponseFormatJsonSchemaSchema,\n): any {\n return { ...serializeRecord(item.additionalProperties) };\n}\n\nexport function responseFormatJsonSchemaSchemaDeserializer(\n item: any,\n): ResponseFormatJsonSchemaSchema {\n return {\n ...serializeRecord(item, []),\n };\n}\n\nexport function responseTextFormatConfigurationJsonSchemaSerializer(\n item: ResponseTextFormatConfigurationJsonSchema,\n): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n name: item[\"name\"],\n schema: responseFormatJsonSchemaSchemaDeserializer(item[\"schema\"]),\n strict: item[\"strict\"],\n };\n}\n\nexport function responseTextFormatConfigurationJsonSchemaDeserializer(\n item: any,\n): ResponseTextFormatConfigurationJsonSchema {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n name: item[\"name\"],\n schema: item[\"schema\"],\n strict: item[\"strict\"],\n };\n}\n\nexport function structuredInputDefinitionRecordSerializer(\n item: Record<string, StructuredInputDefinition>,\n): Record<string, any> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : structuredInputDefinitionSerializer(item[key]);\n });\n return result;\n}\n\nexport function structuredInputDefinitionRecordDeserializer(\n item: Record<string, any>,\n): Record<string, StructuredInputDefinition> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : structuredInputDefinitionDeserializer(item[key]);\n });\n return result;\n}\n\n/** An structured input that can participate in prompt template substitutions and tool argument binding. */\nexport interface StructuredInputDefinition {\n /** A human-readable description of the input. */\n description?: string;\n /** The default value for the input if no run-time value is provided. */\n default_value?: unknown;\n /** When provided, the input value is bound to the specified tool arguments. */\n tool_argument_bindings?: ToolArgumentBinding[];\n /** The JSON schema for the structured input (optional). */\n schema?: unknown;\n /** Whether the input property is required when the agent is invoked. */\n required?: boolean;\n}\n\nexport function structuredInputDefinitionSerializer(item: StructuredInputDefinition): any {\n return {\n description: item[\"description\"],\n default_value: item[\"default_value\"],\n tool_argument_bindings: !item[\"tool_argument_bindings\"]\n ? item[\"tool_argument_bindings\"]\n : toolArgumentBindingArraySerializer(item[\"tool_argument_bindings\"]),\n schema: item[\"schema\"],\n required: item[\"required\"],\n };\n}\n\nexport function structuredInputDefinitionDeserializer(item: any): StructuredInputDefinition {\n return {\n description: item[\"description\"],\n default_value: item[\"default_value\"],\n tool_argument_bindings: !item[\"tool_argument_bindings\"]\n ? item[\"tool_argument_bindings\"]\n : toolArgumentBindingArrayDeserializer(item[\"tool_argument_bindings\"]),\n schema: item[\"schema\"],\n required: item[\"required\"],\n };\n}\n\nexport function toolArgumentBindingArraySerializer(result: Array<ToolArgumentBinding>): any[] {\n return result.map((item) => {\n return toolArgumentBindingSerializer(item);\n });\n}\n\nexport function toolArgumentBindingArrayDeserializer(result: Array<ToolArgumentBinding>): any[] {\n return result.map((item) => {\n return toolArgumentBindingDeserializer(item);\n });\n}\n\n/** model interface ToolArgumentBinding */\nexport interface ToolArgumentBinding {\n /** The name of the tool to participate in the argument binding. If not provided, then all tools with matching arguments will participate in binding. */\n tool_name?: string;\n /** The name of the argument within the tool. */\n argument_name: string;\n}\n\nexport function toolArgumentBindingSerializer(item: ToolArgumentBinding): any {\n return { tool_name: item[\"tool_name\"], argument_name: item[\"argument_name\"] };\n}\n\nexport function toolArgumentBindingDeserializer(item: any): ToolArgumentBinding {\n return {\n tool_name: item[\"tool_name\"],\n argument_name: item[\"argument_name\"],\n };\n}\n\n/** Error response for API failures. */\nexport interface ApiErrorResponse {\n error: ApiError;\n}\n\nexport function apiErrorResponseDeserializer(item: any): ApiErrorResponse {\n return {\n error: apiErrorDeserializer(item[\"error\"]),\n };\n}\n\n/** model interface ApiError */\nexport interface ApiError {\n /** The error code. */\n code: string;\n /** A human-readable description of the error. */\n message: string;\n /** The target of the error, if applicable. */\n target?: string;\n /** Additional details about the error. */\n details: ApiError[];\n /** The inner error, if any. */\n innererror?: ApiInnerError;\n}\n\nexport function apiErrorDeserializer(item: any): ApiError {\n return {\n code: item[\"code\"],\n message: item[\"message\"],\n target: item[\"target\"],\n details: apiErrorArrayDeserializer(item[\"details\"]),\n innererror: !item[\"innererror\"]\n ? item[\"innererror\"]\n : apiInnerErrorDeserializer(item[\"innererror\"]),\n };\n}\n\nexport function apiErrorArrayDeserializer(result: Array<ApiError>): any[] {\n return result.map((item) => {\n return apiErrorDeserializer(item);\n });\n}\n\n/** model interface ApiInnerError */\nexport interface ApiInnerError {\n /** The error code. */\n code: string;\n /** The inner error, if any. */\n innererror?: ApiInnerError;\n}\n\nexport function apiInnerErrorDeserializer(item: any): ApiInnerError {\n return {\n code: item[\"code\"],\n innererror: !item[\"innererror\"]\n ? item[\"innererror\"]\n : apiInnerErrorDeserializer(item[\"innererror\"]),\n };\n}\n\n/** A deleted agent Object */\nexport interface DeleteAgentResponse {\n /** The object type. Always 'agent.deleted'. */\n object: \"agent.deleted\";\n /** The name of the agent. */\n name: string;\n /** Whether the agent was successfully deleted. */\n deleted: boolean;\n}\n\nexport function deleteAgentResponseDeserializer(item: any): DeleteAgentResponse {\n return {\n object: item[\"object\"],\n name: item[\"name\"],\n deleted: item[\"deleted\"],\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultAgentObject {\n /** The requested list of items. */\n data: Agent[];\n /** The first ID represented in this list. */\n first_id?: string;\n /** The last ID represented in this list. */\n last_id?: string;\n /** A value indicating whether there are additional values available not captured in this list. */\n has_more: boolean;\n}\n\nexport function _agentsPagedResultAgentObjectDeserializer(\n item: any,\n): _AgentsPagedResultAgentObject {\n return {\n data: agentObjectArrayDeserializer(item[\"data\"]),\n first_id: item[\"first_id\"],\n last_id: item[\"last_id\"],\n has_more: item[\"has_more\"],\n };\n}\n\nexport function agentObjectArrayDeserializer(result: Array<Agent>): any[] {\n return result.map((item) => {\n return agentObjectDeserializer(item);\n });\n}\n\n/** A deleted agent version Object */\nexport interface DeleteAgentVersionResponse {\n /** The object type. Always 'agent.deleted'. */\n object: \"agent.version.deleted\";\n /** The name of the agent. */\n name: string;\n /** The version identifier of the agent. */\n version: string;\n /** Whether the agent was successfully deleted. */\n deleted: boolean;\n}\n\nexport function deleteAgentVersionResponseDeserializer(item: any): DeleteAgentVersionResponse {\n return {\n object: item[\"object\"],\n name: item[\"name\"],\n version: item[\"version\"],\n deleted: item[\"deleted\"],\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultAgentVersionObject {\n /** The requested list of items. */\n data: AgentVersion[];\n /** The first ID represented in this list. */\n first_id?: string;\n /** The last ID represented in this list. */\n last_id?: string;\n /** A value indicating whether there are additional values available not captured in this list. */\n has_more: boolean;\n}\n\nexport function _agentsPagedResultAgentVersionObjectDeserializer(\n item: any,\n): _AgentsPagedResultAgentVersionObject {\n return {\n data: agentVersionObjectArrayDeserializer(item[\"data\"]),\n first_id: item[\"first_id\"],\n last_id: item[\"last_id\"],\n has_more: item[\"has_more\"],\n };\n}\n\nexport function agentVersionObjectArrayDeserializer(result: Array<AgentVersion>): any[] {\n return result.map((item) => {\n return agentVersionObjectDeserializer(item);\n });\n}\n\n/** Base definition for memory store configurations. */\nexport interface MemoryStoreDefinition {\n /** The kind of the memory store. */\n /** The discriminator possible values: default */\n kind: MemoryStoreKind;\n}\n\nexport function memoryStoreDefinitionSerializer(item: MemoryStoreDefinition): any {\n return { kind: item[\"kind\"] };\n}\n\nexport function memoryStoreDefinitionDeserializer(item: any): MemoryStoreDefinition {\n return {\n kind: item[\"kind\"],\n };\n}\n\n/** Alias for MemoryStoreDefinitionUnion */\nexport type MemoryStoreDefinitionUnion = MemoryStoreDefaultDefinition | MemoryStoreDefinition;\n\nexport function memoryStoreDefinitionUnionSerializer(item: MemoryStoreDefinitionUnion): any {\n switch (item.kind) {\n case \"default\":\n return memoryStoreDefaultDefinitionSerializer(item as MemoryStoreDefaultDefinition);\n\n default:\n return memoryStoreDefinitionSerializer(item);\n }\n}\n\nexport function memoryStoreDefinitionUnionDeserializer(item: any): MemoryStoreDefinitionUnion {\n switch (item.kind) {\n case \"default\":\n return memoryStoreDefaultDefinitionDeserializer(item as MemoryStoreDefaultDefinition);\n\n default:\n return memoryStoreDefinitionDeserializer(item);\n }\n}\n\n/** The type of memory store implementation to use. */\nexport type MemoryStoreKind = \"default\";\n\n/** Default memory store implementation. */\nexport interface MemoryStoreDefaultDefinition extends MemoryStoreDefinition {\n /** The kind of the memory store. */\n kind: \"default\";\n /** The name or identifier of the chat completion model deployment used for memory processing. */\n chat_model: string;\n /** The name or identifier of the embedding model deployment used for memory processing. */\n embedding_model: string;\n /** Default memory store options. */\n options?: MemoryStoreDefaultOptions;\n}\n\nexport function memoryStoreDefaultDefinitionSerializer(item: MemoryStoreDefaultDefinition): any {\n return {\n kind: item[\"kind\"],\n chat_model: item[\"chat_model\"],\n embedding_model: item[\"embedding_model\"],\n options: !item[\"options\"]\n ? item[\"options\"]\n : memoryStoreDefaultOptionsSerializer(item[\"options\"]),\n };\n}\n\nexport function memoryStoreDefaultDefinitionDeserializer(item: any): MemoryStoreDefaultDefinition {\n return {\n kind: item[\"kind\"],\n chat_model: item[\"chat_model\"],\n embedding_model: item[\"embedding_model\"],\n options: !item[\"options\"]\n ? item[\"options\"]\n : memoryStoreDefaultOptionsDeserializer(item[\"options\"]),\n };\n}\n\n/** Default memory store configurations. */\nexport interface MemoryStoreDefaultOptions {\n /** Whether to enable user profile extraction and storage. Default is true. */\n user_profile_enabled: boolean;\n /** Specific categories or types of user profile information to extract and store. */\n user_profile_details?: string;\n /** Whether to enable chat summary extraction and storage. Default is true. */\n chat_summary_enabled: boolean;\n}\n\nexport function memoryStoreDefaultOptionsSerializer(item: MemoryStoreDefaultOptions): any {\n return {\n user_profile_enabled: item[\"user_profile_enabled\"],\n user_profile_details: item[\"user_profile_details\"],\n chat_summary_enabled: item[\"chat_summary_enabled\"],\n };\n}\n\nexport function memoryStoreDefaultOptionsDeserializer(item: any): MemoryStoreDefaultOptions {\n return {\n user_profile_enabled: item[\"user_profile_enabled\"],\n user_profile_details: item[\"user_profile_details\"],\n chat_summary_enabled: item[\"chat_summary_enabled\"],\n };\n}\n\n/** A memory store that can store and retrieve user memories. */\nexport interface MemoryStore {\n /** The object type, which is always 'memory_store'. */\n object: \"memory_store\";\n /** The unique identifier of the memory store. */\n id: string;\n /** The Unix timestamp (seconds) when the memory store was created. */\n created_at: Date;\n /** The Unix timestamp (seconds) when the memory store was last updated. */\n updated_at: Date;\n /** The name of the memory store. */\n name: string;\n /** A human-readable description of the memory store. */\n description?: string;\n /** Arbitrary key-value metadata to associate with the memory store. */\n metadata?: Record<string, string>;\n /** The definition of the memory store. */\n definition: MemoryStoreDefinitionUnion;\n}\n\nexport function memoryStoreObjectDeserializer(item: any): MemoryStore {\n return {\n object: item[\"object\"],\n id: item[\"id\"],\n created_at: new Date(item[\"created_at\"] * 1000),\n updated_at: new Date(item[\"updated_at\"] * 1000),\n name: item[\"name\"],\n description: item[\"description\"],\n metadata: item[\"metadata\"],\n definition: memoryStoreDefinitionUnionDeserializer(item[\"definition\"]),\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultMemoryStore {\n /** The requested list of items. */\n data: MemoryStore[];\n /** The first ID represented in this list. */\n first_id?: string;\n /** The last ID represented in this list. */\n last_id?: string;\n /** A value indicating whether there are additional values available not captured in this list. */\n has_more: boolean;\n}\n\nexport function _agentsPagedResultMemoryStoreObjectDeserializer(\n item: any,\n): _AgentsPagedResultMemoryStore {\n return {\n data: memoryStoreObjectArrayDeserializer(item[\"data\"]),\n first_id: item[\"first_id\"],\n last_id: item[\"last_id\"],\n has_more: item[\"has_more\"],\n };\n}\n\nexport function memoryStoreObjectArrayDeserializer(result: Array<MemoryStore>): any[] {\n return result.map((item) => {\n return memoryStoreObjectDeserializer(item);\n });\n}\n\n/** model interface DeleteMemoryStoreResponse */\nexport interface DeleteMemoryStoreResponse {\n /** The object type. Always 'memory_store.deleted'. */\n object: \"memory_store.deleted\";\n /** The name of the memory store. */\n name: string;\n /** Whether the memory store was successfully deleted. */\n deleted: boolean;\n}\n\nexport function deleteMemoryStoreResponseDeserializer(item: any): DeleteMemoryStoreResponse {\n return {\n object: item[\"object\"],\n name: item[\"name\"],\n deleted: item[\"deleted\"],\n };\n}\n\n/** Content item used to generate a response. */\nexport interface ItemParam {\n type: ItemType;\n}\n\nexport function itemParamSerializer(item: ItemParam): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for ItemParamUnion */\nexport type ItemParamUnion =\n | ResponsesMessageItemParamUnion\n | FunctionToolCallOutputItemParam\n | FileSearchToolCallItemParam\n | ComputerToolCallItemParam\n | ComputerToolCallOutputItemParam\n | WebSearchToolCallItemParam\n | FunctionToolCallItemParam\n | ReasoningItemParam\n | ItemReferenceItemParam\n | ImageGenToolCallItemParam\n | CodeInterpreterToolCallItemParam\n | LocalShellToolCallItemParam\n | LocalShellToolCallOutputItemParam\n | MCPListToolsItemParam\n | MCPApprovalRequestItemParam\n | MCPApprovalResponseItemParam\n | MCPCallItemParam\n | MemorySearchToolCallItemParam\n | ItemParam;\n\nexport function itemParamUnionSerializer(item: ItemParamUnion): any {\n switch (item.type) {\n case \"message\":\n return responsesMessageItemParamUnionSerializer(item as ResponsesMessageItemParamUnion);\n\n case \"function_call_output\":\n return functionToolCallOutputItemParamSerializer(item as FunctionToolCallOutputItemParam);\n\n case \"file_search_call\":\n return fileSearchToolCallItemParamSerializer(item as FileSearchToolCallItemParam);\n\n case \"computer_call\":\n return computerToolCallItemParamSerializer(item as ComputerToolCallItemParam);\n\n case \"computer_call_output\":\n return computerToolCallOutputItemParamSerializer(item as ComputerToolCallOutputItemParam);\n\n case \"web_search_call\":\n return webSearchToolCallItemParamSerializer(item as WebSearchToolCallItemParam);\n\n case \"function_call\":\n return functionToolCallItemParamSerializer(item as FunctionToolCallItemParam);\n\n case \"reasoning\":\n return reasoningItemParamSerializer(item as ReasoningItemParam);\n\n case \"item_reference\":\n return itemReferenceItemParamSerializer(item as ItemReferenceItemParam);\n\n case \"image_generation_call\":\n return imageGenToolCallItemParamSerializer(item as ImageGenToolCallItemParam);\n\n case \"code_interpreter_call\":\n return codeInterpreterToolCallItemParamSerializer(item as CodeInterpreterToolCallItemParam);\n\n case \"local_shell_call\":\n return localShellToolCallItemParamSerializer(item as LocalShellToolCallItemParam);\n\n case \"local_shell_call_output\":\n return localShellToolCallOutputItemParamSerializer(item as LocalShellToolCallOutputItemParam);\n\n case \"mcp_list_tools\":\n return mcpListToolsItemParamSerializer(item as MCPListToolsItemParam);\n\n case \"mcp_approval_request\":\n return mcpApprovalRequestItemParamSerializer(item as MCPApprovalRequestItemParam);\n\n case \"mcp_approval_response\":\n return mcpApprovalResponseItemParamSerializer(item as MCPApprovalResponseItemParam);\n\n case \"mcp_call\":\n return mcpCallItemParamSerializer(item as MCPCallItemParam);\n\n case \"memory_search_call\":\n return memorySearchToolCallItemParamSerializer(item as MemorySearchToolCallItemParam);\n\n default:\n return itemParamSerializer(item);\n }\n}\n\n/** Type of ItemType */\nexport type ItemType =\n | \"message\"\n | \"file_search_call\"\n | \"function_call\"\n | \"function_call_output\"\n | \"computer_call\"\n | \"computer_call_output\"\n | \"web_search_call\"\n | \"reasoning\"\n | \"item_reference\"\n | \"image_generation_call\"\n | \"code_interpreter_call\"\n | \"local_shell_call\"\n | \"local_shell_call_output\"\n | \"mcp_list_tools\"\n | \"mcp_approval_request\"\n | \"mcp_approval_response\"\n | \"mcp_call\"\n | \"structured_outputs\"\n | \"workflow_action\"\n | \"memory_search_call\"\n | \"oauth_consent_request\";\n\n/** A response message item, representing a role and content, as provided as client request parameters. */\nexport interface ResponsesMessageItemParam extends ItemParam {\n /** The type of the responses item, which is always 'message'. */\n type: \"message\";\n /** The role associated with the message. */\n /** The discriminator possible values: user, system, developer, assistant */\n role: ResponsesMessageRole;\n}\n\nexport function responsesMessageItemParamSerializer(item: ResponsesMessageItemParam): any {\n return { type: item[\"type\"], role: item[\"role\"] };\n}\n\n/** Alias for ResponsesMessageItemParamUnion */\nexport type ResponsesMessageItemParamUnion =\n | ResponsesUserMessageItemParam\n | ResponsesSystemMessageItemParam\n | ResponsesDeveloperMessageItemParam\n | ResponsesAssistantMessageItemParam\n | ResponsesMessageItemParam;\n\nexport function responsesMessageItemParamUnionSerializer(\n item: ResponsesMessageItemParamUnion,\n): any {\n switch (item.role) {\n case \"user\":\n return responsesUserMessageItemParamSerializer(item as ResponsesUserMessageItemParam);\n\n case \"system\":\n return responsesSystemMessageItemParamSerializer(item as ResponsesSystemMessageItemParam);\n\n case \"developer\":\n return responsesDeveloperMessageItemParamSerializer(\n item as ResponsesDeveloperMessageItemParam,\n );\n\n case \"assistant\":\n return responsesAssistantMessageItemParamSerializer(\n item as ResponsesAssistantMessageItemParam,\n );\n\n default:\n return responsesMessageItemParamSerializer(item);\n }\n}\n\n/** The collection of valid roles for responses message items. */\nexport type ResponsesMessageRole = \"system\" | \"developer\" | \"user\" | \"assistant\";\n\n/** A message parameter item with the `user` role. */\nexport interface ResponsesUserMessageItemParam extends ResponsesMessageItemParam {\n /** The role of the message, which is always `user`. */\n role: \"user\";\n /** The content associated with the message. */\n content: string | ItemContentUnion[];\n}\n\nexport function responsesUserMessageItemParamSerializer(item: ResponsesUserMessageItemParam): any {\n return {\n type: item[\"type\"],\n role: item[\"role\"],\n content: _responsesUserMessageItemParamContentSerializer(item[\"content\"]),\n };\n}\n\n/** Alias for _ResponsesUserMessageItemParamContent */\nexport type _ResponsesUserMessageItemParamContent = string | ItemContentUnion[];\n\nexport function _responsesUserMessageItemParamContentSerializer(\n item: _ResponsesUserMessageItemParamContent,\n): any {\n return item;\n}\n\nexport function itemContentUnionArraySerializer(result: Array<ItemContentUnion>): any[] {\n return result.map((item) => {\n return itemContentUnionSerializer(item);\n });\n}\n\n/** model interface ItemContent */\nexport interface ItemContent {\n type: ItemContentType;\n}\n\nexport function itemContentSerializer(item: ItemContent): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for ItemContentUnion */\nexport type ItemContentUnion =\n | ItemContentInputAudio\n | ItemContentOutputAudio\n | ItemContentRefusal\n | ItemContentInputText\n | ItemContentInputImage\n | ItemContentInputFile\n | ItemContentOutputText\n | ItemContent;\n\nexport function itemContentUnionSerializer(item: ItemContentUnion): any {\n switch (item.type) {\n case \"input_audio\":\n return itemContentInputAudioSerializer(item as ItemContentInputAudio);\n\n case \"output_audio\":\n return itemContentOutputAudioSerializer(item as ItemContentOutputAudio);\n\n case \"refusal\":\n return itemContentRefusalSerializer(item as ItemContentRefusal);\n\n case \"input_text\":\n return itemContentInputTextSerializer(item as ItemContentInputText);\n\n case \"input_image\":\n return itemContentInputImageSerializer(item as ItemContentInputImage);\n\n case \"input_file\":\n return itemContentInputFileSerializer(item as ItemContentInputFile);\n\n case \"output_text\":\n return itemContentOutputTextSerializer(item as ItemContentOutputText);\n\n default:\n return itemContentSerializer(item);\n }\n}\n\n/** Multi-modal input and output contents. */\nexport type ItemContentType =\n | \"input_text\"\n | \"input_audio\"\n | \"input_image\"\n | \"input_file\"\n | \"output_text\"\n | \"output_audio\"\n | \"refusal\";\n\n/** An audio input to the model. */\nexport interface ItemContentInputAudio extends ItemContent {\n /** The type of the input item. Always `input_audio`. */\n type: \"input_audio\";\n /** Base64-encoded audio data. */\n data: string;\n /**\n * The format of the audio data. Currently supported formats are `mp3` and\n * `wav`.\n */\n format: \"mp3\" | \"wav\";\n}\n\nexport function itemContentInputAudioSerializer(item: ItemContentInputAudio): any {\n return { type: item[\"type\"], data: item[\"data\"], format: item[\"format\"] };\n}\n\n/** An audio output from the model. */\nexport interface ItemContentOutputAudio extends ItemContent {\n /** The type of the output audio. Always `output_audio`. */\n type: \"output_audio\";\n /** Base64-encoded audio data from the model. */\n data: string;\n /** The transcript of the audio data from the model. */\n transcript: string;\n}\n\nexport function itemContentOutputAudioSerializer(item: ItemContentOutputAudio): any {\n return {\n type: item[\"type\"],\n data: item[\"data\"],\n transcript: item[\"transcript\"],\n };\n}\n\n/** A refusal from the model. */\nexport interface ItemContentRefusal extends ItemContent {\n /** The type of the refusal. Always `refusal`. */\n type: \"refusal\";\n /** The refusal explanationfrom the model. */\n refusal: string;\n}\n\nexport function itemContentRefusalSerializer(item: ItemContentRefusal): any {\n return { type: item[\"type\"], refusal: item[\"refusal\"] };\n}\n\n/** A text input to the model. */\nexport interface ItemContentInputText extends ItemContent {\n /** The type of the input item. Always `input_text`. */\n type: \"input_text\";\n /** The text input to the model. */\n text: string;\n}\n\nexport function itemContentInputTextSerializer(item: ItemContentInputText): any {\n return { type: item[\"type\"], text: item[\"text\"] };\n}\n\n/**\n * Image input content for messages.\n * Learn about [image inputs](https://platform.openai.com/docs/guides/vision).\n */\nexport interface ItemContentInputImage extends ItemContent {\n /** The type of the input item. Always `input_image`. */\n type: \"input_image\";\n /** The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL. */\n image_url?: string;\n /** The ID of the file to be sent to the model. */\n file_id?: string;\n /** The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`. Defaults to `auto`. */\n detail?: \"low\" | \"high\" | \"auto\";\n}\n\nexport function itemContentInputImageSerializer(item: ItemContentInputImage): any {\n return {\n type: item[\"type\"],\n image_url: item[\"image_url\"],\n file_id: item[\"file_id\"],\n detail: item[\"detail\"],\n };\n}\n\n/**\n * File input content for messages.\n * Can specify a file by ID or provide inline file data.\n */\nexport interface ItemContentInputFile extends ItemContent {\n /** The type of the input item. Always `input_file`. */\n type: \"input_file\";\n /** The ID of the file to be sent to the model. */\n file_id?: string;\n /** The name of the file to be sent to the model. */\n filename?: string;\n /** The content of the file to be sent to the model. */\n file_data?: string;\n}\n\nexport function itemContentInputFileSerializer(item: ItemContentInputFile): any {\n return {\n type: item[\"type\"],\n file_id: item[\"file_id\"],\n filename: item[\"filename\"],\n file_data: item[\"file_data\"],\n };\n}\n\n/** A text output from the model. */\nexport interface ItemContentOutputText extends ItemContent {\n /** The type of the output text. Always `output_text`. */\n type: \"output_text\";\n /** The text output from the model. */\n text: string;\n /** The annotations of the text output. */\n annotations: AnnotationUnion[];\n logprobs?: LogProb[];\n}\n\nexport function itemContentOutputTextSerializer(item: ItemContentOutputText): any {\n return {\n type: item[\"type\"],\n text: item[\"text\"],\n annotations: annotationUnionArraySerializer(item[\"annotations\"]),\n logprobs: !item[\"logprobs\"] ? item[\"logprobs\"] : logProbArraySerializer(item[\"logprobs\"]),\n };\n}\n\nexport function annotationUnionArraySerializer(result: Array<AnnotationUnion>): any[] {\n return result.map((item) => {\n return annotationUnionSerializer(item);\n });\n}\n\n/** model interface Annotation */\nexport interface Annotation {\n type: AnnotationType;\n}\n\nexport function annotationSerializer(item: Annotation): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for AnnotationUnion */\nexport type AnnotationUnion =\n | AnnotationFileCitation\n | AnnotationUrlCitation\n | AnnotationFilePath\n | Annotation;\n\nexport function annotationUnionSerializer(item: AnnotationUnion): any {\n switch (item.type) {\n case \"file_citation\":\n return annotationFileCitationSerializer(item as AnnotationFileCitation);\n\n case \"url_citation\":\n return annotationUrlCitationSerializer(item as AnnotationUrlCitation);\n\n case \"file_path\":\n return annotationFilePathSerializer(item as AnnotationFilePath);\n\n default:\n return annotationSerializer(item);\n }\n}\n\n/** Type of AnnotationType */\nexport type AnnotationType =\n | \"file_citation\"\n | \"url_citation\"\n | \"file_path\"\n | \"container_file_citation\";\n\n/** A citation to a file. */\nexport interface AnnotationFileCitation extends Annotation {\n /** The type of the file citation. Always `file_citation`. */\n type: \"file_citation\";\n /** The ID of the file. */\n file_id: string;\n /** The index of the file in the list of files. */\n index: number;\n /** The filename of the file cited. */\n filename: string;\n}\n\nexport function annotationFileCitationSerializer(item: AnnotationFileCitation): any {\n return {\n type: item[\"type\"],\n file_id: item[\"file_id\"],\n index: item[\"index\"],\n filename: item[\"filename\"],\n };\n}\n\n/** A citation for a web resource used to generate a model response. */\nexport interface AnnotationUrlCitation extends Annotation {\n /** The type of the URL citation. Always `url_citation`. */\n type: \"url_citation\";\n /** The URL of the web resource. */\n url: string;\n /** The index of the first character of the URL citation in the message. */\n start_index: number;\n /** The index of the last character of the URL citation in the message. */\n end_index: number;\n /** The title of the web resource. */\n title: string;\n}\n\nexport function annotationUrlCitationSerializer(item: AnnotationUrlCitation): any {\n return {\n type: item[\"type\"],\n url: item[\"url\"],\n start_index: item[\"start_index\"],\n end_index: item[\"end_index\"],\n title: item[\"title\"],\n };\n}\n\n/** A path to a file. */\nexport interface AnnotationFilePath extends Annotation {\n /** The type of the file path. Always `file_path`. */\n type: \"file_path\";\n /** The ID of the file. */\n file_id: string;\n /** The index of the file in the list of files. */\n index: number;\n}\n\nexport function annotationFilePathSerializer(item: AnnotationFilePath): any {\n return { type: item[\"type\"], file_id: item[\"file_id\"], index: item[\"index\"] };\n}\n\nexport function logProbArraySerializer(result: Array<LogProb>): any[] {\n return result.map((item) => {\n return logProbSerializer(item);\n });\n}\n\n/** The log probability of a token. */\nexport interface LogProb {\n token: string;\n logprob: number;\n bytes: number[];\n top_logprobs: TopLogProb[];\n}\n\nexport function logProbSerializer(item: LogProb): any {\n return {\n token: item[\"token\"],\n logprob: item[\"logprob\"],\n bytes: item[\"bytes\"].map((p: any) => {\n return p;\n }),\n top_logprobs: topLogProbArraySerializer(item[\"top_logprobs\"]),\n };\n}\n\nexport function topLogProbArraySerializer(result: Array<TopLogProb>): any[] {\n return result.map((item) => {\n return topLogProbSerializer(item);\n });\n}\n\n/** The top log probability of a token. */\nexport interface TopLogProb {\n token: string;\n logprob: number;\n bytes: number[];\n}\n\nexport function topLogProbSerializer(item: TopLogProb): any {\n return {\n token: item[\"token\"],\n logprob: item[\"logprob\"],\n bytes: item[\"bytes\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** A message parameter item with the `system` role. */\nexport interface ResponsesSystemMessageItemParam extends ResponsesMessageItemParam {\n /** The role of the message, which is always `system`. */\n role: \"system\";\n /** The content associated with the message. */\n content: string | ItemContentUnion[];\n}\n\nexport function responsesSystemMessageItemParamSerializer(\n item: ResponsesSystemMessageItemParam,\n): any {\n return {\n type: item[\"type\"],\n role: item[\"role\"],\n content: _responsesSystemMessageItemParamContentSerializer(item[\"content\"]),\n };\n}\n\n/** Alias for _ResponsesSystemMessageItemParamContent */\nexport type _ResponsesSystemMessageItemParamContent = string | ItemContentUnion[];\n\nexport function _responsesSystemMessageItemParamContentSerializer(\n item: _ResponsesSystemMessageItemParamContent,\n): any {\n return item;\n}\n\n/** A message parameter item with the `developer` role. */\nexport interface ResponsesDeveloperMessageItemParam extends ResponsesMessageItemParam {\n /** The role of the message, which is always `developer`. */\n role: \"developer\";\n /** The content associated with the message. */\n content: string | ItemContentUnion[];\n}\n\nexport function responsesDeveloperMessageItemParamSerializer(\n item: ResponsesDeveloperMessageItemParam,\n): any {\n return {\n type: item[\"type\"],\n role: item[\"role\"],\n content: _responsesDeveloperMessageItemParamContentSerializer(item[\"content\"]),\n };\n}\n\n/** Alias for _ResponsesDeveloperMessageItemParamContent */\nexport type _ResponsesDeveloperMessageItemParamContent = string | ItemContentUnion[];\n\nexport function _responsesDeveloperMessageItemParamContentSerializer(\n item: _ResponsesDeveloperMessageItemParamContent,\n): any {\n return item;\n}\n\n/** A message parameter item with the `assistant` role. */\nexport interface ResponsesAssistantMessageItemParam extends ResponsesMessageItemParam {\n /** The role of the message, which is always `assistant`. */\n role: \"assistant\";\n /** The content associated with the message. */\n content: string | ItemContentUnion[];\n}\n\nexport function responsesAssistantMessageItemParamSerializer(\n item: ResponsesAssistantMessageItemParam,\n): any {\n return {\n type: item[\"type\"],\n role: item[\"role\"],\n content: _responsesAssistantMessageItemParamContentSerializer(item[\"content\"]),\n };\n}\n\n/** Alias for _ResponsesAssistantMessageItemParamContent */\nexport type _ResponsesAssistantMessageItemParamContent = string | ItemContentUnion[];\n\nexport function _responsesAssistantMessageItemParamContentSerializer(\n item: _ResponsesAssistantMessageItemParamContent,\n): any {\n return item;\n}\n\n/**\n * The output of a function tool call.\n *\n */\nexport interface FunctionToolCallOutputItemParam extends ItemParam {\n type: \"function_call_output\";\n /** The unique ID of the function tool call generated by the model. */\n call_id: string;\n /** A JSON string of the output of the function tool call. */\n output: string;\n}\n\nexport function functionToolCallOutputItemParamSerializer(\n item: FunctionToolCallOutputItemParam,\n): any {\n return {\n type: item[\"type\"],\n call_id: item[\"call_id\"],\n output: item[\"output\"],\n };\n}\n\n/**\n * File search tool call item.\n * Contains queries and results from a file search operation.\n * See the [file search guide](https://platform.openai.com/docs/guides/tools-file-search) for more information.\n */\nexport interface FileSearchToolCallItemParam extends ItemParam {\n type: \"file_search_call\";\n /** The queries used to search for files. */\n queries: string[];\n /** The results of the file search tool call. */\n results?: {\n file_id?: string;\n text?: string;\n filename?: string;\n attributes?: VectorStoreFileAttributes;\n score?: number;\n }[];\n}\n\nexport function fileSearchToolCallItemParamSerializer(item: FileSearchToolCallItemParam): any {\n return {\n type: item[\"type\"],\n queries: item[\"queries\"].map((p: any) => {\n return p;\n }),\n results: !item[\"results\"]\n ? item[\"results\"]\n : _fileSearchToolCallItemParamResultArraySerializer(item[\"results\"]),\n };\n}\n\nexport function _fileSearchToolCallItemParamResultArraySerializer(\n result: Array<_FileSearchToolCallItemParamResult>,\n): any[] {\n return result.map((item) => {\n return _fileSearchToolCallItemParamResultSerializer(item);\n });\n}\n\n/** model interface _FileSearchToolCallItemParamResult */\nexport interface _FileSearchToolCallItemParamResult {\n /** The unique ID of the file. */\n file_id?: string;\n /** The text that was retrieved from the file. */\n text?: string;\n /** The name of the file. */\n filename?: string;\n attributes?: VectorStoreFileAttributes;\n /** The relevance score of the file - a value between 0 and 1. */\n score?: number;\n}\n\nexport function _fileSearchToolCallItemParamResultSerializer(\n item: _FileSearchToolCallItemParamResult,\n): any {\n return {\n file_id: item[\"file_id\"],\n text: item[\"text\"],\n filename: item[\"filename\"],\n attributes: !item[\"attributes\"]\n ? item[\"attributes\"]\n : vectorStoreFileAttributesSerializer(item[\"attributes\"]),\n score: item[\"score\"],\n };\n}\n\n/**\n * Set of 16 key-value pairs that can be attached to an object. This can be\n * useful for storing additional information about the object in a structured\n * format, and querying for objects via API or the dashboard. Keys are strings\n * with a maximum length of 64 characters. Values are strings with a maximum\n * length of 512 characters, booleans, or numbers.\n */\nexport interface VectorStoreFileAttributes {\n /** Additional properties */\n additionalProperties?: Record<string, string | boolean | number>;\n}\n\nexport function vectorStoreFileAttributesSerializer(item: VectorStoreFileAttributes): any {\n return {\n ...serializeRecord(\n item.additionalProperties,\n undefined,\n _vectorStoreFileAttributesAdditionalPropertySerializer,\n ),\n };\n}\n\n/** Alias for _VectorStoreFileAttributesAdditionalProperty */\nexport type _VectorStoreFileAttributesAdditionalProperty = string | boolean | number | number;\n\nexport function _vectorStoreFileAttributesAdditionalPropertySerializer(\n item: _VectorStoreFileAttributesAdditionalProperty,\n): any {\n return item;\n}\n\n/**\n * A tool call to a computer use tool. See the\n * [computer use guide](https://platform.openai.com/docs/guides/tools-computer-use) for more information.\n *\n */\nexport interface ComputerToolCallItemParam extends ItemParam {\n type: \"computer_call\";\n /** An identifier used when responding to the tool call with output. */\n call_id: string;\n action: ComputerActionUnion;\n /** The pending safety checks for the computer call. */\n pending_safety_checks: ComputerToolCallSafetyCheck[];\n}\n\nexport function computerToolCallItemParamSerializer(item: ComputerToolCallItemParam): any {\n return {\n type: item[\"type\"],\n call_id: item[\"call_id\"],\n action: computerActionUnionSerializer(item[\"action\"]),\n pending_safety_checks: computerToolCallSafetyCheckArraySerializer(\n item[\"pending_safety_checks\"],\n ),\n };\n}\n\n/** model interface ComputerAction */\nexport interface ComputerAction {\n type: ComputerActionType;\n}\n\nexport function computerActionSerializer(item: ComputerAction): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for ComputerActionUnion */\nexport type ComputerActionUnion =\n | ComputerActionClick\n | ComputerActionDoubleClick\n | ComputerActionDrag\n | ComputerActionMove\n | ComputerActionScreenshot\n | ComputerActionScroll\n | ComputerActionTypeKeys\n | ComputerActionWait\n | ComputerActionKeyPress\n | ComputerAction;\n\nexport function computerActionUnionSerializer(item: ComputerActionUnion): any {\n switch (item.type) {\n case \"click\":\n return computerActionClickSerializer(item as ComputerActionClick);\n\n case \"double_click\":\n return computerActionDoubleClickSerializer(item as ComputerActionDoubleClick);\n\n case \"drag\":\n return computerActionDragSerializer(item as ComputerActionDrag);\n\n case \"move\":\n return computerActionMoveSerializer(item as ComputerActionMove);\n\n case \"screenshot\":\n return computerActionScreenshotSerializer(item as ComputerActionScreenshot);\n\n case \"scroll\":\n return computerActionScrollSerializer(item as ComputerActionScroll);\n\n case \"type\":\n return computerActionTypeKeysSerializer(item as ComputerActionTypeKeys);\n\n case \"wait\":\n return computerActionWaitSerializer(item as ComputerActionWait);\n\n case \"keypress\":\n return computerActionKeyPressSerializer(item as ComputerActionKeyPress);\n\n default:\n return computerActionSerializer(item);\n }\n}\n\n/** Type of ComputerActionType */\nexport type ComputerActionType =\n | \"screenshot\"\n | \"click\"\n | \"double_click\"\n | \"scroll\"\n | \"type\"\n | \"wait\"\n | \"keypress\"\n | \"drag\"\n | \"move\";\n\n/** A click action. */\nexport interface ComputerActionClick extends ComputerAction {\n /**\n * Specifies the event type. For a click action, this property is\n * always set to `click`.\n */\n type: \"click\";\n /** Indicates which mouse button was pressed during the click. One of `left`, `right`, `wheel`, `back`, or `forward`. */\n button: \"left\" | \"right\" | \"wheel\" | \"back\" | \"forward\";\n /** The x-coordinate where the click occurred. */\n x: number;\n /** The y-coordinate where the click occurred. */\n y: number;\n}\n\nexport function computerActionClickSerializer(item: ComputerActionClick): any {\n return {\n type: item[\"type\"],\n button: item[\"button\"],\n x: item[\"x\"],\n y: item[\"y\"],\n };\n}\n\n/** A double click action. */\nexport interface ComputerActionDoubleClick extends ComputerAction {\n /**\n * Specifies the event type. For a double click action, this property is\n * always set to `double_click`.\n */\n type: \"double_click\";\n /** The x-coordinate where the double click occurred. */\n x: number;\n /** The y-coordinate where the double click occurred. */\n y: number;\n}\n\nexport function computerActionDoubleClickSerializer(item: ComputerActionDoubleClick): any {\n return { type: item[\"type\"], x: item[\"x\"], y: item[\"y\"] };\n}\n\n/** A drag action. */\nexport interface ComputerActionDrag extends ComputerAction {\n /**\n * Specifies the event type. For a drag action, this property is\n * always set to `drag`.\n */\n type: \"drag\";\n /**\n * An array of coordinates representing the path of the drag action. Coordinates will appear as an array\n * of objects, eg\n * ```\n * [\n * { x: 100, y: 200 },\n * { x: 200, y: 300 }\n * ]\n * ```\n */\n path: Coordinate[];\n}\n\nexport function computerActionDragSerializer(item: ComputerActionDrag): any {\n return { type: item[\"type\"], path: coordinateArraySerializer(item[\"path\"]) };\n}\n\nexport function coordinateArraySerializer(result: Array<Coordinate>): any[] {\n return result.map((item) => {\n return coordinateSerializer(item);\n });\n}\n\n/** An x/y coordinate pair, e.g. `{ x: 100, y: 200 }`. */\nexport interface Coordinate {\n /** The x-coordinate. */\n x: number;\n /** The y-coordinate. */\n y: number;\n}\n\nexport function coordinateSerializer(item: Coordinate): any {\n return { x: item[\"x\"], y: item[\"y\"] };\n}\n\n/** A mouse move action. */\nexport interface ComputerActionMove extends ComputerAction {\n /**\n * Specifies the event type. For a move action, this property is\n * always set to `move`.\n */\n type: \"move\";\n /** The x-coordinate to move to. */\n x: number;\n /** The y-coordinate to move to. */\n y: number;\n}\n\nexport function computerActionMoveSerializer(item: ComputerActionMove): any {\n return { type: item[\"type\"], x: item[\"x\"], y: item[\"y\"] };\n}\n\n/** A screenshot action. */\nexport interface ComputerActionScreenshot extends ComputerAction {\n /**\n * Specifies the event type. For a screenshot action, this property is\n * always set to `screenshot`.\n */\n type: \"screenshot\";\n}\n\nexport function computerActionScreenshotSerializer(item: ComputerActionScreenshot): any {\n return { type: item[\"type\"] };\n}\n\n/** A scroll action. */\nexport interface ComputerActionScroll extends ComputerAction {\n /**\n * Specifies the event type. For a scroll action, this property is\n * always set to `scroll`.\n */\n type: \"scroll\";\n /** The x-coordinate where the scroll occurred. */\n x: number;\n /** The y-coordinate where the scroll occurred. */\n y: number;\n /** The horizontal scroll distance. */\n scroll_x: number;\n /** The vertical scroll distance. */\n scroll_y: number;\n}\n\nexport function computerActionScrollSerializer(item: ComputerActionScroll): any {\n return {\n type: item[\"type\"],\n x: item[\"x\"],\n y: item[\"y\"],\n scroll_x: item[\"scroll_x\"],\n scroll_y: item[\"scroll_y\"],\n };\n}\n\n/** An action to type in text. */\nexport interface ComputerActionTypeKeys extends ComputerAction {\n /**\n * Specifies the event type. For a type action, this property is\n * always set to `type`.\n */\n type: \"type\";\n /** The text to type. */\n text: string;\n}\n\nexport function computerActionTypeKeysSerializer(item: ComputerActionTypeKeys): any {\n return { type: item[\"type\"], text: item[\"text\"] };\n}\n\n/** A wait action. */\nexport interface ComputerActionWait extends ComputerAction {\n /**\n * Specifies the event type. For a wait action, this property is\n * always set to `wait`.\n */\n type: \"wait\";\n}\n\nexport function computerActionWaitSerializer(item: ComputerActionWait): any {\n return { type: item[\"type\"] };\n}\n\n/** A collection of keypresses the model would like to perform. */\nexport interface ComputerActionKeyPress extends ComputerAction {\n /**\n * Specifies the event type. For a keypress action, this property is\n * always set to `keypress`.\n */\n type: \"keypress\";\n /**\n * The combination of keys the model is requesting to be pressed. This is an\n * array of strings, each representing a key.\n */\n keys: string[];\n}\n\nexport function computerActionKeyPressSerializer(item: ComputerActionKeyPress): any {\n return {\n type: item[\"type\"],\n keys: item[\"keys\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function computerToolCallSafetyCheckArraySerializer(\n result: Array<ComputerToolCallSafetyCheck>,\n): any[] {\n return result.map((item) => {\n return computerToolCallSafetyCheckSerializer(item);\n });\n}\n\n/** A pending safety check for the computer call. */\nexport interface ComputerToolCallSafetyCheck {\n /** The ID of the pending safety check. */\n id: string;\n /** The type of the pending safety check. */\n code: string;\n /** Details about the pending safety check. */\n message: string;\n}\n\nexport function computerToolCallSafetyCheckSerializer(item: ComputerToolCallSafetyCheck): any {\n return { id: item[\"id\"], code: item[\"code\"], message: item[\"message\"] };\n}\n\n/**\n * The output of a computer tool call.\n *\n */\nexport interface ComputerToolCallOutputItemParam extends ItemParam {\n type: \"computer_call_output\";\n /** The ID of the computer tool call that produced the output. */\n call_id: string;\n /**\n * The safety checks reported by the API that have been acknowledged by the\n * developer.\n */\n acknowledged_safety_checks?: ComputerToolCallSafetyCheck[];\n output: ComputerToolCallOutputItemOutputUnion;\n}\n\nexport function computerToolCallOutputItemParamSerializer(\n item: ComputerToolCallOutputItemParam,\n): any {\n return {\n type: item[\"type\"],\n call_id: item[\"call_id\"],\n acknowledged_safety_checks: !item[\"acknowledged_safety_checks\"]\n ? item[\"acknowledged_safety_checks\"]\n : computerToolCallSafetyCheckArraySerializer(item[\"acknowledged_safety_checks\"]),\n output: computerToolCallOutputItemOutputUnionSerializer(item[\"output\"]),\n };\n}\n\n/** model interface ComputerToolCallOutputItemOutput */\nexport interface ComputerToolCallOutputItemOutput {\n type: ComputerToolCallOutputItemOutputType;\n}\n\nexport function computerToolCallOutputItemOutputSerializer(\n item: ComputerToolCallOutputItemOutput,\n): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for ComputerToolCallOutputItemOutputUnion */\nexport type ComputerToolCallOutputItemOutputUnion =\n | ComputerToolCallOutputItemOutputComputerScreenshot\n | ComputerToolCallOutputItemOutput;\n\nexport function computerToolCallOutputItemOutputUnionSerializer(\n item: ComputerToolCallOutputItemOutputUnion,\n): any {\n switch (item.type) {\n case \"computer_screenshot\":\n return computerToolCallOutputItemOutputComputerScreenshotSerializer(\n item as ComputerToolCallOutputItemOutputComputerScreenshot,\n );\n\n default:\n return computerToolCallOutputItemOutputSerializer(item);\n }\n}\n\n/** A computer screenshot image used with the computer use tool. */\nexport type ComputerToolCallOutputItemOutputType = \"computer_screenshot\";\n\n/** model interface ComputerToolCallOutputItemOutputComputerScreenshot */\nexport interface ComputerToolCallOutputItemOutputComputerScreenshot extends ComputerToolCallOutputItemOutput {\n type: \"computer_screenshot\";\n /** The URL of the screenshot image. */\n image_url?: string;\n /** The ID of the screenshot file. */\n file_id?: string;\n}\n\nexport function computerToolCallOutputItemOutputComputerScreenshotSerializer(\n item: ComputerToolCallOutputItemOutputComputerScreenshot,\n): any {\n return {\n type: item[\"type\"],\n image_url: item[\"image_url\"],\n file_id: item[\"file_id\"],\n };\n}\n\n/**\n * The results of a web search tool call. See the\n * [web search guide](https://platform.openai.com/docs/guides/tools-web-search) for more information.\n *\n */\nexport interface WebSearchToolCallItemParam extends ItemParam {\n type: \"web_search_call\";\n /**\n * An object describing the specific action taken in this web search call.\n * Includes details on how the model used the web (search, open_page, find).\n */\n action: WebSearchActionUnion;\n}\n\nexport function webSearchToolCallItemParamSerializer(item: WebSearchToolCallItemParam): any {\n return {\n type: item[\"type\"],\n action: webSearchActionUnionSerializer(item[\"action\"]),\n };\n}\n\n/** model interface WebSearchAction */\nexport interface WebSearchAction {\n type: WebSearchActionType;\n}\n\nexport function webSearchActionSerializer(item: WebSearchAction): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for WebSearchActionUnion */\nexport type WebSearchActionUnion =\n | WebSearchActionFind\n | WebSearchActionOpenPage\n | WebSearchActionSearch\n | WebSearchAction;\n\nexport function webSearchActionUnionSerializer(item: WebSearchActionUnion): any {\n switch (item.type) {\n case \"find\":\n return webSearchActionFindSerializer(item as WebSearchActionFind);\n\n case \"open_page\":\n return webSearchActionOpenPageSerializer(item as WebSearchActionOpenPage);\n\n case \"search\":\n return webSearchActionSearchSerializer(item as WebSearchActionSearch);\n\n default:\n return webSearchActionSerializer(item);\n }\n}\n\n/** Type of WebSearchActionType */\nexport type WebSearchActionType = \"search\" | \"open_page\" | \"find\";\n\n/** Action type \"find\": Searches for a pattern within a loaded page. */\nexport interface WebSearchActionFind extends WebSearchAction {\n /** The action type. */\n type: \"find\";\n /** The URL of the page searched for the pattern. */\n url: string;\n /** The pattern or text to search for within the page. */\n pattern: string;\n}\n\nexport function webSearchActionFindSerializer(item: WebSearchActionFind): any {\n return { type: item[\"type\"], url: item[\"url\"], pattern: item[\"pattern\"] };\n}\n\n/** Action type \"open_page\" - Opens a specific URL from search results. */\nexport interface WebSearchActionOpenPage extends WebSearchAction {\n /** The action type. */\n type: \"open_page\";\n /** The URL opened by the model. */\n url: string;\n}\n\nexport function webSearchActionOpenPageSerializer(item: WebSearchActionOpenPage): any {\n return { type: item[\"type\"], url: item[\"url\"] };\n}\n\n/** Action type \"search\" - Performs a web search query. */\nexport interface WebSearchActionSearch extends WebSearchAction {\n /** The action type. */\n type: \"search\";\n /** The search query. */\n query: string;\n /** The sources used in the search. */\n sources?: WebSearchActionSearchSources[];\n}\n\nexport function webSearchActionSearchSerializer(item: WebSearchActionSearch): any {\n return {\n type: item[\"type\"],\n query: item[\"query\"],\n sources: !item[\"sources\"]\n ? item[\"sources\"]\n : webSearchActionSearchSourcesArraySerializer(item[\"sources\"]),\n };\n}\n\nexport function webSearchActionSearchSourcesArraySerializer(\n result: Array<WebSearchActionSearchSources>,\n): any[] {\n return result.map((item) => {\n return webSearchActionSearchSourcesSerializer(item);\n });\n}\n\n/** model interface WebSearchActionSearchSources */\nexport interface WebSearchActionSearchSources {\n type: \"url\";\n url: string;\n}\n\nexport function webSearchActionSearchSourcesSerializer(item: WebSearchActionSearchSources): any {\n return { type: item[\"type\"], url: item[\"url\"] };\n}\n\n/**\n * A tool call to run a function. See the\n * [function calling guide](https://platform.openai.com/docs/guides/function-calling) for more information.\n *\n */\nexport interface FunctionToolCallItemParam extends ItemParam {\n type: \"function_call\";\n /** The unique ID of the function tool call generated by the model. */\n call_id: string;\n /** The name of the function to run. */\n name: string;\n /** A JSON string of the arguments to pass to the function. */\n arguments: string;\n}\n\nexport function functionToolCallItemParamSerializer(item: FunctionToolCallItemParam): any {\n return {\n type: item[\"type\"],\n call_id: item[\"call_id\"],\n name: item[\"name\"],\n arguments: item[\"arguments\"],\n };\n}\n\n/**\n * Reasoning item parameter for o-series models.\n * Contains the chain of thought used by a reasoning model while generating a response.\n * Be sure to include these items in your `input` to the Responses API\n * for subsequent turns of a conversation if you are manually\n * [managing conversation state](https://platform.openai.com/docs/guides/conversation-state).\n */\nexport interface ReasoningItemParam extends ItemParam {\n type: \"reasoning\";\n /**\n * The encrypted content of the reasoning item - populated when a response is\n * generated with `reasoning.encrypted_content` in the `include` parameter.\n */\n encrypted_content?: string;\n /** Reasoning text contents. */\n summary: ReasoningItemSummaryPartUnion[];\n}\n\nexport function reasoningItemParamSerializer(item: ReasoningItemParam): any {\n return {\n type: item[\"type\"],\n encrypted_content: item[\"encrypted_content\"],\n summary: reasoningItemSummaryPartUnionArraySerializer(item[\"summary\"]),\n };\n}\n\nexport function reasoningItemSummaryPartUnionArraySerializer(\n result: Array<ReasoningItemSummaryPartUnion>,\n): any[] {\n return result.map((item) => {\n return reasoningItemSummaryPartUnionSerializer(item);\n });\n}\n\n/** model interface ReasoningItemSummaryPart */\nexport interface ReasoningItemSummaryPart {\n type: ReasoningItemSummaryPartType;\n}\n\nexport function reasoningItemSummaryPartSerializer(item: ReasoningItemSummaryPart): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for ReasoningItemSummaryPartUnion */\nexport type ReasoningItemSummaryPartUnion = ReasoningItemSummaryTextPart | ReasoningItemSummaryPart;\n\nexport function reasoningItemSummaryPartUnionSerializer(item: ReasoningItemSummaryPartUnion): any {\n switch (item.type) {\n case \"summary_text\":\n return reasoningItemSummaryTextPartSerializer(item as ReasoningItemSummaryTextPart);\n\n default:\n return reasoningItemSummaryPartSerializer(item);\n }\n}\n\n/** Type of ReasoningItemSummaryPartType */\nexport type ReasoningItemSummaryPartType = \"summary_text\";\n\n/** model interface ReasoningItemSummaryTextPart */\nexport interface ReasoningItemSummaryTextPart extends ReasoningItemSummaryPart {\n type: \"summary_text\";\n text: string;\n}\n\nexport function reasoningItemSummaryTextPartSerializer(item: ReasoningItemSummaryTextPart): any {\n return { type: item[\"type\"], text: item[\"text\"] };\n}\n\n/** An internal identifier for an item to reference. */\nexport interface ItemReferenceItemParam extends ItemParam {\n type: \"item_reference\";\n /** The service-originated ID of the previously generated response item being referenced. */\n id: string;\n}\n\nexport function itemReferenceItemParamSerializer(item: ItemReferenceItemParam): any {\n return { type: item[\"type\"], id: item[\"id\"] };\n}\n\n/**\n * Image generation tool call item.\n * Contains the request made by the model to generate an image.\n */\nexport interface ImageGenToolCallItemParam extends ItemParam {\n type: \"image_generation_call\";\n /** The generated image encoded in base64. */\n result: string;\n}\n\nexport function imageGenToolCallItemParamSerializer(item: ImageGenToolCallItemParam): any {\n return { type: item[\"type\"], result: item[\"result\"] };\n}\n\n/**\n * Code interpreter tool call item.\n * Contains code execution request and outputs from the code interpreter.\n */\nexport interface CodeInterpreterToolCallItemParam extends ItemParam {\n type: \"code_interpreter_call\";\n /** The ID of the container used to run the code. */\n container_id: string;\n /** The code to run. */\n code: string;\n /**\n * The outputs generated by the code interpreter, such as logs or images.\n */\n outputs: CodeInterpreterOutputUnion[];\n}\n\nexport function codeInterpreterToolCallItemParamSerializer(\n item: CodeInterpreterToolCallItemParam,\n): any {\n return {\n type: item[\"type\"],\n container_id: item[\"container_id\"],\n code: item[\"code\"],\n outputs: !item[\"outputs\"]\n ? item[\"outputs\"]\n : codeInterpreterOutputUnionArraySerializer(item[\"outputs\"]),\n };\n}\n\nexport function codeInterpreterOutputUnionArraySerializer(\n result: Array<CodeInterpreterOutputUnion>,\n): any[] {\n return result.map((item) => {\n return codeInterpreterOutputUnionSerializer(item);\n });\n}\n\n/** model interface CodeInterpreterOutput */\nexport interface CodeInterpreterOutput {\n type: CodeInterpreterOutputType;\n}\n\nexport function codeInterpreterOutputSerializer(item: CodeInterpreterOutput): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for CodeInterpreterOutputUnion */\nexport type CodeInterpreterOutputUnion =\n | CodeInterpreterOutputImage\n | CodeInterpreterOutputLogs\n | CodeInterpreterOutput;\n\nexport function codeInterpreterOutputUnionSerializer(item: CodeInterpreterOutputUnion): any {\n switch (item.type) {\n case \"image\":\n return codeInterpreterOutputImageSerializer(item as CodeInterpreterOutputImage);\n\n case \"logs\":\n return codeInterpreterOutputLogsSerializer(item as CodeInterpreterOutputLogs);\n\n default:\n return codeInterpreterOutputSerializer(item);\n }\n}\n\n/** Type of CodeInterpreterOutputType */\nexport type CodeInterpreterOutputType = \"logs\" | \"image\";\n\n/** The image output from the code interpreter. */\nexport interface CodeInterpreterOutputImage extends CodeInterpreterOutput {\n /** The type of the output. Always 'image'. */\n type: \"image\";\n /** The URL of the image output from the code interpreter. */\n url: string;\n}\n\nexport function codeInterpreterOutputImageSerializer(item: CodeInterpreterOutputImage): any {\n return { type: item[\"type\"], url: item[\"url\"] };\n}\n\n/** The logs output from the code interpreter. */\nexport interface CodeInterpreterOutputLogs extends CodeInterpreterOutput {\n /** The type of the output. Always 'logs'. */\n type: \"logs\";\n /** The logs output from the code interpreter. */\n logs: string;\n}\n\nexport function codeInterpreterOutputLogsSerializer(item: CodeInterpreterOutputLogs): any {\n return { type: item[\"type\"], logs: item[\"logs\"] };\n}\n\n/**\n * A tool call to run a command on the local shell.\n *\n */\nexport interface LocalShellToolCallItemParam extends ItemParam {\n type: \"local_shell_call\";\n /** The unique ID of the local shell tool call generated by the model. */\n call_id: string;\n action: LocalShellExecAction;\n}\n\nexport function localShellToolCallItemParamSerializer(item: LocalShellToolCallItemParam): any {\n return {\n type: item[\"type\"],\n call_id: item[\"call_id\"],\n action: localShellExecActionSerializer(item[\"action\"]),\n };\n}\n\n/**\n * Execute a shell command action.\n * Defines the command, environment, and execution context for local shell execution.\n */\nexport interface LocalShellExecAction {\n /** The type of the local shell action. Always `exec`. */\n type: \"exec\";\n /** The command to run. */\n command: string[];\n /** Optional timeout in milliseconds for the command. */\n timeout_ms?: number;\n /** Optional working directory to run the command in. */\n working_directory?: string;\n /** Environment variables to set for the command. */\n env: Record<string, string>;\n /** Optional user to run the command as. */\n user?: string;\n}\n\nexport function localShellExecActionSerializer(item: LocalShellExecAction): any {\n return {\n type: item[\"type\"],\n command: item[\"command\"].map((p: any) => {\n return p;\n }),\n timeout_ms: item[\"timeout_ms\"],\n working_directory: item[\"working_directory\"],\n env: item[\"env\"],\n user: item[\"user\"],\n };\n}\n\n/**\n * The output of a local shell tool call.\n *\n */\nexport interface LocalShellToolCallOutputItemParam extends ItemParam {\n type: \"local_shell_call_output\";\n /** A JSON string of the output of the local shell tool call. */\n output: string;\n}\n\nexport function localShellToolCallOutputItemParamSerializer(\n item: LocalShellToolCallOutputItemParam,\n): any {\n return { type: item[\"type\"], output: item[\"output\"] };\n}\n\n/**\n * MCP tool list item.\n * Contains the list of tools available on an MCP server.\n */\nexport interface MCPListToolsItemParam extends ItemParam {\n type: \"mcp_list_tools\";\n /** The label of the MCP server. */\n server_label: string;\n /** The tools available on the server. */\n tools: MCPListToolsTool[];\n /** Error message if the server could not list tools. */\n error?: string;\n}\n\nexport function mcpListToolsItemParamSerializer(item: MCPListToolsItemParam): any {\n return {\n type: item[\"type\"],\n server_label: item[\"server_label\"],\n tools: mcpListToolsToolArraySerializer(item[\"tools\"]),\n error: item[\"error\"],\n };\n}\n\nexport function mcpListToolsToolArraySerializer(result: Array<MCPListToolsTool>): any[] {\n return result.map((item) => {\n return mcpListToolsToolSerializer(item);\n });\n}\n\n/**\n * A tool available on an MCP server.\n * Describes a single tool with its name, description, input schema, and annotations.\n */\nexport interface MCPListToolsTool {\n /** The name of the tool. */\n name: string;\n /** The description of the tool. */\n description?: string;\n /** The JSON schema describing the tool's input. */\n input_schema: unknown;\n /** Additional annotations about the tool. */\n annotations?: unknown;\n}\n\nexport function mcpListToolsToolSerializer(item: MCPListToolsTool): any {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n input_schema: item[\"input_schema\"],\n annotations: item[\"annotations\"],\n };\n}\n\n/**\n * A request for human approval of a tool invocation.\n *\n */\nexport interface MCPApprovalRequestItemParam extends ItemParam {\n type: \"mcp_approval_request\";\n /** The label of the MCP server making the request. */\n server_label: string;\n /** The name of the tool to run. */\n name: string;\n /** A JSON string of arguments for the tool. */\n arguments: string;\n}\n\nexport function mcpApprovalRequestItemParamSerializer(item: MCPApprovalRequestItemParam): any {\n return {\n type: item[\"type\"],\n server_label: item[\"server_label\"],\n name: item[\"name\"],\n arguments: item[\"arguments\"],\n };\n}\n\n/**\n * MCP approval response item.\n * Contains the response to an MCP tool approval request.\n */\nexport interface MCPApprovalResponseItemParam extends ItemParam {\n type: \"mcp_approval_response\";\n /** The ID of the approval request being answered. */\n approval_request_id: string;\n /** Whether the request was approved. */\n approve: boolean;\n /** Optional reason for the decision. */\n reason?: string;\n}\n\nexport function mcpApprovalResponseItemParamSerializer(item: MCPApprovalResponseItemParam): any {\n return {\n type: item[\"type\"],\n approval_request_id: item[\"approval_request_id\"],\n approve: item[\"approve\"],\n reason: item[\"reason\"],\n };\n}\n\n/**\n * MCP tool call item.\n * Contains an invocation of a tool on an MCP server with its arguments and results.\n */\nexport interface MCPCallItemParam extends ItemParam {\n type: \"mcp_call\";\n /** The label of the MCP server running the tool. */\n server_label: string;\n /** The name of the tool that was run. */\n name: string;\n /** A JSON string of the arguments passed to the tool. */\n arguments: string;\n /** The output from the tool call. */\n output?: string;\n /** The error from the tool call, if any. */\n error?: string;\n}\n\nexport function mcpCallItemParamSerializer(item: MCPCallItemParam): any {\n return {\n type: item[\"type\"],\n server_label: item[\"server_label\"],\n name: item[\"name\"],\n arguments: item[\"arguments\"],\n output: item[\"output\"],\n error: item[\"error\"],\n };\n}\n\n/**\n * Memory search tool call item.\n * Contains results from a memory store search operation.\n */\nexport interface MemorySearchToolCallItemParam extends ItemParam {\n type: \"memory_search_call\";\n /** The results returned from the memory search. */\n results?: MemorySearchItem[];\n}\n\nexport function memorySearchToolCallItemParamSerializer(item: MemorySearchToolCallItemParam): any {\n return {\n type: item[\"type\"],\n results: !item[\"results\"] ? item[\"results\"] : memorySearchItemArraySerializer(item[\"results\"]),\n };\n}\n\nexport function memorySearchItemArraySerializer(result: Array<MemorySearchItem>): any[] {\n return result.map((item) => {\n return memorySearchItemSerializer(item);\n });\n}\n\nexport function memorySearchItemArrayDeserializer(result: Array<MemorySearchItem>): any[] {\n return result.map((item) => {\n return memorySearchItemDeserializer(item);\n });\n}\n\n/** A retrieved memory item from memory search. */\nexport interface MemorySearchItem {\n /** Retrieved memory item. */\n memory_item: MemoryItemUnion;\n}\n\nexport function memorySearchItemSerializer(item: MemorySearchItem): any {\n return { memory_item: memoryItemUnionSerializer(item[\"memory_item\"]) };\n}\n\nexport function memorySearchItemDeserializer(item: any): MemorySearchItem {\n return {\n memory_item: memoryItemUnionDeserializer(item[\"memory_item\"]),\n };\n}\n\n/** A single memory item stored in the memory store, containing content and metadata. */\nexport interface MemoryItem {\n /** The unique ID of the memory item. */\n memory_id: string;\n /** The last update time of the memory item. */\n updated_at: Date;\n /** The namespace that logically groups and isolates memories, such as a user ID. */\n scope: string;\n /** The content of the memory. */\n content: string;\n /** The kind of the memory item. */\n /** The discriminator possible values: user_profile, chat_summary */\n kind: MemoryItemKind;\n}\n\nexport function memoryItemSerializer(item: MemoryItem): any {\n return {\n memory_id: item[\"memory_id\"],\n updated_at: (item[\"updated_at\"].getTime() / 1000) | 0,\n scope: item[\"scope\"],\n content: item[\"content\"],\n kind: item[\"kind\"],\n };\n}\n\nexport function memoryItemDeserializer(item: any): MemoryItem {\n return {\n memory_id: item[\"memory_id\"],\n updated_at: new Date(item[\"updated_at\"] * 1000),\n scope: item[\"scope\"],\n content: item[\"content\"],\n kind: item[\"kind\"],\n };\n}\n\n/** Alias for MemoryItemUnion */\nexport type MemoryItemUnion = UserProfileMemoryItem | ChatSummaryMemoryItem | MemoryItem;\n\nexport function memoryItemUnionSerializer(item: MemoryItemUnion): any {\n switch (item.kind) {\n case \"user_profile\":\n return userProfileMemoryItemSerializer(item as UserProfileMemoryItem);\n\n case \"chat_summary\":\n return chatSummaryMemoryItemSerializer(item as ChatSummaryMemoryItem);\n\n default:\n return memoryItemSerializer(item);\n }\n}\n\nexport function memoryItemUnionDeserializer(item: any): MemoryItemUnion {\n switch (item.kind) {\n case \"user_profile\":\n return userProfileMemoryItemDeserializer(item as UserProfileMemoryItem);\n\n case \"chat_summary\":\n return chatSummaryMemoryItemDeserializer(item as ChatSummaryMemoryItem);\n\n default:\n return memoryItemDeserializer(item);\n }\n}\n\n/** Memory item kind. */\nexport type MemoryItemKind = \"user_profile\" | \"chat_summary\";\n\n/** A memory item specifically containing user profile information extracted from conversations, such as preferences, interests, and personal details. */\nexport interface UserProfileMemoryItem extends MemoryItem {\n /** The kind of the memory item. */\n kind: \"user_profile\";\n}\n\nexport function userProfileMemoryItemSerializer(item: UserProfileMemoryItem): any {\n return {\n memory_id: item[\"memory_id\"],\n updated_at: (item[\"updated_at\"].getTime() / 1000) | 0,\n scope: item[\"scope\"],\n content: item[\"content\"],\n kind: item[\"kind\"],\n };\n}\n\nexport function userProfileMemoryItemDeserializer(item: any): UserProfileMemoryItem {\n return {\n memory_id: item[\"memory_id\"],\n updated_at: new Date(item[\"updated_at\"] * 1000),\n scope: item[\"scope\"],\n content: item[\"content\"],\n kind: item[\"kind\"],\n };\n}\n\n/** A memory item containing a summary extracted from conversations. */\nexport interface ChatSummaryMemoryItem extends MemoryItem {\n /** The kind of the memory item. */\n kind: \"chat_summary\";\n}\n\nexport function chatSummaryMemoryItemSerializer(item: ChatSummaryMemoryItem): any {\n return {\n memory_id: item[\"memory_id\"],\n updated_at: (item[\"updated_at\"].getTime() / 1000) | 0,\n scope: item[\"scope\"],\n content: item[\"content\"],\n kind: item[\"kind\"],\n };\n}\n\nexport function chatSummaryMemoryItemDeserializer(item: any): ChatSummaryMemoryItem {\n return {\n memory_id: item[\"memory_id\"],\n updated_at: new Date(item[\"updated_at\"] * 1000),\n scope: item[\"scope\"],\n content: item[\"content\"],\n kind: item[\"kind\"],\n };\n}\n\nexport function itemParamUnionArraySerializer(result: Array<ItemParamUnion>): any[] {\n return result.map((item) => {\n return itemParamUnionSerializer(item);\n });\n}\n\n/** Memory search response. */\nexport interface MemoryStoreSearchResponse {\n /** The unique ID of this search request. Use this value as previous_search_id in subsequent requests to perform incremental searches. */\n search_id: string;\n /** Related memory items found during the search operation. */\n memories: MemorySearchItem[];\n /** Usage statistics associated with the memory search operation. */\n usage: MemoryStoreOperationUsage;\n}\n\nexport function memoryStoreSearchResponseDeserializer(item: any): MemoryStoreSearchResponse {\n return {\n search_id: item[\"search_id\"],\n memories: memorySearchItemArrayDeserializer(item[\"memories\"]),\n usage: memoryStoreOperationUsageDeserializer(item[\"usage\"]),\n };\n}\n\n/** Usage statistics of a memory store operation. */\nexport interface MemoryStoreOperationUsage {\n /** The number of embedding tokens. */\n embedding_tokens: number;\n /** The number of input tokens. */\n input_tokens: number;\n /** A detailed breakdown of the input tokens. */\n input_tokens_details: {\n cached_tokens: number;\n };\n /** The number of output tokens. */\n output_tokens: number;\n /** A detailed breakdown of the output tokens. */\n output_tokens_details: {\n reasoning_tokens: number;\n };\n /** The total number of tokens used. */\n total_tokens: number;\n}\n\nexport function memoryStoreOperationUsageDeserializer(item: any): MemoryStoreOperationUsage {\n return {\n embedding_tokens: item[\"embedding_tokens\"],\n input_tokens: item[\"input_tokens\"],\n input_tokens_details: _memoryStoreOperationUsageInputTokensDetailsDeserializer(\n item[\"input_tokens_details\"],\n ),\n output_tokens: item[\"output_tokens\"],\n output_tokens_details: _memoryStoreOperationUsageOutputTokensDetailsDeserializer(\n item[\"output_tokens_details\"],\n ),\n total_tokens: item[\"total_tokens\"],\n };\n}\n\n/** model interface _MemoryStoreOperationUsageInputTokensDetails */\nexport interface _MemoryStoreOperationUsageInputTokensDetails {\n /**\n * The number of tokens that were retrieved from the cache.\n * [More on prompt caching](https://platform.openai.com/docs/guides/prompt-caching).\n */\n cached_tokens: number;\n}\n\nexport function _memoryStoreOperationUsageInputTokensDetailsDeserializer(\n item: any,\n): _MemoryStoreOperationUsageInputTokensDetails {\n return {\n cached_tokens: item[\"cached_tokens\"],\n };\n}\n\n/** model interface _MemoryStoreOperationUsageOutputTokensDetails */\nexport interface _MemoryStoreOperationUsageOutputTokensDetails {\n /** The number of reasoning tokens. */\n reasoning_tokens: number;\n}\n\nexport function _memoryStoreOperationUsageOutputTokensDetailsDeserializer(\n item: any,\n): _MemoryStoreOperationUsageOutputTokensDetails {\n return {\n reasoning_tokens: item[\"reasoning_tokens\"],\n };\n}\n\n/** Provides the status of a memory store update operation. */\nexport interface MemoryStoreUpdateResponse {\n /** The unique ID of this update request. Use this value as previous_update_id in subsequent requests to perform incremental updates. */\n update_id: string;\n /** The status of the memory update operation. One of \"queued\", \"in_progress\", \"completed\", \"failed\", or \"superseded\". */\n status: MemoryStoreUpdateStatus;\n /** The update_id the operation was superseded by when status is \"superseded\". */\n superseded_by?: string;\n /** The result of memory store update operation when status is \"completed\". */\n result?: MemoryStoreUpdateResult;\n /** Error object that describes the error when status is \"failed\". */\n error?: ApiError;\n}\n\nexport function memoryStoreUpdateResponseDeserializer(item: any): MemoryStoreUpdateResponse {\n return {\n update_id: item[\"update_id\"],\n status: item[\"status\"],\n superseded_by: item[\"superseded_by\"],\n result: !item[\"result\"] ? item[\"result\"] : MemoryStoreUpdateResultDeserializer(item[\"result\"]),\n error: !item[\"error\"] ? item[\"error\"] : apiErrorDeserializer(item[\"error\"]),\n };\n}\n\n/** Status of a memory store update operation. */\nexport type MemoryStoreUpdateStatus =\n | \"queued\"\n | \"in_progress\"\n | \"completed\"\n | \"failed\"\n | \"superseded\";\n\n/** Memory update result. */\nexport interface MemoryStoreUpdateResult {\n /** A list of individual memory operations that were performed during the update. */\n memory_operations: MemoryOperation[];\n /** Usage statistics associated with the memory update operation. */\n usage: MemoryStoreOperationUsage;\n}\n\nexport function MemoryStoreUpdateResultDeserializer(item: any): MemoryStoreUpdateResult {\n return {\n memory_operations: memoryOperationArrayDeserializer(item[\"memory_operations\"]),\n usage: memoryStoreOperationUsageDeserializer(item[\"usage\"]),\n };\n}\n\nexport function memoryOperationArrayDeserializer(result: Array<MemoryOperation>): any[] {\n return result.map((item) => {\n return memoryOperationDeserializer(item);\n });\n}\n\n/** Represents a single memory operation (create, update, or delete) performed on a memory item. */\nexport interface MemoryOperation {\n /** The type of memory operation being performed. */\n kind: MemoryOperationKind;\n /** The memory item to create, update, or delete. */\n memory_item: MemoryItemUnion;\n}\n\nexport function memoryOperationDeserializer(item: any): MemoryOperation {\n return {\n kind: item[\"kind\"],\n memory_item: memoryItemUnionDeserializer(item[\"memory_item\"]),\n };\n}\n\n/** Memory operation kind. */\nexport type MemoryOperationKind = \"create\" | \"update\" | \"delete\";\n\n/** Response for deleting memories from a scope. */\nexport interface MemoryStoreDeleteScopeResponse {\n /** The object type. Always 'memory_store.scope.deleted'. */\n object: \"memory_store.scope.deleted\";\n /** The name of the memory store. */\n name: string;\n /** The scope from which memories were deleted. */\n scope: string;\n /** Whether the deletion operation was successful. */\n deleted: boolean;\n}\n\nexport function memoryStoreDeleteScopeResponseDeserializer(\n item: any,\n): MemoryStoreDeleteScopeResponse {\n return {\n object: item[\"object\"],\n name: item[\"name\"],\n scope: item[\"scope\"],\n deleted: item[\"deleted\"],\n };\n}\n\n/** Response from the list and get connections operations */\nexport interface Connection {\n /** The friendly name of the connection, provided by the user. */\n readonly name: string;\n /** A unique identifier for the connection, generated by the service */\n readonly id: string;\n /** Category of the connection */\n readonly type: ConnectionType;\n /** The connection URL to be used for this service */\n readonly target: string;\n /** Whether the connection is tagged as the default connection of its type */\n readonly isDefault: boolean;\n /** The credentials used by the connection */\n readonly credentials: BaseCredentialsUnion;\n /** Metadata of the connection */\n readonly metadata: Record<string, string>;\n}\n\nexport function connectionDeserializer(item: any): Connection {\n return {\n name: item[\"name\"],\n id: item[\"id\"],\n type: item[\"type\"],\n target: item[\"target\"],\n isDefault: item[\"isDefault\"],\n credentials: baseCredentialsUnionDeserializer(item[\"credentials\"]),\n metadata: item[\"metadata\"],\n };\n}\n\n/** The Type (or category) of the connection */\nexport type ConnectionType =\n | \"AzureOpenAI\"\n | \"AzureBlob\"\n | \"AzureStorageAccount\"\n | \"CognitiveSearch\"\n | \"CosmosDB\"\n | \"ApiKey\"\n | \"AppConfig\"\n | \"AppInsights\"\n | \"CustomKeys\"\n | \"RemoteTool\";\n\n/** A base class for connection credentials */\nexport interface BaseCredentials {\n /** The type of credential used by the connection */\n /** The discriminator possible values: ApiKey, AAD, CustomKeys, SAS, None, AgenticIdentityToken */\n readonly type: CredentialType;\n}\n\nexport function baseCredentialsDeserializer(item: any): BaseCredentials {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for BaseCredentialsUnion */\nexport type BaseCredentialsUnion =\n | ApiKeyCredentials\n | EntraIDCredentials\n | CustomCredential\n | SASTokenCredentials\n | NoAuthenticationCredentials\n | AgenticIdentityCredentials\n | BaseCredentials;\n\nexport function baseCredentialsUnionDeserializer(item: any): BaseCredentialsUnion {\n switch (item.type) {\n case \"ApiKey\":\n return apiKeyCredentialsDeserializer(item as ApiKeyCredentials);\n\n case \"AAD\":\n return entraIDCredentialsDeserializer(item as EntraIDCredentials);\n\n case \"CustomKeys\":\n return customCredentialDeserializer(item as CustomCredential);\n\n case \"SAS\":\n return sasCredentialsDeserializer(item as SASTokenCredentials);\n\n case \"None\":\n return noAuthenticationCredentialsDeserializer(item as NoAuthenticationCredentials);\n\n case \"AgenticIdentityToken\":\n return agenticIdentityCredentialsDeserializer(item as AgenticIdentityCredentials);\n\n default:\n return baseCredentialsDeserializer(item);\n }\n}\n\n/** The credential type used by the connection */\nexport type CredentialType =\n | \"ApiKey\"\n | \"AAD\"\n | \"SAS\"\n | \"CustomKeys\"\n | \"None\"\n | \"AgenticIdentityToken\";\n\n/** API Key Credential definition */\nexport interface ApiKeyCredentials extends BaseCredentials {\n /** The credential type */\n readonly type: \"ApiKey\";\n /** API Key */\n readonly apiKey: string;\n}\n\nexport function apiKeyCredentialsDeserializer(item: any): ApiKeyCredentials {\n return {\n type: item[\"type\"],\n apiKey: item[\"key\"],\n };\n}\n\n/** Entra ID credential definition */\nexport interface EntraIDCredentials extends BaseCredentials {\n /** The credential type */\n readonly type: \"AAD\";\n}\n\nexport function entraIDCredentialsDeserializer(item: any): EntraIDCredentials {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Custom credential definition */\nexport interface CustomCredential extends BaseCredentials {\n /** The credential type */\n readonly type: \"CustomKeys\";\n /** Additional properties */\n additionalProperties?: Record<string, string>;\n}\n\nexport function customCredentialDeserializer(item: any): CustomCredential {\n return {\n additionalProperties: serializeRecord(item, [\"type\"]),\n type: item[\"type\"],\n };\n}\n\n/** Shared Access Signature (SAS) credential definition */\nexport interface SASTokenCredentials extends BaseCredentials {\n /** The credential type */\n readonly type: \"SAS\";\n /** SAS token */\n readonly sasToken: string;\n}\n\nexport function sasCredentialsDeserializer(item: any): SASTokenCredentials {\n return {\n type: item[\"type\"],\n sasToken: item[\"SAS\"],\n };\n}\n\n/** Credentials that do not require authentication */\nexport interface NoAuthenticationCredentials extends BaseCredentials {\n /** The credential type */\n readonly type: \"None\";\n}\n\nexport function noAuthenticationCredentialsDeserializer(item: any): NoAuthenticationCredentials {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Agentic identity credential definition */\nexport interface AgenticIdentityCredentials extends BaseCredentials {\n /** The credential type */\n readonly type: \"AgenticIdentityToken\";\n}\n\nexport function agenticIdentityCredentialsDeserializer(item: any): AgenticIdentityCredentials {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Paged collection of Connection items */\nexport interface _PagedConnection {\n /** The Connection items on this page */\n value: Connection[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedConnectionDeserializer(item: any): _PagedConnection {\n return {\n value: connectionArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function connectionArrayDeserializer(result: Array<Connection>): any[] {\n return result.map((item) => {\n return connectionDeserializer(item);\n });\n}\n\n/** Paged collection of DatasetVersion items */\nexport interface _PagedDatasetVersion {\n /** The DatasetVersion items on this page */\n value: DatasetVersionUnion[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedDatasetVersionDeserializer(item: any): _PagedDatasetVersion {\n return {\n value: datasetVersionUnionArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function datasetVersionUnionArraySerializer(result: Array<DatasetVersionUnion>): any[] {\n return result.map((item) => {\n return datasetVersionUnionSerializer(item);\n });\n}\n\nexport function datasetVersionUnionArrayDeserializer(result: Array<DatasetVersionUnion>): any[] {\n return result.map((item) => {\n return datasetVersionUnionDeserializer(item);\n });\n}\n\n/** DatasetVersion Definition */\nexport interface DatasetVersion {\n /** URI of the data ([example](https://go.microsoft.com/fwlink/?linkid=2202330)) */\n dataUri: string;\n /** Dataset type */\n /** The discriminator possible values: uri_file, uri_folder */\n type: DatasetType;\n /** Indicates if the dataset holds a reference to the storage, or the dataset manages storage itself. If true, the underlying data will not be deleted when the dataset version is deleted */\n readonly isReference?: boolean;\n /** The Azure Storage Account connection name. Required if startPendingUploadVersion was not called before creating the Dataset */\n connectionName?: string;\n /** Asset ID, a unique identifier for the asset */\n readonly id?: string;\n /** The name of the resource */\n readonly name: string;\n /** The version of the resource */\n readonly version: string;\n /** The asset description text. */\n description?: string;\n /** Tag dictionary. Tags can be added, removed, and updated. */\n tags?: Record<string, string>;\n}\n\nexport function datasetVersionSerializer(item: DatasetVersion): any {\n return {\n dataUri: item[\"dataUri\"],\n type: item[\"type\"],\n connectionName: item[\"connectionName\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\nexport function datasetVersionDeserializer(item: any): DatasetVersion {\n return {\n dataUri: item[\"dataUri\"],\n type: item[\"type\"],\n isReference: item[\"isReference\"],\n connectionName: item[\"connectionName\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\n/** Alias for DatasetVersionUnion */\nexport type DatasetVersionUnion = FileDatasetVersion | FolderDatasetVersion | DatasetVersion;\n\nexport function datasetVersionUnionSerializer(item: DatasetVersionUnion): any {\n switch (item.type) {\n case \"uri_file\":\n return fileDatasetVersionSerializer(item as FileDatasetVersion);\n\n case \"uri_folder\":\n return folderDatasetVersionSerializer(item as FolderDatasetVersion);\n\n default:\n return datasetVersionSerializer(item);\n }\n}\n\nexport function datasetVersionUnionDeserializer(item: any): DatasetVersionUnion {\n switch (item.type) {\n case \"uri_file\":\n return fileDatasetVersionDeserializer(item as FileDatasetVersion);\n\n case \"uri_folder\":\n return folderDatasetVersionDeserializer(item as FolderDatasetVersion);\n\n default:\n return datasetVersionDeserializer(item);\n }\n}\n\n/** Enum to determine the type of data. */\nexport type DatasetType = \"uri_file\" | \"uri_folder\";\n\n/** FileDatasetVersion Definition */\nexport interface FileDatasetVersion extends DatasetVersion {\n /** Dataset type */\n type: \"uri_file\";\n}\n\nexport function fileDatasetVersionSerializer(item: FileDatasetVersion): any {\n return {\n dataUri: item[\"dataUri\"],\n type: item[\"type\"],\n connectionName: item[\"connectionName\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\nexport function fileDatasetVersionDeserializer(item: any): FileDatasetVersion {\n return {\n dataUri: item[\"dataUri\"],\n type: item[\"type\"],\n isReference: item[\"isReference\"],\n connectionName: item[\"connectionName\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\n/** FileDatasetVersion Definition */\nexport interface FolderDatasetVersion extends DatasetVersion {\n /** Dataset type */\n type: \"uri_folder\";\n}\n\nexport function folderDatasetVersionSerializer(item: FolderDatasetVersion): any {\n return {\n dataUri: item[\"dataUri\"],\n type: item[\"type\"],\n connectionName: item[\"connectionName\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\nexport function folderDatasetVersionDeserializer(item: any): FolderDatasetVersion {\n return {\n dataUri: item[\"dataUri\"],\n type: item[\"type\"],\n isReference: item[\"isReference\"],\n connectionName: item[\"connectionName\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\n/** Represents a request for a pending upload. */\nexport interface PendingUploadRequest {\n /** If PendingUploadId is not provided, a random GUID will be used. */\n pendingUploadId?: string;\n /** Azure Storage Account connection name to use for generating temporary SAS token */\n connectionName?: string;\n /** BlobReference is the only supported type. */\n pendingUploadType: \"BlobReference\";\n}\n\nexport function pendingUploadRequestSerializer(item: PendingUploadRequest): any {\n return {\n pendingUploadId: item[\"pendingUploadId\"],\n connectionName: item[\"connectionName\"],\n pendingUploadType: item[\"pendingUploadType\"],\n };\n}\n\n/** Represents the response for a pending upload request */\nexport interface PendingUploadResponse {\n /** Container-level read, write, list SAS. */\n blobReference: BlobReference;\n /** ID for this upload request. */\n pendingUploadId: string;\n /** Version of asset to be created if user did not specify version when initially creating upload */\n version?: string;\n /** BlobReference is the only supported type */\n pendingUploadType: \"BlobReference\";\n}\n\nexport function pendingUploadResponseDeserializer(item: any): PendingUploadResponse {\n return {\n blobReference: blobReferenceDeserializer(item[\"blobReference\"]),\n pendingUploadId: item[\"pendingUploadId\"],\n version: item[\"version\"],\n pendingUploadType: item[\"pendingUploadType\"],\n };\n}\n\n/** Blob reference details. */\nexport interface BlobReference {\n /** Blob URI path for client to upload data. Example: `https://blob.windows.core.net/Container/Path` */\n blobUri: string;\n /** ARM ID of the storage account to use. */\n storageAccountArmId: string;\n /** Credential info to access the storage account. */\n credential: SasCredential;\n}\n\nexport function blobReferenceDeserializer(item: any): BlobReference {\n return {\n blobUri: item[\"blobUri\"],\n storageAccountArmId: item[\"storageAccountArmId\"],\n credential: SasCredentialDeserializer(item[\"credential\"]),\n };\n}\n\n/** SAS Credential definition */\nexport interface SasCredential {\n /** SAS uri */\n readonly sasUri: string;\n /** Type of credential */\n readonly type: \"SAS\";\n}\n\nexport function SasCredentialDeserializer(item: any): SasCredential {\n return {\n sasUri: item[\"sasUri\"],\n type: item[\"type\"],\n };\n}\n\n/** Represents a reference to a blob for consumption */\nexport interface DatasetCredential {\n /** Credential info to access the storage account. */\n blobReference: BlobReference;\n}\n\nexport function datasetCredentialDeserializer(item: any): DatasetCredential {\n return {\n blobReference: blobReferenceDeserializer(item[\"blobReference\"]),\n };\n}\n\n/** Paged collection of Index items */\nexport interface _PagedIndex {\n /** The Index items on this page */\n value: IndexUnion[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedIndexDeserializer(item: any): _PagedIndex {\n return {\n value: indexUnionArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function indexUnionArraySerializer(result: Array<IndexUnion>): any[] {\n return result.map((item) => {\n return indexUnionSerializer(item);\n });\n}\n\nexport function indexUnionArrayDeserializer(result: Array<IndexUnion>): any[] {\n return result.map((item) => {\n return indexUnionDeserializer(item);\n });\n}\n\n/** Index resource Definition */\nexport interface Index {\n /** Type of index */\n /** The discriminator possible values: AzureSearch, ManagedAzureSearch, CosmosDBNoSqlVectorStore */\n type: IndexType;\n /** Asset ID, a unique identifier for the asset */\n readonly id?: string;\n /** The name of the resource */\n readonly name: string;\n /** The version of the resource */\n readonly version: string;\n /** The asset description text. */\n description?: string;\n /** Tag dictionary. Tags can be added, removed, and updated. */\n tags?: Record<string, string>;\n}\n\nexport function indexSerializer(item: Index): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\nexport function indexDeserializer(item: any): Index {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\n/** Alias for IndexUnion */\nexport type IndexUnion = AzureAISearchIndex | ManagedAzureAISearchIndex | CosmosDBIndex | Index;\n\nexport function indexUnionSerializer(item: IndexUnion): any {\n switch (item.type) {\n case \"AzureSearch\":\n return azureAISearchIndexSerializer(item as AzureAISearchIndex);\n\n case \"ManagedAzureSearch\":\n return managedAzureAISearchIndexSerializer(item as ManagedAzureAISearchIndex);\n\n case \"CosmosDBNoSqlVectorStore\":\n return cosmosDBIndexSerializer(item as CosmosDBIndex);\n\n default:\n return indexSerializer(item);\n }\n}\n\nexport function indexUnionDeserializer(item: any): IndexUnion {\n switch (item.type) {\n case \"AzureSearch\":\n return azureAISearchIndexDeserializer(item as AzureAISearchIndex);\n\n case \"ManagedAzureSearch\":\n return managedAzureAISearchIndexDeserializer(item as ManagedAzureAISearchIndex);\n\n case \"CosmosDBNoSqlVectorStore\":\n return cosmosDBIndexDeserializer(item as CosmosDBIndex);\n\n default:\n return indexDeserializer(item);\n }\n}\n\n/** Type of IndexType */\nexport type IndexType = \"AzureSearch\" | \"CosmosDBNoSqlVectorStore\" | \"ManagedAzureSearch\";\n\n/** Azure AI Search Index Definition */\nexport interface AzureAISearchIndex extends Index {\n /** Type of index */\n type: \"AzureSearch\";\n /** Name of connection to Azure AI Search */\n connectionName: string;\n /** Name of index in Azure AI Search resource to attach */\n indexName: string;\n /** Field mapping configuration */\n fieldMapping?: FieldMapping;\n}\n\nexport function azureAISearchIndexSerializer(item: AzureAISearchIndex): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n connectionName: item[\"connectionName\"],\n indexName: item[\"indexName\"],\n fieldMapping: !item[\"fieldMapping\"]\n ? item[\"fieldMapping\"]\n : fieldMappingSerializer(item[\"fieldMapping\"]),\n };\n}\n\nexport function azureAISearchIndexDeserializer(item: any): AzureAISearchIndex {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n connectionName: item[\"connectionName\"],\n indexName: item[\"indexName\"],\n fieldMapping: !item[\"fieldMapping\"]\n ? item[\"fieldMapping\"]\n : fieldMappingDeserializer(item[\"fieldMapping\"]),\n };\n}\n\n/** Field mapping configuration class */\nexport interface FieldMapping {\n /** List of fields with text content */\n contentFields: string[];\n /** Path of file to be used as a source of text content */\n filepathField?: string;\n /** Field containing the title of the document */\n titleField?: string;\n /** Field containing the url of the document */\n urlField?: string;\n /** List of fields with vector content */\n vectorFields?: string[];\n /** List of fields with metadata content */\n metadataFields?: string[];\n}\n\nexport function fieldMappingSerializer(item: FieldMapping): any {\n return {\n contentFields: item[\"contentFields\"].map((p: any) => {\n return p;\n }),\n filepathField: item[\"filepathField\"],\n titleField: item[\"titleField\"],\n urlField: item[\"urlField\"],\n vectorFields: !item[\"vectorFields\"]\n ? item[\"vectorFields\"]\n : item[\"vectorFields\"].map((p: any) => {\n return p;\n }),\n metadataFields: !item[\"metadataFields\"]\n ? item[\"metadataFields\"]\n : item[\"metadataFields\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function fieldMappingDeserializer(item: any): FieldMapping {\n return {\n contentFields: item[\"contentFields\"].map((p: any) => {\n return p;\n }),\n filepathField: item[\"filepathField\"],\n titleField: item[\"titleField\"],\n urlField: item[\"urlField\"],\n vectorFields: !item[\"vectorFields\"]\n ? item[\"vectorFields\"]\n : item[\"vectorFields\"].map((p: any) => {\n return p;\n }),\n metadataFields: !item[\"metadataFields\"]\n ? item[\"metadataFields\"]\n : item[\"metadataFields\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Managed Azure AI Search Index Definition */\nexport interface ManagedAzureAISearchIndex extends Index {\n /** Type of index */\n type: \"ManagedAzureSearch\";\n /** Vector store id of managed index */\n vectorStoreId: string;\n}\n\nexport function managedAzureAISearchIndexSerializer(item: ManagedAzureAISearchIndex): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n vectorStoreId: item[\"vectorStoreId\"],\n };\n}\n\nexport function managedAzureAISearchIndexDeserializer(item: any): ManagedAzureAISearchIndex {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n vectorStoreId: item[\"vectorStoreId\"],\n };\n}\n\n/** CosmosDB Vector Store Index Definition */\nexport interface CosmosDBIndex extends Index {\n /** Type of index */\n type: \"CosmosDBNoSqlVectorStore\";\n /** Name of connection to CosmosDB */\n connectionName: string;\n /** Name of the CosmosDB Database */\n databaseName: string;\n /** Name of CosmosDB Container */\n containerName: string;\n /** Embedding model configuration */\n embeddingConfiguration: EmbeddingConfiguration;\n /** Field mapping configuration */\n fieldMapping: FieldMapping;\n}\n\nexport function cosmosDBIndexSerializer(item: CosmosDBIndex): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n connectionName: item[\"connectionName\"],\n databaseName: item[\"databaseName\"],\n containerName: item[\"containerName\"],\n embeddingConfiguration: embeddingConfigurationSerializer(item[\"embeddingConfiguration\"]),\n fieldMapping: fieldMappingSerializer(item[\"fieldMapping\"]),\n };\n}\n\nexport function cosmosDBIndexDeserializer(item: any): CosmosDBIndex {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n connectionName: item[\"connectionName\"],\n databaseName: item[\"databaseName\"],\n containerName: item[\"containerName\"],\n embeddingConfiguration: embeddingConfigurationDeserializer(item[\"embeddingConfiguration\"]),\n fieldMapping: fieldMappingDeserializer(item[\"fieldMapping\"]),\n };\n}\n\n/** Embedding configuration class */\nexport interface EmbeddingConfiguration {\n /** Deployment name of embedding model. It can point to a model deployment either in the parent AIServices or a connection. */\n modelDeploymentName: string;\n /** Embedding field */\n embeddingField: string;\n}\n\nexport function embeddingConfigurationSerializer(item: EmbeddingConfiguration): any {\n return {\n modelDeploymentName: item[\"modelDeploymentName\"],\n embeddingField: item[\"embeddingField\"],\n };\n}\n\nexport function embeddingConfigurationDeserializer(item: any): EmbeddingConfiguration {\n return {\n modelDeploymentName: item[\"modelDeploymentName\"],\n embeddingField: item[\"embeddingField\"],\n };\n}\n\n/** Model Deployment Definition */\nexport interface Deployment {\n /** The type of the deployment */\n /** The discriminator possible values: ModelDeployment */\n type: DeploymentType;\n /** Name of the deployment */\n readonly name: string;\n}\n\nexport function deploymentDeserializer(item: any): Deployment {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n };\n}\n\n/** Alias for DeploymentUnion */\nexport type DeploymentUnion = ModelDeployment | Deployment;\n\nexport function deploymentUnionDeserializer(item: any): DeploymentUnion {\n switch (item.type) {\n case \"ModelDeployment\":\n return modelDeploymentDeserializer(item as ModelDeployment);\n\n default:\n return deploymentDeserializer(item);\n }\n}\n\n/** Type of DeploymentType */\nexport type DeploymentType = \"ModelDeployment\";\n\n/** Model Deployment Definition */\nexport interface ModelDeployment extends Deployment {\n /** The type of the deployment */\n type: \"ModelDeployment\";\n /** Publisher-specific name of the deployed model */\n readonly modelName: string;\n /** Publisher-specific version of the deployed model */\n readonly modelVersion: string;\n /** Name of the deployed model's publisher */\n readonly modelPublisher: string;\n /** Capabilities of deployed model */\n readonly capabilities: Record<string, string>;\n /** Sku of the model deployment */\n readonly sku: ModelDeploymentSku;\n /** Name of the connection the deployment comes from */\n readonly connectionName?: string;\n}\n\nexport function modelDeploymentDeserializer(item: any): ModelDeployment {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n modelName: item[\"modelName\"],\n modelVersion: item[\"modelVersion\"],\n modelPublisher: item[\"modelPublisher\"],\n capabilities: item[\"capabilities\"],\n sku: modelDeploymentSkuDeserializer(item[\"sku\"]),\n connectionName: item[\"connectionName\"],\n };\n}\n\n/** Sku information */\nexport interface ModelDeploymentSku {\n /** Sku capacity */\n capacity: number;\n /** Sku family */\n family: string;\n /** Sku name */\n name: string;\n /** Sku size */\n size: string;\n /** Sku tier */\n tier: string;\n}\n\nexport function modelDeploymentSkuDeserializer(item: any): ModelDeploymentSku {\n return {\n capacity: item[\"capacity\"],\n family: item[\"family\"],\n name: item[\"name\"],\n size: item[\"size\"],\n tier: item[\"tier\"],\n };\n}\n\n/** Paged collection of Deployment items */\nexport interface _PagedDeployment {\n /** The Deployment items on this page */\n value: DeploymentUnion[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedDeploymentDeserializer(item: any): _PagedDeployment {\n return {\n value: deploymentUnionArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function deploymentUnionArrayDeserializer(result: Array<DeploymentUnion>): any[] {\n return result.map((item) => {\n return deploymentUnionDeserializer(item);\n });\n}\n\n/** Red team details. */\nexport interface RedTeam {\n /** Identifier of the red team run. */\n readonly name: string;\n /** Name of the red-team run. */\n displayName?: string;\n /** Number of simulation rounds. */\n numTurns?: number;\n /** List of attack strategies or nested lists of attack strategies. */\n attackStrategies?: AttackStrategy[];\n /** Simulation-only or Simulation + Evaluation. Default false, if true the scan outputs conversation not evaluation result. */\n simulationOnly?: boolean;\n /** List of risk categories to generate attack objectives for. */\n riskCategories?: RiskCategory[];\n /** Application scenario for the red team operation, to generate scenario specific attacks. */\n applicationScenario?: string;\n /** Red team's tags. Unlike properties, tags are fully mutable. */\n tags?: Record<string, string>;\n /** Red team's properties. Unlike tags, properties are add-only. Once added, a property cannot be removed. */\n properties?: Record<string, string>;\n /** Status of the red-team. It is set by service and is read-only. */\n readonly status?: string;\n /** Target configuration for the red-team run. */\n target: TargetConfigUnion;\n}\n\nexport function redTeamSerializer(item: RedTeam): any {\n return {\n displayName: item[\"displayName\"],\n numTurns: item[\"numTurns\"],\n attackStrategies: !item[\"attackStrategies\"]\n ? item[\"attackStrategies\"]\n : item[\"attackStrategies\"].map((p: any) => {\n return p;\n }),\n simulationOnly: item[\"simulationOnly\"],\n riskCategories: !item[\"riskCategories\"]\n ? item[\"riskCategories\"]\n : item[\"riskCategories\"].map((p: any) => {\n return p;\n }),\n applicationScenario: item[\"applicationScenario\"],\n tags: item[\"tags\"],\n properties: item[\"properties\"],\n target: targetConfigUnionSerializer(item[\"target\"]),\n };\n}\n\nexport function redTeamDeserializer(item: any): RedTeam {\n return {\n name: item[\"id\"],\n displayName: item[\"displayName\"],\n numTurns: item[\"numTurns\"],\n attackStrategies: !item[\"attackStrategies\"]\n ? item[\"attackStrategies\"]\n : item[\"attackStrategies\"].map((p: any) => {\n return p;\n }),\n simulationOnly: item[\"simulationOnly\"],\n riskCategories: !item[\"riskCategories\"]\n ? item[\"riskCategories\"]\n : item[\"riskCategories\"].map((p: any) => {\n return p;\n }),\n applicationScenario: item[\"applicationScenario\"],\n tags: item[\"tags\"],\n properties: item[\"properties\"],\n status: item[\"status\"],\n target: targetConfigUnionDeserializer(item[\"target\"]),\n };\n}\n\n/** Strategies for attacks. */\nexport type AttackStrategy =\n | \"easy\"\n | \"moderate\"\n | \"difficult\"\n | \"ascii_art\"\n | \"ascii_smuggler\"\n | \"atbash\"\n | \"base64\"\n | \"binary\"\n | \"caesar\"\n | \"character_space\"\n | \"jailbreak\"\n | \"ansii_attack\"\n | \"character_swap\"\n | \"suffix_append\"\n | \"string_join\"\n | \"unicode_confusable\"\n | \"unicode_substitution\"\n | \"diacritic\"\n | \"flip\"\n | \"leetspeak\"\n | \"rot13\"\n | \"morse\"\n | \"url\"\n | \"baseline\"\n | \"indirect_jailbreak\"\n | \"tense\"\n | \"multi_turn\"\n | \"crescendo\";\n/** Risk category for the attack objective. */\nexport type RiskCategory =\n | \"HateUnfairness\"\n | \"Violence\"\n | \"Sexual\"\n | \"SelfHarm\"\n | \"ProtectedMaterial\"\n | \"CodeVulnerability\"\n | \"UngroundedAttributes\"\n | \"ProhibitedActions\"\n | \"SensitiveDataLeakage\"\n | \"TaskAdherence\";\n\n/** Abstract class for target configuration. */\nexport interface TargetConfig {\n /** Type of the model configuration. */\n /** The discriminator possible values: AzureOpenAIModel */\n type: string;\n}\n\nexport function targetConfigSerializer(item: TargetConfig): any {\n return { type: item[\"type\"] };\n}\n\nexport function targetConfigDeserializer(item: any): TargetConfig {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for TargetConfigUnion */\nexport type TargetConfigUnion = AzureOpenAIModelConfiguration | TargetConfig;\n\nexport function targetConfigUnionSerializer(item: TargetConfigUnion): any {\n switch (item.type) {\n case \"AzureOpenAIModel\":\n return azureOpenAIModelConfigurationSerializer(item as AzureOpenAIModelConfiguration);\n\n default:\n return targetConfigSerializer(item);\n }\n}\n\nexport function targetConfigUnionDeserializer(item: any): TargetConfigUnion {\n switch (item.type) {\n case \"AzureOpenAIModel\":\n return azureOpenAIModelConfigurationDeserializer(item as AzureOpenAIModelConfiguration);\n\n default:\n return targetConfigDeserializer(item);\n }\n}\n\n/** Azure OpenAI model configuration. The API version would be selected by the service for querying the model. */\nexport interface AzureOpenAIModelConfiguration extends TargetConfig {\n type: \"AzureOpenAIModel\";\n /** Deployment name for AOAI model. Example: gpt-4o if in AIServices or connection based `connection_name/deployment_name` (e.g. `my-aoai-connection/gpt-4o`). */\n modelDeploymentName: string;\n}\n\nexport function azureOpenAIModelConfigurationSerializer(item: AzureOpenAIModelConfiguration): any {\n return {\n type: item[\"type\"],\n modelDeploymentName: item[\"modelDeploymentName\"],\n };\n}\n\nexport function azureOpenAIModelConfigurationDeserializer(\n item: any,\n): AzureOpenAIModelConfiguration {\n return {\n type: item[\"type\"],\n modelDeploymentName: item[\"modelDeploymentName\"],\n };\n}\n\n/** Paged collection of RedTeam items */\nexport interface _PagedRedTeam {\n /** The RedTeam items on this page */\n value: RedTeam[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedRedTeamDeserializer(item: any): _PagedRedTeam {\n return {\n value: redTeamArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function redTeamArraySerializer(result: Array<RedTeam>): any[] {\n return result.map((item) => {\n return redTeamSerializer(item);\n });\n}\n\nexport function redTeamArrayDeserializer(result: Array<RedTeam>): any[] {\n return result.map((item) => {\n return redTeamDeserializer(item);\n });\n}\n\n/** Evaluation rule model. */\nexport interface EvaluationRule {\n /** Unique identifier for the evaluation rule. */\n readonly id: string;\n /** Display Name for the evaluation rule. */\n displayName?: string;\n /** Description for the evaluation rule. */\n description?: string;\n /** Definition of the evaluation rule action. */\n action: EvaluationRuleActionUnion;\n /** Filter condition of the evaluation rule. */\n filter?: EvaluationRuleFilter;\n /** Event type that the evaluation rule applies to. */\n eventType: EvaluationRuleEventType;\n /** Indicates whether the evaluation rule is enabled. Default is true. */\n enabled: boolean;\n /** System metadata for the evaluation rule. */\n readonly systemData: Record<string, string>;\n}\n\nexport function evaluationRuleSerializer(item: EvaluationRule): any {\n return {\n displayName: item[\"displayName\"],\n description: item[\"description\"],\n action: evaluationRuleActionUnionSerializer(item[\"action\"]),\n filter: !item[\"filter\"] ? item[\"filter\"] : evaluationRuleFilterSerializer(item[\"filter\"]),\n eventType: item[\"eventType\"],\n enabled: item[\"enabled\"],\n };\n}\n\nexport function evaluationRuleDeserializer(item: any): EvaluationRule {\n return {\n id: item[\"id\"],\n displayName: item[\"displayName\"],\n description: item[\"description\"],\n action: evaluationRuleActionUnionDeserializer(item[\"action\"]),\n filter: !item[\"filter\"] ? item[\"filter\"] : evaluationRuleFilterDeserializer(item[\"filter\"]),\n eventType: item[\"eventType\"],\n enabled: item[\"enabled\"],\n systemData: item[\"systemData\"],\n };\n}\n\n/** Evaluation action model. */\nexport interface EvaluationRuleAction {\n /** Type of the evaluation action. */\n /** The discriminator possible values: continuousEvaluation, humanEvaluation */\n type: EvaluationRuleActionType;\n}\n\nexport function evaluationRuleActionSerializer(item: EvaluationRuleAction): any {\n return { type: item[\"type\"] };\n}\n\nexport function evaluationRuleActionDeserializer(item: any): EvaluationRuleAction {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for EvaluationRuleActionUnion */\nexport type EvaluationRuleActionUnion =\n | ContinuousEvaluationRuleAction\n | HumanEvaluationRuleAction\n | EvaluationRuleAction;\n\nexport function evaluationRuleActionUnionSerializer(item: EvaluationRuleActionUnion): any {\n switch (item.type) {\n case \"continuousEvaluation\":\n return continuousEvaluationRuleActionSerializer(item as ContinuousEvaluationRuleAction);\n\n case \"humanEvaluation\":\n return humanEvaluationRuleActionSerializer(item as HumanEvaluationRuleAction);\n\n default:\n return evaluationRuleActionSerializer(item);\n }\n}\n\nexport function evaluationRuleActionUnionDeserializer(item: any): EvaluationRuleActionUnion {\n switch (item.type) {\n case \"continuousEvaluation\":\n return continuousEvaluationRuleActionDeserializer(item as ContinuousEvaluationRuleAction);\n\n case \"humanEvaluation\":\n return humanEvaluationRuleActionDeserializer(item as HumanEvaluationRuleAction);\n\n default:\n return evaluationRuleActionDeserializer(item);\n }\n}\n\n/** Type of the evaluation action. */\nexport type EvaluationRuleActionType = \"continuousEvaluation\" | \"humanEvaluation\";\n\n/** Evaluation rule action for continuous evaluation. */\nexport interface ContinuousEvaluationRuleAction extends EvaluationRuleAction {\n type: \"continuousEvaluation\";\n /** Eval Id to add continuous evaluation runs to. */\n evalId: string;\n /** Maximum number of evaluation runs allowed per hour. */\n maxHourlyRuns?: number;\n}\n\nexport function continuousEvaluationRuleActionSerializer(\n item: ContinuousEvaluationRuleAction,\n): any {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n maxHourlyRuns: item[\"maxHourlyRuns\"],\n };\n}\n\nexport function continuousEvaluationRuleActionDeserializer(\n item: any,\n): ContinuousEvaluationRuleAction {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n maxHourlyRuns: item[\"maxHourlyRuns\"],\n };\n}\n\n/** Evaluation rule action for human evaluation. */\nexport interface HumanEvaluationRuleAction extends EvaluationRuleAction {\n type: \"humanEvaluation\";\n /** Human evaluation template Id. */\n templateId: string;\n}\n\nexport function humanEvaluationRuleActionSerializer(item: HumanEvaluationRuleAction): any {\n return { type: item[\"type\"], templateId: item[\"templateId\"] };\n}\n\nexport function humanEvaluationRuleActionDeserializer(item: any): HumanEvaluationRuleAction {\n return {\n type: item[\"type\"],\n templateId: item[\"templateId\"],\n };\n}\n\n/** Evaluation filter model. */\nexport interface EvaluationRuleFilter {\n /** Filter by agent name. */\n agentName: string;\n}\n\nexport function evaluationRuleFilterSerializer(item: EvaluationRuleFilter): any {\n return { agentName: item[\"agentName\"] };\n}\n\nexport function evaluationRuleFilterDeserializer(item: any): EvaluationRuleFilter {\n return {\n agentName: item[\"agentName\"],\n };\n}\n\n/** Type of the evaluation rule event. */\nexport type EvaluationRuleEventType = \"responseCompleted\" | \"manual\";\n\n/** Paged collection of EvaluationRule items */\nexport interface _PagedEvaluationRule {\n /** The EvaluationRule items on this page */\n value: EvaluationRule[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedEvaluationRuleDeserializer(item: any): _PagedEvaluationRule {\n return {\n value: evaluationRuleArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function evaluationRuleArraySerializer(result: Array<EvaluationRule>): any[] {\n return result.map((item) => {\n return evaluationRuleSerializer(item);\n });\n}\n\nexport function evaluationRuleArrayDeserializer(result: Array<EvaluationRule>): any[] {\n return result.map((item) => {\n return evaluationRuleDeserializer(item);\n });\n}\n\n/** Evaluation Taxonomy Definition */\nexport interface EvaluationTaxonomy {\n /** Asset ID, a unique identifier for the asset */\n readonly id?: string;\n /** The name of the resource */\n readonly name: string;\n /** The version of the resource */\n readonly version: string;\n /** The asset description text. */\n description?: string;\n /** Tag dictionary. Tags can be added, removed, and updated. */\n tags?: Record<string, string>;\n /** Input configuration for the evaluation taxonomy. */\n taxonomyInput: EvaluationTaxonomyInputUnion;\n /** List of taxonomy categories. */\n taxonomyCategories?: TaxonomyCategory[];\n /** Additional properties for the evaluation taxonomy. */\n properties?: Record<string, string>;\n}\n\nexport function evaluationTaxonomySerializer(item: EvaluationTaxonomy): any {\n return {\n description: item[\"description\"],\n tags: item[\"tags\"],\n taxonomyInput: evaluationTaxonomyInputUnionSerializer(item[\"taxonomyInput\"]),\n taxonomyCategories: !item[\"taxonomyCategories\"]\n ? item[\"taxonomyCategories\"]\n : taxonomyCategoryArraySerializer(item[\"taxonomyCategories\"]),\n properties: item[\"properties\"],\n };\n}\n\nexport function evaluationTaxonomyDeserializer(item: any): EvaluationTaxonomy {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n taxonomyInput: evaluationTaxonomyInputUnionDeserializer(item[\"taxonomyInput\"]),\n taxonomyCategories: !item[\"taxonomyCategories\"]\n ? item[\"taxonomyCategories\"]\n : taxonomyCategoryArrayDeserializer(item[\"taxonomyCategories\"]),\n properties: item[\"properties\"],\n };\n}\n\n/** Input configuration for the evaluation taxonomy. */\nexport interface EvaluationTaxonomyInput {\n /** Input type of the evaluation taxonomy. */\n /** The discriminator possible values: agent */\n type: EvaluationTaxonomyInputType;\n}\n\nexport function evaluationTaxonomyInputSerializer(item: EvaluationTaxonomyInput): any {\n return { type: item[\"type\"] };\n}\n\nexport function evaluationTaxonomyInputDeserializer(item: any): EvaluationTaxonomyInput {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for EvaluationTaxonomyInputUnion */\nexport type EvaluationTaxonomyInputUnion = AgentTaxonomyInput | EvaluationTaxonomyInput;\n\nexport function evaluationTaxonomyInputUnionSerializer(item: EvaluationTaxonomyInputUnion): any {\n switch (item.type) {\n case \"agent\":\n return agentTaxonomyInputSerializer(item as AgentTaxonomyInput);\n\n default:\n return evaluationTaxonomyInputSerializer(item);\n }\n}\n\nexport function evaluationTaxonomyInputUnionDeserializer(item: any): EvaluationTaxonomyInputUnion {\n switch (item.type) {\n case \"agent\":\n return agentTaxonomyInputDeserializer(item as AgentTaxonomyInput);\n\n default:\n return evaluationTaxonomyInputDeserializer(item);\n }\n}\n\n/** Type of the evaluation taxonomy input. */\nexport type EvaluationTaxonomyInputType = \"agent\" | \"policy\";\n\n/** Input configuration for the evaluation taxonomy when the input type is agent. */\nexport interface AgentTaxonomyInput extends EvaluationTaxonomyInput {\n /** Input type of the evaluation taxonomy. */\n type: \"agent\";\n /** Target configuration for the agent. */\n target: AzureAIAgentTarget;\n /** List of risk categories to evaluate against. */\n riskCategories: RiskCategory[];\n}\n\nexport function agentTaxonomyInputSerializer(item: AgentTaxonomyInput): any {\n return {\n type: item[\"type\"],\n target: azureAIAgentTargetSerializer(item[\"target\"]),\n riskCategories: item[\"riskCategories\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function agentTaxonomyInputDeserializer(item: any): AgentTaxonomyInput {\n return {\n type: item[\"type\"],\n target: azureAIAgentTargetDeserializer(item[\"target\"]),\n riskCategories: item[\"riskCategories\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Represents a target specifying an Azure AI agent. */\nexport interface AzureAIAgentTarget extends Target {\n /** The type of target, always `azure_ai_agent`. */\n type: \"azure_ai_agent\";\n /** The unique identifier of the Azure AI agent. */\n name: string;\n /** The version of the Azure AI agent. */\n version?: string;\n /** The parameters used to control the sampling behavior of the agent during text generation. */\n tool_descriptions?: ToolDescription[];\n}\n\nexport function azureAIAgentTargetSerializer(item: AzureAIAgentTarget): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n version: item[\"version\"],\n tool_descriptions: !item[\"tool_descriptions\"]\n ? item[\"tool_descriptions\"]\n : toolDescriptionArraySerializer(item[\"tool_descriptions\"]),\n };\n}\n\nexport function azureAIAgentTargetDeserializer(item: any): AzureAIAgentTarget {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n version: item[\"version\"],\n tool_descriptions: !item[\"tool_descriptions\"]\n ? item[\"tool_descriptions\"]\n : toolDescriptionArrayDeserializer(item[\"tool_descriptions\"]),\n };\n}\n\nexport function toolDescriptionArraySerializer(result: Array<ToolDescription>): any[] {\n return result.map((item) => {\n return toolDescriptionSerializer(item);\n });\n}\n\nexport function toolDescriptionArrayDeserializer(result: Array<ToolDescription>): any[] {\n return result.map((item) => {\n return toolDescriptionDeserializer(item);\n });\n}\n\n/** Description of a tool that can be used by an agent. */\nexport interface ToolDescription {\n /** The name of the tool. */\n name?: string;\n /** A brief description of the tool's purpose. */\n description?: string;\n}\n\nexport function toolDescriptionSerializer(item: ToolDescription): any {\n return { name: item[\"name\"], description: item[\"description\"] };\n}\n\nexport function toolDescriptionDeserializer(item: any): ToolDescription {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n };\n}\n\nexport function taxonomyCategoryArraySerializer(result: Array<TaxonomyCategory>): any[] {\n return result.map((item) => {\n return taxonomyCategorySerializer(item);\n });\n}\n\nexport function taxonomyCategoryArrayDeserializer(result: Array<TaxonomyCategory>): any[] {\n return result.map((item) => {\n return taxonomyCategoryDeserializer(item);\n });\n}\n\n/** Taxonomy category definition. */\nexport interface TaxonomyCategory {\n /** Unique identifier of the taxonomy category. */\n id: string;\n /** Name of the taxonomy category. */\n name: string;\n /** Description of the taxonomy category. */\n description?: string;\n /** Risk category associated with this taxonomy category. */\n riskCategory: RiskCategory;\n /** List of taxonomy sub categories. */\n subCategories: TaxonomySubCategory[];\n /** Additional properties for the taxonomy category. */\n properties?: Record<string, string>;\n}\n\nexport function taxonomyCategorySerializer(item: TaxonomyCategory): any {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n description: item[\"description\"],\n riskCategory: item[\"riskCategory\"],\n subCategories: taxonomySubCategoryArraySerializer(item[\"subCategories\"]),\n properties: item[\"properties\"],\n };\n}\n\nexport function taxonomyCategoryDeserializer(item: any): TaxonomyCategory {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n description: item[\"description\"],\n riskCategory: item[\"riskCategory\"],\n subCategories: taxonomySubCategoryArrayDeserializer(item[\"subCategories\"]),\n properties: item[\"properties\"],\n };\n}\n\nexport function taxonomySubCategoryArraySerializer(result: Array<TaxonomySubCategory>): any[] {\n return result.map((item) => {\n return taxonomySubCategorySerializer(item);\n });\n}\n\nexport function taxonomySubCategoryArrayDeserializer(result: Array<TaxonomySubCategory>): any[] {\n return result.map((item) => {\n return taxonomySubCategoryDeserializer(item);\n });\n}\n\n/** Taxonomy sub-category definition. */\nexport interface TaxonomySubCategory {\n /** Unique identifier of the taxonomy sub-category. */\n id: string;\n /** Name of the taxonomy sub-category. */\n name: string;\n /** Description of the taxonomy sub-category. */\n description?: string;\n /** List of taxonomy items under this sub-category. */\n enabled: boolean;\n /** Additional properties for the taxonomy sub-category. */\n properties?: Record<string, string>;\n}\n\nexport function taxonomySubCategorySerializer(item: TaxonomySubCategory): any {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n description: item[\"description\"],\n enabled: item[\"enabled\"],\n properties: item[\"properties\"],\n };\n}\n\nexport function taxonomySubCategoryDeserializer(item: any): TaxonomySubCategory {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n description: item[\"description\"],\n enabled: item[\"enabled\"],\n properties: item[\"properties\"],\n };\n}\n\n/** Base class for targets with discriminator support. */\nexport interface Target {\n /** The type of target. */\n /** The discriminator possible values: azure_ai_model, azure_ai_agent, azure_ai_assistant */\n type: string;\n}\n\nexport function targetSerializer(item: Target): any {\n return { type: item[\"type\"] };\n}\n\nexport function targetDeserializer(item: any): Target {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for TargetUnion */\nexport type TargetUnion = AzureAIAgentTarget | Target;\n\nexport function targetUnionSerializer(item: TargetUnion): any {\n switch (item.type) {\n case \"azure_ai_agent\":\n return azureAIAgentTargetSerializer(item as AzureAIAgentTarget);\n\n default:\n return targetSerializer(item);\n }\n}\n\nexport function targetUnionDeserializer(item: any): TargetUnion {\n switch (item.type) {\n case \"azure_ai_agent\":\n return azureAIAgentTargetDeserializer(item as AzureAIAgentTarget);\n\n default:\n return targetDeserializer(item);\n }\n}\n\n/** Paged collection of EvaluationTaxonomy items */\nexport interface _PagedEvaluationTaxonomy {\n /** The EvaluationTaxonomy items on this page */\n value: EvaluationTaxonomy[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedEvaluationTaxonomyDeserializer(item: any): _PagedEvaluationTaxonomy {\n return {\n value: evaluationTaxonomyArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function evaluationTaxonomyArraySerializer(result: Array<EvaluationTaxonomy>): any[] {\n return result.map((item) => {\n return evaluationTaxonomySerializer(item);\n });\n}\n\nexport function evaluationTaxonomyArrayDeserializer(result: Array<EvaluationTaxonomy>): any[] {\n return result.map((item) => {\n return evaluationTaxonomyDeserializer(item);\n });\n}\n\n/** Paged collection of EvaluatorVersion items */\nexport interface _PagedEvaluatorVersion {\n /** The EvaluatorVersion items on this page */\n value: EvaluatorVersion[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedEvaluatorVersionDeserializer(item: any): _PagedEvaluatorVersion {\n return {\n value: evaluatorVersionArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function evaluatorVersionArraySerializer(result: Array<EvaluatorVersion>): any[] {\n return result.map((item) => {\n return evaluatorVersionSerializer(item);\n });\n}\n\nexport function evaluatorVersionArrayDeserializer(result: Array<EvaluatorVersion>): any[] {\n return result.map((item) => {\n return evaluatorVersionDeserializer(item);\n });\n}\n\n/** Evaluator Definition */\nexport interface EvaluatorVersion {\n /** Display Name for evaluator. It helps to find the evaluator easily in Microsoft Foundry. It does not need to be unique. */\n display_name?: string;\n /** Metadata about the evaluator */\n metadata?: Record<string, string>;\n /** The type of the evaluator */\n evaluator_type: EvaluatorType;\n /** The categories of the evaluator */\n categories: EvaluatorCategory[];\n /** Definition of the evaluator */\n definition: EvaluatorDefinitionUnion;\n /** Creator of the evaluator */\n readonly created_by?: string;\n /** Creation date/time of the evaluator */\n readonly created_at?: number;\n /** Last modified date/time of the evaluator */\n readonly modified_at?: number;\n /** Asset ID, a unique identifier for the asset */\n readonly id?: string;\n /** The name of the resource */\n readonly name: string;\n /** The version of the resource */\n readonly version?: string;\n /** The asset description text. */\n description?: string;\n /** Tag dictionary. Tags can be added, removed, and updated. */\n tags?: Record<string, string>;\n}\n\nexport function evaluatorVersionSerializer(item: EvaluatorVersion): any {\n return {\n display_name: item[\"display_name\"],\n metadata: item[\"metadata\"],\n evaluator_type: item[\"evaluator_type\"],\n categories: item[\"categories\"].map((p: any) => {\n return p;\n }),\n definition: evaluatorDefinitionUnionSerializer(item[\"definition\"]),\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\nexport function evaluatorVersionDeserializer(item: any): EvaluatorVersion {\n return {\n display_name: item[\"display_name\"],\n metadata: item[\"metadata\"],\n evaluator_type: item[\"evaluator_type\"],\n categories: item[\"categories\"].map((p: any) => {\n return p;\n }),\n definition: evaluatorDefinitionUnionDeserializer(item[\"definition\"]),\n created_by: item[\"created_by\"],\n created_at: item[\"created_at\"],\n modified_at: item[\"modified_at\"],\n id: item[\"id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\n/** The type of the evaluator */\nexport type EvaluatorType = \"builtin\" | \"custom\";\n/** The category of the evaluator */\nexport type EvaluatorCategory = \"quality\" | \"safety\" | \"agents\";\n\n/** Base evaluator configuration with discriminator */\nexport interface EvaluatorDefinition {\n /** The type of evaluator definition */\n /** The discriminator possible values: code, prompt */\n type: EvaluatorDefinitionType;\n /** The JSON schema (Draft 2020-12) for the evaluator's input parameters. This includes parameters like type, properties, required. */\n init_parameters?: unknown;\n /** The JSON schema (Draft 2020-12) for the evaluator's input data. This includes parameters like type, properties, required. */\n data_schema?: unknown;\n /** List of output metrics produced by this evaluator */\n metrics?: Record<string, EvaluatorMetric>;\n}\n\nexport function evaluatorDefinitionSerializer(item: EvaluatorDefinition): any {\n return {\n type: item[\"type\"],\n init_parameters: item[\"init_parameters\"],\n data_schema: item[\"data_schema\"],\n metrics: !item[\"metrics\"] ? item[\"metrics\"] : evaluatorMetricRecordSerializer(item[\"metrics\"]),\n };\n}\n\nexport function evaluatorDefinitionDeserializer(item: any): EvaluatorDefinition {\n return {\n type: item[\"type\"],\n init_parameters: item[\"init_parameters\"],\n data_schema: item[\"data_schema\"],\n metrics: !item[\"metrics\"]\n ? item[\"metrics\"]\n : evaluatorMetricRecordDeserializer(item[\"metrics\"]),\n };\n}\n\n/** Alias for EvaluatorDefinitionUnion */\nexport type EvaluatorDefinitionUnion =\n | CodeBasedEvaluatorDefinition\n | PromptBasedEvaluatorDefinition\n | EvaluatorDefinition;\n\nexport function evaluatorDefinitionUnionSerializer(item: EvaluatorDefinitionUnion): any {\n switch (item.type) {\n case \"code\":\n return codeBasedEvaluatorDefinitionSerializer(item as CodeBasedEvaluatorDefinition);\n\n case \"prompt\":\n return promptBasedEvaluatorDefinitionSerializer(item as PromptBasedEvaluatorDefinition);\n\n default:\n return evaluatorDefinitionSerializer(item);\n }\n}\n\nexport function evaluatorDefinitionUnionDeserializer(item: any): EvaluatorDefinitionUnion {\n switch (item.type) {\n case \"code\":\n return codeBasedEvaluatorDefinitionDeserializer(item as CodeBasedEvaluatorDefinition);\n\n case \"prompt\":\n return promptBasedEvaluatorDefinitionDeserializer(item as PromptBasedEvaluatorDefinition);\n\n default:\n return evaluatorDefinitionDeserializer(item);\n }\n}\n\n/** The type of evaluator definition */\nexport type EvaluatorDefinitionType =\n | \"prompt\"\n | \"code\"\n | \"prompt_and_code\"\n | \"service\"\n | \"openai_graders\";\n\nexport function evaluatorMetricRecordSerializer(\n item: Record<string, EvaluatorMetric>,\n): Record<string, any> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : evaluatorMetricSerializer(item[key]);\n });\n return result;\n}\n\nexport function evaluatorMetricRecordDeserializer(\n item: Record<string, any>,\n): Record<string, EvaluatorMetric> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : evaluatorMetricDeserializer(item[key]);\n });\n return result;\n}\n\n/** Evaluator Metric */\nexport interface EvaluatorMetric {\n /** Type of the metric. */\n type?: EvaluatorMetricType;\n /** It indicates whether a higher value is better or a lower value is better for this metric. */\n desirable_direction?: EvaluatorMetricDirection;\n /** Minimum value for the metric */\n min_value?: number;\n /** Maximum value for the metric. If not specified, it is assumed to be unbounded. */\n max_value?: number;\n /** Indicates if this metric is primary when there are multiple metrics. */\n is_primary?: boolean;\n}\n\nexport function evaluatorMetricSerializer(item: EvaluatorMetric): any {\n return {\n type: item[\"type\"],\n desirable_direction: item[\"desirable_direction\"],\n min_value: item[\"min_value\"],\n max_value: item[\"max_value\"],\n is_primary: item[\"is_primary\"],\n };\n}\n\nexport function evaluatorMetricDeserializer(item: any): EvaluatorMetric {\n return {\n type: item[\"type\"],\n desirable_direction: item[\"desirable_direction\"],\n min_value: item[\"min_value\"],\n max_value: item[\"max_value\"],\n is_primary: item[\"is_primary\"],\n };\n}\n\n/** The type of the evaluator */\nexport type EvaluatorMetricType = \"ordinal\" | \"continuous\" | \"boolean\";\n/** The direction of the metric indicating whether a higher value is better, a lower value is better, or neutral */\nexport type EvaluatorMetricDirection = \"increase\" | \"decrease\" | \"neutral\";\n\n/** Code-based evaluator definition using python code */\nexport interface CodeBasedEvaluatorDefinition extends EvaluatorDefinition {\n type: \"code\";\n /** Inline code text for the evaluator */\n code_text: string;\n}\n\nexport function codeBasedEvaluatorDefinitionSerializer(item: CodeBasedEvaluatorDefinition): any {\n return {\n type: item[\"type\"],\n init_parameters: item[\"init_parameters\"],\n data_schema: item[\"data_schema\"],\n metrics: !item[\"metrics\"] ? item[\"metrics\"] : evaluatorMetricRecordSerializer(item[\"metrics\"]),\n code_text: item[\"code_text\"],\n };\n}\n\nexport function codeBasedEvaluatorDefinitionDeserializer(item: any): CodeBasedEvaluatorDefinition {\n return {\n type: item[\"type\"],\n init_parameters: item[\"init_parameters\"],\n data_schema: item[\"data_schema\"],\n metrics: !item[\"metrics\"]\n ? item[\"metrics\"]\n : evaluatorMetricRecordDeserializer(item[\"metrics\"]),\n code_text: item[\"code_text\"],\n };\n}\n\n/** Prompt-based evaluator */\nexport interface PromptBasedEvaluatorDefinition extends EvaluatorDefinition {\n type: \"prompt\";\n /** The prompt text used for evaluation */\n prompt_text: string;\n}\n\nexport function promptBasedEvaluatorDefinitionSerializer(\n item: PromptBasedEvaluatorDefinition,\n): any {\n return {\n type: item[\"type\"],\n init_parameters: item[\"init_parameters\"],\n data_schema: item[\"data_schema\"],\n metrics: !item[\"metrics\"] ? item[\"metrics\"] : evaluatorMetricRecordSerializer(item[\"metrics\"]),\n prompt_text: item[\"prompt_text\"],\n };\n}\n\nexport function promptBasedEvaluatorDefinitionDeserializer(\n item: any,\n): PromptBasedEvaluatorDefinition {\n return {\n type: item[\"type\"],\n init_parameters: item[\"init_parameters\"],\n data_schema: item[\"data_schema\"],\n metrics: !item[\"metrics\"]\n ? item[\"metrics\"]\n : evaluatorMetricRecordDeserializer(item[\"metrics\"]),\n prompt_text: item[\"prompt_text\"],\n };\n}\n\n/** The response body for cluster insights. */\nexport interface Insight {\n /** The unique identifier for the insights report. */\n readonly id?: string;\n /** Metadata about the insights report. */\n readonly metadata?: InsightsMetadata;\n /** The current state of the insights. */\n readonly state?: OperationState;\n /** User friendly display name for the insight. */\n displayName: string;\n /** Request for the insights analysis. */\n request: InsightRequestUnion;\n /** The result of the insights report. */\n readonly result?: InsightResultUnion;\n}\n\nexport function insightSerializer(item: Insight): any {\n return {\n displayName: item[\"displayName\"],\n request: insightRequestUnionSerializer(item[\"request\"]),\n };\n}\n\nexport function insightDeserializer(item: any): Insight {\n return {\n id: item[\"id\"],\n metadata: insightsMetadataDeserializer(item[\"metadata\"]),\n state: item[\"state\"],\n displayName: item[\"displayName\"],\n request: insightRequestUnionDeserializer(item[\"request\"]),\n result: !item[\"result\"] ? item[\"result\"] : insightResultUnionDeserializer(item[\"result\"]),\n };\n}\n\n/** Metadata about the insights. */\nexport interface InsightsMetadata {\n /** The timestamp when the insights were created. */\n createdAt: Date;\n /** The timestamp when the insights were completed. */\n completedAt?: Date;\n}\n\nexport function insightsMetadataDeserializer(item: any): InsightsMetadata {\n return {\n createdAt: new Date(item[\"createdAt\"]),\n completedAt: !item[\"completedAt\"] ? item[\"completedAt\"] : new Date(item[\"completedAt\"]),\n };\n}\n\n/** Enum describing allowed operation states. */\nexport type OperationState = \"NotStarted\" | \"Running\" | \"Succeeded\" | \"Failed\" | \"Canceled\";\n\n/** The request of the insights report. */\nexport interface InsightRequest {\n /** The type of request. */\n /** The discriminator possible values: EvaluationRunClusterInsight, AgentClusterInsight, EvaluationComparison */\n type: InsightType;\n}\n\nexport function insightRequestSerializer(item: InsightRequest): any {\n return { type: item[\"type\"] };\n}\n\nexport function insightRequestDeserializer(item: any): InsightRequest {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for InsightRequestUnion */\nexport type InsightRequestUnion =\n | EvaluationRunClusterInsightsRequest\n | AgentClusterInsightsRequest\n | EvaluationComparisonRequest\n | InsightRequest;\n\nexport function insightRequestUnionSerializer(item: InsightRequestUnion): any {\n switch (item.type) {\n case \"EvaluationRunClusterInsight\":\n return evaluationRunClusterInsightsRequestSerializer(\n item as EvaluationRunClusterInsightsRequest,\n );\n\n case \"AgentClusterInsight\":\n return agentClusterInsightsRequestSerializer(item as AgentClusterInsightsRequest);\n\n case \"EvaluationComparison\":\n return evaluationComparisonRequestSerializer(item as EvaluationComparisonRequest);\n\n default:\n return insightRequestSerializer(item);\n }\n}\n\nexport function insightRequestUnionDeserializer(item: any): InsightRequestUnion {\n switch (item.type) {\n case \"EvaluationRunClusterInsight\":\n return evaluationRunClusterInsightsRequestDeserializer(\n item as EvaluationRunClusterInsightsRequest,\n );\n\n case \"AgentClusterInsight\":\n return agentClusterInsightsRequestDeserializer(item as AgentClusterInsightsRequest);\n\n case \"EvaluationComparison\":\n return evaluationComparisonRequestDeserializer(item as EvaluationComparisonRequest);\n\n default:\n return insightRequestDeserializer(item);\n }\n}\n\n/** The request of the insights. */\nexport type InsightType =\n | \"EvaluationRunClusterInsight\"\n | \"AgentClusterInsight\"\n | \"EvaluationComparison\";\n\n/** Insights on set of Evaluation Results */\nexport interface EvaluationRunClusterInsightsRequest extends InsightRequest {\n /** The type of insights request. */\n type: \"EvaluationRunClusterInsight\";\n /** Evaluation Id for the insights. */\n evalId: string;\n /** List of evaluation run IDs for the insights. */\n runIds: string[];\n /** Configuration of the model used in the insight generation. */\n modelConfiguration?: InsightModelConfiguration;\n}\n\nexport function evaluationRunClusterInsightsRequestSerializer(\n item: EvaluationRunClusterInsightsRequest,\n): any {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n runIds: item[\"runIds\"].map((p: any) => {\n return p;\n }),\n modelConfiguration: !item[\"modelConfiguration\"]\n ? item[\"modelConfiguration\"]\n : insightModelConfigurationSerializer(item[\"modelConfiguration\"]),\n };\n}\n\nexport function evaluationRunClusterInsightsRequestDeserializer(\n item: any,\n): EvaluationRunClusterInsightsRequest {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n runIds: item[\"runIds\"].map((p: any) => {\n return p;\n }),\n modelConfiguration: !item[\"modelConfiguration\"]\n ? item[\"modelConfiguration\"]\n : insightModelConfigurationDeserializer(item[\"modelConfiguration\"]),\n };\n}\n\n/** Configuration of the model used in the insight generation. */\nexport interface InsightModelConfiguration {\n /** The model deployment to be evaluated. Accepts either the deployment name alone or with the connection name as '{connectionName}/<modelDeploymentName>'. */\n modelDeploymentName: string;\n}\n\nexport function insightModelConfigurationSerializer(item: InsightModelConfiguration): any {\n return { modelDeploymentName: item[\"modelDeploymentName\"] };\n}\n\nexport function insightModelConfigurationDeserializer(item: any): InsightModelConfiguration {\n return {\n modelDeploymentName: item[\"modelDeploymentName\"],\n };\n}\n\n/** Insights on set of Agent Evaluation Results */\nexport interface AgentClusterInsightsRequest extends InsightRequest {\n /** The type of request. */\n type: \"AgentClusterInsight\";\n /** Identifier for the agent. */\n agentName: string;\n /** Configuration of the model used in the insight generation. */\n modelConfiguration?: InsightModelConfiguration;\n}\n\nexport function agentClusterInsightsRequestSerializer(item: AgentClusterInsightsRequest): any {\n return {\n type: item[\"type\"],\n agentName: item[\"agentName\"],\n modelConfiguration: !item[\"modelConfiguration\"]\n ? item[\"modelConfiguration\"]\n : insightModelConfigurationSerializer(item[\"modelConfiguration\"]),\n };\n}\n\nexport function agentClusterInsightsRequestDeserializer(item: any): AgentClusterInsightsRequest {\n return {\n type: item[\"type\"],\n agentName: item[\"agentName\"],\n modelConfiguration: !item[\"modelConfiguration\"]\n ? item[\"modelConfiguration\"]\n : insightModelConfigurationDeserializer(item[\"modelConfiguration\"]),\n };\n}\n\n/** Evaluation Comparison Request */\nexport interface EvaluationComparisonRequest extends InsightRequest {\n /** The type of request. */\n type: \"EvaluationComparison\";\n /** Identifier for the evaluation. */\n evalId: string;\n /** The baseline run ID for comparison. */\n baselineRunId: string;\n /** List of treatment run IDs for comparison. */\n treatmentRunIds: string[];\n}\n\nexport function evaluationComparisonRequestSerializer(item: EvaluationComparisonRequest): any {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n baselineRunId: item[\"baselineRunId\"],\n treatmentRunIds: item[\"treatmentRunIds\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function evaluationComparisonRequestDeserializer(item: any): EvaluationComparisonRequest {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n baselineRunId: item[\"baselineRunId\"],\n treatmentRunIds: item[\"treatmentRunIds\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** The result of the insights. */\nexport interface InsightResult {\n /** The type of insights result. */\n /** The discriminator possible values: EvaluationComparison, EvaluationRunClusterInsight, AgentClusterInsight */\n type: InsightType;\n}\n\nexport function insightResultDeserializer(item: any): InsightResult {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for InsightResultUnion */\nexport type InsightResultUnion =\n | EvalCompareReport\n | EvaluationRunClusterInsightResult\n | AgentClusterInsightResult\n | InsightResult;\n\nexport function insightResultUnionDeserializer(item: any): InsightResultUnion {\n switch (item.type) {\n case \"EvaluationComparison\":\n return evalCompareReportDeserializer(item as EvalCompareReport);\n\n case \"EvaluationRunClusterInsight\":\n return evaluationRunClusterInsightResultDeserializer(\n item as EvaluationRunClusterInsightResult,\n );\n\n case \"AgentClusterInsight\":\n return agentClusterInsightResultDeserializer(item as AgentClusterInsightResult);\n\n default:\n return insightResultDeserializer(item);\n }\n}\n\n/** Insights from the evaluation comparison. */\nexport interface EvalCompareReport extends InsightResult {\n /** The type of insights result. */\n type: \"EvaluationComparison\";\n /** Comparison results for each treatment run against the baseline. */\n comparisons: EvalRunResultComparison[];\n /** The statistical method used for comparison. */\n method: string;\n}\n\nexport function evalCompareReportDeserializer(item: any): EvalCompareReport {\n return {\n type: item[\"type\"],\n comparisons: evalRunResultComparisonArrayDeserializer(item[\"comparisons\"]),\n method: item[\"method\"],\n };\n}\n\nexport function evalRunResultComparisonArrayDeserializer(\n result: Array<EvalRunResultComparison>,\n): any[] {\n return result.map((item) => {\n return evalRunResultComparisonDeserializer(item);\n });\n}\n\n/** Comparison results for treatment runs against the baseline. */\nexport interface EvalRunResultComparison {\n /** Name of the testing criteria. */\n testingCriteria: string;\n /** Metric being evaluated. */\n metric: string;\n /** Name of the evaluator for this testing criteria. */\n evaluator: string;\n /** Summary statistics of the baseline run. */\n baselineRunSummary: EvalRunResultSummary;\n /** List of comparison results for each treatment run. */\n compareItems: EvalRunResultCompareItem[];\n}\n\nexport function evalRunResultComparisonDeserializer(item: any): EvalRunResultComparison {\n return {\n testingCriteria: item[\"testingCriteria\"],\n metric: item[\"metric\"],\n evaluator: item[\"evaluator\"],\n baselineRunSummary: evalRunResultSummaryDeserializer(item[\"baselineRunSummary\"]),\n compareItems: evalRunResultCompareItemArrayDeserializer(item[\"compareItems\"]),\n };\n}\n\n/** Summary statistics of a metric in an evaluation run. */\nexport interface EvalRunResultSummary {\n /** The evaluation run ID. */\n runId: string;\n /** Number of samples in the evaluation run. */\n sampleCount: number;\n /** Average value of the metric in the evaluation run. */\n average: number;\n /** Standard deviation of the metric in the evaluation run. */\n standardDeviation: number;\n}\n\nexport function evalRunResultSummaryDeserializer(item: any): EvalRunResultSummary {\n return {\n runId: item[\"runId\"],\n sampleCount: item[\"sampleCount\"],\n average: item[\"average\"],\n standardDeviation: item[\"standardDeviation\"],\n };\n}\n\nexport function evalRunResultCompareItemArrayDeserializer(\n result: Array<EvalRunResultCompareItem>,\n): any[] {\n return result.map((item) => {\n return evalRunResultCompareItemDeserializer(item);\n });\n}\n\n/** Metric comparison for a treatment against the baseline. */\nexport interface EvalRunResultCompareItem {\n /** The treatment run ID. */\n treatmentRunId: string;\n /** Summary statistics of the treatment run. */\n treatmentRunSummary: EvalRunResultSummary;\n /** Estimated difference between treatment and baseline. */\n deltaEstimate: number;\n /** P-value for the treatment effect. */\n pValue: number;\n /** Type of treatment effect. */\n treatmentEffect: TreatmentEffectType;\n}\n\nexport function evalRunResultCompareItemDeserializer(item: any): EvalRunResultCompareItem {\n return {\n treatmentRunId: item[\"treatmentRunId\"],\n treatmentRunSummary: evalRunResultSummaryDeserializer(item[\"treatmentRunSummary\"]),\n deltaEstimate: item[\"deltaEstimate\"],\n pValue: item[\"pValue\"],\n treatmentEffect: item[\"treatmentEffect\"],\n };\n}\n\n/** Treatment Effect Type. */\nexport type TreatmentEffectType =\n | \"TooFewSamples\"\n | \"Inconclusive\"\n | \"Changed\"\n | \"Improved\"\n | \"Degraded\";\n\n/** Insights from the evaluation run cluster analysis. */\nexport interface EvaluationRunClusterInsightResult extends InsightResult {\n /** The type of insights result. */\n type: \"EvaluationRunClusterInsight\";\n clusterInsight: ClusterInsightResult;\n}\n\nexport function evaluationRunClusterInsightResultDeserializer(\n item: any,\n): EvaluationRunClusterInsightResult {\n return {\n type: item[\"type\"],\n clusterInsight: clusterInsightResultDeserializer(item[\"clusterInsight\"]),\n };\n}\n\n/** Insights from the cluster analysis. */\nexport interface ClusterInsightResult {\n /** Summary of the insights report. */\n summary: InsightSummary;\n /** List of clusters identified in the insights. */\n clusters: InsightCluster[];\n /**\n * Optional mapping of IDs to 2D coordinates used by the UX for visualization.\n *\n * The map keys are string identifiers (for example, a cluster id or a sample id)\n * and the values are the coordinates and visual size for rendering on a 2D chart.\n *\n * This property is omitted unless the client requests coordinates (for example,\n * by passing `includeCoordinates=true` as a query parameter).\n *\n * Example:\n * ```\n * {\n * \"cluster-1\": { \"x\": 12, \"y\": 34, \"size\": 8 },\n * \"sample-123\": { \"x\": 18, \"y\": 22, \"size\": 4 }\n * }\n * ```\n *\n * Coordinates are intended only for client-side visualization and do not\n * modify the canonical insights results.\n */\n coordinates?: Record<string, ChartCoordinate>;\n}\n\nexport function clusterInsightResultDeserializer(item: any): ClusterInsightResult {\n return {\n summary: insightSummaryDeserializer(item[\"summary\"]),\n clusters: insightClusterArrayDeserializer(item[\"clusters\"]),\n coordinates: !item[\"coordinates\"]\n ? item[\"coordinates\"]\n : chartCoordinateRecordDeserializer(item[\"coordinates\"]),\n };\n}\n\n/** Summary of the error cluster analysis. */\nexport interface InsightSummary {\n /** Total number of samples analyzed. */\n sampleCount: number;\n /** Total number of unique subcluster labels. */\n uniqueSubclusterCount: number;\n /** Total number of unique clusters. */\n uniqueClusterCount: number;\n /** Method used for clustering. */\n method: string;\n /** Token usage while performing clustering analysis */\n usage: ClusterTokenUsage;\n}\n\nexport function insightSummaryDeserializer(item: any): InsightSummary {\n return {\n sampleCount: item[\"sampleCount\"],\n uniqueSubclusterCount: item[\"uniqueSubclusterCount\"],\n uniqueClusterCount: item[\"uniqueClusterCount\"],\n method: item[\"method\"],\n usage: clusterTokenUsageDeserializer(item[\"usage\"]),\n };\n}\n\n/** Token usage for cluster analysis */\nexport interface ClusterTokenUsage {\n /** input token usage */\n inputTokenUsage: number;\n /** output token usage */\n outputTokenUsage: number;\n /** total token usage */\n totalTokenUsage: number;\n}\n\nexport function clusterTokenUsageDeserializer(item: any): ClusterTokenUsage {\n return {\n inputTokenUsage: item[\"inputTokenUsage\"],\n outputTokenUsage: item[\"outputTokenUsage\"],\n totalTokenUsage: item[\"totalTokenUsage\"],\n };\n}\n\nexport function insightClusterArrayDeserializer(result: Array<InsightCluster>): any[] {\n return result.map((item) => {\n return insightClusterDeserializer(item);\n });\n}\n\n/** A cluster of analysis samples. */\nexport interface InsightCluster {\n /** The id of the analysis cluster. */\n id: string;\n /** Label for the cluster */\n label: string;\n /** Suggestion for the cluster */\n suggestion: string;\n /** The title of the suggestion for the cluster */\n suggestionTitle: string;\n /** Description of the analysis cluster. */\n description: string;\n /** The weight of the analysis cluster. This indicate number of samples in the cluster. */\n weight: number;\n /** List of subclusters within this cluster. Empty if no subclusters exist. */\n subClusters?: InsightCluster[];\n /** List of samples that belong to this cluster. Empty if samples are part of subclusters. */\n samples?: InsightSampleUnion[];\n}\n\nexport function insightClusterDeserializer(item: any): InsightCluster {\n return {\n id: item[\"id\"],\n label: item[\"label\"],\n suggestion: item[\"suggestion\"],\n suggestionTitle: item[\"suggestionTitle\"],\n description: item[\"description\"],\n weight: item[\"weight\"],\n subClusters: !item[\"subClusters\"]\n ? item[\"subClusters\"]\n : insightClusterArrayDeserializer(item[\"subClusters\"]),\n samples: !item[\"samples\"]\n ? item[\"samples\"]\n : insightSampleUnionArrayDeserializer(item[\"samples\"]),\n };\n}\n\nexport function insightSampleUnionArrayDeserializer(result: Array<InsightSampleUnion>): any[] {\n return result.map((item) => {\n return insightSampleUnionDeserializer(item);\n });\n}\n\n/** A sample from the analysis. */\nexport interface InsightSample {\n /** The unique identifier for the analysis sample. */\n id: string;\n /** Sample type */\n /** The discriminator possible values: EvaluationResultSample */\n type: SampleType;\n /** Features to help with additional filtering of data in UX. */\n features: Record<string, any>;\n /** Info about the correlation for the analysis sample. */\n correlationInfo: Record<string, any>;\n}\n\nexport function insightSampleDeserializer(item: any): InsightSample {\n return {\n id: item[\"id\"],\n type: item[\"type\"],\n features: item[\"features\"],\n correlationInfo: item[\"correlationInfo\"],\n };\n}\n\n/** Alias for InsightSampleUnion */\nexport type InsightSampleUnion = EvaluationResultSample | InsightSample;\n\nexport function insightSampleUnionDeserializer(item: any): InsightSampleUnion {\n switch (item.type) {\n case \"EvaluationResultSample\":\n return evaluationResultSampleDeserializer(item as EvaluationResultSample);\n\n default:\n return insightSampleDeserializer(item);\n }\n}\n\n/** The type of sample used in the analysis. */\nexport type SampleType = \"EvaluationResultSample\";\n\n/** A sample from the evaluation result. */\nexport interface EvaluationResultSample extends InsightSample {\n /** Evaluation Result Sample Type */\n type: \"EvaluationResultSample\";\n /** Evaluation result for the analysis sample. */\n evaluationResult: EvalResult;\n}\n\nexport function evaluationResultSampleDeserializer(item: any): EvaluationResultSample {\n return {\n id: item[\"id\"],\n type: item[\"type\"],\n features: item[\"features\"],\n correlationInfo: item[\"correlationInfo\"],\n evaluationResult: evalResultDeserializer(item[\"evaluationResult\"]),\n };\n}\n\n/** Result of the evaluation. */\nexport interface EvalResult {\n /** name of the check */\n name: string;\n /** type of the check */\n type: string;\n /** score */\n score: number;\n /** indicates if the check passed or failed */\n passed: boolean;\n}\n\nexport function evalResultDeserializer(item: any): EvalResult {\n return {\n name: item[\"name\"],\n type: item[\"type\"],\n score: item[\"score\"],\n passed: item[\"passed\"],\n };\n}\n\nexport function chartCoordinateRecordDeserializer(\n item: Record<string, any>,\n): Record<string, ChartCoordinate> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : chartCoordinateDeserializer(item[key]);\n });\n return result;\n}\n\n/** Coordinates for the analysis chart. */\nexport interface ChartCoordinate {\n /** X-axis coordinate. */\n x: number;\n /** Y-axis coordinate. */\n y: number;\n /** Size of the chart element. */\n size: number;\n}\n\nexport function chartCoordinateDeserializer(item: any): ChartCoordinate {\n return {\n x: item[\"x\"],\n y: item[\"y\"],\n size: item[\"size\"],\n };\n}\n\n/** Insights from the agent cluster analysis. */\nexport interface AgentClusterInsightResult extends InsightResult {\n /** The type of insights result. */\n type: \"AgentClusterInsight\";\n clusterInsight: ClusterInsightResult;\n}\n\nexport function agentClusterInsightResultDeserializer(item: any): AgentClusterInsightResult {\n return {\n type: item[\"type\"],\n clusterInsight: clusterInsightResultDeserializer(item[\"clusterInsight\"]),\n };\n}\n\n/** Paged collection of Insight items */\nexport interface _PagedInsight {\n /** The Insight items on this page */\n value: Insight[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedInsightDeserializer(item: any): _PagedInsight {\n return {\n value: insightArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function insightArraySerializer(result: Array<Insight>): any[] {\n return result.map((item) => {\n return insightSerializer(item);\n });\n}\n\nexport function insightArrayDeserializer(result: Array<Insight>): any[] {\n return result.map((item) => {\n return insightDeserializer(item);\n });\n}\n\n/** Schedule model. */\nexport interface Schedule {\n /** Identifier of the schedule. */\n readonly id?: string;\n /** Name of the schedule. */\n displayName?: string;\n /** Description of the schedule. */\n description?: string;\n /** Enabled status of the schedule. */\n enabled: boolean;\n /** Provisioning status of the schedule. */\n readonly provisioningStatus?: ScheduleProvisioningStatus;\n /** Trigger for the schedule. */\n trigger: TriggerUnion;\n /** Task for the schedule. */\n task: ScheduleTaskUnion;\n /** Schedule's tags. Unlike properties, tags are fully mutable. */\n tags?: Record<string, string>;\n /** Schedule's properties. Unlike tags, properties are add-only. Once added, a property cannot be removed. */\n properties?: Record<string, string>;\n /** System metadata for the resource. */\n readonly systemData?: Record<string, string>;\n}\n\nexport function scheduleSerializer(item: Schedule): any {\n return {\n displayName: item[\"displayName\"],\n description: item[\"description\"],\n enabled: item[\"enabled\"],\n trigger: triggerUnionSerializer(item[\"trigger\"]),\n task: scheduleTaskUnionSerializer(item[\"task\"]),\n tags: item[\"tags\"],\n properties: item[\"properties\"],\n };\n}\n\nexport function scheduleDeserializer(item: any): Schedule {\n return {\n id: item[\"id\"],\n displayName: item[\"displayName\"],\n description: item[\"description\"],\n enabled: item[\"enabled\"],\n provisioningStatus: item[\"provisioningStatus\"],\n trigger: triggerUnionDeserializer(item[\"trigger\"]),\n task: scheduleTaskUnionDeserializer(item[\"task\"]),\n tags: item[\"tags\"],\n properties: item[\"properties\"],\n systemData: item[\"systemData\"],\n };\n}\n\n/** Schedule provisioning status. */\nexport type ScheduleProvisioningStatus =\n | \"Creating\"\n | \"Updating\"\n | \"Deleting\"\n | \"Succeeded\"\n | \"Failed\";\n\n/** Base model for Trigger of the schedule. */\nexport interface Trigger {\n /** Type of the trigger. */\n /** The discriminator possible values: Cron, Recurrence, OneTime */\n type: TriggerType;\n}\n\nexport function triggerSerializer(item: Trigger): any {\n return { type: item[\"type\"] };\n}\n\nexport function triggerDeserializer(item: any): Trigger {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for TriggerUnion */\nexport type TriggerUnion = CronTrigger | RecurrenceTrigger | OneTimeTrigger | Trigger;\n\nexport function triggerUnionSerializer(item: TriggerUnion): any {\n switch (item.type) {\n case \"Cron\":\n return cronTriggerSerializer(item as CronTrigger);\n\n case \"Recurrence\":\n return recurrenceTriggerSerializer(item as RecurrenceTrigger);\n\n case \"OneTime\":\n return oneTimeTriggerSerializer(item as OneTimeTrigger);\n\n default:\n return triggerSerializer(item);\n }\n}\n\nexport function triggerUnionDeserializer(item: any): TriggerUnion {\n switch (item.type) {\n case \"Cron\":\n return cronTriggerDeserializer(item as CronTrigger);\n\n case \"Recurrence\":\n return recurrenceTriggerDeserializer(item as RecurrenceTrigger);\n\n case \"OneTime\":\n return oneTimeTriggerDeserializer(item as OneTimeTrigger);\n\n default:\n return triggerDeserializer(item);\n }\n}\n\n/** Type of the trigger. */\nexport type TriggerType = \"Cron\" | \"Recurrence\" | \"OneTime\";\n\n/** Cron based trigger. */\nexport interface CronTrigger extends Trigger {\n type: \"Cron\";\n /** Cron expression that defines the schedule frequency. */\n expression: string;\n /** Time zone for the cron schedule. */\n timeZone?: string;\n /** Start time for the cron schedule in ISO 8601 format. */\n startTime?: string;\n /** End time for the cron schedule in ISO 8601 format. */\n endTime?: string;\n}\n\nexport function cronTriggerSerializer(item: CronTrigger): any {\n return {\n type: item[\"type\"],\n expression: item[\"expression\"],\n timeZone: item[\"timeZone\"],\n startTime: item[\"startTime\"],\n endTime: item[\"endTime\"],\n };\n}\n\nexport function cronTriggerDeserializer(item: any): CronTrigger {\n return {\n type: item[\"type\"],\n expression: item[\"expression\"],\n timeZone: item[\"timeZone\"],\n startTime: item[\"startTime\"],\n endTime: item[\"endTime\"],\n };\n}\n\n/** Recurrence based trigger. */\nexport interface RecurrenceTrigger extends Trigger {\n /** Type of the trigger. */\n type: \"Recurrence\";\n /** Start time for the recurrence schedule in ISO 8601 format. */\n startTime?: string;\n /** End time for the recurrence schedule in ISO 8601 format. */\n endTime?: string;\n /** Time zone for the recurrence schedule. */\n timeZone?: string;\n /** Interval for the recurrence schedule. */\n interval: number;\n /** Recurrence schedule for the recurrence trigger. */\n schedule: RecurrenceScheduleUnion;\n}\n\nexport function recurrenceTriggerSerializer(item: RecurrenceTrigger): any {\n return {\n type: item[\"type\"],\n startTime: item[\"startTime\"],\n endTime: item[\"endTime\"],\n timeZone: item[\"timeZone\"],\n interval: item[\"interval\"],\n schedule: recurrenceScheduleUnionSerializer(item[\"schedule\"]),\n };\n}\n\nexport function recurrenceTriggerDeserializer(item: any): RecurrenceTrigger {\n return {\n type: item[\"type\"],\n startTime: item[\"startTime\"],\n endTime: item[\"endTime\"],\n timeZone: item[\"timeZone\"],\n interval: item[\"interval\"],\n schedule: recurrenceScheduleUnionDeserializer(item[\"schedule\"]),\n };\n}\n\n/** Recurrence schedule model. */\nexport interface RecurrenceSchedule {\n /** Recurrence type for the recurrence schedule. */\n /** The discriminator possible values: Hourly, Daily, Weekly, Monthly */\n type: RecurrenceType;\n}\n\nexport function recurrenceScheduleSerializer(item: RecurrenceSchedule): any {\n return { type: item[\"type\"] };\n}\n\nexport function recurrenceScheduleDeserializer(item: any): RecurrenceSchedule {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for RecurrenceScheduleUnion */\nexport type RecurrenceScheduleUnion =\n | HourlyRecurrenceSchedule\n | DailyRecurrenceSchedule\n | WeeklyRecurrenceSchedule\n | MonthlyRecurrenceSchedule\n | RecurrenceSchedule;\n\nexport function recurrenceScheduleUnionSerializer(item: RecurrenceScheduleUnion): any {\n switch (item.type) {\n case \"Hourly\":\n return hourlyRecurrenceScheduleSerializer(item as HourlyRecurrenceSchedule);\n\n case \"Daily\":\n return dailyRecurrenceScheduleSerializer(item as DailyRecurrenceSchedule);\n\n case \"Weekly\":\n return weeklyRecurrenceScheduleSerializer(item as WeeklyRecurrenceSchedule);\n\n case \"Monthly\":\n return monthlyRecurrenceScheduleSerializer(item as MonthlyRecurrenceSchedule);\n\n default:\n return recurrenceScheduleSerializer(item);\n }\n}\n\nexport function recurrenceScheduleUnionDeserializer(item: any): RecurrenceScheduleUnion {\n switch (item.type) {\n case \"Hourly\":\n return hourlyRecurrenceScheduleDeserializer(item as HourlyRecurrenceSchedule);\n\n case \"Daily\":\n return dailyRecurrenceScheduleDeserializer(item as DailyRecurrenceSchedule);\n\n case \"Weekly\":\n return weeklyRecurrenceScheduleDeserializer(item as WeeklyRecurrenceSchedule);\n\n case \"Monthly\":\n return monthlyRecurrenceScheduleDeserializer(item as MonthlyRecurrenceSchedule);\n\n default:\n return recurrenceScheduleDeserializer(item);\n }\n}\n\n/** Recurrence type. */\nexport type RecurrenceType = \"Hourly\" | \"Daily\" | \"Weekly\" | \"Monthly\";\n\n/** Hourly recurrence schedule. */\nexport interface HourlyRecurrenceSchedule extends RecurrenceSchedule {\n type: \"Hourly\";\n}\n\nexport function hourlyRecurrenceScheduleSerializer(item: HourlyRecurrenceSchedule): any {\n return { type: item[\"type\"] };\n}\n\nexport function hourlyRecurrenceScheduleDeserializer(item: any): HourlyRecurrenceSchedule {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Daily recurrence schedule. */\nexport interface DailyRecurrenceSchedule extends RecurrenceSchedule {\n /** Daily recurrence type. */\n type: \"Daily\";\n /** Hours for the recurrence schedule. */\n hours: number[];\n}\n\nexport function dailyRecurrenceScheduleSerializer(item: DailyRecurrenceSchedule): any {\n return {\n type: item[\"type\"],\n hours: item[\"hours\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function dailyRecurrenceScheduleDeserializer(item: any): DailyRecurrenceSchedule {\n return {\n type: item[\"type\"],\n hours: item[\"hours\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Weekly recurrence schedule. */\nexport interface WeeklyRecurrenceSchedule extends RecurrenceSchedule {\n /** Weekly recurrence type. */\n type: \"Weekly\";\n /** Days of the week for the recurrence schedule. */\n daysOfWeek: DayOfWeek[];\n}\n\nexport function weeklyRecurrenceScheduleSerializer(item: WeeklyRecurrenceSchedule): any {\n return {\n type: item[\"type\"],\n daysOfWeek: item[\"daysOfWeek\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function weeklyRecurrenceScheduleDeserializer(item: any): WeeklyRecurrenceSchedule {\n return {\n type: item[\"type\"],\n daysOfWeek: item[\"daysOfWeek\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Days of the week for recurrence schedule. */\nexport type DayOfWeek =\n | \"Sunday\"\n | \"Monday\"\n | \"Tuesday\"\n | \"Wednesday\"\n | \"Thursday\"\n | \"Friday\"\n | \"Saturday\";\n\n/** Monthly recurrence schedule. */\nexport interface MonthlyRecurrenceSchedule extends RecurrenceSchedule {\n /** Monthly recurrence type. */\n type: \"Monthly\";\n /** Days of the month for the recurrence schedule. */\n daysOfMonth: number[];\n}\n\nexport function monthlyRecurrenceScheduleSerializer(item: MonthlyRecurrenceSchedule): any {\n return {\n type: item[\"type\"],\n daysOfMonth: item[\"daysOfMonth\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function monthlyRecurrenceScheduleDeserializer(item: any): MonthlyRecurrenceSchedule {\n return {\n type: item[\"type\"],\n daysOfMonth: item[\"daysOfMonth\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** One-time trigger. */\nexport interface OneTimeTrigger extends Trigger {\n type: \"OneTime\";\n /** Date and time for the one-time trigger in ISO 8601 format. */\n triggerAt: string;\n /** Time zone for the one-time trigger. */\n timeZone?: string;\n}\n\nexport function oneTimeTriggerSerializer(item: OneTimeTrigger): any {\n return {\n type: item[\"type\"],\n triggerAt: item[\"triggerAt\"],\n timeZone: item[\"timeZone\"],\n };\n}\n\nexport function oneTimeTriggerDeserializer(item: any): OneTimeTrigger {\n return {\n type: item[\"type\"],\n triggerAt: item[\"triggerAt\"],\n timeZone: item[\"timeZone\"],\n };\n}\n\n/** Schedule task model. */\nexport interface ScheduleTask {\n /** Type of the task. */\n /** The discriminator possible values: Evaluation, Insight */\n type: ScheduleTaskType;\n /** Configuration for the task. */\n configuration?: Record<string, string>;\n}\n\nexport function scheduleTaskSerializer(item: ScheduleTask): any {\n return { type: item[\"type\"], configuration: item[\"configuration\"] };\n}\n\nexport function scheduleTaskDeserializer(item: any): ScheduleTask {\n return {\n type: item[\"type\"],\n configuration: item[\"configuration\"],\n };\n}\n\n/** Alias for ScheduleTaskUnion */\nexport type ScheduleTaskUnion = EvaluationScheduleTask | InsightScheduleTask | ScheduleTask;\n\nexport function scheduleTaskUnionSerializer(item: ScheduleTaskUnion): any {\n switch (item.type) {\n case \"Evaluation\":\n return evaluationScheduleTaskSerializer(item as EvaluationScheduleTask);\n\n case \"Insight\":\n return insightScheduleTaskSerializer(item as InsightScheduleTask);\n\n default:\n return scheduleTaskSerializer(item);\n }\n}\n\nexport function scheduleTaskUnionDeserializer(item: any): ScheduleTaskUnion {\n switch (item.type) {\n case \"Evaluation\":\n return evaluationScheduleTaskDeserializer(item as EvaluationScheduleTask);\n\n case \"Insight\":\n return insightScheduleTaskDeserializer(item as InsightScheduleTask);\n\n default:\n return scheduleTaskDeserializer(item);\n }\n}\n\n/** Type of the task. */\nexport type ScheduleTaskType = \"Evaluation\" | \"Insight\";\n\n/** Evaluation task for the schedule. */\nexport interface EvaluationScheduleTask extends ScheduleTask {\n type: \"Evaluation\";\n /** Identifier of the evaluation group. */\n evalId: string;\n /** The evaluation run payload. */\n evalRun: Record<string, any>;\n}\n\nexport function evaluationScheduleTaskSerializer(item: EvaluationScheduleTask): any {\n return {\n type: item[\"type\"],\n configuration: item[\"configuration\"],\n evalId: item[\"evalId\"],\n evalRun: _evaluationScheduleTaskEvalRunSerializer(item[\"evalRun\"]),\n };\n}\n\nexport function evaluationScheduleTaskDeserializer(item: any): EvaluationScheduleTask {\n return {\n type: item[\"type\"],\n configuration: item[\"configuration\"],\n evalId: item[\"evalId\"],\n evalRun: _evaluationScheduleTaskEvalRunDeserializer(item[\"evalRun\"]),\n };\n}\n\n/** model interface _EvaluationScheduleTaskEvalRun */\nexport interface _EvaluationScheduleTaskEvalRun {}\n\nexport function _evaluationScheduleTaskEvalRunSerializer(\n item: _EvaluationScheduleTaskEvalRun,\n): any {\n return item;\n}\n\nexport function _evaluationScheduleTaskEvalRunDeserializer(\n item: any,\n): _EvaluationScheduleTaskEvalRun {\n return item;\n}\n\n/** Insight task for the schedule. */\nexport interface InsightScheduleTask extends ScheduleTask {\n type: \"Insight\";\n /** The insight payload. */\n insight: Insight;\n}\n\nexport function insightScheduleTaskSerializer(item: InsightScheduleTask): any {\n return {\n type: item[\"type\"],\n configuration: item[\"configuration\"],\n insight: insightSerializer(item[\"insight\"]),\n };\n}\n\nexport function insightScheduleTaskDeserializer(item: any): InsightScheduleTask {\n return {\n type: item[\"type\"],\n configuration: item[\"configuration\"],\n insight: insightDeserializer(item[\"insight\"]),\n };\n}\n\n/** Paged collection of Schedule items */\nexport interface _PagedSchedule {\n /** The Schedule items on this page */\n value: Schedule[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedScheduleDeserializer(item: any): _PagedSchedule {\n return {\n value: scheduleArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function scheduleArraySerializer(result: Array<Schedule>): any[] {\n return result.map((item) => {\n return scheduleSerializer(item);\n });\n}\n\nexport function scheduleArrayDeserializer(result: Array<Schedule>): any[] {\n return result.map((item) => {\n return scheduleDeserializer(item);\n });\n}\n\n/** Schedule run model. */\nexport interface ScheduleRun {\n /** Identifier of the schedule run. */\n readonly id: string;\n /** Identifier of the schedule. */\n scheduleId: string;\n /** Trigger success status of the schedule run. */\n readonly success: boolean;\n /** Trigger time of the schedule run. */\n triggerTime?: string;\n /** Error information for the schedule run. */\n readonly error?: string;\n /** Properties of the schedule run. */\n readonly properties: Record<string, string>;\n}\n\nexport function scheduleRunDeserializer(item: any): ScheduleRun {\n return {\n id: item[\"id\"],\n scheduleId: item[\"scheduleId\"],\n success: item[\"success\"],\n triggerTime: item[\"triggerTime\"],\n error: item[\"error\"],\n properties: item[\"properties\"],\n };\n}\n\n/** Paged collection of ScheduleRun items */\nexport interface PagedScheduleRun {\n /** The ScheduleRun items on this page */\n value: ScheduleRun[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function pagedScheduleRunDeserializer(item: any): PagedScheduleRun {\n return {\n value: scheduleRunArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function scheduleRunArrayDeserializer(result: Array<ScheduleRun>): any[] {\n return result.map((item) => {\n return scheduleRunDeserializer(item);\n });\n}\n\n/** model interface AgentId */\nexport interface AgentId {\n type: \"agent_id\";\n /** The name of the agent. */\n name: string;\n /** The version identifier of the agent. */\n version: string;\n}\n\nexport function agentIdDeserializer(item: any): AgentId {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\n/** Alias for _ResponseInstructions */\nexport type _ResponseInstructions = string | ItemParamUnion[];\n\n/** model interface AgentReference */\nexport interface AgentReference {\n type: \"agent_reference\";\n /** The name of the agent. */\n name: string;\n /** The version identifier of the agent. */\n version?: string;\n}\n\nexport function agentReferenceSerializer(item: AgentReference): any {\n return { type: item[\"type\"], name: item[\"name\"], version: item[\"version\"] };\n}\n\n/** Alias for _ListVersionsRequestType */\nexport type _ListVersionsRequestType = EvaluatorType | \"all\";\n\nexport function _listVersionsRequestTypeSerializer(item: _ListVersionsRequestType): any {\n return item;\n}\n\n/** The type of pending upload. */\nexport type PendingUploadType = \"None\" | \"BlobReference\";\n\n/** Azure AI Projects API versions */\nexport enum KnownApiVersions {\n /** Azure AI API version 2025-11-15-preview. */\n v2025_11_15_preview = \"2025-11-15-preview\",\n}\n"]}